第4部 LLMのしくみを理解する

第13章Transformerアーキテクチャ

現在のLLMの土台になっているのが、Transformerという構造です。この章では、数式には立ち入らず、 Transformerがどんな課題を解決し、どのような考え方で文章を処理するのかを、全体像としてつかみます。 中心となるアテンションについては、次の章でさらに詳しく扱います。まずは全体の骨格から押さえていきます。

13.1Transformer登場以前の課題

Transformer以前の方法は、文章を前から順に一語ずつ処理するため、長い文章での関係の把握や、学習の効率に課題がありました。

Transformerが登場する前、文章を扱うAIは、言葉を前から順に一つずつ読み込んでいく方式が主流でした。 人が文章を左から読むのと同じように、一語読んではその情報を次へ持ち越し、また次の一語を読む、という 進め方です。この方式には二つの弱点がありました。

一つは、文章が長くなると、前のほうに出てきた言葉の情報が薄れてしまい、離れた語どうしの関係を捉えにくい ことです。長い文の最初に出た主語を、文末まで覚えておくのが難しくなる、というイメージです。もう一つは、 順番に処理する必要があるため、大量の文章を効率よく学習しにくいことです。前の語の処理が終わらないと 次に進めないため、計算をまとめて進めることができませんでした。これらの課題が、より大きなモデルへの 発展を妨げていました。

13.2全体の構造をつかむ

Transformerは、アテンションという仕組みを中心に、同じ処理のかたまり(層)を何段も積み重ねた構造をしています。各段を通るたびに、各トークンは文脈を反映した表現へと更新されます。

Transformerの全体像は、同じような処理を行うかたまりを、何段も積み重ねた構造として捉えられます。 入力されたトークンの列は、まず前章で見た埋め込みによってベクトルに変換されます。そのベクトルの列が、 アテンションを含む処理のかたまりを次々と通り抜けていきます。各段を通るたびに、各トークンは周囲の トークンの情報を取り込み、文脈を反映した表現へと更新されていきます。最初は単語そのものの意味だった ものが、段を経るごとに「この文脈でのこの語」という、より豊かな意味を帯びていくのです。

入力(トークンの列) 埋め込み(ベクトル化) アテンションを含む層 周囲のトークンの情報を取り込む 同じ処理を何段も繰り返す 出力(次の言葉の予測へ)
図13-1 Transformerの大まかな流れ。埋め込みを経たベクトル列が、アテンションを含む層を何段も通ります。

13.3トークンを一度にまとめて見る

Transformerは、文章を前から順に読むのではなく、すべてのトークンを一度に見渡します。これにより、離れた語どうしの関係も捉えやすく、大量の学習も効率よく行えるようになりました。

Transformerの大きな特徴は、文章を前から一語ずつたどるのではなく、すべてのトークンを一度にまとめて 見渡す点にあります。各トークンは、文章の中のどの位置にある語とも直接関係を測れるため、離れた場所に ある語どうしのつながりも捉えやすくなります。前から順に読む方式で薄れてしまっていた、遠くの語の情報を、 直接参照できるようになったわけです。

また、順番に処理する必要が減ったことで、大量の文章をまとめて効率よく学習できるようになりました。 一語ずつ順番待ちをするのではなく、多くの計算をいっぺんに進められるため、大規模なモデルの学習が 現実的になったのです。この効率のよさが、第7章で見た大規模化を支える土台になりました。性能と効率の 両方を同時に改善した点が、Transformerの画期的なところです。

身近なたとえ

長い文章の意味を取るとき、一文字ずつ順に追うよりも、全体をざっと見渡してから、関係のある言葉を 結びつけて理解するほうが速く正確です。Transformerは、この「全体を見渡す」やり方を計算の中で 実現していると考えると、イメージしやすくなります。

13.4位置情報の与え方

すべてを一度に見る方式では語順が失われるため、Transformerは各トークンに位置の情報を別途加えて、順番を保ちます。

すべてのトークンを一度に見渡す方式には、一つ補わなければならない点があります。前から順に読まない分、 そのままでは「どの語が何番目か」という語順の情報が失われてしまうのです。「犬が猫を追う」と「猫が犬を 追う」は、使われている語は同じでも、順番によって意味がまるで変わります。言葉の意味は語順によって 大きく変わりますから、順番の情報は欠かせません。

そこでTransformerでは、各トークンのベクトルに、その位置を表す情報を別途加えます。「これは1番目の語」 「これは2番目の語」といった目印を、数値の形で足しておくイメージです。これにより、全体を一度に見渡し つつ、語順も保てるようになっています。ここまでで、Transformerの全体像はつかめました。文章をトークンに 区切り、ベクトルにし、位置情報を加え、アテンションを含む層を何段も通す。この流れの中心にあるのが アテンションです。次の章では、そのアテンションが具体的に何をしているのかを掘り下げます。

この章の要点

  • Transformer以前は文章を順に処理したため、長文での関係把握と学習効率に課題がありました。
  • Transformerは、アテンションを含む層を何段も積み重ねた構造をしています。
  • すべてのトークンを一度に見渡すことで、離れた語の関係を捉えやすく、大量の学習も効率化されました。
  • 語順が失われないよう、各トークンに位置の情報を加えています。