現場で コンピューター サイエンスにおいて、分類ほど基本的なタスクはおそらくありません。 バブル、ヒープ、マージ – 好みに合わせて選択してください。 コンピューター内のデータを並べ替える方法は、徹底的に理論化され、何百万人もの初心者の練習問題として機能し、専門の開発者によって数十年にわたって最適化されてきました。 任意のプログラミング言語で sort() 関数を入力すると、そのコードは信頼できます。 触らないでください。 すでに素晴らしい機能を発揮しています。
しかし昨年、Google の Deepmind のエンジニアが開発した AI システムは、重要な点まで大幅に改善されました。 Deepmind が AlphaDev と呼ぶこのシステムは、一般的なコーディング言語である C++ で短いシーケンスを数値で並べ替える新しい方法を考案するという任務を負っていました。 これは、内部に潜入して AI にアセンブリ コードで新しいアルゴリズムを構築させることを意味します。これは、C++ などのプログラミング言語とコンピューター ハードウェアの間のギャップを埋める命令です。 C++ 開発者がコンピュータに「並べ替え」を指示すると、それらのコマンドは機械可読コードに変換され、コンピュータのメモリとプロセッサに何をすべきか、つまりデータをどこに移動するか、どのように変更するかを正確に指示します。 ビットと金属が接触する場所です。
実験はうまくいきました。 昨年 4 月以来、AI が考案した新しい並べ替えアルゴリズムのおかげで、C++ の実行速度が若干速くなりました。 しかし、AlphaDev のエンジニアによると、 で今日の仕事について説明しました 自然、それは最初のステップにすぎません。 「私たちはコンピューティング スタック全体を最適化したいと考えています」と、並べ替えプロジェクトを主導したディープマインド社の研究員ダニエル マンコウィッツ氏は言います。 Mankowitz 氏は、AlphaDev はソートだけでなく、ハッシュなどの他の基本的なタスクのアルゴリズムもすでに改良していると述べています。
「この研究は信じられないほどエキサイティングだと思います」と、この研究には関与していないMITのプログラム合成の専門家、アルマンド・ソーラー・レザマ氏は言う。 AI に新しい並べ替えアルゴリズムを考え出させると便利です。 さまざまなタスクにわたって最先端のコードの書き方を学習できる AI を構築することは、はるかに重要なことだと彼は言います。 これは、AlphaDev がコーディング技術そのものについて、より基本的なことを学び始めたことを意味します。
もちろん、それには重大な制約が伴います。 「これらは非常に小さなプログラムです」と彼は付け加えます。アセンブリ コードの命令は合計でも数十個に過ぎません。 しかし、これらの小さなプログラムは、人間が無理なく最適化されているため、コンピューターのパフォーマンスにとって大きなボトルネックとなることがよくあります。 全体として、AlphaDev の新しい C++ ソート アルゴリズムは、長い数値シーケンスをソートする場合に以前の方法よりも 1.7 パーセント効率が高く、5 項目のシーケンスでは最大 70 パーセント高速です。 マンコウィッツ氏は、これらの改善は規模が大きくなると積み重なっていくと言う。 AI が作成したコードが C++ の主要なオープンソース ライブラリである Libc++ に送信されて以来、アルゴリズムは 1 日に何兆回も使用されていると同氏は推定しています。
これらの改善は強化学習と呼ばれる技術のおかげで、これはディープマインドの AI がチェスや囲碁などのゲームをマスターするのに使用されるのと同じアプローチです。 このタイプの AI は、実践することで学習します。 これは、アセンブリ プログラムの作成などの特定のタスクをゲームとして扱うことで機能し、AI はプログラムの効率を高める賢い動きをすることで報酬を受け取ります。 時間が経つにつれて、システムはこの報酬を最大化するように機能し、その結果、囲碁戦略が勝利したり、組み立てプログラムがより迅速になったりするようになります。 これは、単語やコードの書き方を学習するために膨大な量のデータに依存する GPT-4 のような大規模言語モデルに見られる種類の AI とは異なります。 これは、インターネットの論調を反映した文章を作成したり、コードの共通部分を作成したりするのに最適です。 しかし、AI がこれまで経験したことのないコーディングの課題に対して、斬新で最先端のソリューションを生み出すことはあまり得意ではありません。