本記事は、連載「AIの原理」(全11回)の第6回です。

前回の記事はこちら


ここまでの回では、大規模言語モデルがどう訓練されるかを見てきました。しかし、訓練を終えたモデルが、実際に一つの文章を処理するとき、その内部で何が起きているのかには、まだ触れていません。

次の文章を考えてみてください。「トロフィーはスーツケースに入らなかった。なぜなら、それは大きすぎたからだ。」ここで「それ」が指しているのは、トロフィーでしょうか、スーツケースでしょうか。人間なら、文章全体を見渡して、迷わず「トロフィー」だと判断できます。しかし、これをコンピュータにやらせようとすると、「それ」という一語だけでなく、離れた場所にある「トロフィー」という言葉まで、関連づけて捉える必要があります。今回は、この関連づけを可能にした「Attention(注意機構)」という発想と、それを土台にした「Transformer」という仕組みを取り上げます。

Attention以前の手法の限界

以前主流だった仕組みは、文章を単語ごとに、前から順番に読み進めながら処理していました。この方式では、それまで読んだ内容を、一つの要約のような形に圧縮しながら、次の単語へと読み進めていきます。

この方法には弱点がありました。文章が長くなるほど、離れた場所にある単語同士の関係を、うまく保っておくことが難しくなっていくのです。伝言ゲームで、最初の一言が、何人も経由するうちに少しずつ変わっていってしまうのと、似た状況を想像してください。先ほどの「それ」が何を指すかという問題も、「トロフィー」という言葉が、要約の中で薄まってしまえば、正しく結びつけられなくなります。この課題が実務でどう扱われてきたか、そして2017年にどのような転換が起きたかという歴史的な経緯は、連載「AIの歴史」第9回で詳しく扱っていますので、あわせてご覧ください。この記事では、その転換の中身、つまり「仕組み」そのものを見ていきます。

Attention—すべての単語が、直接すべての単語を見る

Attentionという発想の核心は、単純です。文章を前から順番に圧縮しながら読み進めるのではなく、ある単語を理解するために、文章中の他のすべての単語を、いつでも直接見に行けるようにする。これがAttentionです。

先ほどの「それ」の例で考えてみます。「それ」という言葉を処理するとき、Attentionは、同じ文章の中にある他のすべての単語(「トロフィー」「スーツケース」「大きすぎた」など)を見渡し、それぞれが「それ」の意味を理解するうえで、どれくらい関連が深いかを判断します。「トロフィー」には強い関連があると判断すれば、そこに強くスポットライトを当て、「スーツケース」への関連が弱いと判断すれば、そこへのスポットライトは弱めます。そして、関連の強さに応じて、他の単語の情報を取り込みながら、「それ」という言葉の意味を、文脈に沿った形に組み立て直します。同じ文章の中の単語同士が、互いにこの関連づけを行うことから、この仕組みは「自己注意機構(セルフ・アテンション)」と呼ばれます。この「それ」と「トロフィー」を結びつける例は、Attentionの仕組みを説明する際によく使われる、代表的な例の一つです。

これは、文章中のすべての単語について、同時に行われます。それぞれの単語が、自分にとって重要な他の単語へ、スポットライトの強さを調整しながら注目する。文章全体が、あらかじめ順番に圧縮されるのではなく、必要なときに必要な場所を直接参照できる状態に置かれる、とイメージしてください。

Attentionが長距離の関係と並列計算に強い理由

この発想が優れているのは、二つの理由からです。

一つ目は、単語同士の距離が、関連づけの難しさに直結しなくなることです。前から順番に圧縮していく方式では、離れた単語同士の関係は、途中の要約を何段も経由しないと届きませんでした。Attentionでは、文章のどこにある単語であっても、直接スポットライトを当てられます。文章の最初の方にある単語と、最後の方にある単語の関係も、原理的には、隣り合う単語同士の関係と同じ手間で扱えます。

