Transformer architecture — Transformerアーキテクチャ

From Systems analysis Wiki
Jump to navigation Jump to search

Transformerアーキテクチャは、2017年にGoogleの研究者らによって論文「Attention Is All You Need」[1]で発表されたニューラルネットワークアーキテクチャです。このアーキテクチャは自然言語処理(NLP)の分野に革命をもたらし、BERT、GPT、Geminiなど、現代のほとんどの大規模言語モデル(LLM)の基盤となっています。Transformerの主要な革新は自己アテンション(self-attention)機構であり、これによりモデルは入力データの各部分の重要度を重み付けし、RNNやLSTMに固有であった再帰的処理を廃止してシーケンスを並列に処理することが可能になりました。

歴史的背景と前提条件

2017年以前は、テキストなどのシーケンシャルデータを処理するための主要なアーキテクチャは、再帰型ニューラルネットワーク(RNN)とその改良版である長・短期記憶(LSTM)ネットワークでした。

Transformerによって対処されたRNN/LSTMの課題

  • 逐次処理の制約: RNNとLSTMはデータをトークンごとに処理するため、シーケンス内での並列化が不可能であり、大規模なデータセットでの学習が遅くなります。
  • 勾配消失・爆発問題: 長いシーケンスでは、多くのステップを経て逆伝播される勾配が消失または爆発する可能性があり、長期的な依存関係の学習が困難になります。
  • 長期的な依存関係: シーケンスの冒頭の情報が、終盤に到達するまでに失われる可能性があります。

Transformerのアプローチは、アテンション機構を優先して再帰的処理を完全に廃止することです。これにより、任意の位置間の依存関係のパス長が一定(O(1))となり、遠距離の依存関係のモデリングが容易になります。ただし、基本的な自己アテンションの実装は、シーケンス長に対して計算量が二乗(O(n2))になります[1][2]。勾配消失・爆発問題は「解消」されるわけではありませんが、残差接続、LayerNorm、および学習方法によって緩和されます。現代の実装では、学習時により安定しているPre-LayerNorm(Pre-LN)がしばしば採用されます[3]。

アーキテクチャと主要コンポーネント

オリジナルのTransformerアーキテクチャは、エンコーダとデコーダという2つの主要部分から構成されています。どちらのコンポーネントも、同一の層を積み重ねたスタックです(原論文ではN=6)[1]。

  • エンコーダ層の構造: (1)マルチヘッド・セルフアテンション(MHA)、(2)位置ごとのフィードフォワードネットワーク(FFN)。各サブレイヤーは残差接続とLayerNormで囲まれています[1]。
  • デコーダ層の構造: (1)マスク付き自己アテンション(因果マスクにより未来の位置へのアクセスを禁止)、(2)エンコーダの出力に対するクロスアテンション、(3)FFN。こちらも残差接続とLayerNormが使用されます[1]。

Attention Mechanism and Self-Attention - アテンション機構と自己アテンション

アテンション機構は、クエリ(Query)とキー(Key)の適合度によって決定される重みを用いて、値(Value)ベクトルの加重和を計算します。Transformerでは、スケール化ドット積アテンション(Scaled Dot-Product Attention)が使用されます。

Attention(Q,K,V)=softmax(QK⊤dk)V

ここでdkはキー/クエリの次元数です。dkで割ることにより、softmaxの飽和を防ぎます[1]。Q、K、Vが同じシーケンスから生成される場合、この機構は自己アテンション(self-attention)と呼ばれます。

Multi-Head Attention - マルチヘッドアテンション

単一の行列セット(WQ,WK,WV)の代わりに、h個の並列な「ヘッド」が使用されます。各ヘッドはQ,K,Vをより低い次元の部分空間に射影し、独立してアテンションを計算します。その後、結果が連結されて射影されます[1]。

MultiHead(Q,K,V)=Concat(head1,…,headh)WO,where headi=Attention(QWiQ,KWiK,VWiV).

推論を高速化するためのバリエーション:

  • MQA (Multi-Query Attention): すべてのヘッドが単一のキー/値を共有します。これにより、デコーディング時のKVキャッシュのサイズとトラフィックが大幅に削減されます[4]。
  • GQA (Grouped-Query Attention): MHAとMQAの中間的なアプローチで、複数のヘッドのグループがK/Vを共有します。MQAに近い速度でMHAに近い品質を実現します[5]。

Positional Encoding - 位置エンコーディング

self-attentionはトークンの順序に対して不変であるため、入力エンベディングに位置エンコーディングが追加されます。

  • オリジナルの正弦波エンコーディング(PE)[1]:
PE(pos,2i)=sin⁡(pos/100002i/dmodel),PE(pos,2i+1)=cos⁡(pos/100002i/dmodel).
  • 現代的な相対/回転エンコーディング:
    • RoPE (Rotary Position Embeddings) は、Q/Kベクトルの回転を通じて相対的な位置シフトを符号化します。多くの現代的なLLMで採用されています[6]。
    • ALiBi は、アテンションスコアに線形のペナルティを導入し、学習データよりも長いシーケンスへの外挿性能を向上させます[7]。

