今日から数回にわたって、生成AIの根幹——Transformerアーキテクチャに踏み込むわ。
まずは土台のAttention機構よ。
Attention は英語で「注意」ですね。
つまり、入力のどこに注意を向けるべきかを学習する仕組み、という理解で合っていますか?
完璧。
たとえば英語「I love cats」を日本語に翻訳するとき、「love」という動詞を訳すには主語「I」と目的語「cats」の両方を参照する必要があるわよね。
アテンションは、各単語が他のどの単語にどれだけ注目すべきかを重みとして計算するの。
えっと…それって、教科書の大事なところにマーカー引くのに似てる?
読む人によって引く場所が違うけど、文脈ごとに大事な場所があるってこと?
ましろちゃん、それ、すごく本質を突いた言い方よ!
しかも「文脈ごとに」っていうのが秀逸。
同じ単語でも周囲が違えば注目すべき場所が変わる——それを動的に学ぶのが Attention の凄さ。
え、ましろ今日冴えてるね…。
本当、文芸部は伊達じゃないね。
……あ、それ、私も今言おうとしてたのに。
具体的には、Attention ではQuery、Key、Valueの3つのベクトルを使って計算するわ。
Query と Key の類似度が高いほど、対応する Value を強く取り込む——これが注意重みの計算よ。
重みは合計1になるよう softmax で正規化されるの。
Query と Key と Value…図書館の検索に似てるかも。
知りたいテーマ(Query)があって、本の背表紙(Key)を見比べて、中身(Value)を集めてくる感じ?
ましろちゃん、今日はさえまくりね!
まさにその通り。
Attention は元々2014〜15年頃の機械翻訳のために提案されて、その後 Transformer の中核に据えられて、今の ChatGPT や Claude まで続いているのよ。
つまり、文脈的に関連性の高い情報に大きな重みがつくことで、出力が文脈に沿ったものになる、ということですね。
補足ですが、Attention は計算量が系列長の二乗になりやすく、長文では効率化手法(Sparse Attention、FlashAttention など)が重要になります。
なんか、あたしたちの会議でも「誰の意見に重みを置くか」って勝手にやってるもんね。
そう考えるとAIの工夫も意外と人間臭いじゃん。
ジャスミンちゃんのたとえもナイス。
みんなの会話そのものが生きた Attention の例ね。
大事な発言に自然と耳を傾ける、あの動作を数式で機械にやらせたのが Attention よ。
今日はもうここまでで十分ね。
ましろちゃんの覚醒タイム、忘れないでね。
確認クイズ
アテンション機構の計算に使われる3つの要素の組み合わせとして正しいものはどれか。
- Input, Output, Hidden
- Query, Key, Value
- Encoder, Decoder, Attention
- Weight, Bias, Activation
こたえを見る
正解: 2. Query, Key, Value
アテンション機構は Query(問い合わせ)・Key(鍵)・Value(値)の3つで注目すべき箇所を計算します。Input/Output/Hiddenは一般的なNN構造、Encoder/Decoderはアーキテクチャの要素で、いずれもQ/K/Vとは別概念です。