「LLMのプロンプトエンジニアリング」を読んだ

目次

はじめに

生成AIを活用したアプリケーションの提案材料を探していました。開発業務への適用だけでなく、顧客への提案に活かせる実践的な知識が必要でした。

本書は期待以上の収穫をもたらしてくれました。LLMを「ドキュメント補完エンジン」として捉える本質的な理解から、実践的なアプリケーション構築まで、体系的に学ぶことができました。

概要

本書は、LLMベースのアプリケーション全体を構築するための包括的なガイドです。単なるプロンプトの書き方にとどまらず、LLMアプリケーションを「変換レイヤー」として設計する方法を解説しています。実世界のニーズをLLMが処理できるテキストに変換し、LLMの出力を実世界で活用可能な情報やアクションに変換する、反復的でステートフルなプロセスとして捉えます。

各章の詳細

第1章:プロンプトエンジニアリングの世界 ― 【変換レイヤー】

LLMアプリケーションを「変換レイヤー」として定義し、実世界とモデルドメインを橋渡しする役割を明確にしています。プロンプトエンジニアリングとは、この変換の設計そのものであるという視点が新鮮でした。

第2章:LLMを理解する ― 【ドキュメント補完エンジン】

最も印象的だった章です。LLMを理解する際の重要な視点が示されています:

あるプロンプトがどんな補完を生み出すか知りたい場合、「合理的な人間ならどう応答するか」を想像するのではなく、「このプロンプトではじまるドキュメントは、どのような流れで続く可能性があるか」を考えるべきなのです。

——p.20 2章 LLMを理解する

この視点により、LLMの振る舞いを予測し、効果的に活用できるようになります。ハルシネーションについても「モデルの視点ではほかの補完と区別がつかないので、『勝手に作り話しないで』は意味がない」という実用的な理解を得ました。対策は「検証する」だけというシンプルな結論も納得感があります。

第3章:チャット形式への移行 ― 【脚本作成】

プロンプトエンジニアリングを「脚本作成」と捉える視点が秀逸です。ユーザーから見えない裏側で、どのような「脚本」を書くか。コンテキストの検索、スニペット化、優先順位付け、そしてプロンプトの組み立て。これらすべてが、優れたLLMアプリケーションを支えています。

第4章:LLMアプリケーションの設計 ― 【ループの仕組み】

「ドキュメント補完しかできないが、それだけでほぼなんでもできる可能性を秘めている」という逆説的な表現に、LLMの可能性と限界が凝縮されています。テキスト補完、対話、ツール実行という基本的な能力の組み合わせで、複雑な機能を実現できることを学びました。

第5章:プロンプトのコンテンツ ― 【静的と動的】

コンテンツを「静的」と「動的」に分類する考え方が実践的でした。静的なコンテンツでタスクを明確化し、動的なコンテンツでコンテキストを提供する。「しないで」より「してほしい」、ルールに理由を付けるなど、具体的なコツも参考になります。

第6章:プロンプトの組み立て ― 【無関心の谷】

「無関心の谷」という概念は実務で活用できる知見です。プロンプトの中間部に配置された情報は活用されにくいという特性を理解し、重要な情報を冒頭と末尾に配置します。

「赤ずきんの原則」も印象的でした。トレーニングデータから外れないようにすることの重要性を、童話になぞらえて説明しています。Markdownでプロンプトを書く理由も納得感があり、すぐに実践できます。

第9章:LLMワークフロー ― 【会話型エージェントの限界】

Shopify店舗の例を通じて、会話型エージェントの限界を明確に示しています。複雑なタスクは分解して専門化したワークフローを構築する。「基本的なLLMワークフローで済むならば、常にそうする」というアドバイスは、優れたソフトウェア設計の原則にも通じます。

第10章:LLMアプリケーションの評価 ― 【評価から始める】

「GitHub Copilotがやった絶対に正しかったことの1つは、GitHub Copilotのコードベースを『評価』のコードから書き始めたこと」という事実は衝撃的でした。変更が改善かリグレッションかを判断する仕組みがなければ、品質の向上は望めません。

SOMAアセスメント(明確な質問、順序尺度の回答、複数の側面のカバー)は、LLMの出力を評価する実践的な手法です。「LLMにLLM自身の成果物を採点させていると思わせない」という注意点も重要です。

第11章:未来を見据えて ― 【LLMへの共感】

本書の主な教訓が2つに要約されています:

本書の主な教訓を要約すると、以下の2つになります。

  1. LLMは学習時に見たテキストを模倣する、単なる補完エンジンにすぎません。
  2. LLMに共感し、その思考方法を理解する必要があります。

——p.246 11章 未来を見据えて

実務への応用

本書で学んだ知識は、以下のような場面で活用できます:

  • プロンプト設計: 無関心の谷を避け、Markdownで構造化されたプロンプトを作成
  • アプリケーション設計: 会話型エージェントの限界を理解し、適切にワークフローを分解
  • 品質管理: 評価フレームワークを最初に構築し、継続的な改善を実現
  • 提案活動: LLMの本質と限界を理解した上で、実現可能な提案を作成

良かった点

  • LLMの本質的な理解と実践的な設計手法のバランスが優れている
  • 具体例が豊富で、理論を実装に落とし込みやすい
  • ハルシネーションやトークナイザーなど、見落としがちな要素も丁寧に解説
  • 評価の重要性を強調し、具体的な手法を提供
  • LLMの可能性と限界を冷静に分析し、実用的な指針を示している

おすすめ度

★★★★★(5/5) - 技術的成長に不可欠

LLMアプリケーション開発に携わるエンジニアはもちろん、業務でLLMを活用するすべての方に強く推奨します。アプリケーション開発に携わっていなくても、LLMの本質を理解することで、日常業務でのLLM活用が劇的に改善されます。

こんな人におすすめ

  • LLMアプリケーションの開発を検討している方
  • プロンプトエンジニアリングを体系的に学びたい方
  • LLMの可能性と限界を正しく理解したい方
  • 生成AIの業務活用を提案する立場の方

読む前に準備すべき知識

  • LLMの基本的な使用経験

まとめ

生成AIを活用したアプリケーションの提案材料を探していた私にとって、本書は期待以上の成果をもたらしました。LLMを「単なるドキュメント補完エンジン」として理解することから始まり、それでも「ほぼなんでもできる可能性を秘めている」という実践的な視点を得ることができました。

本書は、LLMの可能性に浮かれることなく、その本質と限界を理解した上で、実践的なアプリケーションを構築するための確かな指針を示してくれます。理論と実践のバランスの良さ、体系的な構成により、LLMアプリケーション開発の全体像を把握できる優れた一冊です。

「LLMは単なるテキスト補完エンジン」という理解から始まる、実践的なプロンプトエンジニアリングの世界。その扉を開く鍵が、本書にあります。