Attention Is All You Needを読んだ。
俺はなんの経歴もないAIをやっている者だ。様々な本や動画でAIを勉強している。自分でもかなりの知識がついていると自負しているが、ただやはり本職の人たちと比べるとまだまだだろう。
ただ、昨日、ヤン・ルカン先生の著書「ディープラーニング 学習する機械」を読み、ますます人工知能の面白さに惹かれた。俺はプログラマーをやっているが、仕事でもAIを使えるか日夜画策している。
しかし、そんなことを言っているお前は、原論文を読んだことがあるのかと聞かれるとそんなものはない。学生の時に読んだっきりで俺は今まで論文などひとつも読まずに小説ばかりを読んでいた。
AIをやっている者として、Googleの伝説の論文「Attention Is All You Need」は読むべきだろう。俺はそれを決意した。
この記事では具体的な話はせず、要点メモと所感を書こうと思う。できるだけ確実なことを書くつもりだが、間違って解釈していたらすみません。指摘いただければ修正します。
メモと所感
transfomerは機械翻訳のために作られた自然言語モデルのアーキテクチャ。
これが、今まで主流だったRNNなどのモデルと比べてとても性能が良いことが分かった。
表題の「Attention Is All You Need」とは何か。自然言語処理でattentionと呼ばれる技術が当時使われていたが、それはRNNなどとともに使われていた。ただ、これだとモデルの構造上逐次処理にせざるを得ず、計算に時間がかかってしまう。また、入力長の長さが長くなるほど最初の方を忘れてしまうのでよくない。
ここで登場するのがSelf-attentionとMulti-head Attentionだ。
Self-attentionが、あのK、Q、Vの奴で、この構造を作ることで、入力の全ての情報を考慮することができ、最初を忘れてしまうといったことを防ぐことができる。
Multi-head Attentionは、このSelf-attentionをh個作って、計算するというものだ。ここがかなり重要で、複数作ることで情報の表現の幅が広がり、モデルの性能が向上する。また、これが並列で計算できるので学習もしやすい。
RNNなどで要所で使っていたattentionこそが実は最も重要であり、これを主軸にできたアーキテクチャが、transformerなのである。
また、論文を読む前までなんとなく理解していたPOSITIONAL ENCODINGについても詳しく書かれていてよかった。embeddingで作ったベクトルにトークン位置と次元のインデックスによってつくられる三角関数のベクトルを加算するようだ。
あとは計算量の比較の表があったが、とても分かりやすくてよかった。
所感としてはかなり読みやすかった。
そしてこれはかなりおすすめしたいことだが、GPT4に聞きながら読むのがいい。わからないことは分かるまで聞くことができる。以下に何個か論文について対話をした様子を貼る。こんな感じで聞きまくれるので最高のパートナーだった。俺はGPT4がなければこの論文は読めなかっただろう。ありがとうGPT4。
あとは、わからないところを、「以下について説明してください」と加えて聞くだけでかなりわかりやすく教えてくれる。chatGPTが学生時代にあれば最高だったな。。。
この記事が気に入ったらサポートをしてみませんか?