0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Transformer

Transformer は、2017年に Google が発表した「Attention Is All You Need」で登場した、自然言語処理(NLP)を中心に今のAIの基盤となっているニューラルネットワークモデルのことである。

最大の特徴は、従来のRNNでは難しかった

  • 長文の理解が得意

  • 高速に並列処理できる

  • 文脈を深くつかめる

という3つを実現した点にあります。

中心となる仕組みが Attention(注意機構)、特に Transformer ではそれを強化したSelf-Attention(自己注意) である。

Transformerが生まれた背景

Transformerの前はRNN/LSTMという「順番に1語ずつ読む仕組み」が主流だったが、RNNには欠点があった。

課題 内容
長期記憶が弱い 文の後半に行くと前半の情報を忘れやすい(長距離依存が苦手)
並列処理できない 1語ずつ順番に処理するため、学習・推論が遅い
学習が難しい 勾配消失・勾配爆発などが起こりやすい

Transformerの構成

Transformer は大きくエンコーダー(入力を理解)とデコーダー(出力を生成)の2つから成り立っており、どちらも Attention によって動く。

エンコーダー

エンコーダーの役割は、入力された単語列や文を高次元のベクトル表現へ変換することである。
自然言語はそのままではコンピュータが理解できないため、数値化が必須である。エンコーダーは単語を埋め込み(Embedding)し、さらに文脈情報を考慮した表現へ変換する。

エンコーダーが行う主な処理は以下の通りである。
image.png

  • 単語をベクトルへ変換する
    入力文の各単語を固定長の数値ベクトルに変換する。

  • Self-Attention によって単語同士の関係性を学習する
    Self-Attention(自己注意機構)によって、「どの単語がどれだけ重要か」「どの単語同士が強く関連しているか」といった情報を計算する。

  • 文脈を反映した表現を生成する
    Self-Attention とフィードフォワード層(FFN)を通して、単語ごとの深い文脈表現を生成する。

  • 文全体の意味を含むベクトルを出力する
    これらの処理によって、入力文全体の意味を含んだ情報が得られ、それがデコーダーへ渡される。

エンコーダーは入力系列の「特徴抽出器」であり、「文を理解する」部分を担っている。

デコーダー

デコーダーの役割は、エンコーダーが抽出した意味情報を用いて新しいテキストを生成することである。
機械翻訳を例にすると、エンコーダーが入力文を「理解」し、デコーダーがその理解に基づいて別言語の文を「生成」する。
image.png

デコーダーが行う主な処理は以下の通り。

  • これまでに生成した単語を入力として受け取る
    Transformerのデコーダーは自己回帰的であり、1語ずつ順番に出力を生成する。

  • Masked Self-Attention で未来の単語を見ないよう制限する
    翻訳中にまだ生成していない単語を参照してはならないため、Attention に「マスク」をかける。

  • Cross-Attention でエンコーダーの情報を参照する
    エンコーダーが作った文脈ベクトルを参照し、「次に生成すべき単語」を決定する際の手がかりとする。

  • 確率分布を計算し、最も適切な単語を出力する
    最後にソフトマックス関数によって単語の確率分布を生成し、最も高い確率の単語を選ぶ。

デコーダーは「生成器」であり、入力の理解を基に新たな文章を構築する役割を担う。

Self-Attention

→ 文中の単語同士の関連性を計算
例:「犬が元気に走る」
→「犬」←→「走る」など、何がどれに強く関係しているかをスコア化して理解。

FNN(フィードフォワード層)

→ 特徴をさらに抽象化

Transformerのメリット

① 並列処理で高速

RNNのように一語ずつ処理ではなく、文全体をまとめて処理できる。

② 文脈理解が高精度

Self-Attentionによって文中の遠い単語同士の関係も掴める。

③ 長文でも記憶を保持

長期依存問題(長い文章で前の内容を忘れる)が改善。

Transformerを基にした代表的モデル

  • GPT

Transformerの「デコーダー」だけを発展させたモデル。ChatGPTの基盤
高精度な文章生成・要約・質問応答が可能

  • BERT
    BERT(Bidirectional Encoder Representations from Transformers)は、Googleが開発した自然言語処理(NLP)のための深層学習モデルであり、従来のモデルを大きく上回る言語理解性能を実現したモデルである。BERTは文章の文脈を深く理解することに特化しており、文章の要約、分類、質問応答、感情分析など、多様な言語タスクを高精度に処理することができる。

その最大の特徴は双方向性(Bidirectional)である。ある単語を理解する際に、その単語の前後にある文脈を同時に参照しながら意味を推定することができる。この性質により、人間に近い文脈理解が可能となり、従来の一方向モデルと比較して大幅な性能向上を達成している。

