GitHubが提供しているAIコーディングアシスタントのGitHub Copilotを開発したジョン・ベリーマン氏が記した、大規模言語モデル(LLM)のポテンシャルを最大限活かすためのテクニックをまとめた書籍が「LLMのプロンプトエンジニアリング」です。この書籍に登場するプロンプトエンジニアリングの図解が非常にわかりやすいと、機械学習エンジニアのアレックス・ストリック・ファン・リンスホーテン氏が解説しています。
Alex Strick van Linschoten – Assembling the Prompt: Notes on ‘Prompt Engineering for LLMs’ ch 6
https://mlops.systems/posts/2025-01-13-assembling-the-prompt:-notes-on-prompt-engineering-for-llms-ch-6.html
「LLMのプロンプトエンジニアリング」の第6章の冒頭では、「よく構成されたプロンプトの構造」を理解するのに役立つ素晴らしい図があります。その図が以下。全体は「扱いやすいサイズ(Manageable size)」とし、冒頭には課題を紹介するための「前置き(Introduction)」を用意し、中段に「個々のプロンプト要素(Individual prompt elements)」を提示。最後に課題に「再び焦点を当て(Refocus)」ます。中段部分は「無関心の谷(Valley of Meh)」とされており、LLMが情報の扱いに苦労するということを意味するそうです。
この図には重要なヒントが2つあるとリンスホーテン氏は主張しています。ひとつは「情報がプロンプトの末尾に近いほど、モデルへの影響は大きくなる」という点で、もうひとつは「モデルはプロンプトの真ん中に詰め込まれた情報に苦労することが多い」という点です。
「LLMのプロンプトエンジニアリング」ではプロンプトとその結果の補完を「ドキュメント」として定義します。ドキュメントには「アドバイス・会話」「分析レポート」「構造化ドキュメント」など、さまざまなテンプレートが存在するそうです。例えば分析レポートタイプのドキュメントの場合、アドバイス・会話のような複雑な社会的相互作用を処理する必要がないため、LLMにとってより軽い「認知負荷」を提供することになります。
分析レポートタイプのドキュメントを作成する場合のヒントとしては、「冒頭に舞台を設定するための目次を設ける」「モデルが考えるためのメモ帳またはメモセクションを設ける」などが挙げられています。
リンスホーテン氏は「構造化ドキュメントは非常に強力です。特に、モデルが特定の種類の構造(JSON、XML、YAMLなど)を想定するようにトレーニングされている場合はなおさらです。実際、OpenAIのモデルはJSONを入力として扱う際に非常に強力であることが判明しています」と記しました。
プロンプトに挿入されるコンテキストは、コンテキストウィンドウやレイテンシ要件に応じ、大小さまざまなサイズに変更することが可能です。挿入するコンテキストの選択方法には、さまざまな方法があります。
他にも、よく構成されたプロンプトを作成するには「全ての要素がプロンプトに表示される順序」や「プロンプトからこの要素を削除すると応答にどの程度影響するか」、「ある要素を追加すると別の要素を削除することになるのか」なども考慮する必要があります。
以下の図はよく構成されたプロンプトを作成する際のフローです。まずは「1:プロンプトの要素を選択」し、次に「2:各要素を価値順に並べ替え」ます。「3:トークンの長さや依存関係を考慮して最適なものを選択」し、これを「4:繰り返し」ます。「5:これ以上要素が見つからなくなったら繰り返しを停止」し、「6:各要素の位置を並べ替えて結合」して終了です。
なお、「LLMのプロンプトエンジニアリング」は日本語版も販売されており、Amazon.co.jpでの販売価格は税込4180円です。また、「LLMのプロンプトエンジニアリング」の解説ブログや解説スライドも公開されているので、内容が気になる人は書籍を購入する前にチェックしてみるのもいいかもしれません。
Amazon.co.jp: LLMのプロンプトエンジニアリング ―GitHub Copilotを生んだ開発者が教える生成AIアプリケーション開発 : John Berryman, Albert Ziegler, 服部 佑樹(翻訳), 佐藤 直生(翻訳): 本
この記事のタイトルとURLをコピーする