Re Reference AI

アーキテクチャ

Transformerとは

注意機構(Attention)ベースの系列モデリング用ニューラルネットワークアーキテクチャ

深層学習AttentionNLP

ひとことで言うと

文章中の単語同士の関係を見比べながら処理する仕組み。今のほとんどのAIモデルの土台になっている技術。

概要

Transformerは、系列中のトークン間の関係を自己注意機構(Self-Attention)のみでモデル化するニューラルネットワークアーキテクチャ。 従来主流だったRNNの逐次処理やCNNの局所的な畳み込みを用いず、系列内の全トークンペア間の関連度を一度に計算することで、離れた位置にある単語同士の依存関係も直接捉えられる。 この設計により学習を系列長方向に並列化でき、GPUクラスタでの大規模分散学習が現実的になった。 テキストのみならず画像(Vision Transformer)、音声、マルチモーダル入力にも応用範囲が拡大しており、現在の深層学習モデルの大半が何らかの形でTransformerブロックを採用している。

背景

RNNの逐次処理によるボトルネックを解消するために考案された。 並列学習を可能にし、長距離依存関係のモデリング性能を向上させる。

歴史

2017年: Vaswani らが「Attention Is All You Need」を発表。 2018-2019年: BERTGPTがTransformerを事前学習へ応用。 2020年代: NLP・画像・音声を横断する支配的アーキテクチャに。

アーキテクチャ

エンコーダデコーダ(またはデコーダのみ)構成。 マルチヘッド自己注意層と位置ごとのフィードフォワード層を、残差接続層正規化とともに積み重ねる。

ワークフロー

入力トークン埋め込み+位置エンコーディング注意機構/FFNブロックの積み重ね → 出力射影(例: 次トークンのロジット)。

コード例

最小構成の自己注意機構(PyTorch)

import torch.nn.functional as F

def self_attention(q, k, v):
    scores = q @ k.transpose(-2, -1) / (q.size(-1) ** 0.5)
    weights = F.softmax(scores, dim=-1)
    return weights @ v

利点

  • RNNと比較して学習の並列化が容易
  • 注意機構により長距離依存関係を捉えられる
  • データと計算量に対して性能が予測可能にスケールする

欠点

  • 系列長に対して計算量が2乗で増加する
  • 汎化には大量の学習データを要する

比較

  • LLMLLMはTransformerアーキテクチャを大規模に応用したもの
  • ニューラルネットワークTransformerはニューラルネットワークの一種で、自己注意機構に特化したアーキテクチャ
  • RNNTransformerはRNNの逐次処理によるボトルネックを解消し、並列学習を可能にしたアーキテクチャ
  • AttentionTransformerはAttention機構(特に自己注意)のみで構成されたアーキテクチャ
  • BERTBERTはTransformerのエンコーダ部分のみを用いた双方向の事前学習済み言語モデル
  • KVキャッシュKVキャッシュは、Transformerの自己回帰生成におけるAttention再計算を省く最適化手法
  • Seq2SeqTransformerはSeq2Seqの発展形で、RNNの代わりに自己注意機構でEncoder・Decoderを構成する

関連用語

LLMファインチューニングニューラルネットワークRNNAttentionBERTKVキャッシュSelf-AttentionSeq2SeqRoPE残差接続Layer NormalizationFlashAttentionGQAMQASliding Window AttentionMixture-of-Depths

よくある質問

Transformerはテキスト専用?

いいえ。 画像(ViT)、音声、マルチモーダルタスクにも使われる。

参考文献

関連Zenn記事