ChatGPTの頭脳:AttentionとTransformer
「AIの基礎:探索から機械学習まで」のレッスン 15 / 15・約6分
文脈付き埋め込み、Self-Attention(自己注意機構)、Transformer構造、大規模言語モデル(LLM)の動作原理を学ぶコース完結レッスンです。
このレッスンで学ぶこと
- 次の1語を当て続けて文章を書く仕組みを説明する
- 自己注意とTransformerが離れた言葉をつなぐ仕組みを説明する
レッスンの内容
同じ「かける」、3つの意味
「電話をかける」「眼鏡をかける」「醤油をかける」。同じ「かける」でも、意味は3つとも違います。
単語に位置を1つだけ与えると、3つは同じ点になります。周りの言葉に合わせて位置を動かすのが文脈付き埋め込みです。
「それ」は、どっちを指す?
「トロフィーはかばんに入らなかった。それが大きすぎたから」。「それ」はどちらを指しているでしょうか。
最後の言葉を入れ替えて、「それ」の注目がどちらに向くかを見てみましょう。
全部の単語に、注目を配る
図の例では、「大きすぎた」ならトロフィーへ約9割、「小さすぎた」ならかばんへ約9割。「それ」は文の全単語に注目を配っています。
これをすべての単語で行う仕組みが自己注意です。離れた単語とも直接つながります。
「魚を鍋に入れた。それに火が通ったら、皿に盛る」。自己注意で「それ」がいちばん強く注目すべき単語は?
問題:「魚を鍋に入れた。それに火が通ったら、皿に盛る」。自己注意で「それ」がいちばん強く注目すべき単語は?
- 魚(正解)
- 鍋
- 皿
解説:火が通って皿に盛られるのは、鍋ではなく中身の魚です。自己注意は単語の近さではなく、「火が通る」「盛る」との意味の合い方で注目を配ります。
1語ずつ読むと、最初が薄れる
昔のAIは1語ずつ順に読み、1つにまとめて訳していました。長い文だと最初が薄れ、前が終わるまで次に進めません。
全単語を、同時に読む
2017年にGoogleの研究チームが発表したTransformerは、1語ずつ読むのをやめ、全単語の自己注意を同時に計算します。
並び順は、各単語に「何番目か」を表す数を足して残します。
○か✕か:同時に読むと順番は消える?
○か✕か
○か✕か:Transformerは全単語を同時に計算するので、「犬が猫を追う」と「猫が犬を追う」を区別できない。
答え:✕。各単語に「何番目か」を表す数を足してから計算するので、並び順の違いも区別できます。同時に読むことと、順番を捨てることは別です。
返事は、1語ずつ伸びていく
ChatGPTのような大規模言語モデルは、Transformerを大量の文章で「次の1語当て」に鍛えたものです。
返事を書くときも、次に来る1語の確率を出して1語足し、また予測する、を繰り返しています。
ChatGPTに質問すると、返事が1語ずつ表示されます。そのとき毎回行っている計算はどれ?
問題:ChatGPTに質問すると、返事が1語ずつ表示されます。そのとき毎回行っている計算はどれ?
- それまでの文に続く1語の確率を出す(正解)
- 質問に合う完成済みの答えを検索する
- 答え全体を作り、少しずつ表示する
解説:大規模言語モデルは、次の1語を選んで足すたびに、伸びた文全体からまた次の1語を予測します。表示が1語ずつなのは、作り方そのものが1語ずつだからです。
ありそうな言葉は、正しいとは限らない
次の1語は「事実かどうか」ではなく「この文脈でありそうか」で選ばれます。
そのため、存在しない本の題名や数字も、自然な文のまま書けてしまいます。
大規模言語モデルに論文を尋ねると、実在しない題名をそれらしく答えることがあります。仕組みから見た理由は?
問題:大規模言語モデルに論文を尋ねると、実在しない題名をそれらしく答えることがあります。仕組みから見た理由は?
- ありそうな次の1語を選び続けるから(正解)
- 検索した論文の題名を読み違えるから
- 学習した文章を丸ごと覚えているから
解説:大規模言語モデルは、事実を確かめてから書くのではなく、文脈上ありそうな語を選んでいきます。題名らしい語の並びは作れても、それが実在するかは確かめていません。
毎日のサービスの中にある
カーナビの案内は探索、迷惑メールの仕分けは機械学習の分類、勤務シフトの自動作成は制約充足。
そしてChatGPTはTransformer。このコースで学んだ仕組みは、毎日使うサービスの中で動いています。
ペアを見つけよう
4つは順に積み重なっています。位置を文脈で動かし、注目でつなぎ、それを同時に計算し、膨大な文章で鍛えたのが今の対話AIです。
離れた言葉を、AIがつなぐまで
- 同じ単語でも、周りの言葉に合わせて位置を動かす
- 各単語が全単語に注目を配り、離れた言葉とも直接つながる
- Transformerは全単語を同時に計算し、順番は「何番目か」の数で残す
- 大規模言語モデルは、次の1語の確率を出しては足す、を繰り返す
- 頼むときは条件を書き足し、名前と数字は自分で確かめる
「トロフィーはかばんに入らなかった。それが小さすぎたから」。Transformerが「それ」をかばんと結べるのは、どの計算のおかげ?
問題:「トロフィーはかばんに入らなかった。それが小さすぎたから」。Transformerが「それ」をかばんと結べるのは、どの計算のおかげ?
- 全単語への注目を同時に配る計算(正解)
- 直前の数語から次の1語を当てる計算
- 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)
- 周りの文脈に合わせて単語の意味の数値を動かす仕組み。同じ言葉も別の意味として扱えます。