1K Views
October 10, 24
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
大規模言語モデル入門 2024/10/10 第2章 Transformer 京都大学理学部 B1 ALAWIK Abdourrahman 0
アジェンダ 2.1 Transformerの概要 2.2 エンコーダ 2.3 エンコーダ・デコーダ 2.4 デコーダ 1
2.1 概要 注意機構を用いてトークン埋め込みに文脈などの情報を付与 1. エンコーダ・デコーダ:2種類の入力 2. エンコーダ:トークン埋め込み 3. デコーダ:トークン埋め込み → 一方から続くトークン → 文脈化トークン埋め込み → 続くトークン 2
2.1 概要 機械翻訳の例(デコード・エンコード) 3
2.2 エンコード 1. 入力トークン埋め込み 2. 位置符号 3. 自己注意機構 マルチヘッド注意機構 4. フィードワード層 5. 残差結合 6. 層正則化 4
2.2.1 入力トークン埋め込み 各トークンをD次元ベクトルに • 静的な情報 • 文脈などとは関係なく、そのトークンだけによって決まり • 複数の意味のあるトークンでも埋め込みが1つだけ (”こたつ”、”で”、”みかん”、”を”、”食べる”)→(𝒆こたつ、 𝒆で 、 𝒆みかん 、𝒆を、 𝒆食べる ) 全ての語彙の集合をVとしたとき、全ての埋め込みベクトルを集めた|V|×D次元行列 E 5
2.2.2 位置符号 トークンの埋め込みに位置の情報を加える 正弦関数 cos D次元のベクトル 文中の位置ⅰだけで決まる sin cos(𝑖) sin(𝑖) … 𝑖 2π波⾧ 1000 𝑖 1000 𝒑 = … cos sin 𝑖 1000 𝑖 1000π波⾧ 1000 6
2.2.2 位置符号 7
2.2.2 位置符号 8
2.2.2 位置符号 と の内積 |i-j|だけで決まる!!! 9
2.1 概要 と の内積 10
2.2.2 位置符号 特に、 入力: • 先ほどの定義では、 𝑷 = (𝒑 , 𝒑 , … )は一定行列だが、パラメータにして学習することもある ( こたつ 、 で 、 𝒆みかん + 𝒑 、 𝐷𝒆を 、 食べる ) 11
2.2.3 自己注意機構 入力トークン埋め込みごとに、他のトークンからの文脈情報を付与して、その意味を明確化 • マウス:動物 パソコンの入力機器 → トーケン埋め込みは両方の意味を含める • 「マウスをクリックする」:後者だけが欲しい! → 「クリック」の文脈を加えたい トークンBの文脈はトーケンAにとってはどれぐらい重要?? 自己注意機構 トークンAに付与する情報 = 全てのトークンからの情報の重要度に沿った重み付き和 12
2.2.3 自己注意機構 トークンAに付与する情報 = 全てのトークンからの情報の重要度に沿った重み付き和 • • • (トークン j の情報の i にとっての重要度) 13
2.2.3 自己注意機構 • バリュー • クエリ • キー 、 、 : (j の情報) (i の質問) (j の答え) :D×D 行列 (パラメータ) と の内積 → 類似度 14
2.2.4 マルチヘッド注意機構 同時に複数の注意機構 M回注意機構 (MがDの約数) m回目: ( ) 、 ( ) =𝑾 ( ) 𝒉 ( ) =𝑾 ( ) 𝒉 =𝑾 ( ) 𝒉 • 𝒗 • 𝒒 • 𝒌 ( ) ( ) ( 𝒒 → 表現力を高 ) 𝒌 ( ) ( 、 ( ) : 行列 (パラメータ) 3M個の 次元ベクトル ) / ( ( ) ∑ ( ) ( ) ( ) ) 15
2.2.4 マルチヘッド注意機構 ( ) ( ) ( ) M個の 次元ベクトル ( ) … ( ) 1個の 次元ベクトル 𝑊 :D×D次元行列 (パラメータ) 16
2.2.5 フィードワード層 2層の順伝播型ニューラルネットワーク = 多層パーセプトロン 𝒊 : 次元 : 次元 : : 次元 次元 、 → 全体のパラメータの2/3! f : 活性化関数(非線形関数) • relu(x) = max(0,x) • gelu(x) = x φ(x) (φ:正規分布の累積関数) Transformerの“記憶” 17
2.2.5 フィードワード層 18
2.2.6 残差結合 出力に入力を足す ( ) ( ) • 層ごとに2回:F が注意機構として、F がフィードフォワードとして 勾配消失・爆発問題を防、学習を安定に 19
2.2.7 層正規化 過剰に大きい値による学習の不安定化を防ぐため 入力ベクトルの要素の平均 入力ベクトルの要素の標準偏差 g、b (ゲイン、バイアス):D次元のベクトル • 表現力に繋がる • 1、0におくこともある 20
2.2.8 ドロップアウト 過学習を防ぐため 訓練の時:各要素を(1-p)の確率で0にする 少数の要素に過剰依存しないため 推論の時:各要素をp倍する 21
2.3 エンコーダ・デコーダ 機械翻訳: 1. 原言語の入力 → エンコーダ → 文脈化埋め込みベクトル 2. 目的言語でこれまで生成したものをデコーダ 3. エンコーダの出力 → マスク付け自己注意機構 → 交差注意機構 4. トークン出力分布の計算 22
2.3.3 注意機構のマスク処理 高速化のため、続くいくつかのトークンを並列で生成させる 後ろのトークンが前の方に影響を及ぼさないでほしい(学習が正しく行われるため) マスク:j>i のとき、自己注意機構における を-∞に( ( ∑ ) ( =0) ) -∞ -∞ -∞ -∞ -∞ -∞ 23
2.3.1 交差注意機構 • • • デコーダの埋め込み エンコーダの出力 24
2.3.2 トークンの出力分布の計算 入力及びこれまでの出力が与えられたときに、出力の続く言葉の確率分布 エンコーダ・デコーダの出力埋め込みベクトルと、入力トークン埋め込み行列の内積 を<s>などにすることが多い 25
2.4 デコーダ エンコーダの構造との違い: 1. 自己注意機構にマスク 2. 最後に出力分布を計算 26
おまけ Transformerのスケーリングについて Jonson-Lindenstrauss Lemma 参考:YouTube、3Blue1Brown 「How large language models work, a visual intro to transformers | Chapter 5, Deep Learning」 https://youtu.be/wjZofJX0v4M?si=6Q8xdwSRzCBtin85 「Attention in transformers, visually explained facts | Chapter 6, Deep Learning 」 https://youtu.be/eMlx5fFNoYc?si=qOqIN_ZFOyLbmC_6 「How might LLMs store facts | Chapter 7, Deep Learning」 https://youtu.be/9-Jl0dxWQs8?si=fhYzhoFG2QGIbOAZ 27