3秒でわかる
2017 年に発表された深層学習の構造。注意機構で文中の離れた語の関係も掴む方式で、今の生成 AI の土台になっています。
30秒図解
もう少し詳しく
どういうものか
Transformer は 2017 年の論文「Attention Is All You Need」で示された深層学習の構造になる。中心にあるのは自己注意機構で、文の中のある単語を処理するとき、同じ文の他の単語それぞれにどれだけ注目するかを重みとして計算する。GPT、BERT、Claude といった現在の大規模言語モデルは、いずれもこの構造を土台にしている。
なぜ必要か
以前の主流だった再帰型ネットワークは、単語を先頭から順に一つずつ読む必要があり、文が長くなるほど前半の情報が薄れた。また順番に処理する以上、GPU を並べても学習時間が縮まらない。Transformer は文全体を一度に見て単語同士の関係を直接計算するため、離れた語の対応関係を保てるうえ、計算を並列に進められる。今の規模のモデルが現実的な時間で学習できるようになったのは、この性質による。
具体例
「その本は難しかったので、彼は途中でそれを閉じた」という文で「それ」を解釈する場面を考える。自己注意は各語への注目度を数値として出す。
対象語 それ
本 0.72 <- 最も強く結びつく
彼 0.11
途中 0.06
難しい 0.05扱いの水準を見るには、実際に呼び出してみるのが早い。
from transformers import pipeline
gen = pipeline("text-generation", model="gpt2")
print(gen("The capital of France is", max_new_tokens=10))つまずきやすいところ
「文脈を理解している」という表現から、人と同じ意味理解を想像すると誤解が生まれる。計算しているのは語と語の統計的な結びつきの強さで、事実かどうかの検証は行われない。もっともらしい誤りが出る理由がここにある。
もう一つ、自己注意の計算量は語数の 2 乗に比例して増える。文脈長を延ばすほど費用と応答時間が跳ね上がるのはこのためで、長い文書をそのまま渡すよりも、必要な箇所だけを選んで渡す設計が取られる。
似た用語との違い
Transformer は構造の名前で、GPT はその一部 (デコーダ側) を使った具体的なモデル系列になる。BERT はエンコーダ側を使い、文章の分類や検索用の埋め込み作成に向く。構造とモデルは別の階層の言葉になる。
覚え方
自己注意は、一文を読むときに視線をどこへ戻すかを数値で表したものにあたる。人が「それ」を読んで前の名詞へ目を戻すのと同じ動きを、全部の語の組み合わせについて一度に計算している。この総当たりが、長い文脈ほど費用が増える理由でもある。