LLM のプロンプトエンジニアリング
LLM のポテンシャルを最大限活かし、期待通りの精度の高いアウトプットを引き出すためには、LLM の能力や特性を正しく評価、把握し、綿密な設計に基づいたプロンプトを組み立てることが必要です。本書では、まず LLM を理解することから始め、その上で、プロンプトにはどんなことを組み込み、どのような構造にすべきか、本来の意味での「プロンプトエンジニアリング」を行う方法を説明しています。著者たちは GitHub Copilot の開発者であり、その実装過程で得られた貴重な知見や、評価手法、設計上の判断など、通常は表に出てこない開発の裏側も詳しく解説されています。AI アプリケーション開発の実際を知りたい開発者はもちろん、生成 AI の可能性と限界を理解したいユーザーにとっても、示唆に富む内容となっています。
「プロンプトエンジニアリング」という言葉には、しばしば胡散臭さが伴う。2023 年頃から接し始めた ChatGPT という未知の存在に対しての向き合い方を決めあぐねている中、SNS や Youtube では「ゴールシーク」で「役割を固定」し「プログラミング言語のような形式」でプロンプトを作るべきと言った話が話題となり、有料 note や情報商材が飛び交っていた。
玉石混合の中でも、FewShot や CoT は確かに効く感じがするが、「なぜそうなっているのは全然分からない。俺たちは雰囲気でプロンプトエンジニアリングをやっている」という状況が自分の中では続いていた。バイブ(雰囲気)・コーディングという言葉が流行る前から。バイブ・プロンプトエンジニアリングをしていたのだ。
本書は 2024 年に O'Reilly から刊行された書籍の訳書であり、GitHub Copilot 開発チームによって執筆されている。プロンプト設計、コンテキスト構築、動的情報処理など、LLM を最大限に活用するための技術が詳細に解説されており、特にプロンプトの構造化やコンテキストの収集と優先順位付けなど、モデルから高精度かつ再現性のある応答を引き出すための実践的な技術が豊富に盛り込まれている。その意味では演繹的で真っ当な「エンジニアリング」であり、帰納的に見つけたよく分からないけど凄そうな雰囲気の少数例をまとめたプロンプト羅列本とは根本的に異なる。
エイリアン・インテリジェンスの解剖学
本書にはもう 1 つ前提条件があります。それは共感する能力です。これまでの技術とは異なり、LLM がどのように「考える」のかを理解して、必要なコンテンツを生成するように導く必要があるからです。
その上で本書が提起するのは、「相手の動作原理に立ち返る」ことの重要性である。著者は「LLM がどのように"考える"のかを理解して」と繰り返し述べるが、それは比喩でも誇張でもない。プロンプトエンジニアリングとは、AI という新たな他者に対する理解の訓練の末に生まれるものである。
男女の間に生じる認識のズレや誤解。その原因は、両者が別々の星からやってきた異星人のごとく、根本的に異なる“人種”だという点にある。互いの違いを心得て、尊重し合えるようになれば、きっとトラブルは減るはず ―― 。
それで想起するのは「男は火星から、女は金星からやってきた」というフレーズである。自分なら XX と考えるから YY してあげれば喜ぶかなと思ってしても、異なる思考回路をもつ相手に対しては逆効果になったりもする。人間同士であってさえそうなのに、プログラム相手に自分の考えを押し付けても仕方がない。それでも、奇妙な擬人化を押し付けてしまいがちなのが LLM の蠱惑的な魅力だったりもするが。
仮に“紙クリップを可能な限り大量に作る”ことだけを至上目的に設定された AI が、人類史上屈指の野心家ナポレオンのごとき権力と才覚を備えてしまったらどうなるか? これは人類と無関係な目標を設定されるうる「エイリアン・インテリジェンス」のメタファーとして重要な思考となる。
つまり、我々は改めてハラリのいう「AI(エイリアン・インテリジェンス)」に対する真に工学的な指示コミュニケーション方法 ≒ 命令工学を打ち立てるべきであり、そのためにこそ演繹的な動作原理を学ぶ必要がある。これは本質的に帰納的な経験則となる人間理解とは異なる思考モードである。
かつて SEO が席巻した時代には、Google のブラックボックス・アルゴリズムに対して帰納的な少数例から形式的な真似を繰り返す、“カーゴ・カルト”的アプローチが横行しており、エイリアン・インテリジェンスとのコミュニケーションもその延長線上で捉えてしまいがちだが、AI(人工的な知能)を構築するための論文もソースコードも豊富にあって、異星人や異性人や検索猿人と違って解剖も改造手術も自由だ。守るのはコピーライトだけで良い。PC 原人になるまでは。
カーゴ・カルト(空想)から恋愛工学(科学)へ
GitHub Copilot のコードベースの最も古い部分は、プロキシやプロンプト、UI、アプリケーションを IDE 拡張機能として設定するボイラープレートではありません。私たちが最初に書いたコードは「評価」であり、そのおかげで、他のコードとともに非常に速く、成功裏に進むことができました。なぜなら、私たちが行ったすべての変更について、その変更が、正しい方向への一歩、間違い、あるいは、あまり影響を与えなかったよい試みだったのかを、直接確認できたからです。そして、これが、あなたの LLM アプリケーションの評価フレームワークの主な利点です。それが、将来のすべての開発を導きます。
詳しい動作原理を学んで合理的なプロンプトが書けるようになってさえも、特定のコンテキストにおいてより良いものは帰納的に発見せざるを得ない状況が続いてしまうため、本書は「評価」の仕組みについて特に重要視している。GitHub Copilot の開発チームとして膨大な改良を行っていく必要があるからこそ、何が効いて何が効かなかったのを定量的に判断できなければ、空想は空想のままであり、工学にすることができない。
その他、Tools の本来的な仕組みやワークフロー構築など、今まさに自分が理解しようと試行錯誤していた実践的な部分についてもしっかりと書かれており、技術書として役立つ部分も多かった。例えば観察するためのツール結果を LLM に戻して再度どのツールを使うかを判断するシーケンスは人間が作る必要がなく、そのシーケンスさえも自律的にプラン作成して動作するからエージェントなのだという発想がなかったことに気付かされた。
自分とは異なる知性のソースコードが公開される時代
エイリアン・インテリジェンスの能力を過大評価することも、過小評価することも効率的なコミュニケーションを阻む。AI も人間も自分の意図や感情を完全に理解することができない以上、依頼を発する側が相手の限界を認識し、共通点を見出す努力が不可欠である。AI が気まぐれな魔法のような存在に見えるのは、自分の理解不足ゆえかもしれない。
“LLM は本質的に、トレーニング中に提供されるテキストを模倣するテキスト補完エンジンにすぎない。"
エイリアン・インテリジェンスのカーゴ・カルトを解剖し、エンジニアリングに落とし込む。自分とは異なる知性のソースコードが公開され、メカニズムを知ることができ、確かにそのように動くと演繹的に理解していく過程には、帰納的に学ばざるを得ない人間理解とは異なるロマンがあり、ある意味では有機的な人間のメカニズムが分かってしまった後の世界の事前訓練をしているのではないかと妄想した。最終的には LLM も人間にアラインメントした存在になってしまうのかもしれないからこそ、期間限定の恋愛工学的なロマンスがここにある。