Transformer解説まとめ
自然言語処理の翻訳において,長い文の入力に耐えることを目的として提案されたモデルがTransformerだが,このモデルの汎用性の高さに目を付けた研究者が,その後,汎用言語モデル(BERT,GPT)を提案したり,画像処理への応用(ViT)したり,近年では生成モデル(DALL-E)への応用にも成功している.このように汎用性が高いTransformerは,自然言語処理以外の研究者も必ず押さえておかなければならない必修科目になっており,その解説記事や解説動画は数多公開されている.
しかしながら,Transformerで行われている処理はやや複雑な(に見える)ため,1つの記事の説明を参考にしただけでは理解しにくいと感じる方もいるのではないかと思う.
そこで本記事では,これから勉強する方に向けて,Transformerの解説資料を筆者のコメントも含めて紹介していきたいと思う.
1. Transformerをイラストで理解したい!
数式無しで大まかな概要を把握したい!そのような方には上の記事がおススメだ.本記事は,技術紹介系Youtuber,Jay Alammar氏の記事を和訳した内容となっており,非専門家にも優しいイラストでTransformerを学ぶことができる.Query-Key-Valueの関係や,QueryとKeyの内積をとるイメージが分かりにくいと感じる方にとって,この記事は最適なのではないかと思う.
2.Sonyさんに教えてもらおう!
動画で理解したいあなたには,Sonyさんの作成したAttention解説動画がおススメ!この動画では,現役の研究者がAttentionとは何かを分かりやすく解説してくれる.解説では,言語のみならず,画像への応用事例を説明してくれるので,言語と画像におけるAttentionを比較しながら理解したいという方はぜひ視聴して頂きたい.
3.VTuberで理解しよう!
Youtubeが好きだけどVTuberが解説してる方が見やすいな... そんなあなたには,データサイエンスVTuber,アイシア=ソリッドさんの解説動画がおススメ.この動画では,大学の講義形式でアイシアさんがホワイトボードで説明していくスタイルなので,座学がなじむと感じる方には良いかも.この解説動画では,数式を交えた説明が主となるため,先に1番のイラストで学ぶTransformerを読んでイメージを掴んでから本質的な理解のために本動画を見るのが良いかもしれない.
4.自分で動かして理解しよう!
習うより慣れたい!自分でTransformerを動かしてみたい!と思う方は,Google Colabでデモを動かしてみるのがおススメ.サンプルコードはいくつかあると思うが,筆者がおススメするのは以下の2つのノートブックである.
・Tensorflow付属のノートブック
・有志の作成した可視化ツールVizBERT
こちらのデモでは,単語(厳密にはサブワード)にカーソルを当てて,それぞれのAttentionを動かしながら観察することができる.これらのデモをよく観察すると,[CLS]や[SEP]の特殊トークンにAttentionが集約されやすい傾向があることが分かるかもしれない.このことについて気になる方は下記の論文を読んでみると面白いかも.
以上,4点の記事がTransformerを理解する上で役に立つ資料となる.他にも良い資料があればコメントで教えていただけると幸いです.では,勉強頑張っていきましょう!