6.3

View in English

6.3 生成AIとLLMアプリケーション

概要と動機

生成AI、特に大規模言語モデル(LLM)は、自然言語の指示から、流暢なテキスト、コード、要約、構造化されたデータを生成できます。それは、アシスタント、検索、文書処理、自動化の強力な構成要素にします。しかしその強みは、独特のリスクの特性を伴います。LLMは確率的です。自信に満ちた虚偽(ハルシネーション)を生みえます。プロンプトの与え方に敏感です。そしてプロンプトインジェクション(モデルの振る舞いを乗っ取るために入力に忍び込ませた悪意ある指示)のような、新しい攻撃面を開きます。したがって、頼れるLLMアプリケーションを築くことは、モデルよりも、その周りのエンジニアリングに関わります。コンテキストをどう供給し、答えを信頼できる知識にどう根づかせ、出力をどう制約し、品質をどう評価するか。

大きなチームにとって、LLMアプリケーションは、従来のソフトウェアとも古典的な機械学習とも異なる新しいパターンを求めます。訓練のステップがないことがよくあります。代わりに、振る舞いはプロンプト、検索されたコンテキスト、ツールの定義、ガードレール(モデルの入力と出力を制約する実行時のチェック)によって形づくられます。それはエンジニアリングの労力を、コンテキスト管理、検索の品質、オーケストレーション、評価へと移します。LLMを規模で採用する企業は、すべてのチームが同じ失敗のモードを苦労して再発見しないよう、共有のパターンを必要とします。

政府と規制対象の組織は、追加の要求に直面します。政策の引用を捏造したり、機微なデータを漏らしたりするLLMは、単なるバグではありません。法的あるいは安全上のインシデントになりえます。これらの設定は、権威ある情報源への根拠づけ、厳格な出力の検証、重大な出力への人間による監督、システムが何を問われ何を生成したかの明確な記録を必要とします。本章の技法(検索拡張生成、ガードレール、厳格な評価)が、LLMを、賭け金の高い文脈でデプロイできるほど安全にするものです。AnthropicのClaudeモデルは、複数の有能なプロバイダーの中の主要な選択肢の一つで、ここでの実践は、どのモデルを選ぶかにかかわらず当てはまります。

主要原則

  • モデルが記憶したものに頼るのではなく、信頼できる知識にモデルを根づかせます。
  • プロンプトとコンテキストを、使い捨ての文字列ではなく、エンジニアリングされバージョン管理される成果物として扱います。
  • モデルが間違いうる、あるいは操作されうると想定します。出力を検証し、行動を制約します。
  • 誤りと攻撃面を減らすために、モデルに必要なコンテキストとツールだけを、それ以上与えません。
  • オフラインのテストセット、オンラインの指標、人間の判断で継続的に評価します。
  • 重大な出力には人間をループに保ちます。
  • モデルを、信頼されたシステムの中の信頼できない構成要素として設計します。

推奨事項

プロンプトをエンジニアリングし、コンテキストを意図して管理する

プロンプトをコードとして扱います。バージョン管理に保存し、変更をレビューし、例のスイートに対してテストします。各プロンプトを明確に構造化します。役割とタスク、制約、形式の要件、役立つ所では例。コンテキストウィンドウ(モデルが一度に考慮できる固定された範囲のテキスト)を、希少な資源として扱います。最も関連する情報を含め、考え抜いて順序づけ、ノイズを取り除きます。無関係な、あるいは過剰なコンテキストは、品質を下げコストを上げるからです。複数ターンのアプリケーションでは、会話の状態を明示的に管理し、重要なものを保ちながら、制限内に収まるよう履歴を要約あるいは切り詰めます。モデルが変わった瞬間に壊れる凝った小技より、明確な指示と少数例(プロンプトに含める少数の実演例)を好みます。

検索拡張生成(RAG)で答えを根づかせる

知識集約的なタスクでは、信頼できるコーパスから関連する文書を取得してコンテキストとしてモデルに与え、その資料からのみ答え、情報源を引用するよう指示します。RAGは、再訓練なしに知識を最新に保ち、答えを承認された内容に限定し、引用と検証を可能にします。検索の品質に投資します。文書を適切に分割し、ドメインに合う埋め込み(似た意味を近くに置く数値のベクトル表現)を選び、取得された文章が実際に答えを含むかを確認します。間違った文章の上に築かれた流暢な答えは、答えがないよりも悪いからです。そして関連するものが何も見つからないとき、システムに、内容を発明するのではなく、そう言わせます。

エージェントとツールの使用を抑制して築く

