見出し画像

ソフトウェア2.0

NVIDIAのJensen Huangがソフトウェア 2.0と言っているお話をします。


ソフトウェア 2.0とは

今まで人間が書いてCPUで実現していたプログラミングがソフトウェア 1.0です。ソフトウェア 1.0は60年以上続いています。
機械学習がプログラミング用の大規模言語モデルをGPUで作成し、そこへプロンプトをいれてGPUがコードを生成するのがソフトウェア 2.0です ([monoist])。最終的にこのコードはCPUで実行します。

プログラムはできる

ChatGPTの出始めは、プログラムを書こうとプロンプトすると、初期処理と終了処理しか書いてくれなくて真ん中の意味のある処理部分がごっそり抜けるということがありました。最初はコンテクストサイズが小さかったので、すぐ中断して、手動で継続させるのが面倒だったこともあります。
最近はo1-previewやClaude 3.5のデモ動画などでも、テトリスとかスネークゲームくらいはすぐ生成し、そのまま稼働するクオリティになっているようです。
世の中、ライブラリは山のようにあります。ライブラリで解けるような問題だと:

  • この問題を解くいいライブラリを教えて

  • そのライブラリで問題を解く処理フローを教えて

  • 処理フローを1ステップずつライブラリを使ってコードにする

でそこそこコードを書くことができます。
動かしてエラーがでれば、エラーをコピーして直してといえば直してくれます。
商用のプログラムだと既存のコードベースがあって、それを修正しなければならないのが課題です。この部分は新規のコード生成より難しいです。

SWE-bench verifiedの現在地点

SWE-benchはプリンストン大学が作った人間の介在なしに生成AIが実世界のバグ問題を自動的に修正する能力を測るベンチマークです。
SWE-bench verifiedの現在地点は次の通りです:

SWE-bench verified (2024年11月15日現在)

SWE-benchが発表されたときにはGPT-4を使ってもSWE-bench fullとはいえ1.96%だったことを考えると長足の進歩です。
OpenAIがSWE-bench fullにはそもそも解決不可能な問題が含まれると指摘してSWE-bench verifiedを作ってから最近の競争はもっぱらSWE-bench verifiedで行われています。
そもそも、バグの記述文から直すべきファイルを的確に選択する作業は難度の高い高度に知的な作業です。
ソフトウェア 2.0といってもこの部分には:

  • 大規模言語モデル(あるいは推論モデル)の進化

  • Scaffolding (土台)と呼ばれる問題解決フレームワークの進化

  • 対象ファイルにアクセスする生成AI専用のインタフェース

の3つの進化が求められます。
最近はOpenAIのGPTシリーズ、GoogleのGeminiシリーズともに大規模な訓練による精度の向上が頭打ちになっているという議論もあります。どうなるかが興味深いです。

むすび

最新の決算発表で GoogleのCEOがコードの25%を生成AIが書いていると発言して話題になりました ([fortune])。Googleの中の人に言わせると商用コードのエンドーエンドの生成には至っていなくて25%は種コードレベルの比率だとも言われています。
新しくコードを書くより既存の間違ったコードを直すほうが大変なので、ソフトウェア業界が大変革になるにはまだ時間がかかりそうです。

参考文献


いいなと思ったら応援しよう!