見出し画像

「Prompt Engineering for LLMs」を読んで

最近のLLM本の中でも、「プロンプト=一発芸」ではなくアプリ設計そのもの”として語ってくれる本は貴重。O’Reillyの『Prompt Engineering for LLMs』はまさにそれで、読みながら参考になった内容をまとめてみました。


1) LLMの正体を前提に設計する

LLMは次トークン予測器。巻き戻せない/左から一度読む/中盤が抜けやすい——この“体質”を前提に。

  • 重要な条件は冒頭と終盤に。中盤は情報が沈む(“Mehの谷”)。

  • 文字レベルの作業(字数カウント・逆綴り)は機械的に前後処理でやる。

  • 迷ったら温度0〜0.2で評価用、0.3〜0.7でアイデア探索用。

結論:性格に合わせて台本を書く。魔法に頼らず、舞台監督になる。


2) プロンプトは「台本」——構造を決める

良い出力は良い台本からしか生まれない。本書は「文書型」を決める重要性を繰り返し説く。

  • 助言会話型:Chat向け。質問→回答のリズムを固定。

  • 分析レポート型(Markdown):見出し固定、最後に“Stop見出し”を置いて暴走を止める。

  • 構造化(JSON/XML/YAML):機械可読が必要なとき。ツール連携が安定。

コード生成や差分説明はMarkdownレポート型、ツール連携はJSONに統一したら、後処理が劇的に楽になりました。


3) 静的×動的で“中身”を組む

プロンプトの中身は静的(行動規範・フォーマット・few-shot)と動的(ユーザー文脈・検索/RAG)の二層で考える。

  • 静的:禁止事項より推奨事項を短く。few-shotは形式学習にだけ使う(量を増やさない)。

  • 動的:関連スニペットを短く切って優先度付きで並べる。無関連は入れない(“使わなきゃ”バイアスが働く)。

実装メモ:スニペットは長短ペア(Elastic)を用意しておくと、トークン予算が足りないときに自動で短い方へ落とせて便利。


4) Chat時代の基礎体力:RLHF・ChatMLを活かす

ベースモデルは“作文の続き”。SFT→RM→PPOのRLHFで**HHH(Helpful/Honest/Harmless)**になる。
使い手として効かせるポイントは:

  • systemに行動規範・口調・出力フォーマットを短く定義。

  • ユーザー入力はsystemに混ぜない(保護の崩壊を防ぐ)。

  • Chat APIのstoptool呼び出しで“終わり”と“行動”を明示。


5) モデルを“手なずける”実務テク

  • 開始・終端の判定可能性:主回答は見出しや```で囲む。stopシーケンスは必ず設定。

  • logprob活用

  • 冗長排除:挨拶や免責は後置に追い出す(few-shotで体裁ごと学習させる)。


6) 会話型エージェントは「道具×思考×文脈」

  • Function Calling

  • ReAct/CoT/Plan/Reflexion:検索→思考→再試行の“言語的作業興奮”を回す。

  • 文脈管理:使わないツールは見せない。履歴はトピック転換で刈込、検索結果は要約で弾力化


7) 汎用チャットの限界は“ワークフロー化”で越える

大きな課題は小さく分ける。各タスクは入出力スキーマを固定し、DAGで束ねる。

  • まずユニット(単体)で正しく動くかを担保。

  • 失敗モードを**言語で自己修正(Reflexion)**させる経路を用意。

  • クローラやDBは従来ソフトで。LLMは必要箇所に限定


8) 最初に評価基盤を敷く

  • オフライン:代表ケース→自動ハーネス。部分一致・機能テスト・LLM採点(SOMA)で回す。

  • オンライン:A/Bの帯域は貴重。Acceptance/Impact(採用率・実行成功)をKPIに、レイテンシとトークンも常時記録。

“評価を先に作る”——これは自分の反省点。ここからは最初にやります。


チェックリスト

  1. 文書型を決める(レポート/JSON/会話)。

  2. systemを短く(目的・出力形式・禁止より推奨)。

  3. few-shotは最小で形式学習用

  4. 動的文脈は優先度付け+Elastic

  5. stop設定+主回答の囲い込み

  6. logprobで品質分岐(再試行/追加RAG/昇格)。

  7. ツールは少数精鋭+承認フロー

  8. ユニットテスト→DAG化→回帰評価


まとめ:プロンプトは“仕様書”、使用者は“監督”

この本が教えてくれるのは、「LLMの賢さに期待する前に、台本と舞台装置を設計する」という姿勢です。
赤ずきん原則(訓練分布に合わせて書く)を守り、余計な文脈を削り、必要情報は先に入れる。あとは評価で回して直す。シンプルですが、結局ここに尽きます。

#oreilly #AI #LLM


いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
「Prompt Engineering for LLMs」を読んで|川上 将人(Masato Kawakami)
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1