元記事はこちらです。段階的に要約をすることで、本や論文を早くて深く理解するためのメソッドを公開していく予定です。
難解論文を読んでみよう - AI要約読書法の紹介 vol.2
あたらしい脳科学と人工知能の教科書 (AI & TECHNOLOGY) [ 我妻 幸長 ]
第2段階:中程度の深さの要約(主要な概念の理解)
概要
第1段階でTransformerがRNN/CNNを注意機構に置き換えたことを理解しました。この第2段階では、Transformerがどのように実際に動作するかを説明します。そのアーキテクチャと、それを強力にする主要なメカニズムを探ります。
コアアーキテクチャ:エンコーダー・デコーダー構造
Transformerは、翻訳タスクで使用される古典的なエンコーダー・デコーダーパターンに従っています:
エンコーダー: 入力文(例:英語)を受け取り、単語間の意味と関係を捉えた豊かな内部表現に変換します。
デコーダー: エンコーダーの出力を受け取り、ターゲット文(例:ドイツ語)を一語ずつ生成します。
エンコーダーとデコーダーの両方は、積み重ねられた層(元の論文では6つの同一層)で構成されており、各層には特殊化されたサブコンポーネントが含まれています。
革新的なメカニズム:自己注意機構
自己注意機構(Self-Attention)はTransformerの心臓部です。これが何をするのかを見ていきましょう:
注意機構とは何か?
次の文を読むことを想像してください:「その動物は通りを横断しなかった。なぜならそれがとても疲れていたからだ。」
「それ」が何を指すかを理解するには、前の単語に注意を払う必要があります。自己注意機構は、モデルがまさにこれを行うことを可能にします—各単語について、文中の他のすべての単語を「見る」ことで、文脈と関係を理解できます。
自己注意機構の動作(簡略化)
各単語について、このメカニズムは:
3つのベクトルを作成: Query(何を探しているか?)、Key(何を含んでいるか?)、Value(どの情報を渡すべきか?)
類似度スコアを計算: 現在の単語のQueryを、他のすべての単語のKeyと比較
重み付き合計を計算: これらのスコアを使用して、他の単語からの関連情報を組み込んだ新しい表現を作成
主要な公式:
Attention(Q, K, V) = softmax(QK^T / √d_k)V
√d_kというスケーリング係数は、次元数が大きい場合の数値的不安定性を防ぎます。
なぜこれが強力なのか
定数パス長: 任意の2つの単語が、距離に関係なく、単一の操作で直接相互作用できる
並列化: 順次処理するRNNとは異なり、すべての単語関係を同時に計算できる
長距離依存関係: モデルは遠く離れた単語間の関係を簡単に捉えられる(例:長い文の中での主語と動詞の一致)
マルチヘッド注意機構:複数の側面への注意
注意を一度だけ計算する代わりに、Transformerはマルチヘッド注意機構を使用します—並列に複数回(元のモデルでは8つの「ヘッド」)注意を実行します。
なぜ複数のヘッドが必要か? 異なるヘッドが異なるタイプの関係に焦点を当てることができます:
あるヘッドは構文的関係(主語-動詞)に焦点を当てるかもしれません
別のヘッドは意味的関係(同義語、関連概念)を捉えるかもしれません
また別のヘッドは位置的関係を追跡するかもしれません
すべてのヘッドからの出力は連結され、変換されて最終的な表現が作成されます。
位置エンコーディング:単語の順序を保持
問題点: 自己注意機構には単語の順序に関する固有の感覚がありません。追加情報なしでは、「犬が人を噛む」と「人が犬を噛む」は同じように処理されます。
解決策: 処理の前に、Transformerは各単語の表現に位置エンコーディングを追加します。これらは、シーケンス内の各単語の位置をエンコードする特別なパターン(サインとコサイン関数を使用)です。
これにより、モデルは以下を区別できます:
単語1: "The"(位置0)
単語2: "cat"(位置1)
単語3: "sat"(位置2)
詳細な完全アーキテクチャ
エンコーダー層の構造
6つのエンコーダー層のそれぞれには以下が含まれます:
マルチヘッド自己注意機構: 各単語が入力文のすべての単語に注意を向けることを可能にする
フィードフォワードネットワーク: 2つの線形変換とReLU活性化関数で各位置を独立に処理
残差接続 + 層正規化: 訓練の安定性と勾配の流れを助ける
デコーダー層の構造
6つのデコーダー層のそれぞれには以下が含まれます:
マスク付きマルチヘッド自己注意機構: 各出力単語が以前の出力単語に注意を向けることを可能にする(ただし未来の単語には向けない。これは自己回帰特性を保持するため)
エンコーダー・デコーダー注意機構: 各出力単語がすべての入力単語に注意を向けることを可能にする(これが翻訳が元の文を「見る」方法)
フィードフォワードネットワーク: エンコーダーと同じ
残差接続 + 層正規化: エンコーダーと同じ
訓練の詳細
データセット:
英独: 450万文ペア
英仏: 3600万文ペア
ハードウェア:
8つのNVIDIA P100 GPU
基本モデルは12時間で訓練(100,000ステップ)
大規模モデルは3.5日で訓練(300,000ステップ)
主要な技術:
バイトペアエンコーディング: より良い語彙カバレッジのために単語をサブワード単位に分割
Adamオプティマイザー: カスタム学習率スケジュール(増加してから減少)を使用
ドロップアウト: 正則化(過学習の防止)のため
ラベルスムージング: モデルの確信度を下げることで、逆説的に精度を向上
従来のアプローチとの比較
計算複雑度
モデルタイプ 層ごとの複雑度 逐次操作 最大パス長 自己注意機構 O(n²·d) O(1) O(1) 再帰型 O(n·d²) O(n) O(n) 畳み込み型 O(k·n·d²) O(1) O(log_k(n))
ここで:
n = シーケンス長
d = 表現次元
k = カーネルサイズ
主要な利点:
自己注意機構は n < d の場合により高速(文では典型的)
自己注意機構は定数の逐次操作(並列化に最適)
自己注意機構は定数の最大パス長(長距離依存関係の学習に最適)
主要な結果
英独翻訳:
Transformer(大規模): 28.4 BLEU(従来の最高: 26.4)
改善: +2.0 BLEUポイント
訓練コスト: 従来のアプローチの一部
英仏翻訳:
Transformer(大規模): 41.8 BLEU(従来の最高: 41.0)
改善: +0.8 BLEUポイント
訓練時間: 8つのGPUで3.5日
英語構文解析:
タスク固有の調整なしで競争力のある結果を達成
翻訳以外でのモデルの汎用性を実証
なぜこれがすべてを変えたのか
効率性: RNNベースのモデルより桁違いに速く訓練
有効性: 複数のタスクで最先端の結果を達成
スケーラビリティ: アーキテクチャがより多くのデータと計算でうまくスケール
汎用性: 多くの異なるNLPタスクに適用可能であることが証明
Transformerの成功は以下につながりました:
BERT(2018年): 理解タスク用のエンコーダーのみのTransformer
GPTシリーズ(2018年〜現在): 生成タスク用のデコーダーのみのTransformer
T5、BARTなど: 様々なTransformerベースのアーキテクチャ
GPT-4、Claude、Geminiなどの最新LLMはすべてTransformerの基盤の上に構築
理解度チェックポイント
第2段階の後、以下を理解しているはずです:
✅ エンコーダー・デコーダーアーキテクチャ
✅ 自己注意機構がどのように機能し、なぜ強力なのか
✅ マルチヘッド注意機構の役割
✅ 位置エンコーディングが単語の順序をどのように保持するか
✅ エンコーダーとデコーダーの両方の完全な層構造
✅ なぜTransformerがRNN/CNNより効率的なのか
✅ このアーキテクチャが現代のAIに与えた影響
欠けているもの: 深い数学的詳細、特定の実装選択、広範な実験分析
次のステップ: 第3段階では、実装や更なる研究のために専門家が理解する必要がある技術的詳細、数学的定式化、微妙な設計決定について深く掘り下げます。
第3段階:詳細な技術要約(実装のための深掘り)
概要
この最終段階では、Transformerアーキテクチャのあらゆる側面を理解する必要がある研究者や実装者向けに、包括的な技術的詳細を提供します。数学的定式化、アーキテクチャの決定、訓練戦略、実験的洞察をカバーします。
1. モデルアーキテクチャ:完全な仕様
1.1 エンコーダースタック
エンコーダーはN=6の同一層で構成されます。各層には2つのサブ層があります:
サブ層1:マルチヘッド自己注意機構
入力次元: d_model = 512
注意ヘッド数: h = 8
ヘッドあたりの次元: dk = dv = d_model / h = 64
サブ層2:位置ごとフィードフォワードネットワーク
内部次元: d_ff = 2048
活性化関数: ReLU
公式: FFN(x) = max(0, xW₁ + b₁)W₂ + b₂
正則化技術:
各サブ層の周囲の残差接続
層正規化: LayerNorm(x + Sublayer(x))
ドロップアウト率: P_drop = 0.1、以下に適用:
各サブ層の出力(残差加算前)
注意重み
位置エンコーディング + 埋め込み
1.2 デコーダースタック
デコーダーもN=6の同一層で構成されます。各層には3つのサブ層があります:
サブ層1:マスク付きマルチヘッド自己注意機構
位置が後続の位置に注意を向けることを防ぐ
マスキングは、不正な接続の注意ロジットを-∞に設定することで実装
生成中の自己回帰特性を保証
サブ層2:マルチヘッドエンコーダー・デコーダー注意機構
クエリ(Q)は前のデコーダー層から来る
キー(K)と値(V)はエンコーダー出力から来る
デコーダーが入力シーケンス全体に注意を向けることを可能にする
サブ層3:位置ごとフィードフォワードネットワーク
エンコーダーのFFNと同じ構造
すべてのサブ層は残差接続と層正規化を使用します。
2. 注意機構:数学的詳細
2.1 スケーリング付き内積注意
公式:
Attention(Q, K, V) = softmax(QK^T / √d_k)V
ステップバイステップの計算:
注意スコアを計算: S = QK^T(形状: [seqlenq, seqlenk])
√dkでスケーリング: Sscaled = S / √d_k
オプションのマスクを適用: Smasked = Sscaled + mask(maskは不正な位置に対して-∞)
注意重みを計算: A = softmax(Smasked)(形状: [seqlenq, seqlen_k])
ドロップアウトを適用: A_drop = Dropout(A, p=0.1)
重み付き値を計算: Output = Adrop · V(形状: [seqlenq, dv])
なぜ√d_kでスケーリング?
d_kが大きい場合、内積が大きくなる
例:QとKの成分が平均0、分散1の場合、QK^Tの分散はd_k
大きな値はsoftmaxを極端に小さい勾配の領域に押し込む
スケーリングは妥当な値を維持:分散が1になる
加法的注意との比較:
加法的: attention(q, k) = v^T · tanh(Wq·q + Wk·k)
内積: attention(q, k) = q^T · k / √d_k
両方とも理論的複雑度は同じ: O(d_k)
内積は最適化された行列乗算により実際には高速
小さいd_kでは両方とも同様に動作
大きいd_kでは、加法的がスケーリングなし内積より優れる
2.2 マルチヘッド注意
目的: モデルが異なる表現部分空間からの情報に共同で注意を向けることを可能にする。
公式:
MultiHead(Q, K, V) = Concat(head₁, ..., head_h)W^O
ここで head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)
パラメータ行列:
Wi^Q ∈ ℝ^(dmodel × d_k): ヘッドiのクエリ射影
Wi^K ∈ ℝ^(dmodel × d_k): ヘッドiのキー射影
Wi^V ∈ ℝ^(dmodel × d_v): ヘッドiの値射影
W^O ∈ ℝ^(h·dv × dmodel): 出力射影
論文の次元:
d_model = 512(モデル次元)
h = 8(ヘッド数)
dk = dv = 64(ヘッドあたりの次元)
合計次元: h × dv = 8 × 64 = 512 = dmodel
計算コスト:
次元の削減(dk = dmodel/h)により、総コストは完全次元の単一ヘッド注意と同様
ヘッドあたりのコスト: O(seqlen² × dk)
総コスト: O(h × seqlen² × dk) = O(seqlen² × dmodel)
利点:
異なるヘッドが異なるタイプの依存関係を学習:
あるヘッドは近傍の位置に焦点(局所的構文)
あるヘッドは遠い位置に焦点(長距離依存関係)
あるヘッドは特定の言語現象に特化
注意の可視化からの経験的証拠は明確な特化を示す
2.3 モデルにおける注意の応用
1. エンコーダー自己注意
Q = K = V = 前のエンコーダー層からの出力
各位置が前の層のすべての位置に注意を向ける
すべての入力単語間の関係を捉えることを可能にする
2. デコーダーマスク付き自己注意
Q = K = V = 前のデコーダー層からの出力
マスキングは未来の位置への注意を防ぐ
訓練中の自己回帰特性を維持するために不可欠
3. エンコーダー・デコーダー注意
Q = 前のデコーダー層からの出力
K = V = 最終エンコーダー出力
各デコーダー位置がすべての入力位置に注意を向けることを可能にする
従来のseq2seq注意機構と同様
3. 位置ごとフィードフォワードネットワーク
アーキテクチャ:
FFN(x) = max(0, xW₁ + b₁)W₂ + b₂
パラメータ:
W₁ ∈ ℝ^(dmodel × dff) ここで d_ff = 2048
b₁ ∈ ℝ^d_ff
W₂ ∈ ℝ^(dff × dmodel)
b₂ ∈ ℝ^d_model
主要な特性:
各位置に対して個別かつ同一に適用
層内のすべての位置で同じパラメータ
層間では異なるパラメータ
間にReLUを挟んだ2つの1×1畳み込みとして見ることができる
計算複雑度:
位置あたり: O(dmodel × dff + dff × dmodel) = O(2 × dmodel × dff)
長さnのシーケンス: O(n × dmodel × dff)
dmodel=512、dff=2048の場合:モデルのパラメータの大部分
4. 位置エンコーディング
4.1 正弦波位置エンコーディング
問題: 自己注意は順列不変;単語の順序を知らない。
解決策: 入力埋め込みに位置情報を追加。
公式:
PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
ここで:
pos = シーケンス内の位置(0, 1, 2, …)
i = 次元インデックス(0, 1, 2, …, d_model/2 - 1)
偶数次元(2i)はサインを使用
奇数次元(2i+1)はコサインを使用
特性:
各次元は正弦波に対応
波長は2πから10000·2πまでの幾何級数を形成
任意の固定オフセットkに対して、PE(pos+k)はPE(pos)の線形関数として表現可能
これによりモデルは相対位置による注意を簡単に学習できる
数学的正当化:
PE(pos+k, 2i) = sin((pos+k) / 10000^(2i/d_model))
= sin(pos/10000^(2i/d_model))·cos(k/10000^(2i/d_model))
+ cos(pos/10000^(2i/d_model))·sin(k/10000^(2i/d_model))
これはPE(pos+k)がPE(pos)の線形結合であることを示し、重みはkのみに依存。
4.2 学習済み vs 正弦波埋め込み
実験(表3、行E):
正弦波: 25.8 BLEU(開発)
学習済み: 25.7 BLEU(開発)
ほぼ同一の性能
なぜ正弦波を選ぶ?
学習すべき追加パラメータなし
訓練で見た以上の長いシーケンスにも一般化可能
固定関数により訓練データより長いシーケンスでのテストが可能
5. 埋め込みとパラメータ共有
5.1 トークン埋め込み
入力トークンと出力トークンは次元d_model = 512のベクトルに変換
この変換に学習済み埋め込み行列を使用
5.2 重み共有
埋め込みが使用される3箇所:
入力(エンコーダー)埋め込み
出力(デコーダー)埋め込み
デコーダーのプレsoftmax線形変換
共有スキーム:
同じ重み行列を以下で共有:
入力埋め込み
出力埋め込み
プレsoftmax線形層
埋め込み層では、重みに√d_modelを掛ける
利点:
総パラメータ数を削減
一貫した表現を促進
[Press & Wolf, 2016]のアプローチと同様
6. 訓練体制
6.1 データとバッチング
WMT 2014 英独:
約450万文ペア
共有語彙でバイトペアエンコーディング(BPE)
語彙サイズ: 約37,000トークン
WMT 2014 英仏:
3600万文
ワードピース語彙
語彙サイズ: 32,000トークン
バッチング戦略:
文は近似シーケンス長でバッチ化
各バッチには約25,000ソーストークンと約25,000ターゲットトークンを含む
動的バッチングにより効率的なGPU利用を保証
6.2 オプティマイザ構成
Adamオプティマイザパラメータ:
β₁ = 0.9
β₂ = 0.98
ε = 10⁻⁹
学習率スケジュール:
lrate = d_model^(-0.5) · min(step_num^(-0.5), step_num · warmup_steps^(-1.5))
ここでwarmup_steps = 4000
スケジュールの動作:
最初の4000ステップで線形に増加
その後、ステップ数の逆平方根に比例して減少
これはウォームアップ中にLRを増加させ、その後減少させることに対応
根拠:
ウォームアップは初期訓練の不安定性を防ぐ
減衰は後期訓練の収束を助ける
6.3 正則化技術
1. 残差ドロップアウト(P_drop = 0.1)
各サブ層の出力に適用(残差加算前)
埋め込みと位置エンコーディングの合計に適用
2. ラベルスムージング(ε_ls = 0.1)
ハードターゲット(0または1)の代わりに、ソフトターゲットを使用
公式: qi = (1 - εls) · yi + εls / |V|
ここでy_iは真のラベル、|V|は語彙サイズ
パープレキシティを悪化させる(モデルがより不確実になる)
精度とBLEUスコアを改善
モデルが予測に過度に自信を持つことを防ぐ
6.4 ハードウェアと訓練時間
基本モデル:
8つのNVIDIA P100 GPU
訓練ステップあたり約0.4秒
合計100,000ステップ
総訓練時間: 約12時間
パラメータ: 6500万
大規模モデル:
8つのNVIDIA P100 GPU
訓練ステップあたり約1.0秒
合計300,000ステップ
総訓練時間: 3.5日
パラメータ: 2億1300万
7. 実験結果と分析
7.1 機械翻訳性能
英独(WMT 2014):
モデル BLEU 訓練コスト ByteNet 23.75 - Deep-Att + PosUnk 39.2(アンサンブル) - GNMT + RL 24.6 - ConvS2S 25.16 9.6 × 10¹⁹ FLOPs MoE 26.03 2.0 × 10¹⁹ FLOPs Transformer(基本) 27.3 3.3 × 10¹⁸ FLOPs Transformer(大規模) 28.4 2.3 × 10¹⁹ FLOPs
英仏(WMT 2014):
モデル BLEU 訓練コスト Deep-Att + PosUnk 41.0(アンサンブル) - GNMT + RL 39.92 1.4 × 10²⁰ FLOPs ConvS2S 40.46 1.5 × 10²⁰ FLOPs MoE 40.56 5.0 × 10¹⁹ FLOPs Transformer(大規模) 41.8 1.2 × 10²⁰ FLOPs
主要な観察:
基本モデルは訓練コスト1/4未満で以前のすべての単一モデルを上回る
大規模モデルは両タスクで新しい最先端を達成
BLEUポイントあたりの訓練コストが大幅に低い
7.2 モデルバリエーション(アブレーション研究)
表3の英独開発セットでの実験:
(A)注意ヘッド数の変化:
ヘッド d_k d_v BLEU パラメータ 1 512 512 24.9 65M 4 128 128 25.5 65M 8 64 64 25.8 65M 16 32 32 25.8 65M 32 16 16 25.4 65M
発見: 単一ヘッド注意は0.9 BLEU悪い。ヘッドが多すぎる(32)と品質も低下。
(B)注意キーサイズの削減:
d_k BLEU パラメータ 16 25.1 58M 32 25.4 60M
発見: 小さいキーは性能を低下させる。互換性の判定には十分な容量が必要であることを示唆。
(C)モデルサイズの変化:
d_model d_ff BLEU パラメータ 256 1024 24.5 28M 512 2048 25.8 65M 1024 4096 26.0 168M
発見: 予想通り、大きいモデルの方が良い。
(D)ドロップアウトの変化:
ドロップアウト BLEU 0.0 24.6 0.1 25.5 0.2 25.5
発見: ドロップアウトは過学習を避けるために重要。
7.3 英語構文解析
設定:
タスク: 英文を構成木に解析
データセット: Penn Treebank(WSJ)、約40K訓練文
半教師あり: 高信頼コーパスから+1700万文
d_model=1024の4層transformer
結果:
モデル WSJ 23 F1 Vinyals et al. (2014) 88.3 Luong et al. (2015) 93.0 Dyer et al. (2016) 91.7 Transformer(WSJのみ) 91.3 Luong et al. (2015) 半教師あり 93.0 Transformer(半教師あり) 92.7 RNN Grammar (Dyer et al. 2016) 93.3
主要な発見:
タスク固有の調整なしで競争力のある性能
翻訳以外への一般化を実証
特化した解析モデルをわずかに下回るのみ
8. 計算複雑度分析
8.1 複雑度の比較
論文の表1:
層タイプ 層あたりの複雑度 逐次操作 最大パス長 自己注意 O(n²·d) O(1) O(1) 再帰型 O(n·d²) O(n) O(n) 畳み込み O(k·n·d²) O(1) O(log_k(n)) 自己注意(制限付き) O(r·n·d) O(1) O(n/r)
ここで:
n = シーケンス長
d = 表現次元
k = カーネル幅(畳み込み)
r = 制限された近傍サイズ
8.2 いつ自己注意が高速か?
自己注意 vs 再帰型:
自己注意: O(n²·d)
再帰型: O(n·d²)
n < dの場合、自己注意が高速
機械翻訳の典型的な値:
文の長さ: n ≈ 30-100トークン
モデル次元: d ≈ 512-1024
したがって: n < dは通常真
実際には自己注意が高速
8.3 制限付き自己注意
非常に長いシーケンスの場合:
各位置の周囲のサイズrの近傍に注意を制限
複雑度をO(r·n·d)に削減
最大パス長をO(n/r)に増加
効率とグローバルコンテキストのトレードオフ
9. 注意の可視化と解釈可能性
9.1 注意ヘッドは何を学習するか?
論文からの観察(付録の可視化):
例の動作:
構文的注意: あるヘッドは構文構造に注意を向ける
ヘッドが主語-動詞関係を追跡
ヘッドが目的語-動詞依存関係に焦点
位置的注意: あるヘッドは相対位置に基づいて注意を向ける
ヘッドが近傍のトークンに注意(局所的コンテキスト)
ヘッドが特定のオフセットに注意
意味的注意: あるヘッドは意味的関係を捉える
ヘッドが関連概念をグループ化
ヘッドが照応解決を追跡(「それ」→「動物」)
9.2 解釈可能性の利点
個々の注意ヘッドが異なるタスクを実行
多くが構文的・意味的構造に関連する動作を示す
この特化は訓練から自然に現れる
言語構造に対する明示的な教師なしで実現
10. 実装上の考慮事項
10.1 主要な実装詳細
初期化:
重みにはXavier/Glorot初期化
バイアス項はゼロに初期化
推論:
ビームサイズ4のビームサーチ
長さペナルティ α = 0.6
最大出力長: input_length + 50
可能な場合は早期停止
メモリ最適化:
非常に深いモデルの勾配チェックポイント
混合精度訓練(FP16/FP32)
10.2 よくある落とし穴
注意スコアを√d_kでスケーリングし忘れる
softmaxで勾配消失につながる
訓練の安定性に重要
デコーダーでの誤ったマスキング
未来の位置への注意を防ぐ必要がある
ロジットをゼロではなく-∞に設定してマスク
位置エンコーディング:
最初の層の前に埋め込みに追加
合計にドロップアウトを適用
学習率スケジュール:
ウォームアップは安定性に重要
初期LRが高すぎると発散を引き起こす
11. 影響と遺産
11.1 即座の影響
1年以内(2017-2018):
BERT(2018): 双方向エンコーダー表現
GPT(2018): 生成事前訓練transformer
NLP研究での大規模な採用
11.2 長期的影響
アーキテクチャが以下の基盤となった:
言語モデル(GPTシリーズ、LLaMAなど)
Vision transformers(ViT、2020)
マルチモーダルモデル(CLIP、Flamingo、GPT-4)
タンパク質折り畳み(AlphaFoldが注意を使用)
時系列予測
推薦システム
11.3 この成功を可能にした主要なイノベーション
原始的操作としての自己注意
再帰を完全に置き換え
並列訓練を可能に
マルチヘッド注意
異なる表現部分空間への注意を可能に
計算オーバーヘッドなしでモデル容量を増加
位置エンコーディング
位置情報へのエレガントな解決策
追加パラメータ不要
層正規化 + 残差接続
深いモデルの訓練を可能に
勾配の流れに重要
効率的な実装
GPUで高度に最適化された行列演算
シーケンス位置間の並列化
12. 理解度チェックポイント
第3段階の後、以下ができるようになっているはずです:
✅ Transformerアーキテクチャをゼロから実装
✅ すべての数学的詳細と設計選択を理解
✅ 論文の実験を再現
✅ 各コンポーネントがなぜ必要かを説明
✅ 計算トレードオフを理解
✅ 歴史的重要性と影響を評価
✅ 最新LLMがこの基盤の上にどう構築されているかを認識
あなたは今、以下の準備ができています:
フォローアップ論文(BERT、GPTなど)を読んで理解
カスタムTransformerベースのアーキテクチャを実装
Transformerモデルをデバッグと最適化
この分野の研究に貢献
さらなる学習のための参考文献
必読のフォローアップ論文:
BERT: Pre-training of Deep Bidirectional Transformers (Devlin et al., 2018)
Language Models are Unsupervised Multitask Learners (GPT-2, Radford et al., 2019)
Language Models are Few-Shot Learners (GPT-3, Brown et al., 2020)
An Image is Worth 16x16 Words (ViT, Dosovitskiy et al., 2020)
実装リソース:
公式コード: github.com/tensorflow/tensor2tensor
注釈付き実装: The Annotated Transformer (Harvard NLP)
PyTorchチュートリアル: pytorch.org/tutorials/beginner/transformer_tutorial.html
理論:
Formal Algorithms for Transformers (Phuong & Hutter, 2022)
Attention is Not All You Need (Dong et al., 2021) - 批判的分析