LLMはツール(検索、データベース、電卓、内部API)を呼び出すことができ、複数のステップにわたって計画し行動するエージェントに組み立てられます。これは本物の能力を加えますが、リスクも倍増させます。すべてのツールが、間違った、あるいは操作されたモデルが害をなす、もう一つの方法だからです。ツールを正確なスキーマで定義し、すべての引数を検証し、最小権限を適用し、コミュニケーションの送信やお金の移動のような重大な行動には、確認あるいは人間の承認を求めます。エージェントのループを有界で、観察可能で、中断可能に保ちます。自由な自律性に手を伸ばす前に、狭くスコープされた単一目的のツールから始めます。

ガードレールを加え、出力を検証する

モデルを防御の層で包みます。入口では、特に信頼できないコンテンツ(ウェブページ、ユーザーの文書)がコンテキストに入るとき、プロンプトインジェクションをフィルタして検知します。出口では、スキーマに対して構造を検証し、主張を情報源と照合し、安全でない、あるいは不適合なコンテンツをフィルタし、検証が失敗したときは拒否あるいは再試行します。構造化された出力では、モデルの書式を信頼するのではなく、解析して検証します。検証なしに、生のモデル出力が取り返しのつかない行動を引き起こすことを決して許してはいけません。ハルシネーションの緩和を、モデルが自力で管理するものではなく、根拠づけ、引用、検証、人間によるレビューを通じて達成する、システムの性質として扱います。

オフライン、オンライン、人間で評価する

既知の良い、あるいはルーブリックで採点された出力を持つ、代表的な入力の評価スイートを築き、プロンプトやモデルの変更のたびに実行します(オフライン評価)。タスクの成功、エスカレーション率、ユーザーのフィードバックのような指標で、本番の実際の振る舞いを測定します(オンライン評価)。主観的な品質には、人間のレビュアーと、慎重にモデルベースの採点を使います。評価は、自信をもってプロンプトとモデルを変えられるようにする安全網です。それなしでは、盲目で飛んでいるのです。

トレードオフ: 長所と短所

選択長所短所最適な場合
純粋なプロンプティング単純、速く、変更が安い限られた根拠づけ。ハルシネーションしうる幅広いタスク、賭け金が低い
RAG最新、根拠づけられ、引用可能検索を正しく得るのが難しい知識の多い、事実のタスク
ツールを持つエージェント強力、行動できるより大きな攻撃面、制御が難しいガードレールを備えた、よくスコープされた自動化
より大きく強いモデルより良い品質と推論より高いコストとレイテンシ複雑あるいは賭け金の高いタスク
より小さく安いモデル速く安価難しいタスクには弱い量の多い、単純なタスク

中核の緊張は、能力対制御とコストです。より多くの自律性とより大きなモデルはより多くの価値を届けますが、より多くのガードレール、より多くの評価、より多くのお金を要求します。RAGによる根拠づけは、検索エンジニアリングのコストで信頼性を改善します。正しいバランスは賭け金によります。賭け金の高いアプリケーションは、より多くのコストがかかっても、根拠づけ、検証、人間による監督に傾きます。

