最近、BuzzFeedの上級データサイエンティストであるマックス・ウルフ氏は、AIに繰り返しコードの改善を依頼することで何が起きるかを検証する実験を行いました。この実験では、Claude3.5言語モデルを使用し、古典的なプログラミング課題に挑戦しました。それは、100万個の乱数の中から、数字の合計が30になるものの最大値と最小値の差を求めるPythonコードを作成するというものです。
画像出典:AI生成画像、画像ライセンス提供元Midjourney
初期バージョンでは、Claudeが生成したコードの実行時間は657ミリ秒でした。しかし、ウルフ氏が「より良いコードを書いてください(write better code)」という簡単な指示を繰り返し入力するにつれて、最終的に生成されたコードの実行時間はわずか6ミリ秒に短縮され、性能が何と100倍も向上しました。この結果は驚くべきものであり、AIが「より良いコード」を定義する過程で、予想外の変化も見られました。
4回目の「より良いコードを書いてください」という要求時、Claudeは予想外にもコードをエンタープライズアプリケーションのような構造に変え、典型的なエンタープライズ機能を追加しました。ウルフ氏はこれを要求していませんでしたが、これはAIが「より良いコード」を「エンタープライズレベルのソフトウェア」と関連付けている可能性を示唆しており、そのトレーニング過程で吸収した知識を反映していると考えられます。
開発者のサイモン・ウィリソン氏は、この反復的な改善現象を分析し、言語モデルは毎回の新しい要求でコードを全く新しい視点から見ていると結論付けています。各要求には以前の会話のコンテキストが含まれていますが、Claudeはまるで初めてそのコードを見るかのように分析するため、継続的な改善が可能になるのです。
しかし、ウルフ氏はより具体的な要求を試みた結果、より迅速に良い結果が得られる一方で、人間が修正する必要がある微妙なエラーがコードに残ることを発見しました。そのため、彼は正確なプロンプトエンジニアリングが依然として非常に重要であると強調しています。単純な後続の質問でもコードの品質は向上しますが、的を絞ったプロンプトエンジニアリングは著しい性能向上をもたらす一方、リスクも増加します。
注目すべき点として、この実験では、Claudeは重複の削除や数字の事前ソートなど、人間の開発者であれば当然行う最適化手順をスキップしました。さらに、質問方法の微妙な変化もClaudeの出力を大きく左右します。
これらの性能向上は印象的ですが、ウルフ氏は、ソリューションの検証とトラブルシューティングにおいて、人間の開発者が依然として不可欠であると警告しています。AI生成コードはそのまま使用できませんが、創造性とツールの提案におけるAIの可能性に注目すべきだと述べています。
要点:
🌟 AIによる繰り返し指示でコード性能が向上。実行時間は657ミリ秒から6ミリ秒に短縮されました。
💡 AIがコードにエンタープライズ機能を自動追加。AI独自の「より良いコード」への理解を示しています。
🛠️ プロンプトエンジニアリングは依然として重要。正確な要求は結果生成を加速しますが、人間の開発者による検証と修正が必要です。