『LLMのプロンプトエンジニアリング』を読んだ。これは良書の予感しかしなかったので Amazon で予約注文していたけれど、各所で品切れ中らしい。後半になっていくにつれ難易度の勾配が上がっていて、理解が難しそうな部分はスキップしつつでの1周目だけど、読んでみて実際に良書だった。おすすめ。
特に LLM の AI を擬人化しないこと、ドキュメント補完エンジンとして捉えろ。という主張が一貫していて、信頼できる。
書籍に出てくる「赤ずきんの原則」「チェーホフの銃の誤謬」「無関心の谷」の3点は名前と共にとても良いものだった。その他全体的に印象深かったものを感想と共に残しておく。
- 2章に出てくる、LLM がプロンプトを正として扱う真実バイアスは、LLM アプリケーションのプロンプトデザインで重要そう。Multimodal Guardrails パターンとかでの解決が必要そう。またこの章は、LLM の気持ちを実装なしでのユーザー視点で得られるものだった。LLM は何で、何を期待できて、何を期待できないか。期待できないものはプロンプティングではなく、従来の計算機への指示、いわゆるプログラミングの方が効率的ということも分かる。ただ、最後のトランスフォーマーの説明がちょっと分かりづらかった気がする。プロンプトの質への判断軸のひとつとして示されている「推敲なしで回答できる質問かどうか」は良いアドバイスだった。
- 3章。ChatML の役割や説明が書いてある点が良い。LLM というかトランスフォーマーといっていいのかな。その本質は補完にあるはなるほどな話。その裏側は ChatML といったトランスクリプト。チャットモデルの話は、RAG 関係の書籍を先に読んでおくと理解がはやいかも。4章は RAG 本みたいな話だった。
- 5章、協調フィルタリング久しぶりに聞いた。Few-Shot Prompting の3つの弱点なるほどなあとなった。103ページに出てくる「チェーホフの銃の誤謬」は良い名前。たびたび出てくる「赤ずきんの法則」といいおもしろい。この章の最後にあるニューラル検索と語彙検索の対比の良し悪しはまとめとして良かった。コンテキストウィンドウへの理解が深まった気がする。やはり ICL (In-Context Learning) と密接ということで良さそうなのと、本質的に Chat API は Completion API のラッパーであることを念頭に置くと理解がはやい気がする。なので、ウィンドウサイズが入出力に関わるのは本質的に Completion API だからだし、次の単語の予測のたびにこれまでのトークンとの関連を見る O(n2) となる Self-Attention の計算量対策というのは仕方ないところ。さらにこの辺りをChatGPTに確認して出てきた、モデルサイズよりコンテキストウィンドウが重要なことがあるという考え方なるほど。
- 6章はざっと斜め読んだ。やはり文書構造重要というのと、「無関心の谷」を意識した構成にすると効果的にできそう。
- 7章は特に logprob のあたりはほぼ読み飛ばし。それを除いてもモデルの選定判断軸やファインチューニングすべきかがワークフローで示されているのは良かったと思う。LoRA (Low-Rank Adaption) は別の書籍でも出ていた気がするけれど、だいぶ忘れていることを思い出すきっかけになった。書籍として、Part I より Part II の方が難易度のギアが上がっている気がする。
- 8章はツール呼び出しの仕組みが記されている前半は楽しんで読めたけれど、後半は結構読み飛ばし気味だったので、関心が出たらまだ読む。RAG や MCP でのツール呼び出しの仕組みを考えるのに良い章だった。
- 9章にあった AGI (汎用人工知能) とドメインのコンテキスト特化の逆張りの関係は面白いところ。
一方で書籍のマイナスを上げるとすると、ちょっと訳を固く感じたり、英名併記がなかったりといったあたり。ただ、LLM 周辺は流れが速いので、それを差し引いてもこのタイミングでリリースされたありがたさはあまりある。
総じて、LLM の気持ちを実装なしでのユーザー視点で得られるもので、ChatGPT のような AI チャット、コードアシストやエージェントといったツール、LLM アプリケーションの開発のいずれでも肝要なプロンプティングをとおして、ブラックボックスの LLM の気持ちを理解できるようになる土壌を耕せる一冊だと思う。
特に 1章から4章までの I 部基礎だけでも、読んで損はないと思う。
