AIサービスから、モデルへ視点を移す
第3章では、AIサービスを外から見ました。
利用者が入力したもの、返された出力、場合によって観測できるSearchやToolの記録、そして外からは確認できない内部処理を分けました。
この章では、その中のモデルによる生成に焦点を当てます。
ここでは、現在よく使われるautoregressive(自己回帰的)な言語モデルを理解するための、初学者向けの概念的な流れを見ます。
人間の文章が、そのままモデル内部を流れるわけではない
私たちはAIサービスに文章を入力します。たとえば「DNSのnegative cachingを説明して」という文章です。
しかし、モデルがこの日本語の文字列を、そのまま人間と同じ形で扱っていると考える必要はありません。入力は、モデルが扱える数値的な表現へ変換されます。大まかには、
という流れで考えることができます。この図は理解のための概念図です。
Tokenとは何か
Language Modelは、通常、人間が見る文章をそのまま一つの巨大な単位として処理するのではなく、Tokenと呼ばれる単位を使います。Tokenは必ずしも、
- 一文字
- 一単語
- 一文
のどれかと一致するわけではありません。文章をTokenの列として扱える形へ変換する処理をTokenizationと呼びます。ここで重要なのは、文字数や単語数がToken数と一致するとは限らないことです。
文字数 != Token数
単語数 != Token数
数値的な表現として処理する
Tokenはモデルが計算で扱える数値的な表現へ結びつけられます。モデルの内部で行われるのは、文章を人間が頭の中で読むような処理そのものではなく、数値を使った計算です。この本では、その計算の数式や行列演算までは扱いません。必要なのは、
人間が扱う文字列と、モデルが計算で扱う表現は同じものではない
という区別です。
Transformerはどこに出てくるのか
Transformerは、neural network architectureの一種です。第1章と第2章で確認したように、
Transformer
LLM
AIサービス
は同義語ではありません。Transformer-familyのarchitectureを使う言語モデルでは、入力されたToken列をもとに計算を行い、次に続くTokenについての情報を生成します。ここでTransformerのAttentionの数式やlayer構成を理解する必要はありません。
Version 1では、
Transformerは「AIサービス全体」ではなく、モデル内部の計算に関係するarchitectureである
という位置を理解できれば十分です。
Next-token prediction
autoregressiveな言語モデルでは、出力全体を一度に完成させるのではなく、次に続くTokenを順に生成していきます。たとえば「DNSは」まで生成された状態で、モデルは次に続くTokenの候補について計算します。
その中から一つが選ばれ、「DNSは名前」となったら、今度はその状態を使って次のTokenを生成します。
概念的には、
input
↓
次のTokenを予測・選択
↓
Tokenを追加
↓
更新された列を使う
↓
次のTokenを予測・選択
↓
...
と繰り返します。
一定の停止条件に達すると生成を終了します。
「最も確率が高いTokenを必ず選ぶ」とは限らない
次のTokenには、複数の候補があり得ます。
実際の生成では、候補のscoreやprobabilityに関係する情報をもとにTokenが選択されます。その選び方にはSamplingやDecodingと呼ばれる考え方があります。そのため、
毎回必ず一番確率の高いTokenだけを選ぶ
と決めつけることはできません。設定や生成方法によって、同じ入力でも異なる出力が生じる場合があります。
生成された文章は「保存された文章をそのまま取り出した」とは限らない
この生成の仕組みを理解すると、一つ重要な区別ができます。モデルが文章を生成することと、どこかに保存されている完成済みの回答文をそのまま検索して取り出すことは、同じ意味ではありません。もちろんAIサービス全体ではSearchやRetrievalが組み合わされる場合があります。しかし、Model Generation と Search / Retrieval は分けて考えます。SearchやRetrievalについては第8章で扱います。
この説明から分からないこと
この章の概念図を使っても、
- 特定サービスのhidden prompt
- hidden reasoning
- routing
- vendor固有のbackend構成
- 非公開のmodel selection
- 内部の完全なTransformer構造
までは分かりません。
確認できない内部情報を、教科書の概念図から逆算して事実化しないことが重要です。
この章のまとめ
この章では、モデルによる生成を次のように整理しました。
人間のinput
↓
Tokenization
↓
数値的表現
↓
モデルによる計算
↓
次Tokenの予測・選択
↓
生成したTokenを次の処理へ
↓
繰り返す
↓
output
重要なのは、
- 人間の文章がそのままモデル内部を流れるわけではない
- TokenizationによってTokenとして扱える形へ変換される
- Transformerはモデルarchitectureの一種である
- autoregressiveな生成では次Tokenの生成を繰り返す
- Token選択にはSamplingやDecodingが関係し得る
- GenerationとSearch/Retrievalは同じではない
- この概念図から非公開backendを推測しない
という点です。
次の章では、こうしたモデルが、そもそもどのように準備されるのかをTrainingとInferenceの違いから見ていきます。