Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Attentionさえあればいい

payanotty
November 03, 2022

 Attentionさえあればいい

payanotty

November 03, 2022
Tweet

More Decks by payanotty

Other Decks in Technology

Transcript

  1. 自己紹介
 • 名前
 ◦ 早野 康太
 • お仕事
 ◦ 自然言語モデルの改善


    • 趣味
 ◦ 猫、犬
 ▪ YouTube
 ◦ ゲーム
 ▪ 音ゲ、ウマ娘、ギャルゲ
 ◦ アニメ
 ▪ 水星の魔女
 ▪ ぼっちざろっく (てか秋アニメ豊作すぎヤバスンギ)

  2. 自然言語処理
 • 深層学習で「ことば」を処理する
 ◦ 翻訳
 ▪ Google翻訳
 ▪ DeepL
 ◦

    質問応答
 ▪ Alexa
 ◦ 文章生成
 ▪ AIのべりすと
 ◦ 画像生成 (最近流行ってますね)
 ▪ Stable Diffusion, NovelAI

  3. 最近のAIはすごい
 • AIのべりすと
 ◦ 入力した文章の続きをAIが
 書いてくれる
 
 出典: https://ai-novel.com 


    吾輩は猫である。名前はまだない。 そんな冗談が脳裏をよぎるほど、その日、俺の 気分は沈んでいた。 「……」 時刻は午前十一時。場所は近所の公園だ。休 日なだけあってそれなりに人通りもあるが、遊 具で遊ぶ子供の姿はない。皆一様にベンチに 腰掛けて、何やら物思いに耽っているようだ。
  4. 最近のAIはすごい
 • NovelAI
 ◦ 文章を入力すると絵を描いてくれる
 
 • a little girl,

    wearing lame t-shirt , 
 eating large cake から生成した画像 →
 

  5. • Attention Is All You Need (Łukasz Kaiser et al.,

    2017)
 ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 Transformer 
 チノ
 ちゃん
 かわいい
 推し
 は
 誰
 ?
 入 力 文
 参照情報
 チノ
 ちゃん
 以外
 ありえん

  6. • 入力文をベクトル系列に変換
 Transformerの構造
 ご注文はうさぎですか?
 ご, 注文, は, うさぎ, ですか, ?


    0, 1, 2, 3, 4, 5
 形態素解析
 トークンID化
 E 0 , E 1 , E 2 , E 3 , E 4 , E 5 
 ベクトル化
 Attention Is All You Need (Łukasz Kaiser et al., 2017)
  7. • 入力文をベクトル系列に変換
 Transformerの構造
 Attention Is All You Need (Łukasz Kaiser

    et al., 2017) Positional Encoding
 • Attentionだけではトークンの
 位置情報を考慮できない
 
 • 位置ごとに異なる値を足して
 位置関係を学習できるように
 ◦ 加える値は完全決め打ち

  8. • 一連の処理をまとめた”ブロック”を
 何個も積み上げている
 ◦ Multi-Head Attention
 ◦ 残差結合
 ◦ 正規化

    
 ◦ Feed Forward
 Transformerの構造
 Attention Is All You Need (Łukasz Kaiser et al., 2017)
  9. • 一連の処理をまとめた”ブロック”を
 何個も積み上げている
 ◦ Multi-Head Attention
 ◦ 残差結合
 ◦ 正規化

    
 ◦ Feed Forward
 Transformerの構造
 入力ベクトル
 出力ベクトル
 Attention Is All You Need (Łukasz Kaiser et al., 2017)
  10. 入力ベクトル
 出力ベクトル
 残差結合
 x’ = x + Attention(x) • Attention結果に処理前の値を


    加えることで勾配消失を防ぐ
 • 残差結合はResNet(2015)で
 効果が実証された
 Attention以外の要素
 
 Attention Is All You Need (Łukasz Kaiser et al., 2017)
  11. • 一連の処理をまとめた”ブロック”を
 何個も積み上げている
 ◦ Multi-Head Attention
 ◦ 残差結合
 ◦ 正規化

    
 ◦ Feed Forward
 Transformerの構造
 入力ベクトル
 出力ベクトル
 キモとなるところ
 Attention Is All You Need (Łukasz Kaiser et al., 2017)
  12. QKV Attention
 q query
 変換したい
 ベクトル
 key, value
 ベクトルを変換する際
 参照する情報


    keyとvalueが辞書的に
 一対一に対応している
 (k 1 , v 1 ), (k 2 , v 2 )
  13. QKV Attention
 qT k 1 q qT k 2 key,

    value
 ベクトルを変換する際
 参照する情報
 keyとvalueが辞書的に
 一対一に対応している
 (k 1 , v 1 ), (k 2 , v 2 )
  14. QKV Attention
 qT k 1 q qT k 2 queryとkeyとの関連度を


    内積を取ることで数値化する
 1.2 3.6
  15. QKV Attention
 qT k 1 q qT k 2 0-1にスケールした後


    softmaxを取り
 関連度の和を1に正規化
 1.2 3.6 0.4 0.6 scale
 &
 softmax

  16. QKV Attention
 qT k 1 q qT k 2 1.2

    3.6 0.4 0.6 scale
 &
 softmax
 v 1 v 2 正規化した関連度で
 valueに重みをつける

  17. QKV Attention
 qT k 1 q qT k 2 1.2

    3.6 0.4 0.6 v 1 v 2 scale
 &
 softmax
 + q’
  18. k 1 q k 2 QKV Attention
 v 1 v

    2 query
 変換したい
 ベクトル
 key, value
 ベクトルを変換する際
 参照する情報
 keyとvalueが辞書的に
 一対一に対応している
 q’ output
 queryを元に
 key, valueから
 情報を引き出す

  19. Multi-Head Attention (Self-Attention発展)
 • Q, K, Vをh個に分割
 • h個分のAttentionを計算
 •

    計算したAttentionを結合
 Attention Is All You Need (Łukasz Kaiser et al., 2017)
  20. q WQ 512 512 512 / 8 = 64 Multi-Head

    Attention (Self-Attention発展)

  21. q WQ 512 512 512 / 8 = 64 q’

    Multi-Head Attention (Self-Attention発展)
 = 64
  22. q WQ 512 512 512 / 8 = 64 q’

    Multi-Head Attention (Self-Attention発展)
 = 64 • 512次元空間から64次元空間への線形写像

  23. q 512 Multi-Head Attention (Self-Attention発展)
 64 WQ 1 q’ q

    q’ W 
 3次元→2次元部分空間の
 線形写像 (実際は512→64)
  24. q 512 Multi-Head Attention (Self-Attention発展)
 64 WQ 1 q’ WQ

    2 q q’ W 
 3次元→2次元部分空間の
 線形写像 (実際は512→64)
  25. q 512 Multi-Head Attention (Self-Attention発展)
 64 WQ 1 q’ WQ

    2 q q’ W 
 3次元→2次元部分空間の
 線形写像 (実際は512→64) qへの光の当て方
 (どの視点から見るか)
 を決めるパラメータ

  26. q 512 Multi-Head Attention (Self-Attention発展)
 64 WQ 1 q’ WQ

    2 q q’ W 
 3次元→2次元部分空間の
 線形写像 (実際は512→64) qへの光の当て方
 (どの視点から見るか)
 を決めるパラメータ
 WQ 8
  27. q 512 Multi-Head Attention (Self-Attention発展)
 64 q’ k’ q q’

    W 
 3次元→2次元部分空間の
 線形写像 (実際は512→64) qへの光の当て方
 (どの視点から見るか)
 を決めるパラメータ
 WK 1 WK 2 WK 8
  28. q 512 Multi-Head Attention (Self-Attention発展)
 64 q’ k’ q q’

    W 
 3次元→2次元部分空間の
 線形写像 (実際は512→64) qへの光の当て方
 (どの視点から見るか)
 を決めるパラメータ
 v’ WV 1 WV 2 WV 8
  29. q 512 Multi-Head Attention (Self-Attention発展)
 64 q’ k’ v’ head

    1 head 2 head 8 Attention Attention Attention 64
  30. q 512 Multi-Head Attention (Self-Attention発展)
 64 q’ k’ v’ head

    1 head 2 head 8 head 1 head 2 head 8 Concat Concat Attention Attention Attention 512
  31. Multi-Head Attention (Self-Attention発展)
 • Self-Attention ✕ Multi-Head
 ◦ ただ自分に注目するだけでなく
 “多角的に”見た自分との


    関連度を測る
 • Transformerではベクトルの
 投影の仕方(W)を
 学習パラメータにしている
 

  32. • Bidirectional Encoder Representations from Transformers
 ◦ BERT: Pre-training of

    Deep Bidirectional Transformers for Language Understanding
 ◦ Transformerによる双方向のエンコード表現
 ▪ Transformerモデルの一部分を利用したモデル
 ◦ Googleが2018年に発表
 • 当時の自然言語処理タスクの最高記録を軒並み塗り替えた
 • 転移学習 (finetuning) により 
 あらゆる自然言語処理タスクに応用可能な汎用性の高さ
 
 Transformerから他のモデルへの派生

  33. • GPT (Generative Pretrained Transformers)
 ◦ Improving Language Understanding by

    Generative Pre-Training
 ◦ OpenAIが発表している、文章生成に特化したモデル
 ▪ 現在はGPT3まで公開されている
 ◦ 文章要約、翻訳、質問応答などで高い性能
 ▪ 冒頭で紹介したAIのべりすとにもこのモデルが使われている
 ◦ TransformersのDecoder部分を使っている
 
 
 
 Transformerから他のモデルへの派生

  34. • CLIP (Constractive Language-Image Pretraining)
 ◦ Learning Transferable Visual Models

    From Natural Language Supervision
 ◦ 画像に対して正しいテキストをラベルとして割り当てる
 ▪ 事前学習方法を工夫することで
 zero-shot(初めてみるデータ)でも高い精度を出している
 ◦ テキストエンコーダー部分にTransformerが利用されている
 ◦ 冒頭で紹介したNovelAIのほか、
 Stable Diffusionの派生モデルにおいて利用されている
 
 
 Transformerから他のモデルへの派生

  35. • A Survey of Transformers 
 (TIANYANG LIN et. al.,

    2021)
 ◦ Transformer派生についてのサーベイ
 ◦ 膨大な数のTransformer派生について
 詳細にまとめられている
 ◦ もっと詳しく知りたい方は
 こちらを読まれるのをおすすめします
 
 Transformerから他のモデルへの派生

  36. • 近代の自然言語モデルのめざましい進歩は
 Transformerから始まった (Attention is All You Need)
 ◦ 今どきの自然言語モデルはだいたいTransformerの派生


    ▪ BERT, T5, GPT, …
 • Attentionの工夫
 ◦ Self-Attention
 ▪ 入力された信号のうちどの部分に注目すればよいかを計算
 ◦ Multi-Head化
 ▪ “さまざまな視点から見た”ベクトルのSelf-Attention
 ▪ ベクトルをどの視点から見るかをパラメータとして学習
 まとめ