チームで議論すべき問い

  1. LLMの機能は、公衆に向き合う前にどんな精度と根拠づけの基準を満たさなければならず、誰が承認しますか。 間違った情報源を引用したり政策を発明したりする流暢な答えは、答えがないよりも悪く、政府では、捏造された引用はバグではなく法的インシデントです。大きなチームにとって、明示的な基準は、各グループが勘で独自の私的な閾値を設定するのを止めます。「十分に根拠づけられている」の定義を持ち込んでください。すべての主張が、取得され検証された情報源にさかのぼらなければならないか、検索が空だったときにシステムは拒否しなければならないか、敵対的な評価セットが実際に何をカバーしているか。見るべきシグナルは、回帰の実行なしに、プロンプトの変更を誰かが今ユーザーに直接出荷できるかです。賭け金が法的あるいは安全に関するものなら、答えは、最もリスクの高い出力を、リリース前に本物の権限を持つ人間のレビュアーを通すものであるべきです。

  2. どのLLMの機能が実は密かにエージェントで、それぞれのツールには最小権限と、取り返しのつかない行動への人間のゲートが与えられていますか。 モデルにツールを呼ばせたり複数のステップにわたって行動させたりするあらゆる機能は、エージェントの領域に入っており、すべてのツールが、間違った、あるいは操作されたモデルが害をなすもう一つの方法です。LLMを社内APIに配線する企業にとって、この問いは、「単純なアシスタント」というラベルが隠すリスクを表面化させます。モデルが呼び出せるすべてのツールの目録、その引数の検証、権限のスコープ、どの行動(コミュニケーションの送信、お金の移動、レコードの変更)が確認を要するかを持ち込んでください。エージェントのループが有界で、観察可能で、中断可能かを議論してください。答えは、重大あるいは取り返しのつかない行動が、現在ゲートなしに到達可能な所では、スコープを引き締め、人間の承認のゲートを加えるべきです。

  3. 間違った文章の上の自信に満ちた答えは問題なく見えるので、検索の品質が下がったことを一日以内にどうやって知りますか。 RAGが答えを信頼できるものにするのは、検索が答えを含む文章を実際に表面化させるときだけで、検索は、文書が変わり、チャンクが古くなり、埋め込みがドメインからずれるにつれて静かに腐ります。モデルが悪いコンテキストの上でも流暢に書くので、ユーザーは、信頼がすでに失われるまで不満を言わないかもしれません。検索のレイテンシと再現率の現在の指標、取得された文章が本当に答えを含むかをどう確認するか、インデックスの鮮度が文書の変更にどう追随するかを持ち込んでください。賭け金の高い、あるいは公開されたデプロイでは、悪い答えをその悪い文章にたどれるよう、取得された情報源を監査のために記録することを議論してください。検索の評価がまったくないなら、信仰の上に根拠づけているのです。

  4. プロンプト、コンテキスト、評価セットを、バージョン管理されレビューされる成果物として扱っていますか。それとも、ノートブックやチャットのログに散らばった文字列ですか。 プロンプトがバージョン管理されず重複してチームに散らばると、ある場所での修正が他に届くことはなく、先四半期にシステムが何をするよう求められたかを誰も再現できません。大きなチームにとって、共有のプロンプトレジストリと、あらゆる変更で走る回帰スイートが、二つ先のチームの機能を静かに壊さずに、モデルを入れ替えたり指示を編集したりできるようにするものです。相反する引力は速度です。エンジニアはプロンプトを貼って出荷するときに最も速く反復するので、素早い実験と、ユーザーに触れるあらゆるものの間の線がどこにあるかに合意してください。今日プロンプトが実際にどこに住んでいるか、評価セットが変更をゲートするか、プロンプトと並んで検索のコーパスをどうバージョン管理するかを持ち込んでください。企業と政府の設定では、監査の要件を加えてください。何か月も後に、どのプロンプトとどの情報源が特定の出力を生んだかを正確に示す必要があるかもしれず、再構築できないプロンプトは、擁護できない記録だからです。

  5. 量が増えるにつれて、品質を静かに下げずに推論のコストをどう制御し、モデル選択の決定を誰が所有しますか。 LLMの機能のTCOは、呼び出しごとの推論に支配され、パイロットでは些細に見えるコストは、本番の規模で急速に複合し、チームに、静かに弱いモデルに落として誰も品質の低下に気づかないことを願うよう誘惑します。大きな組織では、各チームに勘でモデルとコストの上限を選ばせると、驚きの請求書と一貫しない品質の両方を生みます。本物のトレードオフは能力対コストとレイテンシです。より大きなモデルは難しいタスクでよく推論し、小さなものは単純なものでより安く速く、キャッシュ、ルーティング、検索のスコープはすべて数字を動かします。解決されたタスクあたりのコスト、評価セットでのモデルの階層ごとの品質、プロンプトやコンテキストの肥大がトークンの支出を膨らませている所を持ち込んでください。企業と政府の予算編成では、誰がモデルの選択と支出の上限を承認するかを指名してください。誰も所有しないコスト項目は、トラフィックが3倍になったとき、誰も制御できないからです。

  6. どんな機微なデータがモデルに届きえ、そのデータはどこへ行き、範囲内に留まったことを証明できますか。 すべてのプロンプト、取得された文書、ツールの結果は、個人あるいは機密のデータをモデルに、そしてホスト型のプロバイダーでは、あなたの境界の外に運びえ、ここでの漏洩は、欠陥のチケットではなく、法的あるいは安全上のインシデントです。LLMを社内システムに配線する大きなチームにとって、リスクは配管に隠れています。特定のユーザーが決して見るべきでないレコードを含む検索のコーパス、生の入力を捉えるログ。緊張は能力対露出です。墨消しと厳しいスコープは、築こうとしている機能を鈍らせうるからです。コンテキストに入るものの、データフローの地図、プロバイダーの保持と訓練の条件、機微な項目をどう墨消しし、スコープ付けし、記録するかを持ち込んでください。規制対象と公共の設定では、これをデータ所在地のルール、記録保持の義務、ベンダーがあなたのデータを使える方法についての契約上の制限に結びつけてください。証拠で示せない監督は、持っていない監督だからです。