要素ごとのFFN、残差接続、正規化

エンコーダとデコーダの各層は、アテンションに加えて位置ごとのフィードフォワードネットワーク(FFN)を含んでいます。

FFN(x)=max⁡(0,xW1+b1)W2+b2.

各サブレイヤーの周りには残差接続(residual connections)とLayer Normalizationが使用されます: LayerNorm(x+Sublayer(x))。オリジナルではPost-LNが採用されていましたが[1]、現代のLLMでは学習の安定性を高め、長いウォームアップへの依存を減らすためにPre-LNがしばしば使用されます[3]。

発展と現代的なバリエーション

再帰型ニューラルネットワーク(RNN)やその発展形であるLSTMに基づく初期の手法は、テキストをトークンごとに逐次的に処理していました。このアプローチは言語の構造に直感的に合致していましたが、並列計算を困難にし、テキスト内で遠く離れた要素間の依存関係を検出することを複雑にするという大きな制約がありました。2017年、Googleの研究者グループが「Attention Is All You Need」という論文を発表しました。その中で彼らは新しいアーキテクチャ「Transformer」を提案しました。このモデルは、再帰型ニューラルネットワークの使用を初めて完全に廃止し、代わりに「アテンション」機構を採用しました。主な革新点は、アテンション機構によってTransformerが出力シーケンスの対応する単語を生成するために、入力シーケンスの各単語の重要性を評価できることでした。これにより、モデルはすべての単語を同時に処理できるようになりました。この並列処理能力により、はるかに大規模なモデルを膨大なデータ量で学習させることが可能となり、その結果、現代の大規模言語モデル(LLM)が誕生しました。

Transformerアーキテクチャは、大まかに3つのクラスに分類される多くのモデルの基盤となりました。

1. Encoder-only models - エンコーダのみのモデル

  • 例: BERT(およびRoBERTa、ALBERT)[8]。
  • 原理: 双方向コンテキストを用いたマスク付き言語モデリング(MLM)タスクによる事前学習。
  • 応用: 理解タスク(分類、NERなど)。

2. Decoder-only models - デコーダのみのモデル

  • 例: GPTシリーズ(GPT-1/2/3)[9][10]、LLaMA[11]、Claude。
  • 原理: 因果言語モデリング(CLM) — 次のトークンを予測。アテンションには因果マスクが適用されます[1]。
  • 応用: テキスト生成、対話、コード生成。

3. Encoder-decoder models - エンコーダ・デコーダモデル

  • 例: オリジナルのTransformer、T5、BART[1][12]。
  • 原理: エンコーダが入力の表現を構築し、デコーダが出力を生成し、エンコーダの特徴に対するクロスアテンションを利用します[1]。
  • 応用: seq2seqタスク(翻訳、要約など)。

4. マルチモーダルおよび代替アーキテクチャ

  • Vision Transformer (ViT) — 画像への応用(パッチへの分割)[13]。Swin Transformer — shifted windows を用いた階層的モデル[14]。
  • 長いシーケンスに対する代替案:
    • Mamba — 線形計算量を持つ選択的状態空間モデル(SSM)[15]。
    • RWKV — 並列学習と線形計算量の推論が可能なRNN風アーキテクチャ[16]。
    • ハイブリッド(例:Jamba): TransformerブロックとMambaブロックを交互に配置し、時にはMoEで補完されます[17]。

学習と最適化の技術

Transformerの有効性は、学習技術とインフラストラクチャに密接に関連しています。

  • 事前学習戦略: CLMとMLM。また、対照的およびデノイジング目的(ELECTRA、T5)[12]。
  • ファインチューニング技術 (Fine‑tuning):
    • 全パラメータの完全なファインチューニング。
    • パラメータ効率の良いファインチューニング (PEFT): LoRAは、ベースの重みを凍結したまま低ランクのアダプタを導入します[18]。
  • 振る舞いのアライメント: RLHF — 人間のフィードバックに基づく強化学習[19]。
  • 推論のためのシステム最適化: PagedAttention/vLLMは、KVキャッシュのページ管理により、サービングのスループットを向上させます。特に長いシーケンスや大きなバッチサイズで有用です[20]。

外部リンク

参考文献

  • Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
  • Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI Technical Report.
  • Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  • Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. arXiv:1910.10683.
  • Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.
  • Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. arXiv:2103.14030.
  • Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  • Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  • Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  • Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  • Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need (MQA). arXiv:1911.02150.
  • Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
  • Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention (vLLM). arXiv:2309.06180.
  • Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  • Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  • Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  • Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  • Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.

脚注

  1. ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
  2. ↑ Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  3. ↑ 3.0 3.1 Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  4. ↑ Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need. arXiv:1911.02150.
  5. ↑ Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
  6. ↑ Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  7. ↑ Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  8. ↑ Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  9. ↑ Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI.
  10. ↑ Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  11. ↑ Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  12. ↑ 12.0 12.1 Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. JMLR. arXiv:1910.10683.
  13. ↑ Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. ICLR. arXiv:2010.11929.
  14. ↑ Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV. arXiv:2103.14030.
  15. ↑ Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  16. ↑ Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  17. ↑ Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  18. ↑ Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  19. ↑ Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.
  20. ↑ Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention. arXiv:2309.06180.