アンチAIの hype に踊らされるな
私は一行一行、ソフトウェアを書くことが大好きだ。私のキャリアは、うまく書かれ、ミニマルで、人の手触りこそが本質であるようなソフトウェアを作り続ける試みだったと言えるかもしれない。置き去りにされる人がいない社会も望んでいる。そもそも、AIに経済的な成功を収めてほしいとも思っていない。今の経済システムがひっくり返っても構わないと思っている(正直に言えば、大規模な富の再分配に向かうなら大歓迎だ)。だが、ソフトウェアや社会についての自分の理想のせいで現実が見えなくなるようでは、自分自身の知性を裏切ることになる。事実は事実だ。AIはプログラミングを永遠に変える。
2020年に仕事を辞めたのは、AIやベーシックインカム、そして労働の自動化に適応しようともがく社会を描いた小説を書くためだった。2024年の暮れには、AIとそのコーディングでの活用、そして社会的・経済的な影響を扱うYouTubeチャンネルを始めた。何が起きるかはかなり早くから分かっていたつもりだが、プログラミングが完全に姿を変えるまでには、少なくとも数年は猶予があると思っていた。今はもうそうは思っていない。最近の最先端LLMは、最終的に何を作りたいかについて的確なヒントさえ与えれば、大きなサブタスクや中規模のプロジェクトをほぼ自力でやり遂げてしまう。どれだけうまくいくかは、どんなプログラミングをするか(閉じているほど、テキストで表現しやすいほど良い。システムプログラミングは特に向いている)、そして問題の心象をどれだけ明確に描き、LLMに伝えられるかにかかっている。ただ大局的に見れば、ほとんどのプロジェクトで、楽しみのためでない限り、自分でコードを書くのはもはや合理的ではないということは明らかだ。
先週、プロンプトを投げ、時々コードを眺めて方向を指示するだけで、数時間のうちに本来なら数週間かかる次の4つの作業をやってのけた。
- 自作のlinenoiseライブラリをUTF-8対応に改修し、エミュレートした端末で各セルに何が表示されているかを報告できる、行編集テスト用のフレームワークを作った。ずっとやりたかったことだが、所詮サイドプロジェクトのテストのためにそこまで手間をかける正当性が見出しにくかった。だが、アイデアを言葉にするだけでコードとして形になるなら、話はまったく変わってくる。
- Redisのテストで起きていた再現性の低い失敗を修正した。タイミング依存の問題やTCPのデッドロックなど、本当に面倒な作業だ。Claude Codeが再現に必要なだけ繰り返し実行し、プロセスの状態を調べて何が起きているかを把握し、バグを直してくれた。
- 昨日は、BERT系の埋め込みモデルの推論を行うピュアCのライブラリが欲しくなった。Claude Codeが5分で作ってくれた。出力は同じ、速度もPyTorchと同等だ(15%遅い程度)。コードは700行。GTE-smallモデルを変換するPythonツール付きだ。
- ここ数週間、Redis Streamsの内部に手を入れていた。その作業の設計書があったので、Claude Codeに渡してみたところ、20分もかからずに私の作業を再現してしまった(時間がかかったのは、実行するコマンドの確認や承認に私が手間取ったせいだ)。
もはや、起きている現実から目を背けることはできない。コードを書くこと自体は、大半の場合もう必要ない。いま本当に面白いのは、何を作るべきか、そしてどう作るかを考えることだ(後者についても、LLMは素晴らしいパートナーになる)。AI企業が投資を回収できず株式市場が暴落しようが、そんなことは関係ない。長い目で見れば、どうでもいいことだ。どこかのユニコーン企業のCEOが気に障ることや馬鹿げたことを言おうが、それも関係ない。いずれにせよ、プログラミングは永遠に変わったのだ。
LLMに学習された自分のコードについて、どう感じているか。私は、それに参加できたことを素晴らしく思っている。なぜなら、これは私が人生をかけてやってきたこと――コードやシステムや知識の民主化――の続きだと感じているからだ。LLMは、より良いソフトウェアをより速く書く手助けをし、小さなチームが大企業と渡り合うチャンスを与えてくれる。90年代にオープンソースが果たしたのと同じ役割だ。
ただ、この技術はあまりに重要で、一握りの企業に独占させておくわけにはいかない。今のところ、事前学習の巧拙や強化学習の効率で差はつくものの、特に中国発のオープンモデルは、遅れはあってもクローズドな研究所のフロンティアモデルに食らいついている。AIの民主化は、不完全ながらも今のところは保たれている。だが、それが永遠に続く保証はまったくない。私は中央集権化を恐れている。同時に、大規模なニューラルネットワークは驚くべき能力を発揮するものだと信じているし、現行のフロンティアAIの中に他者が追いつけないほどの「魔法」があるとは思っていない(そうでなければ、なぜ何年にもわたってOpenAIとAnthropicとGoogleの成果があれほど拮抗しているのか説明がつかない)。
プログラマーとして、私はいま、これまで以上にオープンソースを書きたいと思っている。時間不足で放置していた自分のリポジトリを改善したい。AIをRedisのワークフローに活かしたい。今Streamsでやっているように、Vector Setsの実装を良くし、他のデータ構造も手を入れていきたい。
だが、職を失う人たちのことが心配だ。どういう力学が働くのかはまだ見えない。企業は人を増やしてより多くを作ろうとするのか。それとも人件費を削るため、プロンプトのうまい少数のプログラマーだけを残そうとするのか。そして、他の分野では人間が完全に置き換えられてしまうのではないかという恐れもある。
では社会的な解決策は何か。イノベーションは元に戻せない。私は、起きていることを正しく認識し、職を失った人々を支える意思のある政府に投票すべきだと思う。解雇される人が増えるほど、一定の保障を約束する勢力に投票せよという政治的な圧力も高まるだろう。もちろん、AIがもたらす良い面にも期待している。人間の境遇――決して常に幸せとは言えない――の苦しみを和らげうる、科学の新たな進歩だ。
さて、プログラミングの話に戻ろう。友よ、ひとつだけ提案がある。何が正しいことだと信じていようと、今起きていることを拒絶してコントロールすることはできない。AIを避けても、あなた自身やキャリアの助けにはならない。よく考えてみてほしい。これらの新しいツールを、丁寧に、数週間かけて試してみてほしい。自分の思い込みを強化するだけの5分間の試用ではなく。自分自身を何倍にも拡張する方法を見つけてほしい。もし今うまくいかなくても、数カ月おきにまた試してみてほしい。
そう、せっかく苦労してコーディングを覚えたのに、今は機械が代わりにやってしまうと思っているかもしれない。だが、夜遅くまでコードを書き、プロジェクトが動くのを見届けようとしたとき、あなたの内側で燃えていたものは何だったのか。それは「作る」ことだったはずだ。そして今、AIをうまく使える方法を見つければ、より多く、より良いものを作れる。楽しさは、何も損なわれずにそこにある。
記事をランダムに読む