本記事は、松尾・岩澤研究室「大規模言語モデル講座 基礎編」で学んだ内容をもとに、講義内容を自分なりに整理した学習メモとして、自分の言葉で説明できるようになることを目的としたまとめです。
今回は第3回講義「事前学習(Transformer)」を題材に、以下の3点を説明できることを目標としています。
・言語モデルにおける Transformer の位置づけ
・LLMで主流となっている Transformer のモデル構造
・LLMの事前学習のパイプライン
言語モデルにおける Transformer の位置づけ
現在の大規模言語モデル(LLM)のほとんどは、Transformer を基盤としています。
この章では、Transformer 登場以前の言語モデルとその課題を振り返り、なぜ Transformer が標準になったのかを整理します。
Transformer 以前:RNN 型言語モデル
Transformer 以前、ニューラル言語モデルの主流は RNN(Recurrent Neural Network)に基づくモデルでした。
代表的なものとして Seq2Seqがあり、機械翻訳や要約などで広く利用されていました。
RNN は単語列を時系列データとして順番に処理し、過去の情報を内部状態に保持しながら次の出力を計算します。この構造には、言語を扱ううえでいくつかの本質的な課題がありました。
RNN の課題
課題①:長文を扱えない
Seq2Seq では、入力文全体の情報を 固定長ベクトル に圧縮します。そのため、
・文が長くなるほど情報が失われやすい
・離れた単語同士の関係(長距離依存性)を捉えにくい
という問題がありました。特に長文になると性能が大きく劣化します。
課題②:学習が不安定かつ低速
RNN は時系列方向に誤差逆伝播を行うため、
・勾配消失・勾配爆発が起きやすい
・時系列処理のため計算を並列化できない
という構造的制約を持っていました。
この点は、大規模データ・大規模モデルを扱う際の大きなボトルネックになります。
Transformer は何を解決したのか
Transformer は、RNN が前提としていた 「時系列処理」そのものを見直した アーキテクチャです。
中心に据えられているのが アテンション機構(Self-Attention) です。
Self-Attention により、各単語は文中のすべての単語を直接参照できます。これにより、
・単語間の距離に依存せず関係性を捉えられる
・長距離依存性を自然に扱える
ようになりました。
さらに、時系列処理が不要になったことで、
・誤差逆伝播のステップ数が単語数に依存しない
・勾配が安定しやすい
・GPU を用いた並列学習が可能
となり、大規模学習に適した構造が実現しました。
Transformer は、RNN が抱えていた課題を同時に解決したことで、言語モデルの設計思想を転換させた中核技術と位置づけられます。
LLMで主流となっている Transformer のモデル構造
続いて、LLM で実際に使われている Transformer のモデル構造を見ていきます。
以下は、Transformerのモデルアーキテクチャを簡略化して表した図になります。
Transformer の全体構造
Transformer は元々、
・エンコーダー
・デコーダー
の2つのブロックから構成されるモデルとして提案されました。
一方、現在の LLM(GPT 系など)では、デコーダーのみで構成された Transformer が主流です。
これは、「これまでの文脈から次のトークンを予測する」という言語モデルの目的において、デコーダー構造だけで十分な表現力を持つためです。
Transformer デコーダーの構成要素
以下では、入力から出力までの流れに沿って、各構成要素の役割を整理します。
Embedding:単語をベクトルに変換する
まず、入力テキストは Transformer へ入力される前に、以下の処理が行われます。
・テキストをトークンに分割
・各トークンを Embedding ベクトルに変換
・Positional Encoding を足し合わせる
Embedding によって単語の意味がベクトルで表現され、Positional Encoding によって単語の順序情報が付与されます。
これにより Transformer は、「意味」と「位置」を同時に扱えるようになります。
Multi-Head Attention:文脈を考慮した表現への変換
Transformer の中核となるのが Multi-Head Attentionです。
Attention 機構では、各トークンが他のすべてのトークンとの関係性を参照し、文脈を考慮した新しい表現に変換します。
Multi-Head Attention では、この処理を複数の Head で並列に行います。
その結果、文法的・意味的など、異なる観点からの関係性を同時に捉えることができます。
Feed Forward:知識を蓄え、出力を合成する
Attention の後には Feed Forward Network(FFN) が続きます。
この層では、Attentionで得られた表現からパターンを抽出し出力に必要な表現へと変換します。
中間層の次元が大きく、多くのパラメータが集中しており、
Transformer が語彙的・意味的な知識を蓄える主要な場所と考えられています。
Add & Norm:学習を安定させる仕組み
各ブロックには以下の補助的な仕組みが組み込まれています。
Add(残差接続)
入力を出力に足し合わせ、深い層でも勾配が伝わりやすくする
Norm(Layer Normalization)
出力を正規化し、学習を安定させる
これらにより、Transformer は非常に深いモデルとして学習可能になっています。
出力層:次のトークンを予測する
最終的に Transformer は、各トークン位置における語彙全体の確率分布を出力します。
ここで Softmax 関数 が用いられ、「次に出るトークン」が確率として得られます。
LLM はこの予測を繰り返すことで文章を生成します。
LLMの事前学習パイプライン
最後に、LLM がどのような流れで事前学習されるのかを整理します。
事前学習の全体フロー
LLMの事前学習は、大きく次の4段階に分かれます。
・データの収集
・データの前処理
・訓練(Pretraining)
・評価
データの収集
事前学習では、主に Web からの大規模クロールデータを中心に、
記事・公開文書・フォーラム・コードなど、非常に多様なテキストデータが収集されます。
この段階ではデータ量を最大化することが重視されます。
データの前処理
収集したデータに対して、以下の前処理が行われます。
・Quality Filtering:低品質なテキストの除去
・De-duplication:重複データの削除
・Privacy Reduction:個人情報の除去・マスク
・Tokenization:トークン化と数値化
この工程は、LLMの品質を大きく左右する重要なステップです。
訓練:Next Token Prediction
事前学習では、これまでのトークン列から次のトークンを予測する Next Token Prediction タスクを学習します。
損失関数には 交差エントロピー が用いられ、予測と正解の差が小さくなるようにパラメータが更新されます。
一般的に、事前学習は1 epoch のみ 行われます。
データ規模が非常に大きいため、1周するだけで十分な多様性を学習でき、過学習も防げるためです。
評価
学習中は、Validation データに対する 交差エントロピー損失(Validation Loss) を監視します。
さらに、事前学習後のモデルは、質問応答・要約・翻訳・推論タスクなどの下流タスクで評価され、汎用的な言語能力が獲得できているかが確認されます。
まとめ
冒頭で掲げた3つの目標に沿って、Transformer と LLM の全体像を構造・学習プロセスの両面から整理しました。
・Transformer は RNN の課題を解決し、言語モデルにおける中核的な位置づけを担っている
・LLM で主流となっている Transformer は、Embedding・Attention・FFN を積み重ねたデコーダー構造を持つ
・LLM は大規模データを用いた事前学習パイプラインを通じて、汎用的な言語能力を獲得する
本記事が、Transformer と LLM を理解するための全体像整理の一助になれば幸いです。
