Dev Study
← 研修トップ

AIを部品として組み込む仕組み

LLM を呼ぶコードは、呼ぶたびに分布から1つを引いてくる部品を抱えます。温度を0にしても同じ答えは約束されず、スキーマで縛れるのは形までです。評価で1回通っても率は分からず、埋め込みの「近い」は意味の一致ではありません。そしてツールを実行するかどうかは、モデルではなく周りのコードが決めます。確率で答える部品の確かさを、部品の外側のどこに書くのか。ベンダーの公式文書・原論文と、手元で再現できる小さな実験から積み上げます。

  1. 1
    呼ぶたびに引き直している — temperature 0 でも同じ答えは約束されない
    LLM を呼ぶコードは、呼ぶたびに分布から1つを引いてくる部品を抱えています。temperature を0にすると取り出す工程の乱数は消えますが、2026-09 時点の Anthropic の API 文書は、それでも結果は完全には決定的にならないと書いています。
    約 9 分
  2. 2
    スキーマが縛るのは形まで
    構造化出力は、生成の途中でスキーマに合わない語を候補から外します。縛れるのは形で、許された候補のどれを引くかは、モデルの分布のままです。
    約 8 分
  3. 3
    モデルは会話を覚えていない — 毎回送り直す有限の窓
    2026-09 時点の Anthropic の公式文書は、Messages API を stateless と書き、会話の履歴は毎回全部送るとしています。会話を持っているのはモデルではなく、呼ぶ側のアプリです。
    約 9 分
  4. 4
    1回通っても、それは率ではない — pass@k と pass^k
    呼ぶたびに分布から引く部品では、評価で1回通ったことが示すのは「通ることがある」までです。通る率は分かりません。
    約 9 分
  5. 5
    採点役も分布から引いている — 順序を入れ替えて確かめる
    LLM に別の LLM の出力を採点させるとき、採点役も確率で答える部品です。2つの回答を並べる順序を入れ替えただけで、判定が変わることがあります。
    約 9 分
  6. 6
    評価セットで調整すると、評価セットは使い切られる
    同じ評価セットで多くの案を測って最良を選ぶと、選ばれた案の数字は楽観側に偏ります。どの案も同じ実力でも、偶然よく出た案が勝つからです。
    約 9 分
  7. 7
    埋め込みの「近い」は、訓練が近いとしたもの
    文の埋め込み(embedding)ベクトルは、意味の近い文ほど近くに置かれるよう訓練されます。ただし逆向きの「近いから同じ意味」は約束されていません。
    約 9 分
  8. 8
    語の一致とベクトルの近さは、別のものを取りこぼす
    キーワード検索(BM25)は問いと同じ語が文書にあるかで点を付け、埋め込み検索は訓練が近いとした向きで点を付けます。前者は言い換えを、後者はまれにしか現れない際立った語句を取りこぼしうる、と DPR の著者は分析しています。似た記号列で埋め込みが外す例は、本回で作った条件での実演です。
    約 9 分
  9. 9
    検索が落としたものは、生成の側から見えない
    検索拡張生成(RAG)の生成器は、検索が返した上位 k 件しか読みません。正解の文書が k 件の外に落ちると、その文書は答えに一切効かず、しかも誤った答えは正しい答えと同じ形で出てくることがあります。
    約 9 分
  10. 10
    モデルは頼むだけで、実行するかはコードが決める
    LLM に自前のツールを渡すとき、モデルが返すのはツール名と引数という依頼で、実際に動かすのは周りのコードです。
    約 9 分
  11. 11
    信頼できない文を読む前に、やることを決めておく
    LLM の入力の中では、指示とデータを分ける完全な仕組みがありません。そこで plan-then-execute という設計は、信頼できない文を読む前に、使うツールと順序を利用者の依頼だけから決めておき、読んだ後は計画に無い呼び出しを実行器が通さないようにします。
    約 9 分
  12. 12
    人を挟むのは、取り消せなくなる直前
    2026-09 時点の MCP 仕様(最新版 2026-07-28、前版 2025-11-25 も同文)は、ツール呼び出しを拒否できる人を挟むべき(SHOULD)とし、呼ぶ前にツールへの入力を利用者に見せるよう求めます。ツールに付く「破壊的でない」といった注釈は hint にすぎません。
    約 9 分