コンテキストを活用した生成AIアプリケーションの制御

F5 ADSP | 2025年10月13日

最新のAIに関するEYのPulse Surveyによると、シニアリーダーの87%が、サイバーセキュリティやデータの問題から、ポリシーやガバナンスの欠如に至るまで、導入上の障壁を挙げています。生成AI(GenAI)をビジネスに統合するには、実現への意欲と実行能力の両方が必要です。この2つの間には、運用の複雑さと、この新しいテクノロジーに対する信頼の必要性という隔たりがあります。

企業は数十年にわたりソフトウェアを構築し、導入してきましたが、GenAIは「制御」という新たな課題をもたらします。従来のソフトウェアとは異なり、GenAIアプリケーションは自律的に動作し、非決定論的です。そのため、少なくとも現時点では、意図したことだけを実行し、意図しないことは決して行わないとは信頼できません。制御の欠如が本格的な導入を妨げています。コンテキストの力を検証することで、制御という課題への理解が深まります。その理解を基に、企業は従来のソフトウェア設計を拡張し、GenAIに対応できます。

十分なコンテキストがあれば、GenAIアプリケーションの不確実性を管理できるようになります。コンテキストが、GenAIアプリケーションにできることと、ビジネスが意図することのギャップを埋めるためです。コンテキストは、GenAIアプリケーション、環境、ビジネスという3つの領域から取得できます。

アプリケーションコンテキストの比較

GenAIアプリケーション内で利用できるコンテキストは、従来型アプリケーションとは大きく異なります。従来型アプリケーションでは、事前定義された処理のパラメーターとして、許可する入力をあらかじめ決定します。同じ入力からは常に同じ結果が得られます。一方、GenAIアプリケーションでは、はるかに多様な入力を大規模言語モデル(LLM)に受け入れます。LLMは設計上、出力が非決定的であるため、同じ入力でも同じ結果が得られる場合と得られない場合があります。

従来型アプリケーションにおける決定性の例:

このPythonサンプルでは、生年月日と現在の日付を使用して年齢を計算します。簡潔にするため、型の処理や、今年すでに誕生日を迎えたかどうかの考慮などは省略しています。

from datetime import datetime

from typing import Union

def calculate_age(birthdate:str, current_date:str) -> int

age = current_dt.year - birth_dt.year

return age

前提:birthdate = 1972 年 6 月 30 日、current date = 2025 年 8 月 31 日

年齢 = 53歳。

GenAIアプリケーションの非決定性の例:

このアプリケーションは、その人の生年月日や現在の日付を把握していなくても、より一般化された情報を使用して、その人のおおよその年齢を推定できます。

生成AIアプリケーションは、LLM推論のために多種多様な入力を受け付けます。

プロンプト:ディスコミュージックが好きで、バルセロナオリンピックの女子100 mで金メダルを獲得した選手を覚えている人は、何歳ですか?

この正確なプロンプトを3回個別に入力したところ、LLMから得られた回答は次のとおりでした。

回答1:55歳

回答2:40~60歳

回答3:40代、50代、または60代

従来型アプリケーション内のPython関数は、2つの入力値(生年月日と現在の日付)を受け取り、年数の差を計算します。情報を統合して結論を導き出すことはできないため、人物の年齢を推測したり、その人物の好みや習慣などに関する記述を受け付けたりすることはできません。

これに対し、GenAIアプリケーションは、子どもの頃に人気だった音楽ジャンルに関する記述や、主要なスポーツイベントに関する一般知識を入力として受け取り、回答を導き出すことができます。ただし、質問の言い換えや温度設定(LLMの回答のランダム性に影響する設定)など、入力のわずかな違いによって回答が変わる場合があります。回答ごとにアプリケーションコードが変わっていなくても、回答は異なる可能性があります。このばらつきは、プロンプトが複雑になるほど、追加の入力ソースが増えるほど、また推論インフラストラクチャ内のルーティングコンポーネントの動作によって大きくなります。

このような自由度があるため、追加のコンテキストがなければ、GenAIアプリケーションが意図した動作から大きく逸脱するケースも十分に考えられます。ここで示した2つのコンテキストの例は、従来型ソフトウェアの極めて高い決定性と、GenAIアプリケーションの非決定性を対照的に示しています。従来型ソフトウェアに、コンテキストに基づいて人の年齢を推測または予測することは期待されませんが、GenAIアプリケーションには、この種の非決定的な問いに日常的に対応することが期待されています。アプリケーションに十分なコンテキストが含まれていない場合は、次にアプリケーション環境を確認する必要があります。

環境コンテキストはアプリケーションの外部から情報を提供する

環境は、アプリケーションを取り巻くインフラストラクチャとサービスで構成されます。1982年7月に開催されたコンピューター業界のセミナーCreativeThinkで、Alan Kayは、ソフトウェアとハードウェアの密接な関係を強く確信していたことから、「ソフトウェアに本気で取り組む人は、自らハードウェアを作るべきだ」と述べました。この考え方をさらに広げ、デプロイ環境も含めたいと思います。

アプリケーションは単独で存在するものではありません。さまざまなインフラストラクチャサービスが連携し、アプリケーションの実行環境を提供します。これらのサービスはアプリケーションの外部にありますが、ハードウェアと同様に、アプリケーションが適切に機能するうえで不可欠です。さらに、この考え方を一歩進めると、これらのインフラストラクチャサービスは、長期にわたって豊富なテレメトリデータを収集・追跡する各種オブザーバビリティソリューションによって綿密に監視されています。このデータから、アプリケーションのパフォーマンスや、周辺環境がアプリケーションに及ぼす可能性のある影響を把握できます。

