WaytoAGI 飛書ナレッジベースへ · 8000 万+ 回のアクセス、誰でも利用できます →
WaytoAGI通往 AGI 之路

Transformerモデルを解析:GPT-3、BERT、T5の背後にあるモデルを理解する

Transformerは2017年にGoogleが提案した革新的なニューラルネットワークアーキテクチャで、位置エンコーディング、注意機構、自己注意機構によってRNNの並列化問題を解決し、GPT-3、BERT、T5などの大規模言語モデル(LLM)を生み出しました。

深度学习自然语言处理Transformer

AI により中国語から翻訳されています。問題があればフィードバックボタンからお知らせください。

原文リンク:https://daleonai.com/transformers-explained

著者:Dale Markowitz(@Google Labs、生成AIの啓発と教育を担当)

公開日:2021年5月6日

翻訳:データ派THU(翻訳者:王可汗、校閲:和中華)、一部修正あり

中国語翻訳元:https://mp.weixin.qq.com/s/kfsW7ccYUAGp1AHWWF6c1w

A16ZがまとめたAIコレクション》入門編第4回

「ハンマーを持っていると、すべてが釘に見える」という言葉をご存知ですか?機械学習の世界では、まさに魔法のハンマーを発見したかのようです。実際、このモデルの前ではすべてが釘に見えます。それがTransformerモデルです。Transformerモデルは、テキスト翻訳、詩の作成、記事の執筆、さらにはコンピュータコードの生成にも使えます。実際、私がdaleonai.comで紹介している多くの驚くべき研究は、Transformerを基盤としています。例えば、遺伝子配列からタンパク質構造を予測するモデルAlphaFold 2や、GPT-3、BERT、T5、Switch、Meenaといった強力な自然言語処理(NLP)モデルです。彼らは単に……まあ、話を進めましょう。

機械学習、特に自然言語処理の分野で時代についていくためには、少なくともTransformerについて少しは理解しておく必要があります。そこでこの記事では、Transformerとは何か、どのように機能するのか、そしてなぜこれほど影響力があるのかについて説明します。

Transformerはニューラルネットワークの一種です。簡単に言えば、**ニューラルネットワークは、画像、動画、音声、テキストなどの複雑なデータタイプを分析するのに非常に効果的なモデルです。データの種類に応じて最適化されたニューラルネットワークが存在します。**例えば、画像を分析する際には、通常、畳み込みニューラルネットワーク(CNN)を使用します。大まかに言えば、これらは人間の脳が視覚情報を処理する方法を模倣しています。

[図]

畳み込みニューラルネットワーク、画像提供:Renanar2、wikiccommons

2012年頃から、CNNを使って視覚問題(写真内の物体認識、顔認識、手書き数字認識など)をかなりうまく解決できるようになりました。しかし、長い間、言語タスク(翻訳、テキスト要約、テキスト生成、固有表現認識など)には良い方法がありませんでした。これは残念なことです。なぜなら、言語は人間の主要なコミュニケーション手段だからです。

2017年にTransformerが登場する前は、テキストを理解するための深層学習として、リカレントニューラルネットワーク(RNN)と呼ばれるモデルを使用していました。これは次のようなものです:

[図]

リカレントニューラルネットワーク、画像提供:fdeloche、Wikimedia

英語の文をフランス語に翻訳したいとします。RNNは英語の文を入力として受け取り、単語を一つずつ処理し、順番に対応するフランス語の単語を出力します。ここでのキーワードは「順番」です。言語において、単語の順序は重要であり、勝手に並べ替えることはできません。例えば、次の文: 「Jane went looking for trouble.(ジェーンはわざわざトラブルを探しに行った。)」は、「Trouble went looking for Jane.(トラブルがジェーンを探しに行った。)」とはまったく異なる意味になります。

したがって、言語を理解できるモデルは単語の順序を捉える必要があり、リカレントニューラルネットワークは、シーケンス内で単語を一つずつ処理することでこれを実現していました。

しかし、RNNには問題があります。まず、長いテキストシーケンス(長い段落や記事など)を処理するのが苦手です。段落の終わりまで読むと、最初に何が起こったかを忘れてしまいます。例えば、RNNベースの翻訳モデルは、長い段落の主語の性別を覚えておくのが難しい場合があります。

さらに悪いことに、RNNは訓練が難しいです。勾配消失・爆発問題(時には訓練を最初からやり直して祈るしかない)の影響を受けやすいのです。さらに問題なのは、RNNは単語を順番に処理するため、並列化が難しいことです。つまり、GPUを追加しても訓練を高速化できず、大量のデータで訓練することもできません。

Transformerの登場

そこで登場するのがTransformerです。Transformerは2017年にGoogleとトロント大学の研究者によって開発され、当初は翻訳用に設計されました。しかし、リカレントニューラルネットワークとは異なり、Transformerは非常に効率的に並列化できます。つまり、適切なハードウェアがあれば、非常に大規模なモデルを訓練できるのです。

