💬
【レイサマリー】Transformerについて
本記事の目的
Transformerの知識の確認とアウトプットをする
レイサマリーの練習をする
どのような技術か
- 深層学習で使用する学習モデル構造の一種。
- 様々なデータ形式(言語・音声・画像等)の学習時に利用できるモデル。
- 提案された当初はEncoder-Decoderモデルだが、Encoderのみ(BERT)、Decoderのみ(GPT)のモデルも存在する。
- Encoder:データを特徴量に変換する機構
- Decoder:特徴量をデータに変換する機構
- 内部構造がほとんどAttentionと線形層により構成されている。
- Attention機構
- データ内部やデータ間の関係性を効率的に学習できる機構。
- データ内部やデータ間の関係性の例
- 文法の学習(言語モデル)
- 文章内での意味的なつながり(言語モデル)
- 日本語・英語間の同じ意味の単語ペア(機械翻訳)
- 音声発話の波形と文字(音声認識)
- 画像ピクセルと文字(画像キャプション生成等)
- Attention機構
どのような利点があるか
- 距離的な関係性の学習が効率的
- CNN
- 画素の周辺情報から見て少しずつ範囲を広げていくように学習される。
- 関連性の高い特徴が距離的に遠くにあるとき、これらのデータの計算が実行されるまでいくつか段階を踏まなければならない。
- Transformer
- Attentionを使用し、各系列の特徴を直接計算できるため、関連性の高い特徴同士を見つけやすい。
- Multi-HeadAttentionを使用することで、特定の関係性に引っ張られすぎずに学習できるため、様々な関係性の学習がしやすい。
- CNN
- 時系列演算の並列化
- RNN
- 一つ前の時系列の中間特徴量を使用して特徴量の演算を行うため、時系列長が長くなると、その分計算時間がかかるようになっていた。
- Transformer
- 時系列に対して、Attention機構を用いて計算を行うため、時系列に対して同時に演算が可能である。
- 時系列を同時に演算が可能なため、GPUを使用した並列演算が可能となり、高速に学習や推論を実行でできる。
- RNN
どのような場面で役に立つ技術か
- 音声認識
- ニューラル機械翻訳
- 画像認識
- 文章生成 等の様々なタスクに適用できる
Transformerのモデル構造はどのようか
Attention Is All You Need Figure1
Transformerが持っているAttention機構
- Encoder固有のもの
- Multi-Head Attention
= Multi-Head Attention × self-Attention × Scaled-dot Product Attention
- Multi-Head Attention
- Decoder固有のもの
- Masked Multi-Head Attention
= Multi-Head Attention × self-Attention × Masked Attention × Scaled-dot Product Attention - Multi-Head Attention
= Multi-Head Attention × source-target Attention × Scaled-dot Product Attention
- Masked Multi-Head Attention
各種Attentionの種類と簡単な説明
- Attentionの計算方法の違い
-
Multi-Head Attention
- 1個だけのAttentionを計算するのではなく、複数のAttentionを同時に計算することで様々な関係性を学習可能にする。
-
Scaled-dot Product Attention
- Transformerで使われているAttention
- 検索ワードと検索元のAttentionを取り特徴量に反映することでより高い表現を取得できる。
- Attentionは内積計算のため、各系列を掛け算して足し合わせるということを行っているため、数値が膨大になりやすいため、学習時に重要な勾配が膨大となり学習がしづらくなってしまう。
→Attention計算後にスケーリングを実施することで一定の値の範囲内に収めることができ、数値が膨大になることを防いでいる。
-
Masked Attention
- 未来の情報が見えないように、計算したAttentionにマスクをかける。
- 学習時のデコーダの入力は、答えになるため、学習時にマスクなしでAttentionを取ると、未来の情報も見て学習してしまう。これは推論時には先頭から一つづつ生成していくため、存在していない未来の情報を参照してしまうことになってしまう。
-
Multi-Head Attention
- Attentionへの入力の違い
-
self-Attention
- 1つのデータ系列の内部の関係性学習を行う
- 言語学習においては、単語の並びや単語表現の類似性等の学習が可能であり、言語表現の獲得に貢献できる。
-
source-target Attention
- 2つのデータ系列間の関係性学習を行う
- 言語学習においては、機械翻訳の意味の対応付けや自動応答での質問文に対する答えの対応付け等の文章生成の特徴量抽出に貢献できる。
-
self-Attention
Attention以外で使用されている機構
-
Positional Encoding
- データの入力に付与する位置情報(時系列情報)
- Transformerは時系列を同時に入力して計算を実行するため、Attentionのみでは時系列情報を考慮できない。
- 各時系列に対して固有な情報を付与することで位置の情報を与えている。
- よく見るものは三角関数(sin, cos)を使ったものを使用している。
- FeedForward
- 線形層2層と間に活性化関数が入った機構。
- 各時間の特徴に対して時系列に依存しない特徴表現を学習できる。
- Attentionでは時系列に依存した学習をするため、時系列依存しない学習機構が入ることで表現学習が促進されやすい。
- Layer Norm
- Multi-Head Attentionで計算した各Attentionの関係性を維持しつつ、値が特定の範囲内に収まるようにする。
- Skip Connection(Residual Block)
- 図の中で分岐したのちにAttentionの出力と足し合わせている部分のこと。
- Attentionにより変容した特徴量が元のデータの特徴量から大きくそれないようにするための機構。
- もともと持っていたデータの特徴と、AIモデルの機構により処理された特化した特徴を足し合わせてうまく利用できるようにしている。
Transformerモデルの課題点は何か
- 系列長(単語の長さや音声の長さ)が増大するほど、計算時間が長くなる。
- Attentionは系列長×系列長×特徴次元数の計算時間がかかるため、系列長に大きく影響される計算時間になっている。
- 言語や音楽分野等様々な分野で長系列のデータを扱うことになり課題となっている。
- Linear Transformerを使用した計算時間削減やGPU効率を高めるFlashAttention等が使用されるようになっている。
- 通常のTransformerでは、非常に長い系列長のデータに対しては精度が出にくく、Positional Encodingの工夫や、データの前処理の工夫等が必要になる。
- 系列長が大きいモデルに対してRotary Positional Embedding(RoPE)が有効とされている。
- Decoderの出力は、辞書一覧の確率であるため、生成モデルにおいてはサンプリング手法により出力がの自由度も異なる
- top k sampling, top p sampling等サンプリング手法もいくつか存在する。
参考文献
元論文:Attention Is All You Need
Transformer全体像を見やすい:Transformerのデータの流れを追ってみる
各機構の詳細説明向き:自然言語処理の必須知識 Transformer を徹底解説!
Discussion
すごい勉強になりました!