ChatGPTの頭脳:AttentionとTransformer

「AIの基礎:探索から機械学習まで」のレッスン 15 / 15・約6分

文脈付き埋め込み、Self-Attention(自己注意機構)、Transformer構造、大規模言語モデル(LLM)の動作原理を学ぶコース完結レッスンです。

このレッスンで学ぶこと

  • 次の1語を当て続けて文章を書く仕組みを説明する
  • 自己注意とTransformerが離れた言葉をつなぐ仕組みを説明する

レッスンの内容

同じ「かける」、3つの意味

「電話をかける」「眼鏡をかける」「醤油をかける」。同じ「かける」でも、意味は3つとも違います。

単語に位置を1つだけ与えると、3つは同じ点になります。周りの言葉に合わせて位置を動かすのが文脈付き埋め込みです。

「それ」は、どっちを指す?

「トロフィーはかばんに入らなかった。それが大きすぎたから」。「それ」はどちらを指しているでしょうか。

最後の言葉を入れ替えて、「それ」の注目がどちらに向くかを見てみましょう。

全部の単語に、注目を配る

図の例では、「大きすぎた」ならトロフィーへ約9割、「小さすぎた」ならかばんへ約9割。「それ」は文の全単語に注目を配っています。

これをすべての単語で行う仕組みが自己注意です。離れた単語とも直接つながります。

「魚を鍋に入れた。それに火が通ったら、皿に盛る」。自己注意で「それ」がいちばん強く注目すべき単語は?

問題:「魚を鍋に入れた。それに火が通ったら、皿に盛る」。自己注意で「それ」がいちばん強く注目すべき単語は?

  1. 魚(正解)
  2. 鍋
  3. 皿

解説:火が通って皿に盛られるのは、鍋ではなく中身の魚です。自己注意は単語の近さではなく、「火が通る」「盛る」との意味の合い方で注目を配ります。

1語ずつ読むと、最初が薄れる

昔のAIは1語ずつ順に読み、1つにまとめて訳していました。長い文だと最初が薄れ、前が終わるまで次に進めません。

全単語を、同時に読む

2017年にGoogleの研究チームが発表したTransformerは、1語ずつ読むのをやめ、全単語の自己注意を同時に計算します。

並び順は、各単語に「何番目か」を表す数を足して残します。

○か✕か:同時に読むと順番は消える?

○か✕か

○か✕か:Transformerは全単語を同時に計算するので、「犬が猫を追う」と「猫が犬を追う」を区別できない。

答え:✕。各単語に「何番目か」を表す数を足してから計算するので、並び順の違いも区別できます。同時に読むことと、順番を捨てることは別です。

返事は、1語ずつ伸びていく

ChatGPTのような大規模言語モデルは、Transformerを大量の文章で「次の1語当て」に鍛えたものです。

返事を書くときも、次に来る1語の確率を出して1語足し、また予測する、を繰り返しています。

ChatGPTに質問すると、返事が1語ずつ表示されます。そのとき毎回行っている計算はどれ?

問題:ChatGPTに質問すると、返事が1語ずつ表示されます。そのとき毎回行っている計算はどれ?

  1. それまでの文に続く1語の確率を出す(正解)
  2. 質問に合う完成済みの答えを検索する
  3. 答え全体を作り、少しずつ表示する

解説:大規模言語モデルは、次の1語を選んで足すたびに、伸びた文全体からまた次の1語を予測します。表示が1語ずつなのは、作り方そのものが1語ずつだからです。

ありそうな言葉は、正しいとは限らない

次の1語は「事実かどうか」ではなく「この文脈でありそうか」で選ばれます。

そのため、存在しない本の題名や数字も、自然な文のまま書けてしまいます。

大規模言語モデルに論文を尋ねると、実在しない題名をそれらしく答えることがあります。仕組みから見た理由は?

問題:大規模言語モデルに論文を尋ねると、実在しない題名をそれらしく答えることがあります。仕組みから見た理由は?

  1. ありそうな次の1語を選び続けるから(正解)
  2. 検索した論文の題名を読み違えるから
  3. 学習した文章を丸ごと覚えているから

解説:大規模言語モデルは、事実を確かめてから書くのではなく、文脈上ありそうな語を選んでいきます。題名らしい語の並びは作れても、それが実在するかは確かめていません。

毎日のサービスの中にある

カーナビの案内は探索、迷惑メールの仕分けは機械学習の分類、勤務シフトの自動作成は制約充足。

そしてChatGPTはTransformer。このコースで学んだ仕組みは、毎日使うサービスの中で動いています。

ペアを見つけよう

4つは順に積み重なっています。位置を文脈で動かし、注目でつなぎ、それを同時に計算し、膨大な文章で鍛えたのが今の対話AIです。

離れた言葉を、AIがつなぐまで

  • 同じ単語でも、周りの言葉に合わせて位置を動かす
  • 各単語が全単語に注目を配り、離れた言葉とも直接つながる
  • Transformerは全単語を同時に計算し、順番は「何番目か」の数で残す
  • 大規模言語モデルは、次の1語の確率を出しては足す、を繰り返す
  • 頼むときは条件を書き足し、名前と数字は自分で確かめる

「トロフィーはかばんに入らなかった。それが小さすぎたから」。Transformerが「それ」をかばんと結べるのは、どの計算のおかげ?

問題:「トロフィーはかばんに入らなかった。それが小さすぎたから」。Transformerが「それ」をかばんと結べるのは、どの計算のおかげ?

  1. 全単語への注目を同時に配る計算(正解)
  2. 直前の数語から次の1語を当てる計算
  3. 1語ずつ読み、内容を1つに詰める計算

解説:「小さすぎた」からかばんへ、距離に関係なく直接注目を向けられるのが自己注意です。明日ChatGPTに頼むときは条件を書き足し、返ってきた数字は確かめてみてください。探索から言語まで、身の回りのAIを仕組みで見る目が、もうあなたの手元にあります。おつかれさまでした。

用語

Transformer(Transformer)
自己注意を中心にした言語AIの設計。2017年にGoogleの研究チームが発表。文を1語ずつ読まずに全単語を同時に計算し、順番は位置の数を足して残します。
自己注意(Self-Attention)
文の中の各単語が、ほかの全単語にどれだけ注目するかを割り振る仕組み。離れた単語どうしも1回の計算で直接つながります。
大規模言語モデル(Large Language Model)
Transformerを膨大な文章で「次の1語当て」に鍛えたAI。ChatGPTやClaude、Geminiなど。次の1語を選んで足す、を繰り返して文章を書く。
文脈付き埋め込み(Contextual Embedding)
周りの文脈に合わせて単語の意味の数値を動かす仕組み。同じ言葉も別の意味として扱えます。