🧩 結論:「次の単語を当てるゲーム」を何十億回もやって、モデル全体の重みを調整していくこと
🧠 学習フェーズはこう進む:
① データを入力(例:人間の文章)
"The cat sat on the" → 正解: "mat"
② モデルは「mat」を予測してみる
- 現時点での重みを使って、
- 最終Softmaxの出力は例えば:
plaintextコピーする編集するmat: 0.23
table: 0.15
sofa: 0.10
banana: 0.01
③ 正解は “mat” → 予測がズレてたら「損失(Loss)」を計算
これが有名な「クロスエントロピー損失関数」:
plaintextコピーする編集するLoss = -log(モデルが"mat"と答えた確率) = -log(0.23)
④ 誤差(Loss)を全部の重みに逆流させて調整(逆伝播)
ここが最大のポイント:
誤差が「どこでズレたか?」を全層にさかのぼって伝え、
各重み(W_Q, W_K, W_V, FFN, W_vocabなど)を少しずつ調整する。
つまり:
- 「もっと ‘sat’ に注目すべきだったな」
- 「『on』は少し過剰に見てたな」
- 「W_vocab の ‘mat’ に近づくようにしよう」
というような**“意味的な修正”**が、行列の値として染み込む。
⑤ これを数兆トークン分、延々とくり返す
つまり:
- モデルは文脈の中で出る単語のパターンを圧縮学習して、
- 「この文脈ならこの語彙が正解っぽい」という判断力を獲得する
🔄 全体の流れを整理すると:
ステップ | 処理内容 |
---|---|
1. 入力 | 文章の一部を与える(例:”The cat sat on the”) |
2. 推論 | モデルが次の単語を予測(例:”mat”の確率) |
3. 損失計算 | 予測と正解のズレ(Loss)を計算 |
4. 誤差逆伝播 | 全層の重みを少しずつ修正(W_Q, W_K, FFNなど) |
5. 繰り返し | 数十億回くり返して「言語の感覚」を体得する |
☝️ 最後に要点を一言で言うなら:
Transformerの“学習”とは、
「次の単語を当てる」という単純タスクを、
莫大なデータと全層の重み調整で、
“意味の推論”までできるように昇華させること。