GPT-4助力打造Genie:新世代トップAIエンジニアの誕生

Genieは、Anthropic社が開発した人工知能チャットボットです。自然言語での会話が可能で、質問に答え、アドバイスを提供し、執筆、プログラミング、分析などのさまざまなタスクの支援を行うことができます。Genieは幅広い知識を持ち、多くの分野でユーザーをサポートすることができます。

01 Genieとは何か?何ができるのか?

Devinと同様に、Genieも人間のエンジニアの指導の下で、バグ修正、機能構築、コードリファクタリング、包括的なテストによるコード検証など、さまざまなコーディングタスクを自律的に完了することができます。

自律的に動作するだけでなく、Genieはユーザーと協力することもできます。

現在、Genieはまだベータ版の段階にあり、公式ウェブサイトで情報を登録した後、試用を申請することができます。

CosineはGenieが人間のエンジニアの認知プロセスをシミュレートできると主張しています。

Pullenはブログ記事で、「私の構想はシンプルでした:人間のエンジニアがどのように仕事を完了するかを観察させ、そのプロセスを模倣させることです」と説明しています。

Genieが生成したコードはユーザーのGitHubリポジトリに保存されます。これは、Cosineがコピーを保持せず、それに伴うセキュリティリスクもないことを意味します。

さらに、CosineのソフトウェアプラットフォームはSlackやシステム通知と統合されており、人間の同僚のように、システム通知を使用してユーザーに通知したり、質問したり、問題にフラグを立てたりすることができます。

「Genieはユーザーに明確化のための質問をしたり、生成したプルリクエストへのコメント/意見に応答したりすることもできます」。

Pullenは、「私たちはGenieが同僚のように振る舞うようにしようとしているので、モデルに同僚のチャンネルを使用させるのが最も理にかなっています」と述べています。

OpenAIとの協力、最新のGPT-4oを使用

基礎モデルに依存し、少数のツールを補完とする多くのモデルとは異なり、Genieは独自のプロセスを通じて開発されました。これにはOpenAIのモデルのトレーニングと微調整が含まれています。

Genieの開発が始まった当初は、16-32kトークンの比較的小さなコンテキストウィンドウを持つモデルに基づいて微調整することしかできませんでした。

チームは初期の探索で、1億トークン以上の大規模データセット、アーキテクチャ設計の利点、さまざまな圧縮/チャンキング方法を使用しても、モデルが特定の時点で表現できる情報量に制限があることを発見しました。唯一の方法は、より大きなコンテキストウィンドウを持つモデルを使用することでした。

幸運なことに、その後すぐにOpenAIの長いコンテキストモデルへのアクセス権を得ることができ、これがGenieの能力のブレークスルーとなりました。

PullenはVentureBeatに、「Genie(現在)は非汎用のGPT-4o変種で、OpenAIは実験プログラムの一環として、彼らのモデルにアクセスし、トレーニングに使用することを許可してくれました」と明かしました。

「このモデルは良好なパフォーマンスを示し、その結果、OpenAIの微調整チームとエンジニアリングリーダーシップに私たちの知見を共有することができました。これは私たちにとって真の転換点となりました。なぜなら、それが彼らに私たちの新技術にリソースと注目を投入するよう説得したからです。」

Cosineは具体的なモデルを明らかにしていませんが、OpenAIは最近、出力長が64kトークンに達するGPT-4o長出力コンテキストモデルの限定的な利用可能性を発表したばかりです。これは当初の4kから16倍も増加しています。

トレーニングデータが鍵

Pullenは技術報告書で、最近のトレーニング実行では、Genieが数十億トークンのデータでトレーニングを受けたと書いています。これらのデータの組み合わせは、モデルが現在のユーザーが最も関心を持つ言語に可能な限り精通するように選択されました。

Genieの技術報告書には、トレーニングデータに含まれる15の言語がリストアップされています。Java、JS、C、C++、C#、Rust、Pythonなどの人気言語、そして一般的に使用されるScala、Kotlin、Swift、PHPなども全てカバーされています。

