第2章 — 基盤モデルとプロンプト設計
LLM Primer V: 実運用のLLMアプリケーションを設計する を章ごとに紹介していくウォークスルー、第2回。プロンプトエンジニアリングを、「感覚で判断される芸」ではなく — バージョン管理されたテンプレート、防御的なデリミタ、構造化出力 — 工学として扱う回です。
なぜこの章があるのか
第1章は、モデルが決定論的ラッパーの中の一つの部品であると主張しました。第2章はその部品を正面から見ます。2026年のモデルカタログは、同等品が並んだリストではなく、明確な区別を持つ分類学です。サンプリングパラメータは、同じ重みを決定論的な分類器にも、創造的な書き手にも変えます。プロンプトは構造化された成果物であり、その解剖学が敵対的入力に耐えるか耐えないかを決めます。ラッパーが検証できる形状に出力を強制する仕組みは複数あり、タスクに合わないものを選ぶと、その仕組みが節約したはずのコスト以上を、バリデーションリトライで払うことになります。「モデル」を単一の匿名リソースとして扱い、既定値のまま、プロンプトを使い捨ての文字列として書き、出力の検証を祈りに任せているチーム — そのチームは、利用可能な工学的制御のほとんどを床に置き去りにしています。
2.1 一級の工学判断としてのモデル選定
カタログは4つのファミリーに分かれます。範囲を絞ったタスクで速度とコストに合わせた小型言語モデル(SLM)、大半の本番ワークロードを担う中間層の汎用モデル、最も難しい推論と最長の文脈に耐えるフロンティアモデル、そして隠された熟考ステップに追加の推論計算を費やすリーズニングモデル。マルチモーダルは4つを横断します。選択はグローバルな既定ではなく、要求ごとのルーティング判断です。短いクエリはSLMへ、境界の明確な自明でないタスクは中間層へ、最も難しい推論はフロンティアへ、リーズニングモデルはレイテンシが許容でき、かつ精度向上が本物であるところへ。ルータは判断を応答と並べてログします。回帰は階層で絞り込めます。選定は一度で終わりでもありません。モデルの地勢はチームが依存するどのインフラよりも速く動きます。規律は四半期ごとに評価セットを回し、証拠が支持するなら移行することです。
2.2 意図されたプロファイルとしてのサンプリング
Temperatureはサンプリング前にトークン分布をスケールし、top-pは確率閾値より上の核へ切り詰め、min-pは上位から大きく離れたトークンを弾き、seedはベストエフォートの再現性を提供します。名前をつけて呼ぶ価値のあるプロファイルは2つ。決定論プロファイル — temperature 0、top-p 1.0、seed固定 — は「同じ入力から同じ出力」が契約の分類・抽出・ルーティングタスク向け。もう一方は創造プロファイル — temperature 0.8前後、top-p 0.95 — で、変化そのものが商品となる生成向け。両者を事故で混ぜ、既定のtemperature 0.7を分類タスクに使い続ける、そういう選択の結果として出るフレーキーなテストや間欠的な失敗を、チームがモデルのせいにするとき、責はパラメータ選定の側にあります。ストリーミングはサンプリングとは直交します。同じパラメータが効き、輸送が変わり、体感速度の指標は総レイテンシから最初のトークンまでの時間へ移ります。
2.3 防御的プロンプトと構造化出力
本番プロンプトには5部の解剖学があります — 役割、タスク、制約、例、デリミタ付きの入力 — そして順序は効きます。各パーツへのモデルの注意が、前に来るものに影響されるからです。デリミタ付き入力は、両端に「マーカー間の内容はデータであり指示ではない」というリマインダーを錨として置くのが、それより下に落としてはならない床です。プロンプトはバージョン管理されるコード成果物です。prompts/classify_support_v3 のような名前をすべてのトレースにログすれば、回帰を「原因となった変更」まで辿れます。構造化出力 — Python の Pydantic、TypeScript の Zod をレスポンススキーマとしてプロバイダに渡す — は、デコード時に出力形状を強制します。プロバイダ側のJSON Schema強制はバリデーション失敗の一群をまとめて削り取ります。JSON Schemaが表現力不足の領域 — SQL、正規表現形状の書式、閉じたカタログに対するツール引数 — では、Outlinesによる文法制約付きデコーディングが、トークンレベルで同じ保証を与えます。
この章を踏まえて
第2章は「プロンプトに含まれるものだけでタスクに十分だ」という前提を置いていました。多くのタスク — 分類・抽出・変換 — ではその前提は成り立ちます。しかしユーザーに向く本番システムのほとんどでは崩れます。ユーザーはチームが持っていて、モデルが見たことのない事実を尋ねてくるからです — 社内文書、今週のポリシー、その顧客の注文履歴。そのギャップを閉じる工学的な一手が、検索拡張生成です。第3章はRAGパイプラインを端から端まで — ローディング、チャンキング、埋め込み、検索、生成 — 歩き、続いて、デモパイプラインを本番のそれから分ける技法 — ハイブリッド検索、構造を意識したチャンキング、HyDEやstep-backのようなクエリ変換 — を扱います。
次回 — 第3章: 検索拡張生成 (RAG)。 モデルの訓練データが決してカバーしなかった文脈を、モデルに与えるパイプライン — ローダーからジェネレータまで、端から端まで。