Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

3. 高速化とスケーリング技術

マルチヘッドアテンション(MHA)のメモリ課題

従来の Transformer が用いるマルチヘッドアテンション(Multi-Head Attention: MHA)では、Query(質問)、Key(鍵)、Value(値)のそれぞれに同じ個数のヘッドを用意します。 例えば、ヘッド数が 32 個であれば、Query、Key、Value すべてが 32 個のヘッドを持ちます。

推論時に過去トークンの Key と Value を保持する KV キャッシュは、コンテキスト長(文脈の長さ)や同時に処理するバッチ数が増えるにつれて急激に肥大化します。 例えば 70B モデルで 4096 トークン、さらに 32k、128k と長大な文章を処理しようとすると、モデル本体の重みとは別に何十ギガバイトもの GPU メモリが KV キャッシュだけで消費され、メモリ不足(OOM: Out Of Memory)の原因となります。

MQAとGQA(Grouped-Query Attention)の仕組み

この KV キャッシュの肥大化を解決するために開発されたのが、Multi-Query Attention(MQA)と Grouped-Query Attention(GQA)です。

  • MHA (Multi-Head Attention): 各 Query ヘッドごとに個別の Key/Value ヘッドが存在する(1対1対応)。表現力は高いが KV キャッシュのメモリ消費が最も大きい。

  • MQA (Multi-Query Attention): すべての Query ヘッドで「たった1組」の Key/Value ヘッドを共有する(多対1対応)。メモリ消費は最小になるが、モデルの表現力や回答精度が低下しやすい。

  • GQA (Grouped-Query Attention): 複数の Query ヘッドをグループ化し、グループごとに 1 つの Key/Value ヘッドを共有する(グループ対1対応)。例えば 32 個の Query ヘッドを 8 グループに分け、Key/Value ヘッドを 8 個にする。

LLaMA 2 の大型モデル(34B, 70B)や Llama 3 では、この GQA が標準採用されました。 MHA に迫る高い精度を維持しながら、KV キャッシュのメモリ消費量を $\frac{1}{4}$ から $\frac{1}{8}$ に削減し、より長い文脈と大きなバッチサイズを効率的に処理できます。

コンテキスト長の拡張とRoPE補間(RoPE Scaling)

初代 LLaMA の最大コンテキスト長は 2048 トークンでした。 しかし、論文や長文マニュアルの読解、プログラムコード全体の分析を行うには、より長い文脈の処理が求められます。

2048 を超える長さを扱うために、RoPE の回転角周波数を調整する「RoPE スケーリング(位置補間: Position Interpolation)」が考案されました。 位置番号を学習時の範囲(例えば 0 〜 2047)に収まるように一定割合で縮小(補間)して入力することで、少量の追加ファインチューニングだけで 8192 や 16384 トークン以上の長文を扱えるようになります。 Llama 3 では基底周波数(base frequency)を $10,000$ から $500,000$ へ引き上げるなどの工夫により、標準で 8k や 128k トークンの超長文脈処理を実現しています。

学習データセットの品質とスケーリング則

LLaMA の成功を支えた最大の要因の一つは、徹底的に精査された学習データセットです。 初代 LLaMA は、Common Crawl(Web クローリングデータ)、C4、GitHub、Wikipedia、Gutenberg(書籍)、arXiv(論文)、Stack Exchange など、すべて一般公開されているデータソースから収集されました。

単にデータを集めるだけでなく、重複排除(Deduplication)、低品質な文章のフィルタリング、個人情報のマスキングなどの品質クリーニングを徹底しました。 高品質なテキストを 1 兆から 2 兆トークン以上読み込ませることで、モデルサイズが比較的小さくても、より大きなモデルを凌駕する論理的推論力を獲得できることが示されました。

LLaMA 2 と Llama 3 への進化

LLaMA シリーズは世代を重ねるごとに急速に進化しています。

  • LLaMA (初代, 2023年2月): 研究用限定ライセンス。最大コンテキスト 2048 トークン。最大 1.4 兆トークン学習。MHA 採用。

  • Llama 2 (2023年7月): 月間アクティブユーザー 7 億人未満の企業に商用利用を開放。2 兆トークン学習。コンテキスト長 4096 トークン。70B に GQA 採用。安全性を高めた Llama-2-chat モデルも公式提供。

  • Llama 3 / 3.1 / 3.3 (2024年〜): 8B, 70B, 405B のラインナップ。15 兆トークン以上の高品質多言語データで学習。語彙数 128k の Tiktoken トークナイザー採用。全モデルで GQA 採用。最大コンテキスト 128k トークン。

次章では、初代 LLaMA の非商用ライセンスという壁を乗り越えるために生まれた、完全オープンな再現プロジェクト「OpenLLaMA」について見ていきます。