そのうち、JavaScript、Python、TypeScript、TSXがデータセットで最も大きな割合を占めており、残りはそれぞれ3%を占めています。

Cosineのブログ記事によると、チームはデータセットの整理に1年近くを費やし、実際のエンジニアによる大量のソフトウェア開発活動を含んでいます。

これらのデータを取得し効果的に利用することは非常に困難でした。なぜなら、本質的にこのようなデータは存在しないからです。

彼らのデータパイプラインは、ソフトウェアエンジニアの開発軌跡を追跡することから始まり、プルリクエスト、コミット、OSSリポジトリ(MITライセンス)からのイシューなどのデータを収集します。

その後、パイプラインでこれらのデータを実行し、フォレンジック的に推論プロセスをエクスポートし、人間がどのように最終的な結論に達したかを再構築します。

この独自のデータセットが最初のモデルトレーニングの基礎となり、残りの作業は自己対戦と自己改善によって完了しました。

Genieの自律性サイクルは、計画、検索、コード作成、コード実行という4つの主要なプロセスで構成されています。これら自体は新しいものではありませんが、Genieが人間のようにタスクを実行するようにトレーニングされているため、より大きな改善が見られます。

「データアノテーションの影響は過小評価できません。能力のあるソフトウェアエンジニアから高品質のデータを得ることは非常に困難ですが、結果は価値があります。なぜなら、それによって開発者の問題解決の思考方法について、容易に発見できない洞察が得られるからです。」

このデータセットは、完璧な情報の流れと段階的な知識発見を反映しているだけでなく、人間のエンジニアの段階的な意思決定プロセスも捉えています。

Pullenは、「このデータセットを使用して実際に私たちのモデルをトレーニングすることで(これは他の人々が行っていることである基礎モデルを単にプロンプトするのではなく)、私たちはもはやランダムにコードを生成するのではなく、人間のように問題に取り組んでいることを発見しました」と断言しています。

ベンチマーク評価結果

モデル開発プロセスにおいて、チームは主に2つのベンチマーク - SWE-BenchとHumanEval - を使用して評価を行いました。

前者は問題の分解、関連コードの発見、コードの分類、実行可能な解決策の実装など、より包括的な問題をカバーしています。後者はコード作成に特化しており、検索の側面はなく、問題理解の強調も少なくなっています。

しかし、公式ブログではSWE-Benchのスコアのみが開示されており、Genieは30.08%のスコアを達成し、SWE-Liteでは50.67%のスコアを達成しました。

特に、GenieのSWE-Benchでのパフォーマンスは非常に印象的でした:これは現在までの最高スコアであり、2位の19.27%を10%以上上回っています。

さらに、チームはモデルの情報検索能力、特に必要なコードファイルの正しい部分を検索する能力を個別にテストしました。

これはAIエンジニアの核心的なコンポーネントの1つです - モデルが正しいコードを確実かつ熟練して見つけることができなければ、コードを編集する能力も十分に発揮できません。

モデルが毎回正しいコードを見つけられると仮定すると、タスクを完了するためにモデルが検索したコード行数と実際に見つかったコード行数を見ることで、検索能力を簡単に測定できます。

テストでは、Genieは142,338行中必要な91,475行のコードを正常に検索し、64.27%のスコアを獲得しました。ここには明らかにまだ大きな改善の余地があり、問題分解能力と比較して、検索能力はあまり注目されていない側面です。

02 YCの支援を受け、中国人オックスフォード大学院生がチームを率いる

Cosineは、シリコンバレーの有名なYコンビネーター創業加速器を通じて設立されました。

この会社は人間の推論実験室であり、人間がタスクを実行する方法の研究と整理に特化しています。AIにこれらのタスクを模倣し、熟達し、拡張することを教えることを目的としています。

2022年、Alistair Pullen、Sam Stenner、Yang Liが共同でCosineを設立し、人間の推論実験室として位置づけました。

彼らはソフトウェアエンジニアリング分野から始め、人間がタスクを実行する方法を研究し整理することで、AIにこれらのタスクを模倣し、熟達し、拡張することを教え、知能の発展を推進することを望んでいます。

Cosineは既に