アテンションとは?意味・仕組みと計算を軽くする研究の論文(2026年11月時点)

アテンション

注意機構 / Attention / Self-Attention / 自己注意

アテンションとは、入力のどの部分にどれだけ注目するかを重みとして計算し、その重みで入力の情報を混ぜ合わせる仕組みのこと。Transformerの中心にある。

要するに

  • 2014年の翻訳の論文が、訳語ごとに原文の関係する位置を探す仕組みとして提案した
  • クエリとキーを照合して重みを決め、その重みでバリューを足し合わせる
  • 自己注意の計算量は入力の長さの2乗に比例し、近似やGPUの工夫で軽くする研究が続く

最終確認

暗い面で、手前のすりガラスの板から奥に並ぶ3枚の白い板へそれぞれ伸びる紫の細い光の線
目次8

ひとことで言うと

アテンション(Attention、注意機構)は、入力のどの部分にどれだけ注目するかを重みとして計算し、その重みで入力の情報を混ぜ合わせる仕組みだ。2017年に提案された Transformer は、この仕組みを中心に組んだモデルの構造だ。

例を1つ挙げる。2014年の Bahdanau らの翻訳の論文では、英語の文をフランス語に訳すとき、訳語を1語出すたびに、原文のどの位置がその訳語に関係するかを探す。論文はこれを、デコーダ(訳文をつくる部分)が原文のどこに注意を払うかを決める「注意の仕組み」と説明している。

仕組み

アテンションの計算を数式を使わずに書くと、次の4段になる。

  1. 入力の各トークン(AI が文章を数える単位)を表す数値の並びに、学習で決まる変換をかけて、クエリ、キー、バリューという3種類の並びをつくる。
  2. あるトークンのクエリを、すべてのキーと照合し、一致の度合いを点数にする。Transformer の原論文はクエリとキーの内積をとり、キーの次元の平方根で割っている。
  3. softmax という関数で、点数をバリューにかける重みに変える。
  4. 重みを使ってバリューを足し合わせる。原論文の言葉では、出力はバリューの重みつきの和だ。

自己注意(Self-Attention)は、クエリ、キー、バリューのすべてを同じ文から取り出す使い方だ。原論文によると、エンコーダ(入力を読み取る部分)の自己注意では、各位置が前の層のすべての位置を参照できる。文章を1語ずつ生成する側では、まだ出していない後ろの位置を見ないように隠す。

マルチヘッドはこの計算を複数並べる方式だ。原論文は8つの「ヘッド」を並列に動かし、各ヘッドの次元を64に減らした。そのため全体の計算量は次元を減らさないヘッド1つの場合と同程度だという。原論文は、ヘッドを分けると異なる位置にある異なる種類の情報(原文は representation subspaces)を同時に参照でき、ヘッドが1つでは平均されてそれが妨げられると説明している。

表で見る最新の状況

上の「原論文と、長い入力の計算を軽くする研究」は、TRAIL の研究記事から、Transformer の原論文と、アテンションの計算を軽くする論文6本を、発表の古い順に並べたものだ。各論文の要旨は2026年11月6日に arXiv で確かめた。

背景にあるのは、入力が長くなると計算が急に増える問題だ。原論文の表1では、自己注意の層1つあたりの計算量は入力の長さの2乗に比例する。FlashAttention の論文は、自己注意の時間とメモリが入力の長さの2乗に比例するため、Transformer は長い入力で遅く、メモリを多く使うと書いている。

研究の方向は大きく2つに分かれる。1つめは注意を近似したり、見る範囲を絞ったりする方法だ。Reformer(2020年1月)は、似たものを集めるハッシュを使い、計算量を長さの2乗から L log L(L は長さ)にした。Longformer(2020年4月)は、近くの語だけを見る窓と、課題に応じて全体を見る注意を組み合わせ、計算量を長さに比例する程度に抑えた。BigBird(2020年7月)は注意を疎にし、同程度の機器で従来の8倍までの長さを扱えるとした。

2つめは GPU での計算のしかたやメモリの使い方を変える方法だ。FlashAttention(2022年5月)は、近似しない厳密な計算のまま GPU の中のメモリどうしの読み書きを減らし、GPT-2(長さ1K)の学習を Hugging Face の実装と比べて最大3倍速くしたと報告した。FlashAttention-2(2023年7月)は GPU 内の仕事の割り振りを見直し、FlashAttention の約2倍の速さとした。vLLM(2023年9月)は、後で説明する KV キャッシュのメモリを小さな区画に分けて管理し、同程度の遅延で処理量を2〜4倍にしたとした。

TRAIL の研究記事では、2020年の3本が注意を近似したり範囲を絞ったりし、2022年以降の3本は GPU での計算やメモリの使い方を変えている。

翻訳モデルの注意と自己注意の違い

Bahdanau らの注意(2014年) Transformer の自己注意(2017年)
何が何を見るか 訳文をつくる側が、原文の各位置を見る 同じ文の各位置どうしが互いを見る
組み合わせる仕組み 再帰型のネットワーク(RNN。文を順に読む方式)の上に足す 再帰型も畳み込みも使わない
重みの計算 順伝播型のネットワークで一致の度合いを計算する クエリとキーの内積を、キーの次元の平方根で割る
ねらい 原文を決まった長さの1つの数値の並びに押し込まずに済ませる 計算を並列にし、離れた位置どうしを直接つなぐ