BERTの目的 ― 人間のように言語を理解するためのモデル

BERTが開発された目的は、自然言語の意味や構造をより精度高く理解することである。BERTは文章の要約や文書分類、感情分析などに活用される。

また、BERTは大量のテキストで事前学習されており、学習済みモデルを使うことで小規模なデータセットでも高精度な処理が可能になる。この「転移学習のしやすさ」がBERTが広まった大きな理由の一つである。

BERTの原理

BERTは双方向Transformerエンコーダーのみから構成されている。TransformerはSelf-Attention・FFNからなるがこれが複数層積み重ねられることで、文章の文脈を深く理解する構造が作られている。

Transformerは系列データを一括並列処理できるため、RNNやLSTMと比較して圧倒的な効率と性能を持つ。BERTはそのTransformerを前後文脈を同時に参照可能な形で学習させたモデルである。

BERTのトレーニング方法 ― MLMとNSP

BERTは2つのタスクを同時に学習することで文脈理解能力を身につける。

  • MLM(Masked Language Modeling)

文章中の単語をランダムにマスクし、「文脈から欠けた単語を予測させる」という学習方法である。

例:
「私は ___ が好きだ」
→ “音楽” を予測させる。

これによりBERTは文の前後関係を同時に考慮する能力を獲得する。

  • NSP(Next Sentence Prediction)

文章Aの後に文章Bが続くかどうかを判定するタスクである。

例:
A「今日は雨が降っている。」
B「だから傘を持って行こう。」
→ 続く(IsNext)

A「今日は雨が降っている。」
B「パスタは小麦から作られる。」
→ 続かない(NotNext)

これにより段落レベルの文脈理解が向上する。

BERTの特徴

  • 双方向性

前後の文脈を同時に参照するため、単語の意味がより精密に理解できる。

  • 強力な事前学習

大量のテキストで学習しているため、小規模なデータでも高精度を発揮できる。

  • Transformerベースの高効率モデル

並列計算により高速であり、大規模な事前学習が可能である。

*転移学習が容易

タスクに応じて最終層を付け替えれば、感情分析・分類・QA などに簡単に対応できる。

ChatGPT は OpenAI による GPT 系列の生成モデルであり、BERTとは目的が異なる。

モデル 主目的 方向性
BERT 理解(判定・分類・検索・要約) 双方向
GPT(ChatGPT) 生成(会話・文章生成) 自己回帰(左→右)
  • PaLM / PaLM2

Googleの巨大モデル(5,400億パラメータ)語学、プログラミング、推論などマルチタスクに対応。

  • Conformer

「Conformer(Convolution-augmented Transformer)」は、2020年にGoogle社が発表した、音声認識に特化したモデル。名前の通り、TransformerとCNN(畳み込みニューラルネットワーク)の長所を組み合わせている。

Transformerは文脈理解に優れているが、音声のように「局所的な特徴」(音の細かな変化)を捉える点ではCNNの方が得意である。Conformerはこの両方を統合し、Self-Attention:長距離依存関係を学習・Convolution:局所的な時系列パターンを捉えるという2つの性質をバランスよく取り入れている。

これにより従来のTransformerよりも音声認識の精度が向上した。現在のスマートフォンの音声入力や、Googleの音声認識システムなどにも応用されている。

  • Vision Transformer(ViT)

「Vision Transformer(ViT)」は、2020年にGoogle社が発表した、画像を扱うためのTransformerモデル。
従来、画像処理分野はCNNが主流だったが、ViTは画像を「パッチ(小さな画像ブロック)」に分割し、それぞれを単語のように扱うことでAttentionを適用する。

  • T5(Text-to-Text Transfer Transformer)

「T5」はGoogleが2019年に発表した、あらゆる自然言語処理タスクを「テキスト → テキスト」に統一して扱うモデル。

例えば、
翻訳:英語文 → 日本語文
要約:長文 → 要約文
質問応答:質問 → 回答
文分類:文章 → 「肯定」などのラベル(テキストとして出力)

このように、どんなタスクでもテキスト入出力として扱えるため、統一的に学習できるという特徴がある。
T5はタスクごとにモデル構造を変える必要がないため、扱いやすく、学習効率も高いモデルである。

Transformerが広がり続ける理由

Transformerがさまざまな分野に応用される理由は、以下の3点である。

  • 汎用性が高い
    自然言語、音声、画像、動画、コード、音楽など、ほぼすべてのデータを扱える。

  • 並列処理による高速学習
    「大量データ × 大規模計算」の時代に最適。

  • Attentionで長距離依存関係を扱える
    長文、長い音声、複雑な画像構造などにも対応可能。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?