どれほど大規模か? とてつもなく大規模です!

GPT-3は特に印象的なテキスト生成モデルで、その文章作成能力はほぼ人間に匹敵します。45TBのテキストデータ(ほぼすべての公開Webデータを含む)で訓練されています。

つまり、Transformerを一言でまとめると、次のようになります。拡張性に優れたモデルと巨大なデータセットが出会うと、その結果は驚くべきものになる可能性があります。

Transformer はどのように動作するのか?

[図]

Transformer、画像は原稿より:https://arxiv.org/abs/1706.03762

原稿の図は少し怖い印象を与えますが、Transformer の背後にある革新は主に3つの概念に集約できます:

  1. 位置エンコーディング(Positional Encodings)

  2. 注意機構(Attention)

  3. 自己注意機構(Self-Attention)

位置エンコーディング

最初の概念、位置エンコーディングから始めましょう。テキストを英語からフランス語に翻訳する場合を考えます。以前の翻訳手法である RNN は、単語を順番に処理することで単語の順序を理解していました。しかし、それが並列化を難しくする原因でもありました。

Transformer は、位置エンコーディングと呼ばれる革新的な手法でこの障壁を回避しました。そのアイデアは、入力シーケンス内のすべての単語(この場合は英語の文)に、その順序を示す数字を各単語に付加することです。 つまり、ネットワークに次のようなシーケンスを提供します:


[("Dale", 1), ("says", 2), ("hello", 3), ("world", 4)]

概念的に言えば、語順を理解する負担をニューラルネットワークの構造からデータ自体に移すことができます。

当初、Transformer をデータで訓練する前は、これらの位置エンコーディングをどう解釈すべきか分かっていません。しかし、モデルがより多くの文とそのエンコーディングを見るにつれて、それらを効果的に使用する方法を学習します。

ここでは少し単純化しています——原著者は単純な整数 1、2、3、4 ではなく、正弦関数を使用して位置エンコーディングを行いました——しかし要点は同じです。語順をネットワーク構造ではなくデータとして保存することで、ニューラルネットワークの訓練が容易になります。

注意機構

Transformer の次の重要な部分は注意機構と呼ばれます。

こんにちは!

注意機構は、機械学習の至る所で見られるニューラルネットワーク構造です。実際、2017 年に Transformer を紹介した論文のタイトルは「私たちは Transformer を紹介します」(We Present You the Transformer)ではありませんでした。代わりに、「注意こそがすべてである」(Attention is All You Need)と題されていました。

注意機構は 2015 年のテキスト翻訳で導入されました。それを理解するために、原文の例文を参照してください:

欧州経済地域に関する協定は 1992 年 8 月に署名された。

( The agreement on the European Economic Area was signed in August 1992.)

さて、この文をフランス語に翻訳する場合を想像してください:

L’accord sur la zone économique européenne a été signé en août 1992.

この文を翻訳する際の悪い方法は、英語の文の各単語と照らし合わせながら、フランス語の対応する単語を一度に翻訳しようとすることです。これがうまくいかない理由はいくつかありますが、その一つはフランス語の翻訳では一部の単語の順序が逆になることです:英語では「European Economic Area」ですが、フランス語では「la zone économique européenne」となります。さらに、フランス語には男性形・女性形の区別がある言語です。形容詞「économique」と「européenne」は、女性形の目的語「la zone」に合わせて女性形でなければなりません。

注意機構は、テキストモデルが出力文の単語を翻訳する方法を決定する際に、元の文のすべての単語を「見る」ことを可能にするメカニズムです。 下図は、最初の注意機構に関する論文からの優れた可視化です:

[図]

画像は論文「Neural Machine Translation by joint Learning to Align and Translate(2015)」より、https://arxiv.org/abs/1409.0473

これはヒートマップであり、モデルがフランス語の出力文の各単語を生成する際に、どこに「注意」を向けているかを示しています。予想通り、モデルが「européenne」を出力するとき、入力単語「European」と「Economic」に重点的に注目しています。

モデルは各タイムステップでどの単語に「注意」すべきかをどのように知るのでしょうか? それは訓練データから学習されます。何千ものフランス語と英語の文を観察することで、モデルはどのような種類の単語が相互に依存しているかを学習します。 単語の女性形・男性形、複数形、その他の文法規則に従う方法を学習します。

2015年に発見されて以来、注意機構(Attention Mechanism)は自然言語処理において非常に有用なツールであり続けています。しかし、その元々の形式では、再帰型ニューラルネットワーク(RNN)と組み合わせて使用されていました。そのため、2017年の「Transformer」論文の革新性は、ある程度RNNを完全に排除した点にあります。これこそが、2017年の論文が「Attention Is All You Need(注意こそがすべて)」と名付けられた理由です。

自己注意機構(Self-Attention)