セクター別の視点

スタートアップ。 中核の価値に触れる狭いLLMの機能を一つ出荷し、自社のコンテンツへの検索を備えたホスト型モデルの上に築き、プロバイダーを入れ替えられるよう、プロンプトを薄いインターフェースの背後でgitに保ってください。各変更の前に実際の質問の小さな評価ファイルを実行し、プロンプトインジェクションを鈍らせるために貼り付けられたユーザーのテキストをフィルタし、月ごとの支出に固い上限を設けます。エージェントとセルフホスティングは避けてください。監督できない無制限のツール呼び出しのループは、デモではなく負債だからです。

小規模事業者。 おそらくMLの専門家はおらず、構築に人員を置くのではなく、すでに使っているツールに埋め込まれたLLMの機能を買ってください。リスクを単純な問いとして枠づけます。自信に満ちた間違った答えは、どこで顧客を失わせ、誰が出力が出る前に確認するのか。情報源を示し、人間をループに保てるようにし、AIが誤動作したときに簡単にオフにできるようにするベンダーを好みます。

大企業。 問題は多くのチームにわたる規模です。RAG、ガードレール、ツールのスキーマの共有パターンを公開し、共通の評価の仕組みとプロンプトレジストリを備えて、各グループが同じ失敗のモードを再発見するのをやめるようにします。推論のコストと人間によるレビューを明示的に予算化し、モデルが入れ替え可能であるようにインターフェースの層を標準化し、最小権限、有界のループ、監査ログでエージェントを中央で統治します。LLMの機能を、散らばったパイロットではなく、指標と廃止の基準を備えたポートフォリオとして管理します。

政府。 透明性、調達規則、説明責任があらゆる選択を形づくります。引用付きで承認された情報源に厳密に根拠づけ、検索が空のときは拒否し、モデルに、引用できない法律を述べることを禁じます。重大な出力をレビューする責任ある担当官を置き、入力と取得された情報源を監査のために記録し、各リリースの前に敵対的な評価セットを実行し、契約でモデルの制約とデータの取り扱いの条件の開示を求めてください。

事例

スタートアップ。 3人の開発者ツールのスタートアップは、ユーザーが基本的な質問のメールを送るのをやめられるよう、自社のドキュメントにチャットのヘルパーを加えました。すべての答えが特定のドキュメントのページを引用するようRAGを使い、検索が空だったときには「わかりません、ここに尋ねてください」と言うようモデルに指示し、プロンプトをgitに保ちました。各変更の前に、回帰を捉えるために実際のユーザーの質問の小さなファイルに対してプロンプトを実行し、プロンプトインジェクションを鈍らせるためにユーザーが貼り付けたテキストをフィルタしました。ヘルパーは一般的な質問を処理し、残りは創業者たちの共有の受信箱に静かに回しました。

大企業。 ソフトウェア会社は、製品ドキュメントの上に社内のサポートアシスタントを築きました。答えが特定のドキュメントのページを引用するようRAGを使い、検索が失敗したときは「わかりません」と言うようモデルに伝え、引用されたすべての情報源が実際に存在することを検証しました。プロンプトはバージョン管理され、変更のたびに実際のサポートの質問のスイートに対してテストされました。アシスタントは日常的なチケットを解決し、低信頼のものは人間の担当者にエスカレートし、オンラインの指標が解決率と訂正率を追跡しました。

政府。 公的機関は、職員が市民の問い合わせへの返信を起草するのを助けるLLMアシスタントをデプロイしました。根拠づけは厳格でした。モデルは承認されたガイダンスから引用付きでのみ返信を作成でき、取得された情報源にない政策を述べることは禁じられました。説明責任のある担当官が、すべての下書きを送信前にレビューしました。入力のフィルタリングが市民が提出した文書からのプロンプトインジェクションを防ぎ、出力は監査のために記録され、敵対的でエッジケースのクエリの評価セットが各リリースの前に走って、システムが法律の問題について推測することを拒否するのを確認しました。

ビジネスケース: 動機、ROI、TCO

LLMアプリケーションは、言語中心の仕事を自動化することでROIを届けます。質問への回答、文書の要約、コンテンツの起草、構造化されていないテキストからの構造の抽出。価値は、解消されたチケット、より速い起草、手作業のレビューの減少、新しいセルフサービスの能力として現れます。訓練のステップがないことが多いので、最初の価値までの時間は短く、それが大きな魅力です。

