Google の DeepMind AI 部門は、 スタークラフト 私に 折りたたみタンパク質. したがって、クリエーターが最終的に、間違いなく個人的な関心事であるコンピューター プログラミングに目を向けたのは、おそらく驚くべきことではありません。 Science の木曜日の号で、同社は、ヒューマン プログラミング コンテストで使用される典型的なプログラミングに応答してコードを生成する、開発したシステムについて説明しています。
ミディアム チャレンジでは、AI システムは参加者の上半分近くにスコアを付けることができます。 しかし、通常はより多くのコードを必要とする問題に対処するプログラムを作成する可能性が低いため、スケーリングにはいくつかの問題がありました。 ただし、アルゴリズムやプログラミング言語に関する構造的な情報がまったくなくても機能するという事実は、少し驚きです。
挑戦に立ち上がる
コンピューター プログラミングの課題は非常に単純です。人々は、必要なタスクを実行する必要があるコードを完了して生成するタスクを与えられます。 新しい論文の例では、プログラマーは 2 つの文字列を与えられ、2 つのうちの短い文字列を、長い文字列を入力するために必要なキーストロークの一部をバックスペースに置き換えることで生成できるかどうかを判断するよう求められました。 提出されたプログラムは、問題に対する一般的な解決策を提供するかどうか、または追加の例をテストしたときに失敗するかどうかを確認するためにチェックされます。
1 つの問題を解決できるソフトウェアの例が十分にあれば、AI システムは成功に必要なアルゴリズム構造を推測できるはずです。 しかし、これは問題に対処するための一般的な解決策ではありません。 1 つのカテゴリの課題でトレーニングされた AI は、無関係な課題に取り組むように求められると失敗します。
より一般化できるようにするために、DeepMind チームはそれを言語の問題のように扱いました。 ある程度、課題の記述はアルゴリズムが何をすべきかを表現したものであり、コードは同じことを別の言語で表現したものです。 そのため、問題の AI は 2 つの部分を持つように設計されています。1 つの部分は記述を取得して内部表現に変換し、2 つ目の部分は内部表現を使用して機能コードを生成します。
システムのトレーニングも 2 段階のプロセスでした。 最初のフェーズでは、システムは GitHub 上の素材のスナップショットを処理するだけで、合計 700 GB を超えるコードが必要でした。 (サムドライブにそれを収めることができる最近では、それほど多くないように聞こえるかもしれませんが、コードは単なる生のテキストであるため、ギガバイトあたりの行数が多いことを覚えておいてください。) このデータにはコメントも含まれることに注意してください。これは、近くのコードが何をするかを説明する自然言語を使用する必要があるため、入力タスクと出力タスクの両方に役立つはずです。
システムがトレーニングされると、調整期間に入ります。 DeepMind は独自のプログラミング クイズを設定し、結果をシステムにフィードします: 問題の説明、動作するコード、失敗したコード、およびそれを検証するために使用されるテスト ケース。
以前にも同様のアプローチが試みられましたが、DeepMind は、より多くのリソースをトレーニングに投入できたと報告しています。 この論文は、「AlphaCode のパフォーマンスの主な要因は、モデル サンプルの数を以前の作業よりも桁違いに増やしたことにある」と述べています。
More Stories
週末の睡眠を補うことで心臓病のリスクが5分の1減少する可能性がある――研究 |心臓病
化石によると、先史時代のカイギュウはワニとサメに食べられた
二つの大陸で同一の恐竜の足跡を発見