まず、見えるものから始める
AIサービスを使うとき、利用者から最も分かりやすく見えるのは、
という流れです。しかし第1章で見たように、AIサービスとmodelは同じものとは限りません。そこで、この章では「内部で何が起きているはずか」を推測するのではなく、外から何を確認できるかという視点からAIサービスを見ます。
利用者が直接観測できるもの
少なくとも、自分がサービスへ与えたinputと、サービスから返されたoutputは利用者自身が観測できます。たとえば、
は直接確認できます。一方、その二つの間で何が行われたのかは、同じようには見えません。公開APIやdocumentationがある場合には、input/outputの構造などについて、さらに確認できることがあります。ただし、公開情報は製品やversionによって変わる可能性があるため、「以前そうだったから現在も同じ」とは自動的には考えません。
Generationだけとは限らない
AIサービスでは、modelによるGeneration以外の機能がoutputに関係する場合があります。たとえば、
- Search
- Retrieval
- external tool
などです。Search、Retrieval、Toolが何を意味し、どう違うのかについては、後の章で詳しく扱います。
この章では、
modelによる生成以外の要素が関係するAIサービスも存在する
という位置だけ確認します。
概念図と実際の内部構造を分ける
教材では、理解しやすくするために次のような図を使うことがあります。
この図の ? は重要です。Search、Retrieval、Toolが関係するかどうかを、外から確認できるとは限らないことを表しています。
外部アクセスを確認できる場合
AIサービスによっては、SearchやToolの利用に関する記録や表示を利用者が確認できる場合があります。たとえば、外部情報へアクセスしたことを示すartifactと、最後に生成された文章が区別されている場合があります。そのような記録があれば、
「このやり取りでは外部アクセスに関する観測可能な情報がある」
という判断材料になります。しかし、AIが「検索しました」と書いたという文章だけと、検索に関する外部から確認可能なartifactがあることは同じではありません。
この違いは、後のVerificationの章で非常に重要になります。
見た目だけでは内部を一つに決められない
利用者から見えるinputとoutputだけでは、公開されていないbackendの構造を一つに決められない場合があります。同じようなoutputを返す二つのサービスが、内部でも同じ構造になっているとは限りません。公式に公開されたarchitectureやAPIの挙動は、公開されている範囲では確認材料として使えます。
一方、Evidenceがない状態で、
- prompt assembly
- routing
- storage
- internal model selection
などについて「きっとこうなっている」と決めることはしません。そのような部分は、この本では UNKNOWN / UNDISCLOSED として扱います。
UNKNOWNは失敗ではない
UNKNOWN / UNDISCLOSED は、「まだ説明を考えて埋めなければならない穴」という意味ではありません。むしろ、
ここまでは確認できる
ここから先は確認できない
という境界を示します。分からないものを分からないまま残すことは、確認作業では重要です。もっともらしい推測を追加してしまうと、どこまでが確認済みで、どこからが想像なのか分からなくなってしまいます。
4つの利用パターンで考える
AIサービスの利用を、理解のために四つのパターンに分けてみます。
| パターン | 利用者が確認できるもの | 確認できないことがあるもの |
|---|---|---|
| 単純な生成 | input / output | 公開されていない内部処理 |
| Searchが関係する場合 | input / output、場合によってSearchのartifact | 実際の検索方法や未公開内部処理 |
| Retrievalが関係する場合 | input / output、場合によって取得を示すartifact | 取得範囲や未公開処理 |
| external toolが関係する場合 | input / output、場合によってtool利用を示すartifact | tool callの内部的な扱いなど |
この四つは、外から確認できるものと、確認できないことがあるものを考えるための練習用の整理です。
AIの説明とは別に、結果を確認する
AI補助開発では、outputだけを見るのではなく、その仕事の結果を別の方法で確認できることがあります。たとえばAIが、
「ファイルを変更しました」
「テストはPASSしました」
「Webを検索しました」
と報告した場合、その報告文と、実際のファイル、テスト結果、検索artifactなどは別の対象です。この章ではまだVerificationの詳しい方法までは扱いません。まず、
という区別を覚えてください。AIの説明と、別の手段で確認した結果は同じものではありません。
この章のまとめ
この章では、AIサービスを内部構造の推測からではなく、外から確認できる範囲から見ました。
重要なのは次の点です。
- 利用者は少なくとも自分のinputと返されたoutputを観測できる
- 公開APIやdocumentationがあれば、さらに確認できる場合がある
- AIサービスにはGeneration以外にSearch・Retrieval・Toolが関係する場合がある
- concept diagramをvendorの実際の内部architectureとして扱わない
- AI自身の自己申告と、外部から確認可能なartifactを区別する
- 公開Evidenceがないbackend内部は
UNKNOWN / UNDISCLOSEDとして残す - UNKNOWNは推測で埋めるべき失敗ではなく、確認可能範囲の境界である
- generated outputとindependently confirmable resultは同じものではない
次の章では、AIサービス全体からmodelへ視点を移し、入力された情報からモデルがどのようにoutputを生成するのかを、Tokenトークンは、テキストなどの入力をモデルが扱うときに使う単位です。トークナイザやモデルによって、単語全体、単語の一部、文字、バイトなどに対応するため、トークンと単語は同じとは限りません。 → Tokenization・数値表現・Transformer・次トークン生成という観点から見ていきます。