「AIが知っている情報」は一種類ではない
AIを使っていると、
- 今この会話で伝えた情報
- 前の会話で話した情報
- 保存された情報
- AIが学習に使った情報
- 検索やファイルから取得した情報
が、すべて一つの「AIの記憶」のように感じられることがあります。しかし、これらを同じものとして扱うと、AIの挙動を正しく判断しにくくなります。この章では特に、次の四つを分けます。
Context
Memory / saved information
Training Data
learned model state
Context
Contextは、現在の処理でモデルやAIサービスが利用できる情報に関係する概念です。たとえば会話の中で、少し前に伝えた条件が後の回答にも使われる場合があります。しかし、一度話した = いつでもContextとして利用できる とは限りません。どこまでの情報が現在利用可能かは、サービスや条件によって異なる可能性があります。公開されていない具体的なcontext assemblyの仕組みは推測しません。
「以前話した」と「今使える」は別
以前の会話である情報を伝えたとします。その事実から分かるのは「以前、その情報を会話した」ということです。そこから自動的に「現在のinteractionでも利用可能」とは言えません。
現在利用可能なのか、保存機能によって参照されているのか、別の仕組みなのか、確認できなければ区別して残します。
Memory / saved information
AIサービスによっては、Memoryなどの名前で、利用者に関する情報を保存する機能が提供される場合があります。そのような機能によって保存された情報は、saved / persistent information として考えることができます。ただし、saved information = model parameter ではありません。
保存された情報が、内部でどのように保持され、どのように現在のinteractionへ使われるかは、公開情報以上には推測しません。
Training Data
Training Dataは、モデルのTrainingに使われるデータです。Trainingでは、データを使ってmodel parameterや学習された状態が調整されます。ここで重要なのは、Training Data != 現在のinput という区別です。
今モデルへ入力した文章は、現在のInferenceで使われるinputです。それがTraining Dataになるかどうかは別の問いです。
Learned model state
Trainingを終えたモデルには、学習によって形成されたparameterやlearned stateがあります。これは、
- current context
- saved information
- runtime retrieval
- 現在のinput
とは区別して考えます。
たとえばAIがある一般知識について回答できたとしても、その一つの出力だけから、「この文章をTraining Dataとして学習した」と特定することはできません。
Retrievalされた情報も別
後の第8章ではRetrievalを扱います。Retrievalによって外部のdocumentやfileから情報を取得し、それを生成に利用する仕組みがあります。その情報も、Training Data と自動的に同一視しません。
概念的には、
Training Data
↓
Training
↓
learned model state
現在のinput ──────┐
Current Context ──┤
Saved Information ┤
Retrieved Info ───┤
↓
Inference
↓
output
と分けて考えることができます。
この図は、情報の役割を混同しないための概念図です。
「覚えている」という言葉だけでは判定できない
AIが「覚えています」と答えたとします。その文章だけでは、
- current contextに残っている
- saved informationを参照している
- retrievalされた
- learned model stateに関係する
- 別のservice-side mechanismが関係する
のどれなのかを一意に決めることはできません。
この文章が生成されたことと、どのtechnical mechanismが使われたかは別です。
会話が自動的にTraining Dataになるとは決めない
利用者がAIへ入力した情報が、将来のTrainingにどう扱われるかは、サービスの公開情報や条件を確認する必要があります。この本では、会話した → 自動的にTraining Dataになった という推論をしません。
反対に、絶対にTraining Dataにはならない とも、Evidenceなしには断定しません。
確認できない場合は、確認できない状態として扱います。
4つを並べる
| 概念 | 主な役割 |
|---|---|
| Current Context | 現在のinteractionで利用可能な情報 |
| Saved / Persistent Information | サービス等によって保存された情報 |
| Training Data | Trainingに使われるデータ |
| Learned Model State | Trainingによって形成されたmodel parameter等の状態 |
これらは、完全なAI情報分類体系ではありません。この本で混同を避けるために重要な四つを並べたものです。
この章のまとめ
Context != Memory != Training Data
Saved information != learned model state
Inference input != Training Data
Retrieved information != Training Data
「覚えている」output != memory mechanismの証明
- Contextは現在利用可能な情報に関係する
- 過去に話したことと、現在利用可能であることは同じではない
- Memoryなどで保存された情報とmodel parameterは同じものではない
- Training DataはTrainingに使われるデータ
- 現在のinputやretrieved informationを自動的にTraining Dataとみなさない
- learned model stateとcurrent contextを分ける
- 保存・context assembly・trainingへの利用などの未公開内部処理は推測で埋めない
次の章では、Search、Retrieval、RAG、Tool、Agentがモデル単体の能力をどのように広げるのかを整理します。