AIの分野で使われる「コンテキスト」という言葉は。日本語で「文脈」と訳されることが多いですが、実際には、もっと広い意味合いで使われています。
一言でいうと、AIにおける「コンテキスト」とは、「AIが何かを判断したり、次の行動を決めたりするために利用する、その場の状況、背景、前提条件となるあらゆる情報」のことです。
広辞苑で文脈とは
広辞苑では、「文脈」は一般的に以下のように説明されています。
文脈(ぶんみゃく)
- 文章の筋道。文章の前後の続き具合やつながり
- 言葉や文の意味を決定する、その前後の言語的環境
- 転じて、物事の背景や経緯、状況
文脈は単語や文の意味を理解する上で極めて重要な概念です。同じ言葉でも、置かれた文脈によって意味が変わることがあります。例えば「運ぶ」という動詞も、「荷物を運ぶ」と「病気を運ぶ(感染させる)」では全く異なる意味になります。
例1 人間同士の会話で考えてみます
私たち人間の会話で考えてみましょう。友人があなたにこう言ったとします。
「ちょっと暑いね」
この言葉の意味は、状況(コンテキスト)によって全く変わってきます。
- コンテキスト①:真夏の炎天下を二人で歩いている時
あなたはおそらく「カフェでも入って涼まない?」という意味だと解釈するでしょう。 - コンテキスト②:会議が紛糾して、議論が白熱している時
あなたはおそらく「少し頭を冷やそう、休憩しないか?」という提案だと解釈するでしょう。 - コンテキスト③:冬に暖房がガンガンに効いた部屋にいる時
あなたはおそらく「暖房を弱めるか、窓を開けようか?」という意味だと解釈するでしょう。
このように、同じ「暑いね」という言葉でも、「季節」「場所」「今やっていること」といったコンテキストによって、その意図や次に取るべき行動が全く異なります。
例2 AIアシスタント(SiriやGoogleアシスタントなど)の場合
AIもこれと同じです。AIがユーザーの意図を正しく汲み取るためには、様々なコンテキストを理解する必要があります。
コンテキストがないAI
ユーザー:「今日の東京の天気は?」
AI:「晴れです。」
ユーザー:「じゃあ、傘はいる?」
AI:「申し訳ありません、どこの場所についてですか?」
このAIは、直前の「東京の天気」という会話を忘れてしまっています。一つ一つの質問を単独で処理しているため、会話の流れというコンテキストを理解できていません。
コンテキストを理解できるAI
ユーザー:「今日の東京の天気は?」
AI:「晴れです。」
ユーザー:「じゃあ、傘はいる?」
AI:「いいえ、東京は晴れなので傘は必要ないでしょう。」
このAIは、「直前の会話で『東京』の話をしていた」というコンテキスト(会話履歴)を記憶しているため、「傘」が東京のことについて尋ねられていると正しく判断できます。
さらに、AIが利用するコンテキストはこれだけではありません。
- 時間的コンテキスト:
朝に「今日の予定は?」と聞かれれば、その日の予定を答える。深夜に「お腹すいた」と言われれば、24時間営業のお店やコンビニを提案する。 - 場所的コンテキスト:
(スマホのGPS情報から)あなたが広島にいることを理解していれば、「近くのお好み焼き屋さんは?」と聞かれただけで、広島市内のお店を検索する。 - 個人的コンテキスト:
あなたが以前「イタリアンが好きだ」とAIに話していれば、「夕食におすすめは?」と聞かれた時に、イタリアンレストランを優先的に提案する。
このように、AIの世界でいうコンテキストとは、「会話の履歴」「時間」「ユーザーの現在地」「ユーザーの過去の発言や好み」など、より良い応答を生成するために考慮される全ての周辺情報のことなのです。
例3 文章生成AIや画像生成AIの場合
文章や画像を生成するAIにとってもコンテキストは非常に重要です。
文章生成AI(ChatGPTなど)の場合:
あなたが「AIのメリットについて、小学生にも分かるようにブログ記事を書いてください」と指示したとします。この「小学生にも分かるように」「ブログ記事として」という部分が、AIにとって非常に重要なコンテキストになります。このコンテキストがあるおかげで、AIは専門用語を避け、親しみやすい口調で文章を生成してくれます。
また、長い文章の続きを書いてもらう場合、それまでに入力された文章全体がコンテキストとなり、話の筋が通った続きを生成しようとします。
画像生成AI(Midjourneyなど)の場合:
単に「犬の絵」と指示するのと、「柴犬の子犬が、桜の木の下の芝生で楽しそうに昼寝している、水彩画風の優しいタッチの絵
」と指示するのとでは、出来上がる絵が全く違います。この詳細な指示全体が、AIが絵を描くためのコンテキストになります。
DIFYにおけるコンテキストとは
DIFY(ディファイ)は、プログラミングの知識がなくても誰でも簡単にAIアプリケーションを開発できる、オープンソースのプラットフォームです。特に、大規模言語モデル(LLM)を活用したチャットボットやコンテンツ生成ツール、データ分析ツールなど、さまざまなAIアプリをノーコードで作成できる点が特徴です。
なかでも、よく活用されるのが「RAG(Retrieval-Augmented Generation)」と呼ばれる知識検索システムです。このRAG構成の中で、LLMの設定項目として「コンテキスト」と呼ばれる部分があります。
知識検索(Knowledge Retrieval)における「結果(result)」とは、ナレッジベースから検索された情報のリストを指します。これは、ユーザーの質問に最も関連すると判断されたドキュメントやテキストの断片(チャンク)が複数含まれています。
つまり、ここでの「コンテキスト」とは、ユーザーのプロンプト(質問文)に基づいて検索されたテキストの集合を意味しており、「文脈」という日本語の持つニュアンスとはやや異なります。「参照情報」や「抽出情報」といった表現の方が適しているかもしれません。
まとめ
- 日本語の「文脈」は、主に文章や会話の流れを指します。
- AIの「コンテキスト」は、それよりもはるかに広く、AIが何かを判断・生成するために利用する、あらゆる状況・背景・前提情報を指します。
- 具体的には、会話履歴、時間、場所、ユーザーの属性や好み、与えられた指示の細かな条件など、すべてがコンテキストになり得ます。
「コンテキストをどれだけうまく理解し、活用できるか」が、AIの賢さや「気の利き具合」を決めると言っても過言ではありません。