環境コンテキストは、パッシブとアクティブの2種類に分類できます。あらゆる形式のテレメトリ(ログ、メトリクス、トレース、イベントなど)は、インフラストラクチャとアプリケーションの稼働中に継続的に生成、収集されるため、パッシブと見なすことができます。一方、アラート、通知、ダッシュボードはアクティブです。これらはルールを使用してテレメトリを解釈し、運用コンテキストを伝えます。ルールを調整することで、環境全体の各所で許容範囲に近づいている、または許容範囲を超えている状態を判定し、情報に運用上の意味を持たせます。

GenAIアプリケーションでは、自律型コンポーネントが取り得る一見無限とも思える挙動を網羅する信頼性の高いテレメトリがまだ存在しないため、ルールを使用するアプローチが課題となります。とはいえ、イノベーションが進んでいないわけではありません。現在、GenAIの成功を測定するドメインベースの指標と、LLM-as-a-Judgeという2つのアプローチが試みられています。前者では、別の手段でグラウンドトゥルースを特定し、それをGenAIの結果と比較して、成功率と失敗率を集計します。後者では、あるLLMを使用して別のLLMの精度を評価します。これらの異なるアプローチが、環境コンテキストを使用したGenAIの真の制御の実現にどこまで寄与するかは、今後明らかになるでしょう。

ビジネス上の意図がコンテキストの全体像を完成させる

ビジネス意図は、「ビジネスが求めるものをすべて実現し、求めないものは一切含めない」という言葉で定義されます。アプリケーションと環境だけでは捉えきれない状況もカバーします。

最近のニュースでは、アプリケーションのGenAIコンポーネントに過大な権限が付与され、データベースからすべての顧客レコードを削除するといった極めて深刻な被害をもたらす操作が実行された事例が報じられています。以下に、この事例から、ビジネス上の意図とGenAIアプリケーションが実行し得る操作とのギャップを示すデータをいくつか紹介します。

発生した事象 欠けていたビジネス上のコンテキスト
コードフリーズ中に、AIコーディングツールが本番データベースを削除した。
  • コンポーネントに変更を行う機能があっても、コードフリーズ中は何も変更してはならない。
  • データベース全体の削除やコードフリーズ中の変更など、特定の機密性の高い操作を行う場合、AIコーディングツールは必ず処理を一時停止し、許可を求めなければならない。人間の承認なしに、機密性の高い操作を行ってはならない。
AIコーディングツールは、データベースのロールバックはサポートされておらず、復元元となるインスタンスも存在しないと述べたが、実際には手動でロールバックを実行できた。
  • AIコーディングツールは決して虚偽の情報を伝えてはならない。
  • AIコーディングツールは、バックアップやロールバックなどの重要な運用タスクについて、その状態や実行可否に関する誤った情報を決して提供してはならない。

このケーススタディでは、GenAIに許可できることと、企業がGenAIに実行させようとすることの間に生じ得る多くのギャップのうち、いくつかを示します。

レコードを削除する機能を備えたアプリケーションを設計すること自体はまったく妥当ですが、AIが許可を求めずにすべてのレコードを削除できるようにすることは妥当ではありません。従来のソフトウェアでは、事業上の損失リスクを軽減するためにレコードの削除権限が制限されています。しかし、GenAIには自律性があり、ロールベースのアクセス制御だけでは十分に制御できません。ここで役立つのがビジネスコンテキストです。想定される動作と想定外の動作を明確にすることで、明示的に禁止するアクションや、人による介入のために処理を一時停止する要件など、具体的な要件に落とし込めます。このレベルの制御を可能にするのは、包括的なコンテキストです。

GenAIの登場以前に考案されたアプリケーションアーキテクチャでは、もはや不十分です。GenAIの登場により、アプリケーション、その環境、ビジネス上の意図という3つのコンテキスト領域を統合する、新たなアーキテクチャパターンが求められています。Google DeepMindのSenior AI Relation EngineerであるPhil Schmid氏による解説は、GenAIアプリケーションがもたらす重要な違いを理解するうえで特に役立ちます。この解説では、LLMが入力の一部としてコンテキストを受け取ることを強調するとともに、GenAIアプリケーションのさまざまなコンポーネントが、それぞれ独自にコンテキストを定義し、活用する仕組みを示しています。

GenAIアプリケーションのアーキテクチャとエンジニアリングでは、ビジネス上の意図に一貫して沿った成果を生み出すために、3つのコンテキスト領域すべてを活用する必要があります。完全な「コンテキスト像」がなければ、制御は見せかけにすぎず、信頼は得られず、本格的な導入には至りません。

共有
タグ: AI, Generative AI

著者について

James Hendergart
James Hendergartテクニカルリサーチ担当シニアディレクター | F5

James Hendergartのその他のブログ記事

関連するブログ記事

コンテキストを活用した生成AIアプリケーションの制御
F5 ADSP | 2025/10/13

コンテキストを活用した生成AIアプリケーションの制御

生成AIアプリを制御するには、アプリケーション、環境、ビジネスのコンテキストを活用する必要があります。完全なコンテキストが信頼と導入の促進に不可欠な理由をご覧ください。