第1章 — AIエンジニアリングという規律

公開日: 2026-04-14 最終更新日: 2026-07-05 バージョン: 1
第1章 — AIエンジニアリングという規律

第1章 — AIエンジニアリングという規律

LLM Primer V: 実運用のLLMアプリケーションを設計する を章ごとに紹介していくウォークスルー、第1回。「デモは動くのに本番は動かない」その理由がモデル問題ではなく工学問題であり、その工学には名前がある、という話からはじまります。


なぜこの章があるのか

LLM機能を出荷したチームはどこも、同じギャップに気づきます。チームが選んだ20件の入力ではデモは順調に動き、本番は、目に触れることのない2万件の入力に対してうまくない。モデルは劣化していません。チームは、選び抜かれた一発の出力がもっともらしければ成功とみなせる領域から、負荷・ドリフト・敵対的入力・寛容でないクレーム指標を持つ有償の顧客がいる領域へと歩み出たのです。第1章はその領域に名前をつけ、規律を与えます。AIエンジニアリングとは、モデルを訓練する科学でも、気の利いたプロンプトを書く技でもありません。確率的な核の周りに、決定論的なシステム振る舞いを工学的に組み立てることです。以降の章は、その規律が住み着く面を順に歩きます。この章はその枠組みです。

ひとことで言うと: AIエンジニアリングとは、確率的な核を決定論的なラッパーで包む規律である。システムの信頼性は、モデルではなく、そのラッパーに宿る。

1.1 デモと本番の信頼性ギャップ

アーキテクチャ図の上では、デモと本番は同じ形をしています。両者を分けるのは、負荷、テール入力の分布、レイテンシ予算、コスト圧、そして失敗モードです。支配的な違いは統計的なもの。デモは選び抜かれた数十件を回しますが、本番は数百万件を長いテール — 変な言い回し、途中で他言語が混じる、文脈が抜けている、意図的な敵対入力 — に対して回します。信頼性は平均の話ではなく、テールの話です。その上に、モデル自身の非決定性 — サンプリング、プロバイダ側のロードバランシング、静かなモデル更新 — が積み重なり、そして失敗は静かです。誤答は綺麗にパースされ、チームが書いた型チェックをすべて通過し、アラートも上げずにユーザーに届きます。HTTP 200を数える古典的なオブザーバビリティにはこの失敗モードは見えません。チームの最初の一手は、再現性・正しさ・コストは古典スタックから相続される前提ではなく、工学的に構築すべき性質だと認識することです。

1.2 確率的な核を包む決定論的なラッパー

建築的な応答は、モデルを確率的なまま置き、その周りを古典的なソフトウェアで包むことです。ラッパーは、入力形状、出力形状、バリデーション、リトライ、フォールバック、キャッシュ、オブザーバビリティ、コスト計上を担います。外から見れば、決定論的な関数を提示するもの — 要求が入り、検証された応答が出る。中には、タイムアウト・スキーマ・「モデルがゴミを返した場合のリカバリプラン」つきで呼ばれる確率的な部品があります。ラッパーには4つの帯があります。入力検証、プロンプト準備、契約下の実行、リカバリと発行。この4つを通過してはじめて、応答はラッパーの正式な出力になります。繰り返し訪れる誘惑は、ロジックをモデルの中へ押し戻すこと — 「モデルに自分の答えを確認させれば良い」 — ですが、その方向への一歩ごとに、テスト可能性から一歩遠ざかります。規律は、確率的な核を小さく、明確に定義し、封じ込め、システムの振る舞いのできるだけ多くを、チームがバージョン管理し推論できる決定論的なコードに置くことです。

1.3 5つの柱 — 信頼性・品質・パフォーマンス・コスト・進化

第1章は、あらゆる本番システムに共通して現れる5つの工学的姿勢を歩きます。信頼性は冗長性から来ます — 指数バックオフつきリトライ、安価な一次から強力な二次、そしてルールベースの既定へ落ちるフォールバック連鎖、マルチプロバイダの抽象化、苦しむプロバイダの連鎖障害を止めるサーキットブレーカー。品質は、2層のバリデーションから来ます — スキーマ検証が形状の誤りを、コンテンツ検証(接地度チェック、信頼度の下限、ガードレール)がスキーマを通ってしまう意味的な誤りを捕らえます。パフォーマンスは、3層のキャッシュから — 完全一致、セマンティック、プロンプト接頭辞。コスト制御は、計測と帰属、そして「十分なもののうち最も小さいモデル」へのルーティング、エージェントループが黙って千ドル使うのを防ぐ利用者ごと・要求ごとの予算、プロンプトの経済性から来ます。進化は、5つのフィードバックループ — ロギング、評価、トレーシング、人間フィードバック、カナリアロールアウト — が回路として繋がり、本番のトレースが評価ケースになり、評価回帰がデプロイをブロックし、システムが月ごとに良くなっていく循環から来ます。

覚えておきたいこと: どの単一のモデル呼び出しも、システムの信頼性を単独で背負ってはならない。頭の中のモデルに「ここでモデルが正しくやってくれないと要求は失敗する」というステップが含まれているなら、そのアーキテクチャはまだ確率的計算の含意を吸収しきれていない。

この章を踏まえて

本書の残りは、そのラッパーを一層ずつ埋めていきます。第2章はモデル呼び出しそのものの中へ — モデル階層、サンプリングパラメータ、防御的プロンプト、構造化出力。第3章は外へ広がり、モデルに推論すべき正しい文脈を与える検索へ。第4章はラッパーをツールを呼び出せるエージェントへ変えます。第5章と第6章が評価とオブザーバビリティのレールを敷き、第7章と第8章がセキュリティとサービング経済で締めます。第1章の枠組みが、以降の各章を読みやすくします。どの技法も、ラッパーを締めるものか、内側の確率的な核を包みやすくするもの、そのいずれかなのです。


次回 — 第2章: 基盤モデルとプロンプト設計 ラッパーの内側の層 — モデル選定、サンプリング、プロンプト、構造化出力 — を、芸ではなく工学の面として扱う回。

全体像を押さえたい方へ: 紙版の第1章には、「In Plain English」サイドバー、Pythonで書き上げた分類ラッパー、この記事では要約に留めたリトライ・フォールバック合成の拡張版が収録されています。Amazonで『LLM Primer V』を見る →

下田 昌平
下田 昌平
開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。