Transformerの最後の、そしておそらく最も影響力のあるポイントは、注意機構の変種である自己注意(Self-Attention)です。

先ほど説明した「本来の」注意機構は、英語とフランス語の文における単語の対応付けを助け、翻訳において非常に重要です。しかし、単語を翻訳しようとするのではなく、言語の基本的な意味やパターンを理解するモデル、つまりさまざまな言語タスクに使用できるモデルを構築しようとする場合はどうでしょうか?

一般的に、ニューラルネットワークが強力なのは、訓練データの意味のある内部表現を自動的に構築する傾向があるからです。 例えば、視覚ニューラルネットワークの異なる層を調べると、異なるニューロンがエッジや形状、さらには目や口のような高次構造といった異なるパターンを「認識」する役割を担っていることがわかります。テキストデータで訓練されたモデルは、品詞、文法規則、単語の同義性などを自動的に学習する可能性があります。

ニューラルネットワークが言語の内部表現をより良く学習すればするほど、あらゆる言語タスクでの性能が向上します。そして、注意機構を入力テキスト自体に適用することも、非常に効果的な方法であることが判明しました。

例えば、次の2つの文を考えてみましょう。

「ウェイター、お勘定をお願いします。」("Server, can I have the check?")

「どうやらサーバーをクラッシュさせてしまったようだ。」("Looks like I just crashed the server.")

ここで、「server」という単語はまったく異なる2つの意味を持ちますが、人間は周囲の単語を見ることで簡単に曖昧性を解消できます。自己注意は、ニューラルネットワークが単語をその周囲の文脈の中で理解することを可能にします。そのため、モデルが最初の文の「ウェイター」("Server")を処理する際、おそらく「お勘定」("check")という単語に「注意」を向け、それが「ウェイター」と「サーバー」という異なる意味のどちらを表すのかを曖昧性解消するのに役立ちます。

2つ目の文では、モデルは「クラッシュ」("crash")という単語に注意を向け、この「サーバー」("server")が機械を指すことを判断するでしょう。

自己注意は、ニューラルネットワークが単語の曖昧性解消、品詞タグ付け、固有表現認識、意味役割の学習などを行うのを助けます。

ここでは、Transformerについて非常に大まかにまとめました。

より深い技術的な説明が必要な場合は、Jay Alammarのブログ記事 The Illustrated Transformer を強くお勧めします。

Transformerで何ができるのか?

最も人気のあるTransformerベースのモデルの1つがBERTです。BERTは「Bidirectional Encoder Representations from Transformers(Transformerからの双方向エンコーダ表現)」の略です。これは、2018年に私がGoogleに入社する前後に同社の研究者によって導入され、すぐにGoogle検索を含むほぼすべてのNLPプロジェクトに採用されました。

BERTはモデルアーキテクチャを指すだけでなく、訓練済みのモデル自体も指し、こちらから無料でダウンロードして使用できます

Googleの研究者は、膨大なテキストコーパスでBERTを訓練し、自然言語処理のための汎用モデルとして確立しました。BERTは拡張することで、以下のようなさまざまなタスクに対応できます。

  • テキスト要約

  • 質問応答

  • 分類

  • 固有表現認識

  • テキスト類似度

  • 攻撃的な情報/不適切な言葉の検出

  • ユーザークエリの理解

  • などなど

BERTは、WikipediaやRedditから抽出したテキストのようなラベルなしデータでも優れた言語モデルを構築できること、そしてこれらの大規模な「基盤」モデルが特定のドメインのデータに適応し、多くの異なるユースケースに利用できることを証明しました。

最近では、OpenAIが作成したモデルGPT-3が、リアルなテキストを生成する能力で人々を驚かせました。Google検索が昨年リリースしたMeenaは、Transformerベースのチャットボット(いわゆる対話エージェント)で、ほぼあらゆるトピックについて魅力的な会話ができます(著者はMeenaと「人間であることの意味」について20分間議論したそうです)。

Transformerは自然言語処理の枠を超え、作曲、テキスト記述からの画像生成、タンパク質構造の予測などにも活用されています。

Transformerの使い方

Transformerの力に魅了されたあなたは、自分のアプリケーションでどう使えばいいのか気になっているかもしれません。大丈夫です。

TensorFlow Hubから、BERTのような一般的なTransformerベースのモデルをダウンロードできます。コードチュートリアルについては、私が書いたセマンティック言語アプリケーションの構築に関する記事をご覧ください。

しかし、本当にトレンドに乗りたいなら、そしてPythonを書くなら、HuggingFace社がメンテナンスしているTransformerライブラリを強くおすすめします。このプラットフォームを使えば、BERT、Roberta、T5、GPT-2といった、現在最も人気のあるNLPモデルのほとんどを、非常に開発者フレンドリーな方法でトレーニングし、利用できます。

今日の記事はここまでにしましょう!