GoogleのAI研究部門の1つであるGoogle Brainの研究者たちは、TensorFlowのような機械学習フレームワークでプログラミングを行うための自動化ツールを開発した。このツールは、人間のプログラマーが数分から数時間かかる問題を数秒で解決するなど、いくつかの困難な開発タスクにおいて人間よりも優れたパフォーマンスを達成したという。

新興のAI技術は、コンピュータビジョン、音声処理、自然言語処理、ロボット工学の分野でブレークスルーをもたらした。重要な役割を果たしているのは、TensorFlow、FacebookのPyTorch、MXNetなどの機械学習フレームワークで、研究者が新しいモデルを開発し、改良することを可能にしている。

しかし、これらのフレームワークはAIモデルの反復やトレーニングを容易にしているが、テンソルを使った計算のパラダイムが従来のプログラミングとは全く異なるため、学習曲線が急なものになっている。テンソルは、ベクトル空間に関連するものの集合間の関係を記述する代数的なオブジェクトであり、機械学習では便利なデータ形式である。ほとんどのモデルでは、データ処理やクリーニングのための様々なテンソル操作、カスタムの損失関数、フレームワークの制約の中で実装されなければならない精度測定基準が必要だ。

TF-Coderツールは、入力・出力例と自然言語記述からテンソル操作プログラムを合成することを目的としている。操作ごとの重み付けにより、TF-CoderはTensorFlow式を複雑度の高い順に列挙することができ、新しい型と値に基づくフィルタリングシステムはTensorFlowライブラリによって課せられる制約を処理する。別のフレームワークでは、入力テンソルと出力テンソルの特徴とタスクの自然言語記述に基づいて、操作検索中に優先する操作を選択する複数の独立した機械学習モデルからの予測を組み合わせている。これにより、手元の特定の合成タスクに合わせて検索を調整することができる。

TF-Coderは、リシェイプ、フィルタ、集約、マップ、インデックス、スライス、グループ化、ソート、数学演算など、TensorFlowの500のテンソル操作のうち134の操作を考慮している。4つまたは5つの異なる操作と10個以上のコンポーネントからなるデータ構造を含む問題を扱うことができ、形状とデータ型は全体的に互換性がある必要があるため、誤差の余地はほとんどない。

共著者によると、実験では、質疑応答サイトStackOverflowの様々な実問題に対して、TF-Coderは「超人的」な性能を発揮したという。StackOverflowと本番環境の70の実世界のテンソル変換タスクについて評価したところ、TF-Coderは平均17秒で63のタスクの解を合成することに成功し、モデルを使用しない場合と比較して合成時間が「有意に」速くなった(平均35.4%速くなりました)。

驚くべきことに、TF-Coderはまた、共著者らが主張するように、TensorFlowの専門家が書いたものよりも「シンプル」で「よりエレガント」なソリューションを生成した。 2つのソリューションは、最高の手書きのソリューションよりも少ない操作を必要とするにとどまった。

共著者らは、TF-Coderを説明するプレプリント論文を書いている。「TF-Coderは、ディープラーニングパイプラインで一般的なトリッキーなテンソル変換プログラムを書く際に、機械学習初心者と経験豊富な実務家の両方に役立つと信じています。おそらく、この研究から学ぶべき最も重要な教訓は、最適化された列挙検索によって、人間のプログラマーが数分以内に解くのに苦労するような問題であっても、実世界のテンソル操作問題を数秒以内にうまく解くことができるという事実です」と記述している。

参考文献

  1. Kensen Shi et al. TF-Coder: Program Synthesis for Tensor Manipulations. arXiv:2003.09040. [Submitted on 19 Mar 2020 (v1), last revised 25 Jul 2020 (this version, v3)]

Photo by Google.