Bahdanau らは、原文を決まった長さの並びにまとめることが性能の妨げだと考えた。論文によると、提案したモデルのうち50語までの文で学習したものは、50語以上の文でも性能が落ちなかった。この経緯はAI翻訳の用語ページでもまとめている。

仕事でどう関係するか

長い資料を渡すときの計算とメモリを考えるとき

文章を生成する AI は、1トークンずつ順に出していく。Hugging Face のドキュメントによると、1,000番目のトークンを予測するには、前の999トークンの情報が要る。KV キャッシュは、すでに処理したトークンのキーとバリューを保存して使い回し、毎回の計算をし直さずに済ませる仕組みだ。

同じドキュメントによると、キャッシュがないと1ステップごとの注意の計算は長さの2乗で増え、キャッシュがあれば長さに比例する。そのかわり、保存するメモリは入力が長くなるほど増える。vLLM の論文も、リクエストごとの KV キャッシュのメモリは大きく、増えたり減ったりすると書いている。コンテキストウィンドウの上限が長いモデルでも、長い資料を渡すほど KV キャッシュに保存する量は増える。

「長い入力に強い」「高速化」の説明を読むとき

FlashAttention の論文は、計算を省いて近似する方法はモデルの品質と引き換えで、実際の時間は速くならないことが多いと書いている。新しい手法の記事を読むときは、計算を省く近似の方法か、FlashAttention のように近似しない厳密な方法かを確かめると、品質への影響を見積もりやすい。

論文の倍率を自社の見積もりに使うとき

論文の数字には条件がある。FlashAttention の最大3倍は GPT-2・長さ1Kで Hugging Face の実装と比べた値(Megatron-LM と比べると最大1.7倍)、FlashAttention-2 の約2倍は FlashAttention との比較で、効率の数字は A100 という GPU での値、vLLM の2〜4倍は FasterTransformer と Orca という特定の仕組みとの比較だ。同じ倍率が自社の環境で出るとは限らない。

注意点と限界

原論文の表1で入力の長さの2乗に比例するとしているのは、自己注意の層1つあたりの計算量だ。FlashAttention-2 の論文は、長い入力に広げるときの主な妨げを注意の層としている。

ヘッドは多いほどよいわけではない。原論文の実験では、ヘッド1つは最もよい設定より BLEU(翻訳の一致度を測る指標)が0.9低かったが、ヘッドが多すぎても品質は下がった。

Hugging Face のドキュメントは、KV キャッシュは推論(学習済みのモデルを使って答えを出すこと)だけに使い、学習で有効にすると予期しないエラーが起こりうるとしている。

原論文は注意の重みを調べ、ヘッドごとに異なる役割を学んだように見える例を示した。ただし示したのは付録の一部の例だ。また、この記事で読んだ論文と資料は、各社の商用モデルがどの方式を使っているかを示していない。

よくある質問

アテンションと自己注意は同じものか

自己注意はアテンションの使い方の1つだ。Transformer の原論文は自己注意を、1つの文の中の異なる位置どうしを関係づけて、その文の表現をつくる注意の仕組みと定義している。Bahdanau らの翻訳モデルのように、訳文の側から原文を見る使い方もある。

クエリ、キー、バリューとは何か

アテンションの計算に使う3種類の数値の並びだ。クエリをキーと照合して重みを決め、その重みでバリューを足し合わせる。自己注意では、3つとも同じ文から取り出す。

マルチヘッドとは何か

アテンションの計算を複数並べて同時に行う方式だ。原論文は8つのヘッドを並べ、それぞれの結果をつなげ、もう一度変換して最終の出力にした。各ヘッドの次元を小さくしたので、全体の計算量はヘッド1つの場合と同程度だという。

FlashAttention を使うと答えが変わるか

FlashAttention の論文は、近似しない厳密な注意の計算だとしている。FlashAttention-2 の論文も、FlashAttention は近似なしで省メモリと高速化を得たと書いている。ただし、FlashAttention の論文が同時に示したブロック疎の版は近似の方法だ。

KV キャッシュとは何か

文章を生成するとき、すでに処理したトークンのキーとバリューを保存して使い回す仕組みだ。次のトークンを出すたびに過去の分を計算し直さずに済む。保存するメモリは入力が長いほど増える。

関連する用語

出典

公開
執筆
TRAIL編集部(編集方針)

この用語に関係するツール

  • ChatGPT

    OpenAI

    文章、画像、調査、開発を会話で任せられるAIアシスタント

    • 無料プランあり
    • 画面の日本語あり
    • APIあり

    有料Go ¥1,400/月

    年表
    110件
    最新の更新
    2026.11.05
  • Claude

    Anthropic

    文章作成・コーディング・調査に使えるAIアシスタント

    • 無料プランあり
    • 画面の日本語あり
    • APIあり

    有料Pro $20/月(年払いは月$17、$200一括)

    年表
    109件
    最新の更新
    2026.11.05
  • Gemini

    Google

    Google の対話型AI。文章・画像・動画・調査に対応

    • 無料プランあり
    • 画面の日本語あり
    • APIあり

    有料Google AI Plus ¥725/月

    年表
    97件
    最新の更新
    2026.11.06