LLMが文章を生成する仕組み

LLMが文章を生成する仕組み

執筆済 AILLM

これまでの要素をつなげて、全体像をまとめる。

流れ#

1. テキスト → [[トークナイザ]] → トークン列
2. トークン → [[埋め込み]] + [[位置情報]] → ベクトル列
3. Transformer 層を N 回:
     [[Self-Attention]] で文脈を混ぜる
     フィードフォワードで変換
4. 最終層 → 語彙サイズのロジット → softmax → 確率分布
5. [[サンプリング]] で 1 トークン選ぶ
6. 選んだトークンを入力に足して 1 へ戻る

各リンクは トークナイザ埋め込み位置情報Self-Attentionサンプリングを参照。

「理解している」のか#

やっていることは次トークンの確率予測だけ。 この事実は動かない。

一方で、次トークン予測を高精度で行うには 事実・文法・論理・文脈の把握が必要になる。 その結果として現れる能力を 「理解」と呼ぶかは、定義の問題になる。

確実に言えること。

言えること 言えないこと
統計的な規則性を高度に捉えている 内部で人間と同じ推論をしている
訓練データの分布を反映する 事実を検証している
文脈に応じた出力を作れる 自分の正しさを判断できる

幻覚 (hallucination)#

もっともらしいが誤った内容を生成する現象。

原因は目的関数にある。 モデルは「正しさ」ではなく 「訓練分布において尤もらしいか」を最適化している。 知らないことについても、 尤もらしい形の文章を生成してしまう

対策は外部から事実を与えること (RAGツール)、 あるいは出力を検証する仕組みを外側に置くこと。

このノート群でリンク検証を機械化しているのも同じ発想で、 出典が実在するかを人手や記憶に頼らず確かめるためにある。

参考文献#

ノート一覧を閉じる