見出し画像

コサインの新AI開発者GENIE、驚きの登場! (AIソフトウェアエンジニア)

ソフトウェア開発は、コサインのGENIEの登場によってさらに大きな進歩を遂げました。GENIEは、先週火曜日に発表された新しいソフトウェアエンジニアリング検証ベンチマークで3.8%のスコアを達成したGPT-4の最新の微調整バージョンです。彼らの発表動画を見てみましょう。非常に興味深いものです。
こんにちは。私はアリーと申します。人間の推論研究所であるコサインの共同創業者兼CEOです。本日は、最先端の完全自律型ソフトウェアエンジニアの同僚であるGENIEをご紹介したいと思います。GENIEは世界で最高のSWベンチスコアを持っています。この成果を達成するために、私たちは全く異なるアプローチを取りました。ソフトウェアエンジニアのように振る舞うモデルを作るには、人間のソフトウェアエンジニアがどのように働くかを示す必要があると考えたのです。私たちは、実際のソフトウェアエンジニアの仕事から人間の推論を導き出すための新しい技術を開発しました。私たちのデータは、完璧な情報の系統、段階的な知識の発見、そして段階的な意思決定を表現しており、人間のエンジニアが論理的に行うことすべてを表しています。
単に基本モデルにプロンプトを与えるだけの他社とは異なり、この独自のデータセットで実際にGENIEを訓練することで、私たちはもはや単にランダムなコードを生成して動作するものを見つけるのではなく、人間のように問題に取り組んでいることがわかりました。では、GENIEが実際のリポジトリの本当の問題を解決する様子を見てみましょう。GENIEには自然言語のプロンプト、チケット、あるいは今回の場合はGitHubのイシューでプロンプトを与えられることに気づくでしょう。それでは始めましょう。
GENIEがGitHubのイシューを取得しました。「解決」をクリックすると、問題の調査を開始します。ご覧のように、問題を解決するために何を見つける必要があるかを考え始めています。このプロセスは反復的で、モデルが必要なものをすべて見つけたと満足するまで続けられます。そして、コードベースから問題に関連していると直感的に思われるファイルの例をいくつか取得しました。
これで、問題を解決するためのコードの作成を開始します。検索ステップと同様に、このプロセスも反復的です。GENIEはコードを書き、実行し、そして見たものに基づいて反応します。私たちのデータ優先アプローチの大きな利点の1つは、モデルが人間の生涯で可能な数よりも多くの問題解決を見てきているため、ソフトウェアエンジニアが実際にどのように問題を分解し、優先順位をつけるかについて優れた理解を持っていることです。また、基本モデルが全体のセクションを書き直すことなく苦労するコードのインプレース編集も簡単に行えます。
GENIEは現在、書いているコードを実行し、私たちが提供したデバッグツールを使用してアプリケーションの状態と実行フローを確認しています。これは開発者が行うのと同じです。人間がこれを何百万回も行うのを見てきたので、そのプロセスをエミュレートしているのです。
タスクに戻りますが、GENIEがこの問題を解決するためにいくつかの異なるアプローチを試みるのを見てきました。最初は成功しませんでしたが、再度計画を立て、別のアプローチを書いたところです。このプロセスは無期限に続けることができ、GENIEが利用可能な長いコンテキストウィンドウのおかげで、途中で情報を失うことなく多くの異なるアプローチを試すことができます。
すべてのテストが合格しました。GENIEは問題を成功裏に解決し、それもわずか84秒で行いました。これは人間が未知のリポジトリの未知の問題を解決するよりもはるかに速いでしょう。これでPRのタイトルと本文を書き、コサインのウェブプラットフォームを通じて実際にリンクされたGitHubリポジトリにPRをオープンします。そのPRに残されたコメントやレビューはGENIEに聞こえ、実際の人間の同僚であるかのように対応します。
このような長いコンテキストウィンドウのモデルを微調整することを許可してくれたOpenAIに感謝します。皆さんがGENIEをどこでどのように使用するかを見るのが非常に楽しみです。GENIEを試してみたい方は、私たちのウェブサイトcosign.aiにアクセスしてください。私たちは、ソフトウェアエンジニアリングはほんの始まりに過ぎず、あらゆる仕事や業界のための人間の推論を体系化できると本当に信じています。私たちが取り組んできたことを皆さんにお見せできるのを楽しみにしています。
さて、ここで見られるのは、このベンチマークにある他のモデルです。SWベンチ検証リーダーボードは、これらの問題を解決するために機能する以前のエージェント、SLモデル、SLエージェンティックワークフローをすべてまとめたリーダーボードです。以前の最高スコアはAmazon Qの開発者エージェントの38.8%でした。これらすべてについて驚くべきことは、モデルが改善されるスピードです。今年初めの7%から43.8%まで上昇しているのが分かります。これは驚くべき改善レベルです。
これが本当に驚くべきことの理由は、主にモデルが改善されたという事実ではなく、最も驚くべきことの1つは、OpenAIのスーパーアラインメントチームで働いていたレオポルド・アッシェンブレナーが彼の論文「The Decade Ahead」で実際に話していたこと、つまり「アンホブリング・ザ・ゲインズ」と呼ばれるものです。これは、デフォルトでモデルが多くの素晴らしい生の能力を学習しますが、それらはすべて愚かな方法で制限されており、その実用的な価値を制限しているというものです。強化学習、チェーン・オブ・ソート・プロンプティング、ツールやスキャフォールディングを使用するような単純なアルゴリズムの改善により、大きな潜在能力を解放できるという基本的な説明です。
つまり、私たちのLLMの使い方は初歩的であり、時間とともにこれらのモデルをより良く使用する方法を見つけ出すだろうということを述べています。時間とともに、これらのモデルがその能力を発揮する方法を理解したときに、どのようなパフォーマンスを示すかを見るのは興味深いでしょう。例えば、この論文では「アンホブリング」について次のように述べています。
難しい数学の問題を解かなければならないが、頭に最初に浮かんだことをすぐに答えなければならないと想像してください。最も簡単な問題以外では、かなり苦労することは明らかでしょう。しかし、最近まで、それが私たちがLLMに数学の問題を解かせる方法でした。GPT-4の初期の頃を覚えていますか?人々はただ質問をするだけでした。しかし、その後、私たちはチェーン・オブ・ソートを決定しました。段階的なスクラッチパッドを与えることにしたのです。そうすることで、はるかに難しい問題を解決できるようになりました。
そのため、チェーン・オブ・ソート・プロンプティングがLLMのためにそれを解放したのです。私がこれについて説明しているのは、新しい方法と新しいAIシステムのパフォーマンスの仕方により、システムからより多くの能力を解放できるようになっているのが見えるからです。ここでは、ベースのGPT-4がその水準で約40%向上しているのが分かります。GPT-4ベースモデルは、ベースモデルで5%から、リリース後のGPT-4で20%、そして今日では、より良いポストトレーニングツールとエージェントスキャフォールドで40%近くまで向上しています。
実際にこれについて話した理由は、これがコサインのGENIEが行っていることとまさに関連しているからです。彼らの論文では、このモデルについて次のように述べています。GENIEは常にエージェンティックであるように設計されていましたが、2022年に最初にこのアイデアを思いついたとき、その用語はまだ定着していませんでした。2022年は本当に早い段階でした。
基本的に、彼らが述べているのは、このモデルの開発の最初から、自律的であるように設計したということです。このモデルが独立して行動し、決定を下すことを望んでいました。単にスマートな受動的なツールとしてではなく、実際のアシスタントのようになることを望んでいました。そのため、GENIEが見ているものを実際に理解し、人間のプログラマーのように最も論理的な方法で応答することを望んでいました。
本質的に、ここで述べられているのは、開発者の頭の中にある暗黙の情報を明示的にするために行われた作業の氷山の一角だということです。GENIEを訓練するすべてのタスクについて、まずプロジェクトに関する必須の背景情報を収集する方法を教える必要がありました。これは実際に、GENIEが既存のプロジェクト構造に合わないコードを作り出すのを防ぐためでした。つまり、コードベースがどのように組織化され、すでに運用されているかに沿った解決策を幻覚しないようにするためです。
彼らは、経験豊富なプログラマーがすでに頭の中に持っているが、必ずしも書き下ろすわけではない種類の背景知識をGENIEに教えることに多くの努力を払いました。基本的に、ゲームのルールの一部を教えるだけでなく、すべての不文律の戦略も教えるのです。
ここで、彼らはGENIEの動作方法、つまりGENIEのエージェンティックループがどのように機能するかについて実際に説明しています。エージェンティックループは、計画、検索、コード作成、コード実行の4つの主要なプロセスで構成されていると述べています。これらだけでは新しいものではありません。この分野のほとんどのツールは、これらのすべてを組み合わせて使用しますが、GENIEは基本的なLLMのように振る舞うのではなく、人間のようにこれらのタスクを実行するように訓練されているため、モデルからはるかに多くのパフォーマンスを引き出すことができると述べています。
再び、以前に話したアンホブリングについて言えば、GENIEはこのモデルからより多くのパフォーマンスを引き出すことに成功したように見えます。
私が見た別の驚くべきことは、モデルの訓練に自己改善を使用していることについて彼らが実際に話していることです。彼らは、訓練に使用していたデータの多くが完璧な状態ではなかったと述べています。なぜなら、人間が公開するコードのほとんどは、公開される時点で動作している状態だからです。
基本的に、彼らがここで行ったのは、非常に天才的なことでした。彼らは最初のバージョンのGENIEを使ってコーディングの問題を解決しようとし、間違いを犯したときにはその間違いを修正する方法を示し、これらの間違いと修正の例を次のバージョンのGENIEの訓練データに追加しました。そして、このプロセスを何度も繰り返しました。
基本的に、モデルを訓練するために自己改善を使用したのです。そして、将来的にこのループを繰り返してこれらのモデルをさらに改善できるかどうか疑問に思います。ここで述べられているように、このプロセスを繰り返すたびに、GENIEからの初期の候補解決策はより強力になり、多くの場合は正確になりました。正確でない場合でも、データセットでモデルに示す必要がある修正の量は大幅に減少しました。つまり、モデルが改善するモデルの反復的な改善が完全に驚くべきものでした。
彼らはまた未来についても語っており、GENIEの印象的な最先端のパフォーマンスにもかかわらず、まだ活用されていない可能性があることを認識しており、GENIEの能力を向上させるためにデータセットを洗練させることに取り組んでいると述べています。データを拡大し、新しい機能を導入し、GENIEをより多くのプログラミング言語と最新のフレームワークに精通させる予定です。
全体として、彼らは単純なタスクにはより小さなAIモデル、より複雑な仕事にはより大きなモデルを作成し、微調整の方法によってどの高度なモデルもGENIEに変換できるとしています。興味深いのは、オープンソースモデルとプリトレーニングを行い、広範なデータセットで基礎モデルを拡張し、改善された一般化と特殊化されたデータの調和を目指すと述べていることです。
彼らが話している非常にエキサイティングな機能の1つは、企業にとって、GENIEを特定の大規模なコードベースを完璧に理解するように微調整できることです。これは珍しい、あるいは企業固有のプログラミング言語でも機能します。まるでGENIEに企業独自のコード方言のエキスパートになることを教えるようなものです。
これは非常に興味深いものになるでしょう。なぜなら、AIのソフトウェア開発分野は急速に進化しており、ほぼ毎月、これらの企業がどれだけ改善しているかを示す大きな更新が行われているように見えるからです。

この記事が気に入ったらサポートをしてみませんか?