しかしTCOは、継続的な推論のコスト、検索のインフラストラクチャ、評価のパイプライン、ガードレールのシステム、人間によるレビューに支配されます。呼び出しごとのコストは規模で急速に積み上がり、監視されないアプリケーションは、安全でない、あるいは高価な振る舞いにずれうります。採用しないコストは、サービスの品質と職員の生産性で遅れをとることです。不注意に採用するコストは、公開のハルシネーションのインシデントやデータの漏洩です。リーダーシップに論拠を示すには、具体的な生産性の目標を、具体的な安全と評価の計画と組にし、価値を持続させるガードレールと人間による監督に予算を付けてください。

アンチパターンと落とし穴

  • 流暢な出力の信頼。 自信に満ちた、よく書かれたテキストを、正しいテキストと取り違えること。
  • 検索の評価のないRAG。 検索が機能すると想定し、正しい文章を表面化させるかを決して確認しないこと。
  • プロンプトインジェクションへの盲目。 防御なしに信頼できないコンテンツをプロンプトに供給すること。
  • 無制限のエージェント。 制限や人間の承認なしに、エージェントに重大な行動をとらせること。
  • 評価の仕組みがない。 回帰テストなしに、勘でプロンプトとモデルを変えること。
  • プロンプトの乱立。 プロンプトが散らばり、バージョン管理されず、チームにわたって重複すること。
  • 過度の自動化。 法的あるいは安全上の重みを持つ決定から、人間を取り除くこと。

成熟度モデル

  1. 開始。 孤立したプロジェクトでのその場しのぎのプロンプティング。根拠づけも、ガードレールも、評価もなし。プロンプトは誰かが貼り付けた所に住み、ハルシネーションは本番で発見されます。
  2. 発展。 RAGとプロンプトのバージョニング、基本的な出力の検証、小さな手作業の評価セットを加えるチームもありますが、実践はチームごとに異なり、共有の期待ではなく個々のチャンピオンに依存します。
  3. 標準化。 RAG、ガードレール、ツールのスキーマ、プロンプトのバージョニングの文書化されたパターンが組織全体で徹底されます。自動化されたオフライン評価がプロンプトやモデルの変更のたびに走り、賭け金の高いフローはオンラインの指標と人間によるレビューを備えます。
  4. 管理。 ポートフォリオがベースラインに対して測定されます。検索の再現率、ハルシネーションと拒否の率、インジェクション防御のカバレッジ、呼び出しごとのコストとレイテンシ、エスカレーションと訂正の率がダッシュボードで追跡され、リリースのゲートと廃止の基準が意見ではなく証拠に基づいて発動し、指標を悪い方向に動かす変更は回帰の実行がブロックします。
  5. オーケストレーション。 継続的なオフラインとオンラインの評価がビジネスの成果に結びつき、インジェクション防御、エージェント、根拠づけが統治され観察可能で、組織はLLMの機能を日常的に退役させ、調整し、再スコープし、品質、コスト、リスクが変わるにつれてモデルを入れ替えます。

議論のためのアイデア

  • どの出力が使用前に人間によるレビューを必要とするかを、どう決めますか。
  • ユーザーに答えを見せる前の、「十分に根拠づけられている」の基準は何ですか。
  • 信頼できないコンテンツがコンテキストに入らなければならないとき、プロンプトインジェクションからどう防御しますか。
  • エージェントは、追加のリスクに見合うのはいつで、より単純な単一呼び出しの設計に勝るのはいつですか。
  • モデルベースの採点に頼りすぎずに、規模で主観的な品質をどう評価しますか。
  • 多くのチームにわたって、プロンプトを保守可能で一貫したものに保つにはどうしますか。

要点

  • 頼れることは、モデルの周りのエンジニアリングから来ます。コンテキスト、根拠づけ、ガードレール、評価。
  • RAGは答えを信頼できる情報源に根づかせ、引用と検証を可能にします。
  • モデルを信頼できない構成要素として扱い、出力を検証し、ツールの使用を制約します。
  • エージェントに、最小権限、有界のループ、重大な行動への人間の承認を与えます。
  • オフライン、オンライン、人間で継続的に評価します。それが変更を安全にします。

参考文献とさらなる読み物

  • Patrick Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.
  • Jason Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.
  • OWASP Foundation, OWASP Top 10 for Large Language Model Applications.
  • Chip Huyen, AI Engineering: Building Applications with Foundation Models.
  • Anthropic, Building Effective Agents (engineering guidance).
  • Louis-François Bouchard and Louie Peters, Building LLMs for Production.