二つ目は、計算のしやすさです。前から順番に読み進める方式は、一つ前の単語の処理が終わらないと次に進めないという、順番待ちの構造をしていました。Attentionでは、文章中のすべての単語について、他のすべての単語との関連づけを、同時に計算できます。第1回・第2回で見たように、ネットワークの学習や推論は、無数の重みについての計算の積み重ねです。この種の大量の計算を、一つずつ順番にではなく、同時にまとめてこなすことを得意とするのが、GPU(画像処理装置)です。順番待ちの構造がなくなったことで、AttentionはこのGPUの並列計算と、非常に相性の良い性質を持つことになりました。GPUが深層学習の発展を後押ししてきた経緯は、連載「AIの歴史」第8回で扱っています。

マルチヘッド・アテンションとは何か

実際のTransformerでは、一種類のスポットライトだけを使うのではありません。複数の異なるスポットライトを同時に用意し、それぞれに異なる種類の関連づけを担当させます。あるスポットライトは文法的なつながりに注目し、別のスポットライトは「それ」のような代名詞が指す対象に注目する、というように、異なる観点からの関連づけを、並行して行います。これを「マルチヘッド・アテンション」と呼びます。一つの見方だけでは見落としてしまう関連を、複数の見方を重ね合わせることで、拾い上げやすくしていると考えてください。

位置エンコーディングとは何か

ここで一つ、注意が必要な点があります。Attentionは、文章中のすべての単語を、いわば同時に見渡す仕組みです。そのままでは、「猫がネズミを追いかけた」と「ネズミが猫を追いかけた」を、区別できません。単語の並び順という情報が、Attentionの仕組みそのものには含まれていないためです。

そこでTransformerでは、それぞれの単語に、「これは文章の何番目の単語か」という位置の情報を、あらかじめ荷札のように付け加えておきます。この位置の情報を「位置エンコーディング」と呼びます。単語そのものの意味に関する情報と、その単語が文章中のどこにあるかという情報を、合わせて一つにしてからAttentionに渡すことで、語順の違いも区別できるようになります。

Transformer—Attentionの層を、何段も積み重ねる

第1回で、ニューラルネットワークは、単純な処理を行う層を何段も重ねることで、複雑なパターンを扱えるようになるという話をしました。Transformerも、この考え方の延長線上にあります。Attentionによる関連づけと、そのあとに続く比較的単純な追加の処理を一つの単位として、これを何段も積み重ねたものが、Transformerという仕組みです。層を重ねるごとに、単語同士の関連づけが、より豊かで、より抽象的なものへと組み立て直されていきます。

Transformerとスケーリング則のつながり

前から順番に読むという足かせが外れたことで、モデルの規模を大きくすることが、以前よりずっと現実的な選択肢になりました。GPUによる並列計算を無駄なく活かせるようになったことが、その後の大規模言語モデルの急速な巨大化を後押しします。この「規模を増やすと何が起きるのか」という問いは、次回、スケーリング則として取り上げます。また、第4回・第5回で見た事前学習・ファインチューニングは、いずれもこのTransformerという構造の上で行われています。Attentionが生まれた経緯や、その後BERTとGPTという二つの系譜に分かれていった流れは、連載「AIの歴史」第9回で扱っています。

Attentionの重みはモデルの判断理由といえるのか

Attentionが、単語同士の関連づけを、文章中のどこであっても直接行えるようにしたこと、そしてこれが並列計算と相性が良かったことは、性能の面でもはっきりと裏づけられています。

一方で、まだ意見が分かれている点もあります。ある単語が、他のどの単語に強くスポットライトを当てているかという情報は、そのままモデルの「判断の理由」として読み取ってよいのでしょうか。スポットライトが強く当たっている箇所を、人間にも分かる説明として使おうとする研究がある一方で、そのスポットライトの強さが、モデルの最終的な判断を、どこまで忠実に反映しているといえるのかについては、研究者のあいだでも見解が分かれています。仕組みの動き方が分かることと、その動きが「なぜ」その答えにたどり着いたかを説明できることは、同じではないのかもしれません。

次回は、大規模言語モデルが”大規模”であることの意味である、スケーリング則を解説します。

出典・参考文献