仕組みを知る

Transformerとは?Attentionで言葉の関係を捉える仕組み

Transformerは、トークン同士の関係をAttentionで取り込み、位置情報、フィードフォワード処理、層の反復によって表現を更新するニューラルネットワーク構造です。文章生成までの流れを図解します。

Transformerとは?Attentionで言葉の関係を捉える仕組み

30秒でわかる答え

Transformerとは?

トークン同士の関係をAttentionで取り込み、複数の層を通して各トークンの表現を更新するニューラルネットワーク構造。 文章生成までの流れを図解します。

一文定義
トークン同士の関係をAttentionで取り込み、複数の層を通して各トークンの表現を更新するニューラルネットワーク構造

TERM PRIMER

先に知っておく言葉

Transformer
Attentionを中心に、入力中の離れた要素同士の関係をまとめて扱うニューラルネットワーク構造です。
Attention
入力の各要素が、ほかのどの要素をどれだけ参照するかを重みとして計算する仕組みです。
トークン
AIが文章を処理するために分けた単位です。単語一個とは限らず、単語の一部、文字、記号などになる場合があります。
ニューラルネットワーク
数値を受け渡す計算単位を層状につなぎ、学習によって入力と出力の関係を調整するモデルです。

イト

Transformerって、チャットAIそのものの名前? それとも文章を読む一個の部品?

ユイ

Attentionが大事と聞くけれど、それだけで長い文の関係が分かるのかな

ピコ

参照ランプの回廊へ行こう。いくつかの部品と層が協力して表現を更新するんだ

Transformerとは、トークン同士の関係をAttentionで取り込み、複数の層を通して各トークンの表現を更新するニューラルネットワーク構造です。

生成AIの説明で名前を見ても、ChatGPTの別名なのか、Attentionという一個の計算なのか迷うかもしれません。Transformerは特定サービスではなく、言語モデルや画像モデルなどに使われる構造の名前です。ラボの計算工房からAttention回廊へ入り、文章が札に分かれてから次の札が生成されるまでを順に確認します。

モデルをデータから調整する土台は機械学習とは?にあります。ここでは学習アルゴリズム全体ではなく、調整されるニューラルネットワークの中を見ます。

Transformerの仕組みを先に一周

文章を扱うTransformerの概略は、次の流れで追えます。

  1. 文章をトークンに分ける
  2. 各トークンを数値ベクトルに変換する
  3. 並び順を表す位置情報を加える
  4. Self-Attentionで、同じ列にある他のトークンとの関係を取り込む
  5. フィードフォワード層で、各位置の表現を変換する
  6. この処理を複数の層で繰り返す
  7. 文脈に続くトークンの確率を計算する

たとえでは、単語や記号の札が回廊へ並び、札同士が参照ランプを向けます。光の強さを手掛かりに各札のメモを書き換え、次の階でもう一度関係を見直します。ただし実際の表現は高次元の数値であり、ランプ一本に「この単語の意味」と文字が書かれているわけではありません。

トークンと位置情報は何をする?

モデルは文章をそのまま読むのではなく、トークナイザーの規則でトークンへ分割します。トークンは単語一個とは限らず、単語の一部、漢字、かな、記号などになる場合があります。その後、各トークンIDは埋め込みベクトルという数値の並びに変換されます。

Attentionだけでは、同じ札の集合でも「犬が人を追う」と「人が犬を追う」の順序差を十分に表せません。そこで、何番目にあるかを示す位置情報を加えます。元のTransformer論文では位置エンコーディングを入力表現に加えましたが、その後は回転位置埋め込みなど別の方法も使われています。

AIのトークンとは?では、文字数とトークン数が一致しない理由や入力上限との関係を扱います。Transformerへ入る札の切り方を先に確かめたいときに役立ちます。

Attentionは関係を取り込む役割

Self-Attentionでは、各トークンが同じ列のトークンを参照し、現在の文脈でどの情報をどの程度取り込むかを計算します。基本説明では、各トークンからQuery、Key、Valueという三種類の表現を作ります。

  • Query: 今いる位置が、どんな情報を探すか
  • Key: 各位置が、どんな情報として参照されるか
  • Value: 関係の強さに応じて実際に受け渡す情報

たとえば「ユイは本を机に置いた。それは青かった」という列なら、「それ」の表現を更新するとき、「本」や「青い」との関係が役立つ可能性があります。複数のAttention headを持つ構成では、異なる種類の関係を並行して扱えます。

ただし、あるAttentionの値が大きいからといって、それだけをモデルの回答理由や人間と同じ理解の証明にはできません。層、head、残差接続など多くの計算が出力に影響し、重みの読み方にも複数の研究上の立場があります。

