長い文章では、今の語の意味を決める手がかりが、すぐ隣にあるとは限りません。最初に登場した人物、数行前の条件、離れた場所の否定表現が、後の文を左右します。順番に情報を受け渡すだけでは、遠くの関係を保つのが難しい場合があります。
2017年に提案されたTransformerは、注意機構を中心に据えて、系列内の関係を扱う設計でした。その後、BERTやGPTなどの事前学習モデルへつながり、文章処理の共通基盤になっていきます。ただし、Transformerという構造と、何を予測して学ぶかという学習課題は、同じものではありません。
2017年の出発点は、機械翻訳の研究
論文「Attention Is All You Need」で提案されたTransformerは、当初、機械翻訳を主な実験対象にしていました。すべての質問へ答える会話サービスとして生まれたわけではありません。入力文を処理するエンコーダと、訳文を作るデコーダからなる構成です。
それ以前の注意機構付き翻訳では、再帰型ネットワークで文を処理しながら、必要な入力位置を参照する方法が使われていました。Transformerは、原論文の構成で再帰や畳み込みに頼らず、注意機構を中心に系列を扱った点が大きな特徴になります。
ここで「注意だけ」と聞いて、ほかの計算が一切ないと考えるのは正確ではありません。各位置の表現を変換するフィードフォワード層や、正規化、残差接続なども使われます。論文の題名は設計上の転換を強く示す言葉ですが、モデル全体の部品表ではないのです。
自己注意で計算する、語と語の関係
自己注意、セルフアテンションでは、同じ系列の各位置が、ほかの位置の情報をどれほど使うかを計算します。説明用に「箱を棚に置いた。それは重かった」という文を考えると、「それ」が何を指すかを判断するには、前の名詞との関係が必要になるでしょう。
各位置の表現から作るのは、問い合わせに相当するquery、照合に使うkey、取り込む内容に相当するvalueです。queryとkeyの関係から重みを求め、その重みでvalueを混ぜます。辞書で完全一致の語を一つ取り出す検索とは違い、参照先を一か所に限る必要はありません。
これらの名前は計算の役割を説明するためのものです。モデルの中に、人間のように質問を意識する担当者がいるわけではありません。query、key、valueを作る変換も、学習によって調整される数値計算になります。
注意の重みは、情報を混ぜる割合
注意機構を、三つの場所から情報を集める小さな計算として考えましょう。ある位置が参照する重みを0.7、0.2、0.1とします。それぞれの場所が持つ数値の一成分が10、4、2なら、重み付きの結果は7+0.8+0.2=8です。
この例では最初の場所を強く利用していますが、ほかの二つを完全に捨てたわけではありません。別の問い合わせなら重みが変わり、同じ入力から別の情報の組合せを作れます。実際には多数の成分を持つベクトルを扱いますが、参照先と利用割合を入力に応じて変えるという骨格は同じです。
ただし、0.7という注意の重みを「その語が正しい確率70%」と解釈することはできません。これは情報を取り込む割合であって、事実への信頼度ではないからです。同じ0から1の数値でも、計算の中での役割が違えば意味も変わります。
さらに、注意の結果は、その後の変換や別の層の処理へ渡されます。一か所の重みだけを見て、モデル全体の最終判断を説明し尽くせるとは限らない。この点が、注意の図を解釈するときにも重要なのです。
複数の参照と、語順を伝える情報
一つの語が必要とする関係は一種類とは限りません。主語と動詞の対応、修飾語の関係、離れた語との関連など、違う関係が役立ちます。マルチヘッド注意は、異なる変換を通じた複数の参照を計算し、その結果を組み合わせる仕組みです。
ただし、一つのヘッドが必ず主語専用、別のヘッドが感情専用というように、人間が役割を固定しているわけではありません。学習の結果を分析すると一定の傾向が見られる場合はあっても、明快な担当表が最初からあるわけではないのです。
「犬が人を追う」と「人が犬を追う」は、同じ語を含むのに意味が違います。単語を集めるだけでは、この差を表せません。Transformerでは位置に関する情報も加え、順序を区別できるようにするのです。
並列に学ぶことと、一語ずつ生成すること
再帰型の処理では、ある位置の計算に前の位置の結果が必要になります。Transformerでは、学習中に与えられた系列の多くの位置を並列に計算しやすくなりました。大きな計算機を活用するうえで、この違いが重要です。
一方、自己回帰型の文章生成では、実際に選んだトークンを追加し、それを次の生成の条件にします。したがって、学習が並列化しやすいことは、完成する文章のすべての語を同時に確定できるという意味ではありません。学習時と利用時の計算を分ける必要があります。
また、通常の自己注意では、系列内の位置どうしの組を扱うため、文が長くなると計算や記憶の負担が大きくなります。遠くの情報へ直接参照しやすい利点と、長い入力を扱う費用の両方があるのです。長文対応は、単に入力欄を広げれば済む問題ではありません。
学習の代表的な条件を比較しています。Transformerという構造だけでは予測目標は決まりません。
BERTの穴埋めと、両側の文脈
2018年に公開されたBERTは、Transformerのエンコーダを使った事前学習モデルです。中心的な学習課題の一つは、文章の一部を隠して、その内容を予測することでした。隠された位置の前だけでなく、後ろの文脈も利用して表現を学べます。
たとえば「彼は○○を開いて、目的地までの道を確認した」なら、後半の情報から地図などの候補を考えられるでしょう。これは仕組みを説明する例です。両側の文脈を使う学習は、文章の分類や質問応答などへ利用できる表現を得るのに役立ちました。
原論文では、次の文かどうかを扱う別の学習課題も含まれています。BERTを単純な穴埋め専用機として見る必要はありませんが、後ろの語がまだ存在しない文章生成とは、利用する情報の条件が違う点が重要です。
GPTの次トークン予測と、一方向の生成
2018年のGPTの研究は、文章の続きを予測する事前学習を、複数の言語課題へ利用する方向を示しました。基本となる自己回帰型の学習では、ある位置の予測に、その先の正解を見せません。過去のトークンから次を予測する条件を保つ必要があります。
学習時には正解の文章全体が手元にありますが、未来の情報へ注意を向けないようマスクを使います。そうしないと、隠しておくべき答えを見ながら予測することになり、実際の生成時と条件が合いません。並列計算を利用しつつ、予測に使ってよい情報を制限するわけです。
この違いから、BERTとGPTを単に大きさの違う同じAIと考えるのは適切ではありません。共通する構造の部品があっても、参照できる範囲と学習の目的が異なります。何を入力し、何を隠し、何を正解とするかが、得られる能力に影響するのです。
事前学習が変えた、課題ごとの開発
以前は、文章分類、翻訳、質問応答など、それぞれの課題に向けた仕組みやデータを個別に用意する比重が大きくありました。事前学習モデルは、広い文章から得た表現を出発点にして、別の課題へ調整できるようにしました。
共通の言語的な関係を、何度も一から学び直す負担を減らせます。ただし、持ち越されるのは長所だけではありません。事前学習の内容や言語の偏りも残り、後の課題へ弱点を引き継ぐことがあるのです。
また、事前学習の予測が上手であることと、人の指示に適切に答えることは同じではありません。質問の後に答えではなく、似た質問を続ける文章も、学習データ上では自然かもしれない。後に指示学習や人の評価による調整が重要になる理由がここにあります。
Transformerは、知能の完成宣言ではなく計算の設計
Transformerの成功は、注意機構、並列計算、事前学習を結び付ける強い設計を与えました。しかし、それ自体が事実確認や論理の正しさを保証するわけではありません。単語間の関係をうまく扱えても、入力の前提が間違っている場合や、必要な資料がない場合には問題が残ります。
構造、学習目標、データ、規模、利用時の道具を分けると、同じTransformer系のモデルでも能力が異なる理由を理解できます。モデル名が似ているから同じ条件、というわけではないのです。
この設計がどこまで伸びるかを追う中で、次に注目されたのがモデルとデータと計算を大きくする効果でした。スケーリング則は、その効果を単なる印象ではなく、測定できる関係として扱う研究になります。