近年、人工知能(AI)のプログラミング能力は目覚ましい発展を遂げていますが、完璧には程遠いです。最近、BuzzFeedのベテランデータサイエンティストであるMax Woolf氏が実験を通じて、大規模言語モデル(LLM)に「より良いコードを書く」という指示を繰り返し与えることで、AIが実際により高品質なコードを生成できることを発見しました。この発見は大きな注目を集め、業界の著名なAI科学者たちもこのことに強い関心を示し、反復とプロンプト設計の重要性を強調しています。
Woolf氏の実験では、Claude3.5SonnetというバージョンのAIモデルを用いて、一連のプログラミングタスクを行いました。最初は、モデルに簡単なプログラミング問題を提示しました。「100万個のランダムな整数の中から、各位の数字の合計が30になる最小値と最大値の差を求める」というものです。Claudeはこのタスクを受けると、要件を満たすコードを生成しましたが、Woolf氏はコードに改善の余地があると判断しました。
そこでWoolf氏は、コードを生成するたびに「より良いコードを書く」という指示を与え、Claudeに反復的な最適化を行うようにしました。最初の反復の後、Claudeはコードをオブジェクト指向のPythonクラスにリファクタリングし、2つの顕著な最適化を実現し、実行速度は2.7倍向上しました。2回目の反復では、Claudeはマルチスレッド処理とベクトル化計算を追加し、最終的にコードの実行速度は基本バージョンの5.1倍に達しました。
しかし、反復回数が増えるにつれて、コード品質の向上は鈍化し始めました。数回の最適化の後、モデルはJITコンパイルや非同期プログラミングなどのより高度な技術を試みましたが、一部の反復ではパフォーマンスが低下しました。最終的に、Woolf氏の実験は、反復的なプロンプトの可能性と限界を明らかにし、AIプログラミングの未来について新たな考察をもたらしました。
この研究は、AIのプログラミング分野における応用可能性を示しただけでなく、AIは反復によってコードの品質を向上させることができるものの、実際の応用においては、プロンプトをどのように適切に設計し、パフォーマンスと複雑性のバランスを取るかが、依然として深く検討すべき課題であることを示唆しています。