Software 3.0とは何か?Karpathyの講演と中村さんの解説をベースにまとめておく
最近とてもよかったYouTube動画があったので、紹介と内容をちゃんと自分なりに整理しておくことにした。
元ネタはAndrej Karpathyの講演動画と彼がY CombinatorのAIスタートアップスクールで話した内容を、中村聡さんがYouTubeで解説してくれている動画です。
中村聡さんのYouTube
【人間はもうコードを書かなくていいのか?】AI時代のプログラミングを根本から変える「Software 3.0」の神プレゼンを解説します
Karpathyの元の講演
Software 3.0 - Andrej Karpathy
Software 1.0 / 2.0 / 3.0 の整理
Karpathyが言っていたのは、ソフトウェア開発は「1.0 → 2.0 → 3.0」と進化してきたという話
- 1.0:人間がコードを書く。C++、Python、JavaScriptなど。昔から続いている、いわゆる普通の開発
- 2.0:ニューラルネットでソフトウェアを書く時代。人間がアルゴリズムをゴリゴリ書くよりも、物体認識や画像分類、音声認識といったタスクはAIのほうがうまくやれる。例として、TeslaのFSD(自動運転)でC++コードを約30万行削除し、全部ニューラルネットに置き換えた話が出てくる
- 3.0:自然言語でAIに依頼する時代。プログラムを書くんじゃなくて、「この機能を作って」と自然言語で伝えることでAIがコードを生成してくれる
Software 3.0はプロンプトエンジニアリング
ここで出てくるキーワードが「プロンプトエンジニアリング」。
コードを書くのではなく、AIに向かって「こういうことをしたい」とリクエストを投げる。
それによってAIがコードを返してくれるという開発スタイル。
この流れをKarpathyは「Software 3.0」と呼んでいる。
1.0から2.0への変化には数十年かかったのに、2.0から3.0は数年で来てしまった、という話もしていた。
とはいえ、すべてが3.0になるわけではない
中村さんも言っていたけど、「全てが3.0に置き換わる」という話ではない。
今もまだ1.0の世界(C++やPythonのコード)が残っているし、2.0も現役で使われている。
3.0(プロンプトベース)は、それらの世界に“侵食して”入り込んできていて、今はその過渡期だと述べていた。
AIエージェントより「半自動型(パーシャル・オートノミー)」が良い
結局Karpathyが繰り返し言っていたのはこれ。
AIにちょっと仕事をさせては人間が確認するという、割と細かめのサイクルで回す方が、生産効率は高くなりますよ。
要するに、AIエージェントのような「すべてをバックグラウンドで自動でやる」ようなものは、少なくとも今の段階では向いていない。
- 仕様を投げて、全部やってもらっても、レビューや手直しに時間がかかる
- それよりは「ちょっと作って、レビューして、また進む」くらいのペースがちょうどいい
中村さんが例に出していたClaude Code(Anthropicの開発支援AI)のように、段階的に「プラン立てます」「まずはスキーマだけ変えますね」と進めてくれる方が、今は現実的に使いやすいという話をしていた。
LLMは“次のOS”になる
これもKarpathyが言っていた話で、面白いと感じた。
LLMは、OSのような存在になっていく
LLMの上でアプリが動いたり、情報の保存ややり取りの仕組みが構築されていく
要は、「GPT-4」みたいなAIモデル自体が、OSやCPUのような基盤になっていくという考え方。
それを前提に設計された仕組み(LlamaOS、Lumenなど)も出てきている。
AIはまだ“MS-DOS”時代である
LLMとのやり取りがまだチャット中心で、GUIやマルチモーダルな対話にはなっていない。
Karpathyいわく、
今のLLMは、1970年代のMS-DOSと同じ
GUI(グラフィカルな対話)の発明はまだこれから
この例えは分かりやすくて、今のLLMを取り巻くUXの制限がよく見えた。
中村さんも「これはいいこと言ってるな」と言ってた。「マルモキャストってプロジェクトをやっていて、リッチな映像とか音、画像を使ったマルチモーダルなプレゼンを頑張って作ってる」と言ってたけど、まさに今後必要になる部分だと思う。
まとめ:プロンプトとAIをどう扱うかの時代になった
自分としては、全部AIにまかせる方向に過剰に行きすぎると危ないなと思っていて、
Karpathyのパーシャルオートノミーでちょっとずつ進めようという考え方がいいと思った。
あと、この話はエンジニアだけじゃなくて、
AIを使って何かサービスを作ろうとしてる人や、ツール開発する人にも直結する内容だと思う。
自分でAIを使った開発ツールを作るなら、「人とAIがこまめに対話しながら進められる」構造を意識して作った方が、使いやすくて生産性も爆速に加速するだろうと感じた。
参考リンク: