Weitere ähnliche Inhalte Ähnlich wie transformer解説~Chat-GPTの源流~ (20) transformer解説~Chat-GPTの源流~6. 単純な線形変換()
𝑦 = 𝐴𝑐𝑡𝑖𝑣𝑎𝑡𝑒(𝑥𝑊 + 𝑏)
(以降こいつをLinearって呼びます)
Øこいつの重ね方に工夫が生まれる
Ø𝑊, 𝑏の値をよしなに調整するのが学習
6
𝑥
𝑊
𝑏
Activate
Func
etc.
𝑦
非線形性を生み、
表現力が向上
*
15. Transformer
並列性の高い計算フローを持つ
Encoder-Decoder型DNN
主要なパーツ
• Positional Encoding
• Feed-Forward Network
• Layer Normalization
• Multi-Head Attention
15
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
Linear
softmax
Output Embedding
+
+
+
〜
Input Embedding
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Outputs
Inputs
Output Probabilities
+
Layer Norm
N x
x N
16. まずは超ざっくり⾒る
1. 入力文をEncode
2. 出力済の文と1の結果から、
次単語の確率分布を生成
3. ビームサーチで次単語確定、
出力済の文に追加
4. 2に戻る
16
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Output Probabilities
+
Layer Norm
Encoder
Decoder
I am a boy .
⼊⼒⽂の意味
私は
男の子 男性 女の子 犬
80% 10% 6% 4%
17. Transformer
主要なパーツ
• Positional Encoding
• Feed-Forward Network
• Layer Normalization
• Multi-Head Attention
17
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
Linear
softmax
Output Embedding
+
+
+
〜
Input Embedding
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Outputs
Inputs
Output Probabilities
+
Layer Norm
N x
x N
19. Transformer
主要なパーツ
• Positional Encoding
• Feed-Forward Network
• Layer Normalization
• Multi-Head Attention
19
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
Linear
softmax
Output Embedding
+
+
+
〜
Input Embedding
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Outputs
Inputs
Output Probabilities
+
Layer Norm
N x
x N
21. Transformer
主要なパーツ
• Positional Encoding
• Feed-Forward Network
• Layer Normalization
• Multi-Head Attention
21
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
Linear
softmax
Output Embedding
+
+
+
〜
Input Embedding
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Outputs
Inputs
Output Probabilities
+
Layer Norm
N x
x N
22. Layer Normalization
𝐿𝑁 𝑥# =
𝑥# − 𝜇
𝜎
𝛾 + 𝛽
𝜇, 𝜎: 𝑥#の平均, 標準偏差
𝛾, 𝛽: パラメタ(スカラ値)
ただの正規化もどき
Ø学習の高速化や過学習の抑制に寄与
行単位で適用
22
1
…
3
…
2
…
6
…
I am a boy
Layers…
…
…
…
…
-0.9 0 -0.51.4
LN
LN
23. Transformer
主要なパーツ
• Positional Encoding
• Feed-Forward Network
• Layer Normalization
• Multi-Head Attention
23
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
Linear
softmax
Output Embedding
+
+
+
〜
Input Embedding
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Outputs
Inputs
Output Probabilities
+
Layer Norm
N x
x N
Positional
Encoding
Positional
Encoding
24. Multi-Head Attention
𝑴𝒖𝒍𝒕𝒊𝑯𝒆𝒂𝒅(𝑄, 𝐾, 𝑉) = 𝒄𝒐𝒏𝒄𝒂𝒕 ℎ𝑒𝑎𝑑# 𝑊$
ℎ𝑒𝑎𝑑# = 𝑺𝑫𝑷𝑨𝒕𝒕𝒆𝒏𝒕𝒊𝒐𝒏 𝑄𝑊
#
%
, 𝐾𝑊#
&
, 𝑉𝑊#
'
𝑺𝑫𝑷𝑨𝒕𝒕𝒆𝒏𝒕𝒊𝒐𝒏 𝑄′, 𝐾′, 𝑉′ = 𝒔𝒐𝒇𝒕𝒎𝒂𝒙
𝑄′𝐾′(
𝑑
𝑉′
お気持ち
• 𝑉には、整理されていない有益情報がたくさん
• 𝐾は𝑉に紐づく情報がたくさん
• 𝑄に近い情報がKにあれば、対応する有益情報を𝑉から抽出 24
25. Scaled Dot Product Attention
𝑆𝐷𝑃𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑄, 𝐾, 𝑉 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥
𝑄𝐾(
𝑑
𝑉
お気持ち
• 𝑘#(𝑘𝑒𝑦), 𝑣#(𝑣𝑎𝑙𝑢𝑒)という対を為すベクトルが沢山
• 各入力ベクトル𝑞)と似ているkeyを集める
• keyに対応するvalueたちを混ぜて出力
25
𝑞!
𝑞"
𝑞#
𝑞$
𝑘!
𝑘"
𝑘#
𝑣!
𝑣"
𝑣#
26. Scaled Dot Product Attention①
𝑆𝐷𝑃𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑄, 𝐾, 𝑉 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥
𝑄𝐾(
𝑑
𝑉
𝑄𝐾(
の各要素は𝑞#と𝑘)の内積
Ø𝑞#, 𝑘)の向きが近いほど値が大きいため、類似度の指標に
(内積はベクトル長に比例してしまうため、 𝑑で割る)
26
𝑞!
𝑞"
𝑞#
𝑞$
𝑘! 𝑘" 𝑘# 𝑘$ 𝑘%
*
𝑑
𝑞! ∗ 𝑘!
𝑞" ∗ 𝑘!
𝑞# ∗ 𝑘!
𝑞! ∗ 𝑘"
𝑞" ∗ 𝑘"
𝑞# ∗ 𝑘"
𝑞! ∗ 𝑘#
𝑞" ∗ 𝑘#
𝑞# ∗ 𝑘#
𝑞$ ∗ 𝑘!𝑞$ ∗ 𝑘"𝑞$ ∗ 𝑘#
𝑞!と各keyとの
類似度ベクトル
27. Scaled Dot Product Attention②
𝑆𝐷𝑃𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑄, 𝐾, 𝑉 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥
𝑄𝐾(
𝑑
𝑉
• 𝒔𝒐𝒇𝒕𝒎𝒂𝒙 𝒙 = [
𝒆𝒙𝟏
∑ 𝒆𝒙𝒊
,
𝒆𝒙𝟐
∑ 𝒆𝒙𝒊
,
𝒆𝒙𝟑
∑ 𝒆𝒙𝒊
, … ]
Øベクトルを少し過激に確率分布に変換する関数
ex.) 𝑠𝑜𝑓𝑡𝑚𝑎𝑥([2,3,5]) = [0.4, 0.11, 0.85]
27
𝑞! ∗ 𝑘!
𝑞" ∗ 𝑘!
𝑞# ∗ 𝑘!
𝑞! ∗ 𝑘"
𝑞" ∗ 𝑘"
𝑞# ∗ 𝑘"
𝑞! ∗ 𝑘#
𝑞" ∗ 𝑘#
𝑞# ∗ 𝑘#
𝑞$ ∗ 𝑘!𝑞$ ∗ 𝑘"𝑞$ ∗ 𝑘#
softmax
softmax
softmax
softmax
𝑞!~𝑘!
𝑞"~𝑘!
𝑞#~𝑘!
𝑞!~𝑘"
𝑞"~𝑘"
𝑞#~𝑘"
𝑞!~𝑘#
𝑞"~𝑘#
𝑞#~𝑘#
𝑞$~𝑘! 𝑞$~𝑘" 𝑞$~𝑘#
𝑞!と各keyとの
類似性の確率分布
28. Scaled Dot Product Attention③
𝑆𝐷𝑃𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑄, 𝐾, 𝑉 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥
𝑄𝐾(
𝑑
𝑉
前stepで求めた確率分布を重みと捉え、valuesを加重平均
28
𝑞!~𝑘!
𝑞"~𝑘!
𝑞#~𝑘!
𝑞!~𝑘"
𝑞"~𝑘"
𝑞#~𝑘"
𝑞!~𝑘#
𝑞"~𝑘#
𝑞#~𝑘#
𝑞$~𝑘! 𝑞$~𝑘" 𝑞$~𝑘#
𝑣!
𝑣"
𝑣#
*
[0.4, 0.11, 0.85]
% 𝑞!~𝑘% ∗ 𝑣%
% 𝑞"~𝑘% ∗ 𝑣%
% 𝑞#~𝑘% ∗ 𝑣%
% 𝑞$~𝑘% ∗ 𝑣%
29. 𝑀𝑢𝑙𝑡𝑖𝐻𝑒𝑎𝑑 𝑄, 𝐾, 𝑉 = 𝑐𝑜𝑛𝑐𝑎𝑡 ℎ𝑒𝑎𝑑# 𝑊$
ℎ𝑒𝑎𝑑# = 𝑆𝐷𝑃𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 𝑄𝑊
#
%
, 𝐾𝑊#
&
, 𝑉𝑊#
'
Ø𝑄, 𝐾, 𝑉に様々な変換を加え、組合わせに多様性を持たせている
Multi-Head Attention
29
𝑊!
"
𝑊!
#
𝑄
𝐾
𝑉
𝑊$
"
𝑊$
#
*
*
*
𝑊%
"
𝑊%
#
𝑊
!
&
𝑊
$
&
𝑊
%
&
𝐾!
'
𝑉!
'
𝐾$
'
𝐾%
'
𝑉$
'
𝑉%
'
𝑄!
'
𝑄$
'
𝑄%
'
SDP
Attention
ℎ𝑒𝑎𝑑
!
ℎ𝑒𝑎𝑑
$
ℎ𝑒𝑎𝑑
%
ℎ𝑒𝑎𝑑
!
ℎ𝑒𝑎𝑑
$
ℎ𝑒𝑎𝑑
%
*
𝑊&
31. Multi-Head Attentionの使われ⽅②
𝑄: 加工済み出力文
𝐾, 𝑉: encoderの出力
Ø出力文から、入力文のどの意味がまだ不足
しているか等を判断している?
31
Masked Multi-Head
Attention
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
Linear
softmax
Output Embedding
+
+
+
〜
Input Embedding
Multi-Head
Attention
Layer Norm
Feed Forward
Layer Norm
+
+
+
〜
Outputs
Inputs
Output Probabilities
+
Layer Norm
N x
x N