イト、ユイ、ピコが、短い文章を表す複数の札の間を色の異なる参照ランプが結ぶAttention回廊を観察している
各トークンは他の位置との関係を取り込みます。光の向きは文脈によって変わり、一本だけで出力理由のすべてを表すものではありません。

Q・K・Vからどんな数値が集まるのかは、Attentionの小さな計算例で追えます。重みが最大の札を選ぶことと、複数の札から情報を足し合わせることの違いを確かめられます。

フィードフォワード層で何を変える?

Attentionが位置同士の情報を混ぜた後、各位置にはフィードフォワードネットワークが適用されます。これは、各トークンの表現を同じ変換規則で個別に処理する部分です。Attentionが「どこから情報を受け取るか」を扱うなら、フィードフォワードは「受け取った表現をどう変換するか」を担う、と分けると見通しが良くなります。

Transformerの層には、残差接続や正規化も組み込まれます。残差接続は、ある処理の出力に元の入力を加える経路を作り、深いネットワークの学習を助けます。正規化は値の尺度を整え、計算を安定させる役割を持ちます。モデルごとに処理順や細部は異なるため、一枚の模式図だけをすべての実装へ当てはめないようにします。

この大量のベクトル・行列計算を支える装置の側は、GPUがAIに向く理由で並列レーンとして観察できます。ネットワーク構造と計算装置は別物ですが、互いの得意な計算がかみ合っています。

層を重ねて表現を更新する

一回のAttentionで文章全体の表現が完成するのではありません。Transformerは層を重ね、Attentionとフィードフォワードなどの処理を繰り返します。浅い段階と深い段階でどんな情報が表れやすいかは、モデルや課題によって異なります。

回廊のたとえでは、一階で参照ランプを見て札のメモを更新し、その札を二階へ運び、別の関係を反映してまた更新します。最上階に近づくほど、周囲の文脈を取り込んだ表現になっていきます。しかし階ごとに「文法」「常識」「推論」という部署がきれいに一つずつ並ぶわけではありません。情報は多数の要素へ分散して表現されます。

原論文のTransformerはエンコーダーとデコーダーを持つ翻訳向け構成でした。その後、エンコーダー中心、デコーダー中心など目的の異なる構成が発展しました。現在の言語モデルを理解するときは、「Transformer」という共通の系譜と、各モデルの具体的な設計を分けます。

文章は一トークンずつどう生成?

文章生成型のモデルでは、ここまで更新した表現を使い、次に来るトークンごとの確率を計算します。候補から一つを選び、入力列の末尾に加え、次の推論を行います。この反復で文章が伸びます。

  1. 入力文と、ここまで生成した列をモデルに渡す
  2. 続きの候補分布を計算する
  3. 選択規則に従って次のトークンを決める
  4. 追加した列でもう一度計算する
  5. 終了条件まで繰り返す

生成時には、未来の正解トークンを先に見ないようマスクする構造が使われます。また、同じモデルでも候補の選び方を変えると出力が変化します。「全文を頭の中で作ってから一度に表示している」というより、文脈を更新しながら次を選ぶ流れです。

誤解を確認するクイズと回廊ワーク

ワーク: 「イトはピコへ本を渡した。彼は笑った」という文を書き、「彼」が誰を指し得るか線を引いてください。次に一文前へ手掛かりを足し、線の強さがどう変わるか考えます。Attentionの図は関係候補を見る道具であり、一本の線だけで正解が決まるとは限らない点も記録します。

Q1. TransformerはChatGPTそのもの?

違います。Transformerはニューラルネットワーク構造の系統で、チャットサービスはモデル、追加調整、画面、検索や安全機構などを組み合わせたシステムです。

Q2. TransformerはAttentionだけでできている?

違います。埋め込み、位置情報、フィードフォワード、残差接続、正規化、出力層などが組み合わさります。

Q3. Attentionが強い場所は、AIが考えた理由そのもの?

そう言い切れません。Attentionは関係を取り込む計算の一部で、出力には多層の処理が関わります。

Attention回廊から次へ進む

入口の数値表現がまだつかみにくいときは、埋め込みベクトルとはで、トークンの番号とベクトルの違いを先に比べられます。

入力の札を詳しく見るならAIのトークンとは?、この構造を使う大規模モデル全体は大規模言語モデルLLMとは?へ進めます。

自然な出力を「理解」と呼べるかを考える次の地点は、AIは本当に言葉を理解しているの?です。仕組みの説明と、人間の理解や意識についての判断を切り分けます。

この構造が何を生成する技術群で使われるかは生成AIとは?へ戻り、生成AI、LLM、Transformerを広い順に三つの箱に置いてください。

LAB WHITEBOARD

自分の言葉で説明してみよう

「トークン化、位置情報、Attention、フィードフォワード、層の反復、次トークン生成を一つの概略として説明できるようになる。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。