標準的なトランスフォーマーのアーキテクチャ。左側にエンコーダ、右側にデコーダが表示されています。注: これはLN以前の規約を使用しており、2017年のオリジナルトランスフォーマーで使用されていたLN以降の規約とは異なります。 ディープラーニング において、トランスフォーマー はマルチヘッドアテンションメカニズムに基づく 人工ニューラルネットワーク アーキテクチャであり、テキストはトークンと呼ばれる数値表現に変換され、各トークンは 単語埋め込み テーブルからの参照によってベクトルに変換されます。[ 1 ] 各レイヤーでは、各トークン は並列マルチヘッドアテンションメカニズムを介してコンテキストウィンドウ の範囲内で他の(マスクされていない)トークンとともにコンテキスト化され 、重要なトークンの信号が増幅され、それほど重要でないトークンが低減されます。
Transformerは再帰ユニットを持たないという利点があり、そのため長短期記憶 (LSTM)などの初期の再帰型ニューラルネットワークアーキテクチャ (RNN)よりも訓練時間が短くて済みます。[ 2 ] その後の変種は、大規模な(言語)データセットでの 大規模言語モデル (LLM)の訓練に広く採用されています。[ 3 ]
トランスフォーマーの現代版は、2017年の論文「Attention Is All You Need 」でGoogle の研究者らによって提案された。[ 1 ] トランスフォーマーの前身は、機械翻訳 用の以前のアーキテクチャの改良として開発されたが、[ 4 ] [ 5 ] 、それ以来多くの応用が見出されている。それらは、大規模な自然言語処理 、コンピュータービジョン (ビジョントランスフォーマー )、強化学習 、[ 6 ] [ 7 ] オーディオ 、[ 8 ] マルチモーダル学習 、ロボット工学 、[ 9 ] さらにはチェス のプレイにも使用されている。[ 10 ] また、生成的事前学習済みトランスフォーマー (GPT)[ 11 ] やBERT [ 12 ] (トランスフォーマーからの双方向エンコーダー表現)などの事前学習済みシステム の開発にもつながっている。
歴史
先人たち 長年にわたり、シーケンスのモデリングと生成は、単純なリカレントニューラルネットワーク (RNN)を用いて行われてきました。初期のよく引用される例としては、エルマンネットワーク (1990)が挙げられます。理論上は、1つのトークンからの情報はシーケンスの任意の先まで伝播する可能性がありますが、実際には勾配消失問題により、 長い文の末尾のモデルの状態は、先行するトークンに関する正確で抽出可能な情報なしになってしまいます。
重要なブレークスルーはLSTM (1995) [ 注 1 ] であり、消失勾配問題を克服するために様々なイノベーションを使用し、長いシーケンス モデリングの効率的な学習を可能にした RNN です。重要なイノベーションの 1 つは、他のニューロンの出力を乗算するニューロン、いわゆる乗法ユニットを使用した 注意メカニズム の使用でした。[ 13 ] 乗法ユニットを使用するニューラル ネットワークは、後にシグマ パイ ネットワーク [ 14 ] または高次ネットワーク と呼ばれるようになりました。[ 15 ] LSTM は、2017 年に transformers が発表されるまで、長いシーケンス モデリングの標準的なアーキテクチャになりました。ただし、LSTM は、他のほとんどの RNN と同様に、シーケンシャル処理を使用していました。[ 注 2 ] 具体的には、RNN は最初から最後まで一度に 1 つのトークンを操作します。シーケンス内のすべてのトークンを並列に操作することはできません。
現代のトランスフォーマーはこの問題を克服していますが、RNNとは異なり、コンテキストウィンドウのサイズの2乗の計算時間を必要とします。線形スケーリング 高速重み コントローラ(1992)は、入力に応じて更なる処理のための重み行列を計算することを学習します。[ 16 ] 2つのネットワークのうち1つには、「高速重み」または「動的リンク」(1981)があります。[ 17 ] [ 18 ] [ 19 ] 低速ニューラルネットワークは、クエリへの回答を計算する高速ニューラルネットワークの重みの変化を計算するためのキーと値を生成するために、勾配降下法によって学習します。[ 16 ] これは後に、正規化されていない線形トランスフォーマーと同等であることが示されました。[ 20 ] [ 21 ]
seq2seqによる注目 エンコーダー-デコーダーシーケンストランスダクションのアイデアは2010年代初頭に開発されました。seq2seqを開発した創始者としてよく引用されるのは、2014年に同時に発表された2つの論文です。[ 22 ] [ 23 ]
機械翻訳用の3億8000万パラメータモデルは、2つの長短期記憶 (LSTM)を使用します。[ 23 ] そのアーキテクチャは2つの部分で構成されています。エンコーダー は、トークンのシーケンスを取り込み、それをベクトルに変換するLSTMです。デコーダーは 、ベクトルをトークンのシーケンスに変換する別のLSTMです。同様に、別の1億3000万パラメータモデルでは、 LSTMの代わりにゲート付き再帰ユニット (GRU)が使用されました。[ 22 ] その後の研究では、GRUはseq2seqにおいてLSTMよりも優れているわけでも劣っているわけでもないことが示されました。[ 24 ] [ 25 ]
これらの初期のseq2seqモデルには注意機構がなく、状態ベクトルはソーステキストの最後の 単語が処理された後にのみアクセス可能であった。理論的にはこのようなベクトルは元の文全体の情報を保持しているが、実際には情報の保存状態は芳しくない。これは、入力が1つの再帰型ネットワークによって順次処理されて固定 サイズの出力ベクトルとなり、それがさらに別の再帰型ネットワークによって処理されて出力となるためである。入力が長い場合、出力ベクトルは関連するすべての情報を保持できず、出力の品質が低下する。その証拠として、入力文を逆順に処理するとseq2seq翻訳が改善された。[ 26 ]
RNN探索 モデルは、機械翻訳のseq2seqにアテンション機構を導入し、(固定サイズの 出力ベクトルの)ボトルネック問題を解決することで、モデルが長距離の依存関係をより容易に処理できるようにしました。この名前は、「翻訳のデコード中に原文を検索することをエミュレートする」ことに由来しています。[ 4 ]
機械翻訳におけるグローバル( RNN検索 )とローカル(スライディングウィンドウ)の注意モデルアーキテクチャの相対的なパフォーマンスを比較したところ、混合注意はグローバル注意よりも品質が高く、ローカル注意は翻訳時間を短縮することがわかりました。[ 27 ]
2016年、Google翻訳は Google Neural Machine Translation へと刷新され、統計的機械翻訳 に基づく以前のモデルに取って代わりました。新しいモデルはseq2seqモデルで、エンコーダとデコーダはどちらも8層の双方向LSTMでした。[ 28 ] 開発には9ヶ月かかりましたが、10年を要した統計的アプローチを上回る性能を発揮しました。[ 29 ]
注意の並列化 注意(自己注意を含む)を備えたSeq2seqモデルは、並列化 が難しく、GPUでの高速化を妨げているという、再帰型ネットワークと同じ問題を抱えていました。2016年に、分解可能注意 は、並列化が容易なフィードフォワードネットワーク に自己注意メカニズムを適用し、 LSTMよりも桁違いに少ないパラメータでテキスト含意の SOTA 結果を達成しました。 [ 30 ] その著者の一人であるJakob Uszkoreitは、再帰のない 注意で言語翻訳に十分ではないかと考え、「注意がすべて 」というタイトルが付けられました。 [31 ] その仮説は当時の常識に反し 、 有名 な計算 言語学者である彼 の父親のHans Uszkoreit でさえ懐疑的でした。 [ 31 [ 32 ]
2017年、オリジナルの(100MBサイズ)エンコーダ・デコーダ変換モデルが「Attention is all you need 」論文で提案されました。当時の研究の焦点は、機械翻訳 におけるseq2seq の改良にあり、再帰性を排除してすべてのトークンを並列処理しつつ、ドット積アテンション機構を維持することでテキスト処理性能を維持しました。[ 1 ] これにより、独立したヘッドの使用と再帰性の欠如により並列化が容易なマルチヘッドアテンションモデルが導入されました。その並列化可能性は、大規模ニューラルネットワークで広く使用される上で重要な要素でした。[ 33 ]
AIブーム時代 2017年春という早い時期に、「Attention is all you need」のプレプリントが出版される前にも、共著者の一人がアーキテクチャの「デコーダーのみ」のバリエーションを適用して、架空のWikipediaの記事を生成しました。[ 34 ] Transformerアーキテクチャは現在、進行中のAIブーム に貢献する多くの生成モデル と並んで使用されています。
言語モデルにおいて、ELMo (2018)は文脈付き 単語埋め込み を生成する双方向LSTMであり、 bag of words やword2vec の研究の流れを改良したものである。その後、エンコーダのみのトランスフォーマーモデルであるBERT (2018)が登場した。 [ 35 ] 2019年10月、Googleは検索クエリの処理にBERTの使用を開始した。[ 36 ] 2020年、Google翻訳は従来のRNNエンコーダー・RNNデコーダーモデルをトランスフォーマー・エンコーダー・RNNデコーダーモデルに置き換えた。[ 37 ]
2018年以降、OpenAIのGPTシリーズのデコーダーのみの変換機は、 自然言語生成 における最先端技術となりました。2022年には、GPT-3をベースにしたチャットボットであるChatGPT が予想外に人気を博し[ 38 ] 、大規模言語モデルの ブームを引き起こしました[ 39 ] [ 40 ] 。
2020年以降、トランスフォーマーは、ビジョントランスフォーマー [ 41 ] 、音声認識[ 42 ] 、ロボット工学[ 6 ] 、マルチモーダル [ 43 ] など、テキスト以外のモダリティにも応用されています。ビジョントランスフォーマーは、畳み込みニューラルネットワーク の新たな開発を刺激しました。[ 44 ] DALL-E (2021)、Stable Diffusion 3 (2024)[ 45 ] 、 Sora (2024)などの画像およびビデオジェネレーターは、トランスフォーマーを使用して入力データ(テキストプロンプトなど)を「トークン」に分解し、自己注意を使用して各トークン間の関連性を計算することで分析します。これにより、モデルはデータ内のコンテキストと関係性を理解できるようになります。
トレーニング
トレーニングを安定させる方法 単純なTransformerアーキテクチャでは収束が困難でした。原著論文[ 1 ] では、著者らは学習率 ウォームアップの使用を推奨していました。つまり、学習率は訓練の最初の部分では0から最大値(通常は訓練ステップの総数の2%が推奨されます)まで線形に増加し、その後再び減少させるべきでした。
2020年の論文では、マルチヘッドアテンション層とフィードフォワード層の前 (後ではなく)に層の正規化を使用すると、学習率のウォームアップを必要とせずにトレーニングが安定することがわかりました。 [ 46 ] これは「LN前トランスフォーマー」であり、元の「LN後トランスフォーマー」と比較して、より一般的に使用されています。
事前トレーニングと微調整 Transformerは通常、まず大規模な汎用データセットを用いて自己教師あり学習 によって事前学習され、その後、小規模なタスク固有のデータセットを用いて教師あり ファインチューニングが行われます。事前学習データセットは通常、 The Pile のようなラベルなしの大規模コーパスです。事前学習とファインチューニングのタスクには、一般的に以下が含まれます。
T5トランスフォーマー レポート[ 47 ] には、多数の自然言語 事前学習タスクが記載されている。いくつかの例は以下の通りである。
不完全または破損したテキストを復元または修復します。例えば、「Thank you ~~ me to your party ~~ week」という入力に対して、 「Thank you for inviting me to your party last week」という出力が生成される場合があります。 自然言語間の翻訳(機械翻訳 ) 自然言語の実用的な受容性を判断する。例えば、次の文は「受容できない」と判断される可能性がある。[ 48 ] なぜなら、たとえ構文的には正しくても、人間の通常の使用ではあり得ないからである。コースはうまくジャンプしている。 これらの各タスクは、言語 (または言語群) のネイティブ スピーカーにとっては簡単または明白ですが、以前の世代の機械学習アーキテクチャでは難しいことが一般的であることに注意してください。
タスク 一般的に、言語モデリングタスクには3つのクラスがあります。「マスク型」、「 自己回帰型」、「 prefixLM 型 」です。[ 51 ]これらのクラス は 、Transformerなどの特定のモデリングアーキテクチャとは独立していますが、Transformerの文脈で議論されることがよくあります 。
マスクタスク[ 49 ] では、1つ以上のトークンがマスクされ、モデルはコンテキストに基づいてマスクされたトークンが何であるかを予測する確率分布を生成します。このタスクの損失関数 は通常、マスクされたトークンの対数パープレキシティの 合計です。そして、モデルはこの損失関数を最小化するように学習されます。BERTシリーズのモデルは、 マスクされたトークンの予測と別のタスクのために学習されています。 損失 = − ∑ t ∈ マスクされたトークン ln ( 確率 t 文脈に応じて ) {\displaystyle {\text{損失}}=-\sum _{t\in {\text{マスクされたトークン}}}\ln({\text{t{\text{のコンテキストに応じた確率}})}
自己回帰タスク[ 50 ] では、まずシーケンス全体がマスクされ、モデルは最初のトークンの確率分布を生成します。次に最初のトークンが明らかにされ、モデルは2番目のトークンを予測します。これを繰り返します。このタスクの損失関数は、通常、同じです。GPTシリーズのモデルは 、自己回帰タスクによって訓練されます。
prefixLMタスク[ 51 ] では、シーケンスは2つの部分に分割されます。最初の部分は文脈として提示され、モデルは2番目の部分の最初のトークンを予測します。その後、最初のトークンが明らかにされ、モデルは2番目のトークンを予測し、これを繰り返します。このタスクの損失関数は、通常、同じです。T5シリーズのモデルは 、prefixLMタスクによって訓練されます。
「マスク言語モデリング」の「マスク」は「マスクされた注意 」の「マスク」ではなく、「プレフィックス言語モデリング」の「prefixLM」は「プレフィックス言語モデル 」の「prefixLM」ではないことに注意してください。
建築 すべての変圧器には同じ主要コンポーネントがあります。
トークナイザーはテキストをトークンに変換します。 埋め込みレイヤー。トークンとトークンの位置をベクトル表現に変換します。 変換層はベクトル表現に対して繰り返し変換を行い、より多くの言語情報を抽出します。これらは、交互に配置された注意層とフィードフォワード層で構成されています。変換層には、エンコーダー層とデコーダー層の2つの主要なタイプがあり、さらにバリエーションがあります。 最終的なベクトル表現をトークン上の確率分布に変換する非埋め込みレイヤー。 以下の説明は、原論文に記載されているトランスフォーマーに正確に従っています。いくつかのバリエーションがあり、次のセクション で説明します。
慣例により、すべてのベクトルは行ベクトルとして記述されます。例えば、ベクトルを線形層に通すということは、右側の重み行列を乗算することを意味します。 × W {\displaystyle xW}
トークン化 Transformerアーキテクチャは、テキストではなく数値演算(行列乗算、ドット積、活性化関数)をネイティブに実行するため、まず入力テキストから何らかの数値表現へのマッピングが必要です。これは3つのステップで行われます。
まず、入力テキストはプリプロセッサによって処理され、テキスト変換と、テキストを プレトークン と呼ばれる粗いセグメントに分割します。後者はプレトークン化 と呼ばれます。次に、各プレトークンは、プリプロセッサによって出力されたプレトークンのみを参照することを想定しているトークナイザー によって、さらにトークン に分割されます。トークナイザーが生成する各トークンは、語彙 と呼ばれる有限の文字列セットに属する 1 つ以上の文字の文字列です。3 つに、語彙は有限で事前にわかっているため、各トークンに整数識別子を割り当てることができ、このマッピングをトークンのシーケンスに適用して、任意の入力テキストを数値シーケンスとして表すことができます。このマッピングは全単射であるため、出力側で整数識別子のシーケンスを生成し、それをトークンに戻すことができます。一部の前処理を元に戻すと、結果は再び判読可能なテキストになります。 V {\displaystyle V}
トークナイザーのトレーニング (語彙化 と呼ばれることもあります) は、適切な語彙を見つけるだけでなく、その使い方を学習することも意味します。任意の長さの文字列には仮想的なセグメンテーションがあり、その中には語彙にないセグメントが含まれるものもあるためです。語彙化中に最も重要なハイパーパラメータは語彙サイズ です。語彙サイズが小さい場合、学習した語彙は一般に文字と短い文字列で構成され、単語は多くのトークンに分割されます。サイズが大きくなると、トークンを完全な単語専用にすることができますが、プリプロセッサとトークナイザーによっては、大きな語彙で単語を分割するために常に最大のトークンが使用されるとは限りません。 V {\displaystyle V} s {\displaystyle s} | s | {\displaystyle |s|} 2 | s | − 1 {\displaystyle 2^{|s|-1}} | V | {\displaystyle |V|}
トークンは必ずしも完全な単語ではないため、サブワード と呼ばれることもあり、トークン化アルゴリズムはサブワードトークナイザー と呼ばれることもあります。これは、これらのシステムを、古い情報検索システムや自然言語処理システムで使用されていた従来の用語 と区別するためでもあります。これらのシステムでは、「トークナイザー」は、今日では「プレトークナイザー」(非常に大まかに言えば、単語への分割)と呼ばれるものを指すために使用されていました。語彙に含まれない トークンを生成するトークナイザーでは、語彙に含まれる特別なトークンが汎用的な代替として使用され、「未知」を表す「[UNK]」と表記されます。原則として、このような[UNK]によって任意の文字列を隠すことができます。実際、情報検索では、プレトークナイザー自体が[UNK]を含む単語レベルの語彙を持つトークナイザー(「トークナイザー」とも呼ばれます)として使用されていました。
一般的に使用されるサブワード トークナイゼーション アルゴリズムは、バイト ペア エンコーディング (BPE) とユニグラム言語モデル (ULM) で、それぞれ語彙化アルゴリズムと専用のセグメンテーション アルゴリズムが含まれています。また、学習を必要とせず、語彙 (BPE や ULM などで生成されたもの) があれば適用できるセグメンテーション アルゴリズムもいくつか存在します。たとえば、プレトークン内のトークンを左から右に移動して貪欲に認識するなどです。サブワード トークナイザーのソフトウェア実装としてよく知られているのは、Rust で実装されたHugging Face のtokenizersPython パッケージと、sentencepieceC++ で実装された Python パッケージです。後者のパッケージの名前の由来は、設定オプションの 1 つで組み込みのプレトークナイザーを無効にできるためです。これにより、実質的に文全体をプレトークンにして、トークナイザーに個々の単語ではなく文全体を認識させることができます。
埋め込み 各整数トークン識別子は、ルックアップテーブル を介して埋め込みベクトルに変換されます。言い換えると、トークン識別子のワンホット 表現に埋め込み行列を乗算することになります。例えば、入力トークンの識別子が の場合、ワンホット表現は となり、その埋め込みベクトルは となります。トークン埋め込みベクトルは、それぞれの位置エンコーディングベクトル(下記参照)に加算され、入力ベクトルのシーケンスが生成されます。 M {\displaystyle M} 3 {\displaystyle 3} [ 0 、 0 、 0 、 1 、 0 、 0 、 … ] {\displaystyle [0,0,0,1,0,0,\dots ]} E メートル b e d ( 3 ) = [ 0 、 0 、 0 、 1 、 0 、 0 、 … ] M {\displaystyle \mathrm {埋め込み} (3)=[0,0,0,1,0,0,\dots ]M}
埋め込みベクトルの次元は隠れサイズ または埋め込みサイズ と呼ばれ、と表記される。[ 35 ] このサイズは、元のTransformer論文では次のように表記されている。[ 1 ] d emb {\displaystyle d_{\text{emb}}} d モデル {\displaystyle d_{\text{モデル}}}
埋め込み解除 アンエンベディング層はエンベディング層のほぼ逆です。エンベディング層がトークン識別子をベクトルに変換するのに対し、アンエンベディング層はベクトルをトークンの確率分布に変換します。
思考連鎖応答の各出力トークンについて、温度 1 での上位 16 個のトークン確率を示した図。色は、その出力が同じプロンプトで温度 0 でのものとどの程度異なるかを表しています。 アンエンベディング層は線形ソフトマックス 層であり、行列の形状は である。一部のアーキテクチャでは、埋め込み行列の転置をアンエンベディング行列として用いることで、埋め込み関連パラメータの量が2倍になることを避け、学習中の発散を回避する。この方法は重み結合 と呼ばれる。[ 52 ] あなた n E メートル b e d ( × ) = s o f t メートル 1つの × ( × W + b ) {\displaystyle \mathrm {UnEmbed} (x)=\mathrm {softmax} (xW+b)} ( d emb 、 | V | ) {\displaystyle (d_{\text{emb}},|V|)} M {\displaystyle M} W {\displaystyle W}
位置エンコーディング パラメータによる(絶対)位置エンコーディングの図北 = 10000 、 d = 100 {\displaystyle N=10000,d=100} 位置エンコーディングは、シーケンス内のトークンの相対的な位置を表す固定サイズのベクトル表現です。これは、入力シーケンス内の単語の位置に関する情報を変換モデルに提供します。これにより、入力シーケンスの順序に バイアス が生じ、例えば、入力シーケンス「man bites dog 」は「dog bites man」とは異なる処理を施されます。
位置エンコーディングは、型 の関数として定義されます。ここで、は正の偶数 です。原著論文[ 1 ] で定義されている完全な位置エンコーディングは次のとおりです。ここで、 です。 f : R → R d {\displaystyle f:\mathbb {R} \to \mathbb {R} ^{d}} d {\displaystyle d} ( f ( t ) 2 k , f ( t ) 2 k + 1 ) = ( sin ( θ ) , cos ( θ ) ) ∀ k ∈ { 0 , 1 , … , d / 2 − 1 } {\displaystyle (f(t)_{2k},f(t)_{2k+1})=(\sin(\theta ),\cos(\theta ))\quad \forall k\in \{0,1,\ldots ,d/2-1\}} θ = t r k , r = N 2 / d {\displaystyle \theta ={\frac {t}{r^{k}}},r=N^{2/d}}
ここで、は自由パラメータであり、位置エンコーディング関数に入力される最大値よりも大幅に大きい必要があります。原著論文では が使用されています。 N {\displaystyle N} k {\displaystyle k} N = 10000 {\displaystyle N=10000}
関数は、 型の複素関数として記述すると、より単純な形式になります。 f : R → C d / 2 {\displaystyle f:\mathbb {R} \to \mathbb {C} ^{d/2}} f ( t ) = ( e i t / r k ) k = 0 , 1 , … , d 2 − 1 {\displaystyle f(t)=\left(e^{it/r^{k}}\right)_{k=0,1,\ldots ,{\frac {d}{2}}-1}} r = N 2 / d {\displaystyle r=N^{2/d}}
この位置エンコード関数を使用する主な理由は、シフトが線形変換となるためです。ここではシフトしたい距離です。これにより、変換子は任意のエンコードされた位置を取り、行列乗算によってnステップ先またはnステップ後の位置のエンコードを見つけることができます。 f ( t + Δ t ) = d i a g ( f ( Δ t ) ) f ( t ) {\displaystyle f(t+\Delta t)=\mathrm {diag} (f(\Delta t))f(t)} Δ t ∈ R {\displaystyle \Delta t\in \mathbb {R} }
線形和をとることで、任意の定数に対して、任意の畳み込みを線形変換として実装することもできます。これにより、変換器は任意のエンコードされた位置を取り、その近傍のエンコードされた位置の線形和を求めることができます。このエンコードされた位置の和が注意機構に入力されると、畳み込みニューラルネットワーク 言語モデル で起こるのと同様に、近傍に注目重みが生成されます。著者の言葉を借りれば、「これにより、モデルは相対的な位置によって注意を容易に学習できると仮定しました。」 ∑ j c j f ( t + Δ t j ) = ( ∑ j c j d i a g ( f ( Δ t j ) ) ) f ( t ) {\displaystyle \sum _{j}c_{j}f(t+\Delta t_{j})=\left(\sum _{j}c_{j}\,\mathrm {diag} (f(\Delta t_{j}))\right)f(t)} c j {\displaystyle c_{j}}
典型的な実装では、すべての演算は複素数ではなく実数に対して行われますが、複素数の乗算は実数の 2 行 2 列の行列の乗算として実装できる ため、これは単なる表記上の違いです。
エンコーダー・デコーダー(概要)1つのエンコーダ・デコーダブロック トランスフォーマーは、積み重ねられたエンコーダー層とデコーダー層で構成されます。 以前のseq2seq モデルと同様に、オリジナルのTransformerモデルはエンコーダー・デコーダー アーキテクチャを採用していました。エンコーダーは、すべての入力トークンを1層ずつまとめて処理するエンコード層で構成され、デコーダーは、エンコーダーの出力とデコーダーのこれまでの出力トークンを反復的に処理するデコード層で構成されます。
各エンコーダ層の目的は、トークンの文脈化された表現を作成することです。各表現は、自己注意メカニズムを介して他の入力トークンからの情報を「混合」するトークンに対応します。各デコーダ層には、2つの注意サブ層が含まれます。(1) エンコーダの出力(文脈化された入力トークン表現)を組み込むためのクロスアテンション、(2) デコーダへの入力トークン(つまり、推論時間中にこれまでに生成されたトークン)間の情報を「混合」するためのセルフアテンションです。[ 53 ] [ 54 ]
エンコーダー層とデコーダー層の両方に、出力の追加処理のためのフィードフォワードニューラルネットワークがあり、残差接続と層正規化ステップが含まれています。 [ 54 ] これらのフィードフォワード層には、トランスフォーマーモデルのほとんどのパラメータが含まれています。
フィードフォワードネットワーク
フィードフォワードネットワークモジュール。これは、次元ベクトルを次元ベクトルにマッピングする2層ネットワークです。d emb {\displaystyle d_{\text{emb}}} d emb {\displaystyle d_{\text{emb}}} Transformerのフィードフォワードネットワーク(FFN)モジュールは、2層の多層パーセプトロン です。ここで、 とは重み行列、と は バイアスベクトル、 は活性化関数です。オリジナルのTransformerでは、ReLU 活性化関数が使用されていました。 F F N ( x ) = ϕ ( x W ( 1 ) + b ( 1 ) ) W ( 2 ) + b ( 2 ) {\displaystyle \mathrm {FFN} (x)=\phi (xW^{(1)}+b^{(1)})W^{(2)}+b^{(2)}} W ( 1 ) {\displaystyle W^{(1)}} W ( 2 ) {\displaystyle W^{(2)}} b ( 1 ) {\displaystyle b^{(1)}} b ( 2 ) {\displaystyle b^{(2)}} ϕ {\displaystyle \phi }
中間層のニューロン数は、中間サイズ (GPT)[ 55 ] 、フィルタサイズ (BERT)[ 35 ] 、またはフィードフォワードサイズ(BERT) [ 35 ] と呼ばれます。通常、中間サイズは埋め込みサイズよりも大きくなります。例えば、GPT-2シリーズとBERTシリーズの両方において、モデルの中間サイズは埋め込みサイズの4倍です。 d ffn = 4 d emb {\displaystyle d_{\text{ffn}}=4d_{\text{emb}}}
スケールドドット積アテンション
注目の頭 スケールドドット積アテンション、ブロック図 アテンションヘッドモジュール内の正確な寸法カウント Transformerアーキテクチャで使用されるアテンションメカニズムは、スケールされたドット積 アテンション ユニットです。各ユニットについて、Transformerモデルはクエリ重み、キー重み、および値重みという3つの重み行列を学習します。 W Q {\displaystyle W^{Q}} W K {\displaystyle W^{K}} W V {\displaystyle W^{V}}
このモジュールは、クエリシーケンス、キーシーケンス、値シーケンスの3つのシーケンスを受け取ります。クエリシーケンスは長さ のシーケンスであり、各エントリは次元 のベクトルです。キーシーケンスと値シーケンスについても同様です。 ℓ seq, query {\displaystyle \ell _{\text{seq, query}}} d emb, query {\displaystyle d_{\text{emb, query}}}
クエリシーケンス内の各ベクトルを行列で乗算してクエリベクトルを生成します。すべてのクエリベクトルの行列がクエリ行列です。同様に、キー行列と値行列を構築します。 x i , query {\displaystyle x_{i,{\text{query}}}} W Q {\displaystyle W^{Q}} q i = x i , query W Q {\displaystyle q_{i}=x_{i,{\text{query}}}W^{Q}} Q = X query W Q {\displaystyle Q=X_{\text{query}}W^{Q}} K = X key W K {\displaystyle K=X_{\text{key}}W^{K}} V = X value W V {\displaystyle V=X_{\text{value}}W^{V}}
通常、すべてが正方行列、つまり、などに なります。W Q , W K , W V {\displaystyle W^{Q},W^{K},W^{V}} d emb, query = d query {\displaystyle d_{\text{emb, query}}=d_{\text{query}}}
注意の重みは、クエリベクトルとキーベクトルを使用して計算されます。トークンからトークンへの注意の重みは、とのドット積 です。注意の重みは、キーベクトルの次元の平方根 で割られ、トレーニング中に勾配を安定させ、重みを正規化するソフトマックス に渡されます。と が異なる行列であるという事実により、注意は非対称になります。つまり、トークンがトークンに注意を向ける場合(つまり、が大きい場合)、これは必ずしもトークンがトークンに注意を向けることを意味するわけではありません(つまり、 が小さい可能性があります)。トークンに対する注意ユニットの出力は、すべてのトークンの値ベクトルの加重和であり、トークンから各トークンへの注意で重み付けされています。 a i j {\displaystyle a_{ij}} i {\displaystyle i} j {\displaystyle j} q i {\displaystyle q_{i}} k j {\displaystyle k_{j}} d k {\displaystyle {\sqrt {d_{k}}}} W Q {\displaystyle W^{Q}} W K {\displaystyle W^{K}} i {\displaystyle i} j {\displaystyle j} q i ⋅ k j {\displaystyle q_{i}\cdot k_{j}} j {\displaystyle j} i {\displaystyle i} q j ⋅ k i {\displaystyle q_{j}\cdot k_{i}} i {\displaystyle i} a i j {\displaystyle a_{ij}} i {\displaystyle i}
すべてのトークンに対する注目度の計算は、ソフトマックス関数 を用いた1つの大きな行列計算として表現できます。これは、行列演算を高速に計算する計算行列演算最適化により、トレーニングに有用です。行列、 、は、それぞれ番目の行がベクトル、、 である行列として定義されます。したがって、注目度は次のように表すことができます。Q {\displaystyle Q} K {\displaystyle K} V {\displaystyle V} i {\displaystyle i} q i {\displaystyle q_{i}} k i {\displaystyle k_{i}} v i {\displaystyle v_{i}} Attention ( Q , K , V ) = softmax ( Q K T d k ) V {\displaystyle {\begin{aligned}{\text{Attention}}(Q,K,V)={\text{softmax}}\left({\frac {QK^{\mathrm {T} }}{\sqrt {d_{k}}}}\right)V\end{aligned}}}
ここで、ソフトマックスは行列の各行に適用されます。
クエリベクトルの次元数はクエリサイズであり、 キーサイズ と値サイズ も同様です。アテンションヘッドの出力次元はヘッド次元 です。アテンションメカニズムは、以下の3つの等式を満たす必要がありますが、それ以外は制約がありません。 d query {\displaystyle d_{\text{query}}} d key {\displaystyle d_{\text{key}}} d value {\displaystyle d_{\text{value}}} d head {\displaystyle d_{\text{head}}} ℓ seq, key = ℓ seq, value , d query = d key , d value = d head {\displaystyle \ell _{\text{seq, key}}=\ell _{\text{seq, value}},\;d_{\text{query}}=d_{\text{key}},\;d_{\text{value}}=d_{\text{head}}}
注意ヘッドが自己注意型で使用される場合、 となります。注意ヘッドが相互注意型で使用される場合、通常は となります。理論的には3つすべてが異なることも可能ですが、実際にはそうなることはほとんどありません。 X query = X key = X value {\displaystyle X_{\text{query}}=X_{\text{key}}=X_{\text{value}}} X query ≠ X key = X value {\displaystyle X_{\text{query}}\neq X_{\text{key}}=X_{\text{value}}}
マルチヘッドアテンション マルチヘッドアテンション、ブロック図 マルチヘッドアテンションモジュール内の正確な次元数 行列の集合はアテンションヘッド と呼ばれ、Transformerモデルの各層には複数のアテンションヘッドがあります。各アテンションヘッドは各トークンに関連するトークンに注目しますが、複数のアテンションヘッドが存在することで、モデルは異なる「関連性」の定義に対してこれを実行できます。具体的には、アテンションスコアの計算に関与するクエリ射影行列とキー射影行列、およびが「関連性」を定義します。一方、値射影行列は 、出力射影行列の一部と組み合わされて、注目されているトークンが後続の層、そして最終的には出力ロジットに渡される情報にどのように影響するかを決定します。さらに、各アテンションヘッドによって捕捉されるトークン関係の範囲、つまりアテンションの範囲は、トークンが後続の層を通過するにつれて拡大する可能性があります。これにより、モデルはより深い層におけるより複雑で長距離の依存関係を捕捉できます。多くのTransformerアテンションヘッドは、人間にとって意味のある関連性関係をエンコードします。例えば、一部のアテンションヘッドは主に次の単語に注目しますが、他のアテンションヘッドは主に動詞からその直接目的語に注目します。[ 56 ] 各アテンションヘッドの計算は並列 に実行できるため、高速処理が可能です。アテンション層の出力は連結され、フィードフォワードニューラルネットワーク 層に渡されます。 ( W Q , W K , W V ) {\displaystyle \left(W^{Q},W^{K},W^{V}\right)} W Q {\displaystyle W^{Q}} W K {\displaystyle W^{K}} W V {\displaystyle W^{V}} W O {\displaystyle W^{O}}
具体的には、複数の注意ヘッドを でインデックスすると、 となります。ここで、行列は単語埋め込みの連結であり、行列 は個々の注意ヘッド が所有する「投影行列」であり、はマルチヘッド注意ヘッド全体が所有する最終的な投影行列です。 i {\displaystyle i} MultiheadAttention ( Q , K , V ) = Concat i ∈ [ n heads ] ( Attention ( X W i Q , X W i K , X W i V ) ) W O {\displaystyle {\text{MultiheadAttention}}(Q,K,V)={\text{Concat}}_{i\in [n_{\text{heads}}]}({\text{Attention}}(XW_{i}^{Q},XW_{i}^{K},XW_{i}^{V}))W^{O}} X {\displaystyle X} W i Q , W i K , W i V {\displaystyle W_{i}^{Q},W_{i}^{K},W_{i}^{V}} i {\displaystyle i} W O {\displaystyle W^{O}}
理論的には、各アテンション ヘッドが異なるヘッド サイズを持つことは可能ですが、実際にはそうなることはほとんどありません。 d head {\displaystyle d_{\text{head}}}
例えば、最小のGPT-2モデルには、自己注意メカニズムのみが含まれています。このモデルは以下の次元を持ちます。なので、出力射影行列は正方行列です。 d emb = 768 , n head = 12 , d head = 64 {\displaystyle d_{\text{emb}}=768,n_{\text{head}}=12,d_{\text{head}}=64} 12 × 64 = 768 {\displaystyle 12\times 64=768} W O ∈ R ( 12 × 64 ) × 768 {\displaystyle W^{O}\in \mathbb {R} ^{(12\times 64)\times 768}}
マスクされた注目 トランスフォーマーアーキテクチャは、出力トークンを反復的に計算するように構築されています。 が最初の出力トークン の計算を指していると仮定すると、ステップ の間、出力トークンは一定のままです。これにより、自己回帰モデル に似たモデルの特性が保証されます。[ 1 ] したがって、すべての時間ステップ において、すべての出力の計算は、位置 のトークンにアクセスしてはなりません(トークンがまだ計算されていない時間ステップ の場合、当然のことですが)。この動作は、ソフトマックスステージの前に、アテンションリンクを切断する必要があるエントリやその他の場所にマスク行列を追加することで実現できます。次の行列は、デコーダーのセルフアテンションモジュールでよく使用され、「因果マスキング」と呼ばれます。t = 0 {\displaystyle t=0} i = 0 {\displaystyle i=0} t > 0 {\displaystyle t>0} i = 0 {\displaystyle i=0} t {\displaystyle t} i {\displaystyle i} j {\displaystyle j} j >= i {\displaystyle j>=i} t = i {\displaystyle t=i} j > t {\displaystyle j>t} M {\displaystyle M} − ∞ {\displaystyle -\infty } 0 {\displaystyle 0} MaskedAttention ( Q , K , V ) = softmax ( M + Q K T d k ) V {\displaystyle {\begin{aligned}{\text{MaskedAttention}}(Q,K,V)={\text{softmax}}\left(M+{\frac {QK^{\mathrm {T} }}{\sqrt {d_{k}}}}\right)V\end{aligned}}} M causal = [ 0 − ∞ − ∞ … − ∞ 0 0 − ∞ … − ∞ 0 0 0 … − ∞ ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 … 0 ] {\displaystyle M_{\text{causal}}={\begin{bmatrix}0&-\infty &-\infty &\dots &-\infty \\0&0&-\infty &\dots &-\infty \\0&0&0&\dots &-\infty \\\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&\dots &0\end{bmatrix}}}
言葉で言えば、各トークンは自身とそれ以前のすべてのトークンに注意を向けることができるが、それ以降のトークンには注意を向けることができないことを意味します。マスクなしの注意モジュールは、マスクのすべてのエントリがゼロであるマスク付き注意モジュールと考えることができます。マスク行列の珍しい使用例として、XLNetは という形式のすべてのマスクを考慮します。ここではランダム順列行列 です。[ 57 ] P M causal P − 1 {\displaystyle PM_{\text{causal}}P^{-1}} P {\displaystyle P}
エンコーダ 1つのエンコーダーレイヤー エンコーダーは、埋め込みレイヤーとそれに続く複数のエンコーダー レイヤーで構成されます。
各エンコーダ層は、自己注意機構とフィードフォワード層という2つの主要コンポーネントで構成されています。入力を入力ベクトルのシーケンスとして受け取り、自己注意機構を適用して中間ベクトルシーケンスを生成し、各ベクトルに対して個別にフィードフォワード層を適用します。概略的には、以下のようになります。given input vectors h 0 , h 1 , … combine them into a matrix H = [ h 0 h 1 ⋮ ] EncoderLayer ( H ) = [ FFN ( MultiheadAttention ( H , H , H ) 0 ) FFN ( MultiheadAttention ( H , H , H ) 1 ) ⋮ ] {\displaystyle {\begin{aligned}{\text{given input vectors }}&h_{0},h_{1},\dots \\{\text{combine them into a matrix }}H&={\begin{bmatrix}h_{0}\\h_{1}\\\vdots \end{bmatrix}}\\{\text{EncoderLayer}}(H)&={\begin{bmatrix}{\text{FFN}}({\text{MultiheadAttention}}(H,H,H)_{0})\\{\text{FFN}}({\text{MultiheadAttention}}(H,H,H)_{1})\\\vdots \end{bmatrix}}\\\end{aligned}}}
ここで は「フィードフォワードネットワーク」を表します。は行列の各行に個別に適用される という暗黙の慣例により、より簡潔に と記述できます。FFN {\displaystyle {\text{FFN}}} EncoderLayer ( H ) = FFN ( MultiheadAttention ( H , H , H ) ) {\displaystyle {\text{EncoderLayer}}(H)={\text{FFN}}({\text{MultiheadAttention}}(H,H,H))} FFN {\displaystyle {\text{FFN}}}
エンコーダー層は積層されています。最初のエンコーダー層は埋め込み層から入力ベクトルのシーケンスを受け取り、ベクトルのシーケンスを生成します。このベクトルのシーケンスは2番目のエンコーダー層で処理され、これが繰り返されます。最後のエンコーダー層からの出力はデコーダーで使用されます。
エンコーダーは入力全体を一度に処理するため、すべてのトークンが他のすべてのトークンに注意を向けることができる (全対全の注意) ため、因果マスキングは必要ありません。
デコーダ 1つのデコーダーレイヤー デコーダーは、埋め込み層、それに続く複数のデコーダー層、そして埋め込み解除層で構成されます。
各デコーダーは、因果的にマスクされた自己注意機構、交差注意機構、そしてフィードフォワードニューラルネットワークという3つの主要構成要素から構成されます。デコーダーはエンコーダーと同様に機能しますが、エンコーダーによって生成されたエンコーディングから関連情報を引き出す追加の注意機構が挿入されています。この機構は、エンコーダー・デコーダー注意機構 とも呼ばれます。[ 1 ] [ 54 ]
最初のエンコーダと同様に、最初のデコーダは、エンコードではなく、出力シーケンスの位置情報と埋め込みを入力として受け取ります。トランスフォーマーは現在または将来の出力を使用して出力を予測してはならないため、この逆方向の情報の流れを防ぐために、出力シーケンスを部分的にマスクする必要があります。[ 1 ] これにより、自己回帰 テキスト生成が可能になります。デコードでは、トークンはまだ生成されていないトークンに注意を向けることができないため、全対全の注意は不適切です。したがって、デコーダの自己注意モジュールは因果的にマスクされます。
対照的に、クロスアテンション機構は、デコーダがデコードを開始する前に計算されるエンコーダの出力ベクトルに注目します。したがって、クロスアテンション機構ではマスキングは必要ありません。
図式的に言えば、次のようになります。ここで、行はエンコーダからの出力ベクトルである行列です。 H ′ = MaskedMultiheadAttention ( H , H , H ) DecoderLayer ( H ) = FFN ( MultiheadAttention ( H ′ , H E , H E ) ) {\displaystyle {\begin{aligned}H'&={\text{MaskedMultiheadAttention}}(H,H,H)\\{\text{DecoderLayer}}(H)&={\text{FFN}}({\text{MultiheadAttention}}(H',H^{E},H^{E}))\end{aligned}}} H E {\displaystyle H^{E}}
最後のデコーダーの後には、語彙全体の出力確率を生成するための最終アンエンベディング層が続きます。次に、確率に従ってトークンの1つがサンプリングされ、デコーダーが再び実行されて次のトークンが生成され、自己回帰的に出力テキストが生成されます。
サブレイヤー (a) エンコーダー層とデコーダー層がそれぞれ1つずつ。(b) エンコーダー層とデコーダー層がそれぞれ2つずつ。サブレイヤーにもラベルが付けられています。 各エンコーダー層には、自己注意層とフィードフォワードネットワークの2つのサブ層が含まれます。各デコーダー層には、因果的マスク自己注意層、クロスアテンション層、フィードフォワードネットワークの3つのサブ層が含まれます。
ノルムファーストとノルムラストを備えたトランスフォーマーエンコーダ ノルムファーストとノルムラストを備えたトランスフォーマーデコーダー 完全なトランスアーキテクチャのブロック図 オブジェクト指向プログラミング スタイルによる、完全なトランスフォーマーアーキテクチャの概略的なオブジェクト階層 最後に詳しく説明すると、残差接続 とレイヤー正規化 (以下、「LayerNorm」または「LN」と表記)は概念的には不要ですが、数値の安定性と収束には必要です。
勾配消失の問題を回避し、学習プロセスを安定化させるために導入された残差接続は、y = F(x) + x と表すことができます。この式は、出力 y が入力 x の変換 (F(x)) と入力 x そのもの (x) の和であることを示しています。入力 x を加算することで入力情報が保持され、F(x) の勾配がゼロに近い場合の問題を回避できます。
フィードフォワード ネットワーク モジュールが各ベクトルに個別適用されるのと同様に、LayerNorm も各ベクトルに個別に適用されます。
一般的に使用されている2つの規則、すなわちLN後 規則とLN前 規則があります。LN後規則では、各サブレイヤーの出力は、サブレイヤー自体によって実装された関数 です。L a y e r N o r m ( x + S u b l a y e r ( x ) ) {\displaystyle \mathrm {LayerNorm} (x+\mathrm {Sublayer} (x))} S u b l a y e r ( x ) {\displaystyle \mathrm {Sublayer} (x)}
LN以前の慣例においては、各サブレイヤーの出力は…である。2017年のオリジナルのTransformerはLN後の慣例を使用していた。これは学習が難しく、慎重なハイパーパラメータ調整と、学習率の「ウォームアップ」(最初は小さく始めて徐々に増加させる)が必要であった。2018年に何度か提案されたLN以前の慣例[ 58 ] は、学習が容易でウォームアップを必要とせず、収束が速いことがわかった[ 46 ] 。 x + S u b l a y e r ( L a y e r N o r m ( x ) ) {\displaystyle x+\mathrm {Sublayer} (\mathrm {LayerNorm} (x))}
擬似コード 以下は、LN以前の標準的なエンコーダ・デコーダ変換器の擬似コードであり、Formal Algorithms for Transformers [ 59 ]から引用したものである。
入力: エンコーダ入力 t_e デコーダ入力 t_d 出力: 確率分布の配列。形状は(デコーダーの語彙サイズ×長さ(デコーダーの出力シーケンス)) /* エンコーダ */ z_e ← エンコーダ.トークナイザー(t_e) 1: length (z_e)の 各 tについて z_e[t] ← エンコーダ.埋め込み(z_e[t]) + エンコーダ.位置埋め込み(t) 1:length(encoder.layers)の 各 lに対して 、 レイヤー ← エンコーダー.レイヤー[l] /* 最初のサブレイヤー */ z_e_copy ← コピー(z_e) 1:length(z_e)の 各 tについて z_e[t] ← レイヤー.レイヤーノルム(z_e[t]) z_e ←layer.multihead_attention(z_e, z_e, z_e) 1:length(z_e)の 各 tについて z_e[t] ← z_e[t] + z_e_copy[t] /* 2番目のサブレイヤー */ z_e_copy ← コピー(z_e) 1:length(z_e)の 各 tについて z_e[t] ← レイヤー.レイヤーノルム(z_e[t]) z_e ← レイヤー.フィードフォワード(z_e) 1:length(z_e)の 各 tについて z_e[t] ← z_e[t] + z_e_copy[t] 1:length(z_e)の 各 tについて z_e[t] ← エンコーダー最終層ノルム(z_e[t]) /* デコーダー */ z_d ← デコーダー.トークナイザー(t_d) 1: length (z_d)の 各 tについて z_d[t] ← デコーダー.埋め込み(z_d[t]) + デコーダー.位置埋め込み(t) 1:length(decoder.layers)の 各 lに対して 、 レイヤー ← デコーダー.レイヤー[l] /* 最初のサブレイヤー */ z_d_copy ← コピー(z_d) 1:length(z_d)の 各 tについて z_d[t] ← レイヤー.レイヤーノルム(z_d[t]) z_d ← レイヤー.マスクされたマルチヘッドアテンション(z_d, z_d, z_d) 1:length(z_d)の 各 tについて z_d[t] ← z_d[t] + z_d_copy[t] /* 2番目のサブレイヤー */ z_d_copy ← コピー(z_d) 1:length(z_d)の 各 tについて z_d[t] ← レイヤー.レイヤーノルム(z_d[t]) z_d ←layer.multihead_attention(z_d, z_e, z_e) 1:length(z_d)の 各 iに対して、 z_d[t] ← z_d[t] + z_d_copy[t] /* 3番目のサブレイヤー */ z_d_copy ← コピー(z_d) 1:length(z_d)の 各 tについて z_d[t] ← レイヤー.レイヤーノルム(z_d[t]) z_d ← レイヤー.フィードフォワード(z_d) 1:length(z_d)の 各 tについて z_d[t] ← z_d[t] + z_d_copy[t] z_d ← デコーダー.final_layer_norm(z_d) 出力分布 ← [] 1:length(z_d)の 各 tについて output_distributions.append(decoder.unembed(z_d[t])) output_distributions を返す
用語 変圧器のアーキテクチャはモジュール式であるため、様々なバリエーションが可能です。ここではいくつかの一般的なバリエーションについて説明します。[ 60 ]
「エンコーダのみ」の変換器は、エンコーダを用いて入力テキストを、入力テキストを表すベクトルのシーケンスにマッピングします。これは通常、下流のアプリケーションのためのテキスト埋め込みや表現学習に使用されます。BERTはエンコーダのみの変換器です。BERT は 現在はあまり使用されていません。これは、エンコーダ・デコーダ変換器を学習し、エンコーダのみを扱う場合と比べて、それほど優れた結果が得られないことが判明したためです。[ 51 ] これらは「all-to-all」または「BERTのような」変換器とも呼ばれます。
「デコーダのみ」のトランスフォーマーは、文字通りデコーダのみではありません。エンコーダがなければ、クロスアテンション機構は何も注目しないからです。したがって、デコーダのみのトランスフォーマーのデコーダー層は、因果的にマスクされた自己注意とフィードフォワードネットワークの2つのサブレイヤーのみで構成されます。これは通常、テキスト生成 と命令追跡に使用されます。GPT シリーズ とChinchillaシリーズ のモデルはデコーダのみで、「自己回帰型」または「因果的」とも呼ばれます。
「エンコーダ・デコーダ」トランスフォーマーは、基本的にオリジナルのトランスフォーマーと同じで、エンコーダ層ごとに2つのサブレイヤー、デコーダ層ごとに3つのサブレイヤーなどを備えています。代替活性化関数や 正規化の位置の変更 など、アーキテクチャ上の小さな改良が加えられている場合もあります。これは通常、テキスト生成や命令の追跡にも使用されます。T5シリーズ のモデルはエンコーダ・デコーダです。[ 60 ]
「prefixLM」(接頭辞言語モデル)はデコーダーのみのアーキテクチャですが、因果マスキングとは異なる接頭辞マスキングを備えています。具体的には、図3 に示すような形式のマスクを持ちます [ 60 ] 。最初の列は「接頭辞」に対応し、それ以降の列は接頭辞に基づいて自己回帰的に生成されたテキストに対応します。これらはエンコーダー・デコーダーモデルに似ていますが、「スパース性」が低いです。このようなモデルは理論的な可能性やベンチマーク比較として引用されることはありますが、ほとんど使用されていません。[ 51 ] M prefixLM = [ 0 − ∞ 0 M causal ] {\displaystyle M_{\text{prefixLM}}={\begin{bmatrix}\mathbf {0} &-\infty \\\mathbf {0} &M_{\text{causal}}\end{bmatrix}}}
seq2seqモデルを混合したものも存在します。例えば、2020年にGoogle翻訳は、従来のRNNエンコーダー・RNNデコーダーモデルをトランスフォーマー・エンコーダー・RNNデコーダーモデルに置き換えました。これは、トランスフォーマーベースのデコーダーはエンコーダーとは異なり、品質を大幅に向上させなかった一方で、RNNデコーダーの方がはるかに高速だったためです。[ 37 ]
その後の作業
代替活性化関数 オリジナルのTransformerはReLU 活性化関数 を使用しています。他の活性化関数も開発されました。Llamaシリーズ とPaLMは SwiGLUを使用しています。 [ 61 ] GPT-1とBERT [ 35 ] はどちらもGELUを使用しています。[ 62 ]
代替活性化関数は、フィードフォワードモジュールのゲート線形ユニット と組み合わせて使用されることが多い。 [ 61 ]
代替正規化 変換機で使用される正規化はLayerNormとは異なる場合がある。一例としては、Llamaシリーズ で使用されるRMSNorm [ 63 ] が挙げられる。他の例としては、CapsuleNorm [ 64 ] 、ScaleNorm [ 65 ] 、FixNorm [ 65 ]などがある。
代替位置エンコーディング 変圧器は正弦波以外の位置符号化方式を使用することもある。[ 66 ]
オリジナルのトランスフォーマーの論文では、学習した位置エンコーディングを使用していると報告されていましたが[ 67 ] 、正弦波エンコーディングよりも優れているとは考えられませんでした [ 1 ] 。その後、[ 68 ] では、因果マスキング自体がトランスフォーマーデコーダーに十分な信号を提供し、位置エンコーディングモジュールなしで暗黙的に絶対位置エンコーディングを実行することを学習できることがわかりました。
ロープ RoPE(回転位置埋め込み)[ 69 ] は、 2次元ベクトルのリストを考えることで最もよく説明されます。ここで、ある角度を選びます。すると、RoPEエンコーディングは、次のようになります。同様に、2次元ベクトルを複素数として表すと、RoPEエンコーディングは角度による乗算になります。次元ベクトルのリストの場合、RoPEエンコーダは角度のシーケンスによって定義されます。そして、RoPEエンコーディングは各座標ペアに適用されます。 [ ( x 1 ( 1 ) , x 1 ( 2 ) ) , ( x 2 ( 1 ) , x 2 ( 2 ) ) , ( x 3 ( 1 ) , x 3 ( 2 ) ) , . . . ] {\displaystyle [(x_{1}^{(1)},x_{1}^{(2)}),(x_{2}^{(1)},x_{2}^{(2)}),(x_{3}^{(1)},x_{3}^{(2)}),...]} θ {\displaystyle \theta } RoPE ( x m ( 1 ) , x m ( 2 ) , m ) = ( cos m θ − sin m θ sin m θ cos m θ ) ( x m ( 1 ) x m ( 2 ) ) = ( x m ( 1 ) cos m θ − x m ( 2 ) sin m θ x m ( 2 ) cos m θ + x m ( 1 ) sin m θ ) {\displaystyle {\text{RoPE}}{\big (}x_{m}^{(1)},x_{m}^{(2)},m{\big )}={\begin{pmatrix}\cos m\theta &-\sin m\theta \\\sin m\theta &\cos m\theta \end{pmatrix}}{\begin{pmatrix}x_{m}^{(1)}\\x_{m}^{(2)}\\\end{pmatrix}}={\begin{pmatrix}x_{m}^{(1)}\cos m\theta -x_{m}^{(2)}\sin m\theta \\x_{m}^{(2)}\cos m\theta +x_{m}^{(1)}\sin m\theta \\\end{pmatrix}}} z m := x m ( 1 ) + i x m ( 2 ) {\displaystyle z_{m}:=x_{m}^{(1)}+ix_{m}^{(2)}} RoPE ( z m , m ) = e i m θ z m {\displaystyle {\text{RoPE}}{\big (}z_{m},m{\big )}=e^{im\theta }z_{m}} 2 n {\displaystyle 2n} θ ( 1 ) , . . . , θ ( n ) {\displaystyle \theta ^{(1)},...,\theta ^{(n)}}
RoPE の利点は、2 つのベクトル間のドット積が、 任意の整数に対して、それらの相対的な位置のみに依存することです。 RoPE ( x , m ) T RoPE ( y , n ) = RoPE ( x , m + k ) T RoPE ( y , n + k ) {\displaystyle {\text{RoPE}}{\big (}x,m{\big )}^{T}{\text{RoPE}}{\big (}y,n{\big )}={\text{RoPE}}{\big (}x,m+k{\big )}^{T}{\text{RoPE}}{\big (}y,n+k{\big )}} k {\displaystyle k}
アリバイ ALiBi(線形バイアス付きアテンション)[ 70 ] は、元のトランスフォーマーの位置エンコーダの代替で はありません。これは、アテンション機構に直接接続される追加の 位置エンコーダです。具体的には、ALiBiアテンション機構は、ここで、は実数(「スカラー」)、は線形バイアス 行列、つまり、で定義される線形バイアス行列です。線形バイアス行列は、緩和されたマスクであるという考え方に基づいています。が完全なアテンションを示し、がアテンションが全く示されていないことを表すのと同様に、線形バイアス行列は、一方向へのアテンションを増加させ、反対方向へのアテンションを減少させます。 Attention ( Q , K , V ) = softmax ( Q K T d k + s B ) V {\displaystyle {\begin{aligned}{\text{Attention}}(Q,K,V)={\text{softmax}}\left({\frac {QK^{\mathrm {T} }}{\sqrt {d_{k}}}}+sB\right)V\end{aligned}}} s {\displaystyle s} B {\displaystyle B} B = ( 0 1 2 3 ⋯ − 1 0 1 2 ⋯ − 2 − 1 0 1 ⋯ − 3 − 2 − 1 0 ⋯ ⋮ ⋮ ⋮ ⋮ ⋱ ) {\displaystyle B={\begin{pmatrix}0&1&2&3&\cdots \\-1&0&1&2&\cdots \\-2&-1&0&1&\cdots \\-3&-2&-1&0&\cdots \\\vdots &\vdots &\vdots &\vdots &\ddots \\\end{pmatrix}}} B i , j = j − i {\displaystyle B_{i,j}=j-i} 0 {\displaystyle 0} − ∞ {\displaystyle -\infty }
ALiBiは、短いコンテキストウィンドウで事前学習を行い、その後、より長いコンテキストウィンドウで微調整を行うことができます。Attentionメカニズムに直接組み込まれるため、ネットワーク全体の「底部」(オリジナルのTransformerの正弦波エンコーダやRoPE、その他多くのTransformerの正弦波エンコーダが配置されている部分)に組み込む任意の位置エンコーダと組み合わせることができます。
相対位置エンコーディング 相対位置エンコーディング[ 71 ] はALiBiに似ていますが、より汎用的です。ここではテプリッツ行列 、つまり のときは常に となります。これは、元の正弦波位置エンコーディングである「絶対位置エンコーディング」とは対照的です。[ 72 ] Attention ( Q , K , V ) = softmax ( Q K T d k + B ) V {\displaystyle {\begin{aligned}{\text{Attention}}(Q,K,V)={\text{softmax}}\left({\frac {QK^{\mathrm {T} }}{\sqrt {d_{k}}}}+B\right)V\end{aligned}}} B {\displaystyle B} B i , j = B i ′ , j ′ {\displaystyle B_{i,j}=B_{i',j'}} i − j = i ′ − j ′ {\displaystyle i-j=i'-j'}
効率的な実装 トランスフォーマーモデルは、TensorFlow やPyTorch などの標準的な深層学習フレームワーク に実装されています。Transformersは Hugging Face が開発したライブラリで、トランスフォーマーベースのアーキテクチャと事前学習済みモデルを提供しています。[ 11 ]
KVキャッシュ 自己回帰変換を推論(テキスト生成など)に使用する場合、クエリベクトルは各ステップで異なりますが、既に計算済みのキーベクトルと値ベクトルは常に同じです。KVキャッシュ 方式は、計算済みのキーベクトルと値ベクトルを各アテンションブロックに保存するため、新しいトークンごとに再計算する必要はありません。PagedAttentionは 、KVキャッシュにメモリページングを 適用します。 [ 73 ] [ 74 ] [ 75 ]
トランスフォーマーを「["あなたはカスタマーサポート担当者です..."]」のような組み込みプロンプトと共に使用する場合、プロンプトのキーと値のベクトルを計算し、ディスクに保存できます。このモデルをオンラインチャットボットなどの短時間のリアルタイムインタラクションに多数使用すると、計算コストの削減効果は顕著になります。
フラッシュアテンション FlashAttention [ 76 ] は、 GPU 上でTransformer Attention機構を効率的に実装するアルゴリズムです。これは通信を回避するアルゴリズムで、行列乗算をブロック単位で実行します。各ブロックはGPUの キャッシュ に収まるようにブロックを慎重に管理することで、GPUキャッシュ間のデータコピーを最小限に抑えます(データの移動速度が遅いため)。詳細については、 softmax のページを参照してください。
より長いコンテキスト長を処理できる言語モデルへの需要の高まりに対応するため、改良版であるFlashAttention-2 [ 77 ] [ 78 ] [ 79 ] が開発されました。このモデルは、作業分割と並列処理の強化により、A100 GPU(FP16 / BF16 )上で最大230 TFLOPs/sの性能を達成しており、これはオリジナルのFlashAttentionの2倍の速度向上となります。
FlashAttention-2の主な進歩には、非matmul FLOPの削減、シーケンス長次元での並列性の向上、GPUワープ間の作業分割の改善、最大256のヘッド次元とマルチクエリアテンション(MQA)およびグループクエリアテンション(GQA)のサポートの追加などがあります。[ 80 ]
ベンチマークテストの結果、FlashAttention-2はFlashAttentionよりも最大2倍、PyTorchの標準的なアテンション実装よりも最大9倍高速であることが明らかになりました。今後の開発では、H100 GPUなどの新しいハードウェアや FP8 などの新しいデータ型への最適化が予定されています。
FlashAttention-4は命令スループットを向上させるための パイプライン化 に重点を置いており、特にBlackwell GPU で優れたパフォーマンスを発揮するように開発されました。[ 81 ]
マルチクエリアテンション
いくつかの異なる形式の注意機構と、それぞれに必要なKVキャッシュの量の比較 マルチクエリアテンションはマルチヘッドアテンションのメカニズムを変更します。[ 82 ] 通常、
MultiheadAttention ( Q , K , V ) = Concat i ∈ [ n heads ] ( Attention ( X W i Q , X W i K , X W i V ) ) W O {\displaystyle {\text{MultiheadAttention}}(Q,K,V)={\text{Concat}}_{i\in [n_{\text{heads}}]}\left({\text{Attention}}(XW_{i}^{Q},XW_{i}^{K},XW_{i}^{V})\right)W^{O}} マルチクエリアテンションでは、 は 1 つだけなので、次のようになります。 W K , W V {\displaystyle W^{K},W^{V}}
MultiQueryAttention ( Q , K , V ) = Concat i ∈ [ n heads ] ( Attention ( X W i Q , X W K , X W V ) ) W O {\displaystyle {\text{MultiQueryAttention}}(Q,K,V)={\text{Concat}}_{i\in [n_{\text{heads}}]}\left({\text{Attention}}(XW_{i}^{Q},XW^{K},XW^{V})\right)W^{O}}
これはモデルの品質とトレーニング速度には中立的な影響を与えますが、推論速度は向上します。
より一般的には、グループ化クエリアテンション(GQA)は、アテンションヘッドをグループに分割し、各グループがキーと値のペアを共有する。MQAは1つのグループを持つGQAであり、標準的なマルチヘッドアテンションは最大数のグループを持つGQAである。[ 83 ]
V2のアーキテクチャ。MLAと専門家の混合の変種の両方を示しています [ 84 ] :図2 マルチヘッド潜在的注意(MLA)は、標準的なMHAの低ランク近似 です。具体的には、各隠れベクトルは、注意機構に入る前に、まず2つの低次元空間(「潜在空間」)に投影されます。1つはクエリ用、もう1つはキー値(KVベクトル)用です。この設計により、低次元KVベクトルのみをキャッシュすればよいため、KVキャッシュが最小限に抑えられます。[ 84 ]
推測的デコード 投機的デコード[ 85 ] [ 86 ] は、トークンのデコードを高速化する手法です。CPUにおける投機的実行 と同様に、将来のトークンは高速に計算され、その後検証されます。高速に計算されたトークンが正しくない場合、そのトークンは破棄され、低速で計算されます。
投機的デコードにおける重要な要素は、次の意味で、トランスフォーマー デコーダーはデコードよりも検証の方が高速であることです。
GPT-3とGPT-3-smallという2つのTransformerモデルがあり、どちらもコンテキストウィンドウサイズが512であるとします。GPT-3を用いて貪欲復号法でコンテキストウィンドウ全体を自己回帰的に生成するには、512回実行する必要があり、そのたびにトークンが生成され、時間がかかります。しかし、これらのトークンの値についてある程度の推測値があれば、モデルを1回実行するだけで、それらすべてを並列に検証できます。つまり、各トークンが実際に 番目の出力において最大の対数尤度を持つトークンであることを確認することです。 x 1 , x 2 , . . . , x 512 {\displaystyle x_{1},x_{2},...,x_{512}} 512 T GPT-3 {\displaystyle 512T_{\text{GPT-3}}} x t {\displaystyle x_{t}} t {\displaystyle t}
投機的デコードでは、より小さなモデルまたはその他の単純なヒューリスティックを使用して、いくつかの投機的トークンを生成し、その後、それらのトークンをより大きなモデルで検証します。たとえば、GPT-3-small を使用して 4 つの投機的トークンを生成するとします。これには しかかかりません。これらのトークンは、より大きな GPT-3 を一度に通過します。 と がGPT-3 によって選択されたものとして検証されると仮定すると、それらは保持されますが は選択されないため は破棄され、それらに対して GPT-3 が実行されます。これには かかり、 よりも短くなる可能性があります。 x ~ 1 , x ~ 2 , x ~ 3 , x ~ 4 {\displaystyle {\tilde {x}}_{1},{\tilde {x}}_{2},{\tilde {x}}_{3},{\tilde {x}}_{4}} 4 T GPT-3-small {\displaystyle 4T_{\text{GPT-3-small}}} x ~ 1 {\displaystyle {\tilde {x}}_{1}} x ~ 2 {\displaystyle {\tilde {x}}_{2}} x ~ 3 {\displaystyle {\tilde {x}}_{3}} x ~ 3 , x ~ 4 {\displaystyle {\tilde {x}}_{3},{\tilde {x}}_{4}} 4 T GPT-3-small + 3 T GPT-3 {\displaystyle 4T_{\text{GPT-3-small}}+3T_{\text{GPT-3}}} 4 T GPT-3 {\displaystyle 4T_{\text{GPT-3}}}
非貪欲復号法の場合も同様の考え方が適用されますが、投機的トークンは確率的に受け入れられるか拒否されるかが異なり、最終的な出力分布は投機的復号法を使用しなかった場合と同じになることが保証されます。[ 85 ] [ 87 ]
マルチトークン予測 マルチトークン予測では、1回のフォワードパスで最終的な埋め込みベクトルが生成され、その後、トークン確率に埋め込まれなくなります。しかし、このベクトルは別のトランスフォーマーブロックによってさらに処理され、次の トークンを予測します。これを任意のステップ数だけ未来まで繰り返し実行できます。この手法では、新しいトークンを生成するのにスタック全体ではなく、トランスフォーマーブロックが1つだけ必要となるため、精度と速度がトレードオフとなります。[ 88 ] [ 89 ]
トランスフォーマーベースのアーキテクチャのトレーニングは、特に長い入力の場合、コストが高くなる可能性がある。[ 90 ] この問題に対処するために多くの手法が開発されてきた。画像領域では、Swinトランスフォーマーはシフトウィンドウ内で注意を実行する効率的なアーキテクチャである。[ 91 ] 音声領域では、SepTrは時間領域と周波数領域で注意を分離する。[ 92 ] Long Range Arena (2020) [ 93 ] は、長い入力に対するトランスフォーマーアーキテクチャの挙動を比較するための標準的なベンチマークである。
代替アテンショングラフ 標準的なアテンション グラフは、全対全または因果関係のいずれかであり、どちらも としてスケールします。ここでは、はシーケンス内のトークンの数です。 O ( N 2 ) {\displaystyle O(N^{2})} N {\displaystyle N}
Reformer(2020)[ 90 ] [ 94 ] は、局所性に敏感なハッシュ と可逆層を使用することで、計算負荷をからに削減します。[ 95 ] O ( N 2 ) {\displaystyle O(N^{2})} O ( N ln N ) {\displaystyle O(N\ln N)}
スパースアテンション[ 96 ] は、よりも遅く成長するアテンショングラフを使用します。例えば、BigBird (2020) [ 97 ] は、として成長するランダムスモールワールドネットワーク を使用します。 O ( N 2 ) {\displaystyle O(N^{2})} O ( N ) {\displaystyle O(N)}
通常の変換子は、コンテキストウィンドウのサイズの2乗に相当するメモリサイズを必要とします。アテンションフリー変換子[ 98 ] は、キーと値をリンクさせることで、変換子の利点を維持しながら、メモリサイズを線形依存にまで削減します。
ランダム機能の注目 ランダム特徴アテンション(2021)[ 99 ] はフーリエランダム特徴 を用いる。ここで、は正規分布からの独立なサンプルである。このパラメータの選択は、またはを満たす。したがって、1つのクエリを持つ単頭アテンションは、次のように表すことができる。ここで、はである。複数のクエリを持つ場合も同様であり、マルチヘッドアテンションも同様である。 φ ( x ) = 1 D [ cos ⟨ w 1 , x ⟩ , sin ⟨ w 1 , x ⟩ , ⋯ cos ⟨ w D , x ⟩ , sin ⟨ w D , x ⟩ ] T {\displaystyle \varphi (x)={\frac {1}{\sqrt {D}}}[\cos \langle w_{1},x\rangle ,\sin \langle w_{1},x\rangle ,\cdots \cos \langle w_{D},x\rangle ,\sin \langle w_{D},x\rangle ]^{T}} w 1 , . . . , w D {\displaystyle w_{1},...,w_{D}} N ( 0 , σ 2 I ) {\displaystyle N(0,\sigma ^{2}I)} E [ ⟨ φ ( x ) , φ ( y ) ⟩ ] = e − ‖ x − y ‖ 2 2 σ 2 {\displaystyle \mathbb {E} [\langle \varphi (x),\varphi (y)\rangle ]=e^{-{\frac {\|x-y\|^{2}}{2\sigma ^{2}}}}} e ⟨ x , y ⟩ / σ 2 = E [ ⟨ e ‖ x ‖ 2 / 2 σ 2 φ ( x ) , e ‖ y ‖ 2 / 2 σ 2 φ ( y ) ⟩ ] ≈ ⟨ e ‖ x ‖ 2 / 2 σ 2 φ ( x ) , e ‖ y ‖ 2 / 2 σ 2 φ ( y ) ⟩ {\displaystyle e^{\langle x,y\rangle /\sigma ^{2}}=\mathbb {E} [\langle e^{\|x\|^{2}/2\sigma ^{2}}\varphi (x),e^{\|y\|^{2}/2\sigma ^{2}}\varphi (y)\rangle ]\approx \langle e^{\|x\|^{2}/2\sigma ^{2}}\varphi (x),e^{\|y\|^{2}/2\sigma ^{2}}\varphi (y)\rangle } Attention ( q , K , V ) = softmax ( q K T d k ) V ≈ φ ( q ) T ∑ i e ‖ k i ‖ 2 / 2 σ 2 φ ( k i ) v i T φ ( q ) T ∑ i e ‖ k i ‖ 2 / 2 σ 2 φ ( k i ) {\displaystyle {\text{Attention}}(q,K,V)={\text{softmax}}\left({\frac {qK^{\mathrm {T} }}{\sqrt {d_{k}}}}\right)V\approx {\frac {\varphi (q)^{T}\sum _{i}e^{\|k_{i}\|^{2}/2\sigma ^{2}}\varphi (k_{i})v_{i}^{T}}{\varphi (q)^{T}\sum _{i}e^{\|k_{i}\|^{2}/2\sigma ^{2}}\varphi (k_{i})}}} σ = d K 1 / 4 {\displaystyle \sigma =d_{K}^{1/4}}
この近似は、まず行列を計算し、それをクエリと乗算することで線形時間で計算できます。本質的には、Performer (2022) [ 100 ] のより正確なバージョンを得ることができました。Performer (2022)は同じランダム特徴量アテンションを使用していますが、最初に正規分布から独立にサンプリングされ、その後グラムシュミット法で処理されます 。 φ ( k i ) v i T {\displaystyle \varphi (k_{i})v_{i}^{T}} Attention ( Q , K , V ) = softmax ( Q K T d k ) V ≈ Q ( K T V / d k ) {\displaystyle {\text{Attention}}(Q,K,V)={\text{softmax}}\left({\frac {QK^{\mathrm {T} }}{\sqrt {d_{k}}}}\right)V\approx Q(K^{T}V/{\sqrt {d_{k}}})} w 1 , . . . , w D {\displaystyle w_{1},...,w_{D}} N ( 0 , σ 2 I ) {\displaystyle N(0,\sigma ^{2}I)}
マルチモダリティ トランスフォーマーは、通常はモダリティを「トークン化」する方法を見つけることで、テキスト以外のモダリティ(入力または出力)にも使用/適応できます。
マルチモーダルモデルは、ゼロから学習することも、微調整によって学習することもできます。2022年の研究では、自然言語のみで事前学習されたTransformerは、わずか0.03%のパラメータを微調整するだけで、様々な論理タスクや視覚タスクにおいてLSTMと競合できることが明らかになり、 転移学習 が実証されました。[ 101 ] LLaVAは、言語モデル(Vicuna-13B)[ 102 ] と視覚モデル(ViT -L/14)を線形層で接続した視覚言語モデルです。線形層のみが微調整されています。[ 103 ]
ビジョントランスフォーマー [ 41 ]は 、入力画像を一連のパッチとして分解し、それらをベクトルに変換し、標準的なトランスフォーマーにトークンの埋め込みベクトルのように扱うことで、コンピュータビジョンにトランスフォーマーを適応させます。
Conformer [ 42 ] とその後のWhisper [ 104 ] は音声認識 に同じパターンを採用しており、まず音声信号をスペクトログラム に変換し、次にそれを画像のように、つまり一連のパッチに分解してベクトルに変換し、標準のトランスフォーマーにトークンの埋め込みベクトルのように処理します。
パーセプター [ 105 ] [ 106 ] は、マルチモーダル性のために設計されたトランスフォーマーの一種である。
画像生成では、注目すべきアーキテクチャとして、DALL-E 1 (2021)、Parti (2022)、[ 107 ] Phenaki (2023)、[ 108 ] 、Muse (2023) がある。[ 109 ] 後のモデルとは異なり、DALL-E は拡散モデル ではない。代わりに、デコーダーのみのトランスフォーマーを使用してテキストを自己回帰的に生成し、続いて画像のトークン表現を生成し、それを変分オートエンコーダー で画像に変換する。[ 110 ] Parti はエンコーダー - デコーダー トランスフォーマーで、エンコーダーがテキスト プロンプトを処理し、デコーダーが画像のトークン表現を生成する。[ 111 ] Muse はエンコーダーのみのトランスフォーマーで、マスクされていない画像トークンからマスクされた画像トークンを予測するようにトレーニングされる。生成中、すべての入力トークンはマスクされ、すべてのトークンが予測されるまで、最も信頼度の高い予測が次の反復に含められる。[ 109 ] Phenakiはテキストから動画への変換モデルです。これは、事前に計算されたテキストトークンを条件とする双方向マスク変換器です。生成されたトークンは動画にデコードされます。[ 108 ]
アプリケーション トランスフォーマーは自然言語処理 (NLP)において大きな成功を収めてきました。GPT -2 、GPT-3 、GPT-4 、Gemini 、AlbertAGPT、Claude 、BERT 、Grok 、XLNet 、RoBERTa 、ChatGPT といった多くの大規模言語 モデルは、トランスフォーマーがNLP関連の様々なサブタスクとその関連する実世界アプリケーションを実行できることを実証しています。例えば、以下のようなことが挙げられます。
従来の NLP 以外にも、トランスフォーマー アーキテクチャは次のような他のアプリケーションでも成功を収めています。
参照
注記 ^ ゲート付き再帰ユニット (2014)により複雑さがさらに軽減されました。^ RWKV や状態空間モデルなどの一部のアーキテクチャでは、この問題を回避できます。
参考文献 ^ a b c d e f g h i j k l バスワニ、アシシ ;シャジーア、ノーム。パルマー、ニキ。ウシュコレイト、ヤコブ。ジョーンズ、リオン。エイダン・N・ゴメス ;カイザー、ウカシュ。ポロスキン、イリア (2017)。「必要なのは注意だけです」 (PDF) 。神経情報処理システムの進歩 。30 .カランアソシエイツ株式会社^ ゼップ・ホッホライター ; シュミットフーバー、ユルゲン (1997年11月1日)。 「長短期記憶」。 ニューラル計算 。 9 (8): 1735 ~ 1780 年。 土井 : 10.1162/neco.1997.9.8.1735 。 ISSN 0899-7667 。 PMID 9377276 。 S2CID 1915014 。 ^ a b 「より優れた言語モデルとその影響」 OpenAI 2019年2月14日。 2020 年12月19日時点のオリジナルより アーカイブ 。 2019年8月25日 閲覧。 ^ a b Bahdanau; Cho, Kyunghyun; Bengio, Yoshua (2014年9月1日). 「アラインメントと翻訳の共同学習によるニューラル機械翻訳」. arXiv : 1409.0473 [ cs.CL ]. ^ Luong, Minh-Thang; Pham, Hieu; Manning, Christopher D. (2015年8月17日). 「注意に基づくニューラル機械翻訳への効果的なアプローチ」. arXiv : 1508.04025 [ cs.CL ]. ^ a b Chen, Lili; Lu, Kevin; Rajeswaran, Aravind; Lee, Kimin; Grover, Aditya; Laskin, Michael; Abbeel, Pieter; Srinivas, Aravind; Mordatch, Igor (2021-06-24), Decision Transformer: シーケンスモデリングによる強化学習 , arXiv : 2106.01345 ^ Parisotto, Emilio; Song, Francis; Rae, Jack; Pascanu, Razvan; Gulcehre, Caglar; Jayakumar, Siddhant; Jaderberg, Max; Kaufman, Raphaël Lopez; Clark, Aidan; Noury, Seb; Botvinick, Matthew; Heess, Nicolas; Hadsell, Raia (2020-11-21). 「強化学習のためのトランスフォーマーの安定化」 . 第37回国際機械学習会議論文集 . PMLR: 7487– 7498. ^ Radford, Alec; Jong Wook Kim; Xu, Tao; Brockman, Greg; McLeavey, Christine; Sutskever, Ilya (2022). 「大規模弱教師によるロバストな音声認識」. arXiv : 2212.04356 [ eess.AS ]. ^ Monastirsky, Maxim; Azulay, Osher; Sintov, Avishai (2023年2月). 「Decision Transformersを用いた少数のサンプルを用いた投球学習」. IEEE Robotics and Automation Letters . 8 (2): 576– 583. Bibcode : 2023IRAL....8..576M . doi : 10.1109/LRA.2022.3229266 . ISSN 2377-3766 . ^ a b ルオス、アニアン;デレタン、グレゴワール。メダパティ、ソウラブ。グラウモヤ、ジョルディ。李文亮。キャット、エリオット。リード、ジョン。ジェネウェイン、ティム (2024-02-07)。 「検索なしのグランドマスターレベルのチェス」。 arXiv : 2402.04494v1 [ cs.LG ]。 ^ a b Wolf, Thomas; Debut, Lysandre; Sanh, Victor; Chaumond, Julien; Delangue, Clement; Moi, Anthony; Cistac, Pierric; Rault, Tim; Louf, Remi; Funtowicz, Morgan; Davison, Joe; Shleifer, Sam; von Platen, Patrick; Ma, Clara; Jernite, Yacine; Plu, Julien; Xu, Canwen; Le Scao, Teven; Gugger, Sylvain; Drame, Mariama; Lhoest, Quentin; Rush, Alexander (2020). 「Transformers: State-of-the-Art Natural Language Processing」. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations . pp. 38– 45. doi : 10.18653/v1/2020.emnlp-demos.6 . S2CID 208117506 。 ^ a b c 「BERTのオープンソース化:自然言語処理のための最先端の事前トレーニング」 。Google AIブログ 。2018年11月2日。 2021年1月13日時点のオリジナルより アーカイブ。 2019年8月25日 閲覧 。 ^ Feldman, JA; Ballard, DH (1982-07-01). 「コネクショニストモデルとその特性」 . 認知科学 . 6 (3): 205– 254. doi : 10.1016/S0364-0213(82)80001-3 . ISSN 0364-0213 . ^ Rumelhart, David E.; McClelland, James L.; Hinton, Geoffrey E. (1987-07-29). 並列分散処理 第1巻:認知の微細構造の探究:基礎、第2章 (PDF) . マサチューセッツ州ケンブリッジ:Bradford Books. ISBN 978-0-262-68053-0 。^ Giles, C. Lee; Maxwell, Tom (1987-12-01). 「高次ニューラルネットワークにおける学習、不変性、および一般化」 . 応用光学 . 26 (23): 4972– 4978. doi : 10.1364/AO.26.004972 . ISSN 0003-6935 . PMID 20523475 . ^ a b Schmidhuber, Jürgen (1992). 「高速重みメモリの制御学習:リカレントネットの代替」 (PDF) . Neural Computation . 4 (1): 131– 139. doi : 10.1162/neco.1992.4.1.131 . S2CID 16683347 . ^ Christoph von der Malsburg: 脳機能の相関理論. 内部報告書 81-2, MPI Biophysical Chemistry, 1981. http://cogprints.org/1380/1/vdM_correlation.pdf 再版については、『Models of Neural Networks II』第2章、95~119ページを参照。Springer, Berlin, 1994. ^ Jerome A. Feldman、「Dynamic connection in neural networks」、Biological Cybernetics、第46巻、第1号、pp.27-39、1982年12月。 ^ ヒントン、ジェフリー・E.;プラウト、デイビッド・C. (1987). 「高速重みを用いた古い記憶のぼやけの除去」 認知 科学学会年次大会議事録 . 9 . ^ Katharopoulos, Angelos; Vyas, Apoorv; Pappas, Nikolaos; Fleuret, François (2020). 「Transformers are RNNs: Fast autoregressive Transformers with linear attention」 ICML 2020 . PMLR. pp. 5156– 5165. ^ シュラーク、イマノール;入江一樹; シュミットフーバー、ユルゲン (2021)。 「リニアトランスはひそかに高速な重量プログラマです。」 ICML 2021 。スプリンガー。 9355–9366 ページ 。 ^ a b Cho, Kyunghyun; van Merriënboer, Bart; Gulcehre, Caglar; Bahdanau, Dzmitry; Bougares, Fethi; Schwenk, Holger; Bengio, Yoshua (2014年10月). 「統計的機械翻訳のためのRNNエンコーダー・デコーダーを用いたフレーズ表現の学習」 . Moschitti, Alessandro; Pang, Bo; Daelemans, Walter (編). 2014年自然言語処理における経験的手法に関する会議 (EMNLP) の議事録 . ドーハ、カタール:計算言語学協会. pp. 1724– 1734. arXiv : 1406.1078 . doi : 10.3115/v1/D14-1179 . ^ a b Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet (2014年12月14日). 「ニューラルネットワークによるシーケンスツーシーケンス学習」. arXiv : 1409.3215 [ cs.CL ]. [最初のバージョンは2014年9月10日にarXivに投稿されました]^ Chung, Junyoung; Gulcehre, Caglar; Cho, KyungHyun; Bengio, Yoshua (2014). 「シーケンスモデリングにおけるゲート型リカレントニューラルネットワークの実証的評価」 arXiv : 1412.3555 [ cs.NE ]. ^ Gruber, N.; Jockisch, A. (2020)「テキストの動機分類において、GRU細胞はより特異的で、LSTM細胞はより敏感なのか?」 Frontiers in Artificial Intelligence 、 3 40、 doi : 10.3389/frai.2020.00040 、 PMC 7861254 、 PMID 33733157 、 S2CID 220252321 ^ Sutskever, Ilya; Vinyals, Oriol; Le, Quoc V (2014). 「ニューラルネットワークによるシーケンスツーシーケンス学習」 . ニューラル情報処理システムの進歩 . 27. Curran Associates, Inc. arXiv : 1409.3215 . ^ Luong, Minh-Thang; Pham, Hieu; Manning, Christopher D. (2015). 「注意に基づくニューラル機械翻訳への効果的なアプローチ」 arXiv : 1508.04025 [ cs.CL ]. ^ Wu, Yonghui; et al. (2016-09-01). 「Googleのニューラル機械翻訳システム:人間と機械の翻訳のギャップを埋める」 arXiv : 1609.08144 [ cs.CL ]. ^ Lewis-Kraus, Gideon (2016年12月14日). 「AIの大覚醒」 . The New York Times . ISSN 0362-4331 . 2023年5月24日時点の オリジナル よりアーカイブ。 2023年6月22日 閲覧 。 ^ Parikh, Ankur P.; Täckström, Oscar; Das, Dipanjan; Uszkoreit, Jakob (2016-09-25). 「自然言語推論のための分解可能な注意モデル」. arXiv : 1606.01933 [ cs.CL ]. ^ a b レヴィ、スティーブン。 「8人のGoogle社員が現代のAI を 発明。その内幕とは?」 Wired。ISSN 1059-1028。 2024 年 3 月 20日時点のオリジナルより アーカイブ。 2024年8月6日 閲覧 。 ^ Cheng, Jianpeng; Dong, Li; Lapata, Mirella (2016年11月). 「機械読解のための長短期記憶ネットワーク」 . Su, Jian; Duh, Kevin; Carreras, Xavier (編). 2016年自然言語処理における経験的手法に関する会議議事録 . テキサス州オースティン: 計算言語学協会. pp. 551– 561. doi : 10.18653/v1/D16-1053 . ^ Peng, Bo; Alcaide, Eric; Anthony, Quentin; Albalak, Alon; Arcadinho, Samuel; Biderman, Stella; Cao, Huanqi; Cheng, Xin; Chung, Michael (2023-12-10), RWKV: トランスフォーマー時代のRNNの再発明 、 arXiv : 2305.13048 ^ Marche, Stephen (2024年8月23日). 「言語AIは偶然に生まれたのか?」 . The New Yorker . ISSN 0028-792X . 2024年8月27日 閲覧。 ^ a b c d e Devlin, Jacob; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (2018年10月11日). 「BERT: 言語理解のための深層双方向トランスフォーマーの事前学習」. arXiv : 1810.04805v2 [ cs.CL ]. ^ 「Google: BERTは現在、ほぼすべての英語クエリで使用されています」 Search Engine Land . 2020年10月15日. 2020年11月24日 閲覧 。 ^ a b Caswell, Isaac; Liang, Bowen (2020年6月8日). 「Google翻訳の最近の進歩」 . Google Research . 2024年7月4日時点のオリジナルより アーカイブ 。 2024年8月7日 閲覧。 ^ 「ChatGPTの開発に携わった人々による、ChatGPTがどのように構築されたかの裏話」 MIT テクノロジーレビュー 。 2024年8月6日 閲覧。 ^ 「教師なし学習による言語理解の向上」 openai.com 2018 年6月11日. 2023 年3月18日時点のオリジナルより アーカイブ。 2023年3月18日 閲覧 。 ^ Finetune-transformer-lm 、OpenAI、2018 年 6 月 11 日、 2023 年 5 月 1 日に取得 ^ a b ドソヴィツキー、アレクセイ;バイエル、ルーカス。コレスニコフ、アレクサンダー。ヴァイセンボルン、ディルク。ザイ、シャオファ。ウンターティナー、トーマス。デガニ、モスタファ。ミンデラー、マティアス。ハイゴールド、ゲオルク。ジェリー、シルヴァン。ウシュコレイト、ヤコブ(2021-06-03)。 「画像は 16x16 ワードの価値があります: 大規模な画像認識のためのトランスフォーマー」。 arXiv : 2010.11929 [ cs.CV ]。 ^ a b グラティ、アンモール;秦、ジェームズ。チウ、チュンチェン。パルマー、ニキ。張、裕。ユウ、ジアフイ。ハン、ウェイ。王、紫博。張正東。ウー、ヨンフイ。龐明、龐明(2020)。 「Conformer: 音声認識用の畳み込み拡張トランスフォーマー」。 arXiv : 2005.08100 [ eess.AS ]。 ^ チョロマンスキー、クシシュトフ;リホシェルストフ、ヴァレリー。ドーハン、デイビッド。ソン、シンユウ。ゲーン、アンドレア。サルロス、タマス;ホーキンス、ピーター。デイビス、ジャレッド。モヒウディン、アフロズ (2022-11-19)、 パフォーマーによる注意の再考 、 arXiv : 2009.14794 ^ Liu, Zhuang; Mao, Hanzi; Wu, Chao-Yuan; Feichtenhofer, Christoph; Darrell, Trevor; Xie, Saining (2022). 2020年代に向けたConvNet . コンピュータビジョンとパターン認識に関する会議 ( CVPR ). pp. 11976– 11986. ^ Esser, Patrick; Kulal, Sumith; Blattmann, Andreas; Entezari, Rahim; Müller, Jonas; Saini, Harry; Levi, Yam; Lorenz, Dominik; Sauer, Axel (2024-03-05), 高解像度画像合成のための整流フロートランスフォーマーのスケーリング , arXiv : 2403.03206 ^ a b シオン、ルイビン;ヤン、ユンチャン。彼、ディ。鄭、凱。鄭、淑新。シン、チェン。張恵帥。ラン、ヤンヤン。王、李偉。劉鉄燕(2020-06-29)。 「トランスフォーマーアーキテクチャにおけるオンレイヤー正規化」。 arXiv : 2002.04745 [ cs.LG ]。 ^ Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (2020-01-01). 「統合テキスト-テキスト変換による転移学習の限界の探究」 . The Journal of Machine Learning Research . 21 (1): 140:5485–140:5551. arXiv : 1910.10683 . ISSN 1532-4435 . ^ Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (2019). 「統合テキスト・ツー・テキスト・トランスフォーマーによる転移学習の限界の探究」 arXiv : 1910.10683 [ cs.LG ]. ^ a b 「マスク言語モデリング」 . huggingface.co . 2023年10月5日 閲覧。 ^ a b 「因果言語モデリング」 . huggingface.co . 2023年10月5日 閲覧。 ^ a b c d Tay, Yi; Dehghani, Mostafa; Tran, Vinh Q.; Garcia, Xavier; Wei, Jason; Wang, Xuezhi; Chung, Hyung Won; Shakeri, Siamak; Bahri, Dara (2023-02-28), UL2: Unifying Language Learning Paradigms , arXiv : 2205.05131 ^ Press, Ofir; Wolf, Lior (2017-02-21) 「出力埋め込みを用いた言語モデルの改善 」 arXiv : 1608.05859 ^ Lintz, Nathan (2016-04-18). 「ニューラルネットワークによるシーケンスモデリング(パート2):アテンションモデル」 . Indico . 2020年10月21日時点のオリジナルより アーカイブ。 2019年10月15日 閲覧 。 ^ a b c Alammar, Jay. 「The Illustrated transformer」 . jalammar.github.io . 2020年10月18日時点のオリジナルより アーカイブ。 2019年10月15日 閲覧 。 ^ チーム、ケラス。 「Keras ドキュメント: GPT2Backbone モデル」 。 ケラス.io 。 2024 年 8 月 8 日 に取得 。 ^ Clark, Kevin; Khandelwal, Urvashi; Levy, Omer; Manning, Christopher D. (2019年8月). 「BERTは何を見ているのか? BERTの注意の分析」 . 2019 ACLワークショップ「BlackboxNLP:NLPのためのニューラルネットワークの分析と解釈」の議事録 . フィレンツェ、イタリア:Association for Computational Linguistics: 276– 286. arXiv : 1906.04341 . doi : 10.18653/v1/W19-4828 . 2020年10月21日時点のオリジナルより アーカイブ。 2020年5月20日 閲覧 。 ^ 楊志林;ダイ、ジハン。ヤン、イーミン。カーボネル、ハイメ。サラフトディノフ、ラスR;ル、クオック V (2019)。 「XLNet: 言語理解のための一般化された自己回帰事前トレーニング」 。 神経情報処理システムの進歩 。 32 . Curran Associates, Inc. arXiv : 1906.08237 。 ^ 王、強;李、北。シャオ、トン。朱、ジンポー。リー・チャンリャン。ウォン、デレク F. Chao、Lidia S. (2019-06-04)、 機械翻訳のためのディープ トランスフォーマー モデルの学習 、 arXiv : 1906.01787 ^ Phuong, Mary; Hutter, Marcus (2022-07-19) 「Transformersの形式アルゴリズム 」 arXiv : 2207.09238 ^ a b c Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (2020). 「統合テキストツーテキスト変換による転移学習の限界の探究」 . Journal of Machine Learning Research . 21 (140): 1– 67. arXiv : 1910.10683 . ISSN 1533-7928 . ^ a b Shazeer, Noam (2020-02-01). 「GLUバリアントによるTransformerの改良」. arXiv : 2002.05202 [ cs.LG ]. ^ Hendrycks, Dan; Gimpel, Kevin (2016-06-27). 「ガウス誤差線形単位 (GELU)」. arXiv : 1606.08415v5 [ cs.LG ]. ^ Zhang, Biao; Sennrich, Rico (2019). 「Root Mean Square Layer Normalization」 . Advances in Neural Information Processing Systems . 32. Curran Associates, Inc. arXiv : 1910.07467 . ^ Tembine, Hamidou, Manzoor Ahmed Khan, Issa Bamia. 2024. 「平均場型トランスフォーマー」数学12巻22号3506頁。https://doi.org/10.3390/math12223506 ^ a b Nguyen, Toan Q.; Salazar, Julian (2019-11-02). Niehues, Jan; Cattoni, Rolando; Stüker, Sebastian; Negri, Matteo; Turchi, Marco; Ha, Thanh-Le; Salesky, Elizabeth; Sanabria, Ramon; Barrault, Loic (編). 「涙のないトランスフォーマー:自己注意の正規化の改善」 . 第16回国際音声言語翻訳会議論文集 . 香港:計算言語学協会 . arXiv : 1910.05895 . doi : 10.5281/zenodo.3525484 . ^ フィリップ・ダフター;シュミット、マーティン。シュッツェ、ハインリッヒ (2022-06-06)。 「変圧器の位置情報: 概要」 。 計算言語学 。 48 (3): 733–763 . arXiv : 2102.11090 。 土井 : 10.1162/coli_a_00445 。 ISSN 0891-2017 。 S2CID 231986066 。 ^ Gehring, Jonas; Auli, Michael; Grangier, David; Yarats, Denis; Dauphin, Yann N. (2017-07-17). 「畳み込みシーケンス対シーケンス学習」 . 第34回国際機械学習会議論文集 . PMLR: 1243– 1252. ^ Haviv, Adi; Ram, Ori; Press, Ofir; Izsak, Peter; Levy, Omer (2022-12-05), 位置エンコーディングのないTransformer言語モデルでも位置情報を学習できる , arXiv : 2203.16634 ^ 蘇建林;ルー、ユウ。パン、シェンフェン。ムルタダ、アハメッド。ウェン、ボー。劉雲峰(2021-04-01)。 「RoFormer: ロータリー位置埋め込みを備えた強化されたトランスフォーマー」。 arXiv : 2104.09864 [ cs.CL ]。 ^ Press, Ofir; Smith, Noah A.; Lewis, Mike (2021-08-01). 「短いトレーニング、長いテスト:線形バイアスによるアテンションで入力長の外挿が可能に」. arXiv : 2108.12409 [ cs.CL ]. ^ Shaw, Peter; Uszkoreit, Jakob; Vaswani, Ashish (2018). 「相対位置表現を用いた自己注意」. arXiv : 1803.02155 [ cs.CL ]. ^ 柯、国林;彼、ディ。 Liu、Tie-Yan (2021-03-15)、 言語事前トレーニングにおける位置エンコーディングの再考 、 arXiv : 2006.15595 ^ Kwon, Woosuk; Li, Zhuohan; Zhuang, Siyuan; Sheng, Ying; Zheng, Lianmin; Yu, Cody Hao; Gonzalez, Joseph; Zhang, Hao; Stoica, Ion (2023-10-23). 「PagedAttentionを用いた大規模言語モデルサービングのための効率的なメモリ管理」 . Proceedings of the 29th Symposium on Operating Systems Principles . SOSP '23. ニューヨーク、ニューヨーク州、米国: Association for Computing Machinery. pp. 611– 626. arXiv : 2309.06180 . doi : 10.1145/3600006.3613165 . ISBN 979-8-4007-0229-7 。^ vllm-project/vllm , vLLM, 2024-06-20 , 2024-06-20 取得 ^ 李卓漢、クォン・ウソク;荘、思源。シェン、イン。鄭、蓮民。ゆう、コーディ。ゴンザレス、ジョーイ。チャン・ハオ。ストイカ、イオン(2023-06-20)。 「vLLM: PagedAttendant を使用した簡単、高速、安価な LLM サービス 」 vLLM ブログ 。 2024 年 6 月 20 日 に取得 。 ^ Dao, Tri; Fu, Dan; Ermon, Stefano; Rudra, Atri; Ré, Christopher (2022-12-06). 「FlashAttention: IOを考慮した高速かつメモリ効率の高いExact Attention」 . ニューラル情報処理システムの進歩 . 35 : 16344–16359 . arXiv : 2205.14135 . ^ "Stanford CRFM" . crfm.stanford.edu . 2023年7月18日 閲覧 。 ^ 「FlashAttention-2: より高速なアテンションと優れた並列処理および作業分割」 プリンストン NLP 2023年6月17日. 2023年7月18日 閲覧 。 ^ 「Together AIのチーフサイエンティスト、Tri Dao氏によるFlashAttention-2のリリースで、モデルのトレーニングと推論を高速化」 TOGETHER . 2023年7月18日 閲覧 。 ^ Ainslie, Joshua; Lee-Thorp, James; de Jong, Michiel; Zemlyanskiy, Yury; Lebrón, Federico; Sanghai, Sumit (2023-12-23). 「GQA: マルチヘッドチェックポイントからの一般化マルチクエリTransformerモデルのトレーニング」. arXiv : 2305.13245 [ cs.CL ]. ^ 「Flash Attention 4をリバースエンジニアリングしました」 。Modal 。 2025年9月26日 閲覧 。 ^ Chowdhery, Aakanksha; Narang, Sharan; Devlin, Jacob; Bosma, Maarten; Mishra, Gaurav; Roberts, Adam; Barham, Paul; Chung, Hyung Won; Sutton, Charles; Gehrmann, Sebastian; Schuh, Parker; Shi, Kensen; Tsvyashchenko, Sasha; Maynez, Joshua; Rao, Abhishek (2022-04-01). 「PaLM: Pathwaysを用いた言語モデルのスケーリング」. arXiv : 2204.02311 [ cs.CL ]. ^ Ainslie, Joshua; Lee-Thorp, James; de Jong, Michiel; Zemlyanskiy, Yury; Lebrón, Federico; Sanghai, Sumit (2023-12-23), GQA: マルチヘッドチェックポイントからの一般化マルチクエリトランスフォーマーモデルのトレーニング , arXiv : 2305.13245 ^ a b DeepSeek-AI;劉愛新。フォン、ベイ。王斌、ワン・ビンシュアン。リュウ、ボー。趙、成港。デングル、成旗; Ruan、Chong (2024 年 6 月 19 日)、 DeepSeek-V2: 強力で経済的、効率的な専門家の混合言語モデル 、 arXiv : 2405.04434 。^ a b Leviathan, Yaniv; Kalman, Matan; Matias, Yossi (2023-05-18) 「投機的デコードによるトランスフォーマーからの高速推論 」 arXiv : 2211.17192 ^ Fu, Yao (2023-12-13). 「100倍のスピードアップを目指して:フルスタックTransformer推論最適化」 . ^ Chen, Charlie; Borgeaud, Sebastian; Irving, Geoffrey; Lespiau, Jean-Baptiste; Sifre, Laurent; Jumper, John (2023-02-02), Accelerating Large Language Model Decoding with Speculative Sampling , arXiv : 2302.01318 ^ Gloeckle, Fabian; Badr Youbi Idrissi; Rozière, Baptiste; Lopez-Paz, David; Synnaeve, Gabriel (2024). 「マルチトークン予測による大規模言語モデルの高速化と高速化」 arXiv : 2404.19737 [ cs.CL ]. ^ DeepSeek-AI;他。 (2024年)。 「DeepSeek-V3テクニカルレポート」。 arXiv : 2412.19437 [ cs.CL ]。 ^ a b キタエフ, ニキータ; カイザー, ウカス; レフスカヤ, アンセルム (2020). 「リフォーマー:効率的な変圧器」. arXiv : 2001.04451 [ cs.LG ]. ^ Liu, Ze; Lin, Yutong; Cao, Yue; Hu, Han; Wei, Yixuan; Zhang, Zheng; Lin, Stephen; Guo, Baining (2021). 「Swin Transformer: Shifted Windowsを用いた階層型ビジョントランスフォーマー」. 2021 IEEE/CVF 国際コンピュータビジョン会議 (ICCV) . IEEE. pp. 9992– 10002. arXiv : 2103.14030 . doi : 10.1109/ICCV48922.2021.00986 . ISBN 978-1-6654-2812-5 。^ リステア、ニコライア・カタリン;イヨネスク、ラドゥ・チューダー。カーン、ファハド・シャバズ(2022-09-18)。 「SepTr: オーディオ スペクトログラム処理用の分離可能なトランス」 。 スピーチ間 。 ISCA: 4103 ~ 4107。arXiv : 2203.09581 。 土井 : 10.21437/Interspeech.2022-249 。 ^ Tay, Yi; Dehghani, Mostafa; Abnar, Samira; Shen, Yikang; Bahri, Dara; Pham, Philip; Rao, Jinfeng; Yang, Liu; Ruder, Sebastian; Metzler, Donald (2020-11-08). 「Long Range Arena: 効率的なトランスフォーマーのベンチマーク」. arXiv : 2011.04006 [ cs.LG ]. ^ 「Reformer: The Efficient Transformer」 . Google AI Blog . 2020年1月16日. 2020年10月22日時点のオリジナルより アーカイブ。 2020年10月22日 閲覧 。 ^ Gomez, Aidan N; Ren, Mengye; Urtasun, Raquel; Grosse, Roger B (2017). 「可逆残差ネットワーク:活性化情報の保存なしのバックプロパゲーション」 . ニューラル情報処理システムの進歩 . 30. Curran Associates, Inc. arXiv : 1707.04585 . ^ Child, Rewon; Gray, Scott; Radford, Alec; Sutskever, Ilya (2019-04-23) 「スパーストランスフォーマーによる長いシーケンスの生成 」 arXiv : 1904.10509 ^ 「スパースアテンション法を用いたより長いシーケンス向けのTransformersの構築」 。Google AIブログ 。2021年3月25日。 2021年9月18日時点のオリジナルより アーカイブ。 2021年5月28日 閲覧 。 ^ Zhai, Shuangfei; Talbott, Walter; Srivastava, Nitish; Huang, Chen; Goh, Hanlin; Zhang, Ruixiang; Susskind, Josh (2021-09-21). 「An Attention Free Transformer」. arXiv : 2105.14103 [ cs.LG ]. ^ 彭、ハオ;パパス、ニコラオス。ヨガタマ、ダニ。シュワルツ、ロイ。スミス、ノア A.コン、リンペン(2021-03-19)。 「ランダム機能アテンション」。 arXiv : 2103.02143 [ cs.CL ]。 ^ Choromanski, Krzysztof; Likhosherstov, Valerii; Dohan, David; Song, Xingyou; Gane, Andreea; Sarlos, Tamas; Hawkins, Peter; Davis, Jared; Belanger, David; Colwell, Lucy; Weller, Adrian (2020-09-30). 「線形スケーラブルなLong-Context Transformersを用いたタンパク質のマスク言語モデリング」 arXiv : 2006.03555 [ cs.LG ]. ^ Lu, Kevin; Grover, Aditya; Abbeel, Pieter; Mordatch, Igor (2022-06-28). 「汎用計算エンジンとしての凍結済み学習済みTransformers」 . AAAI人工知能会議論文集 . 36 (7): 7628– 7636. doi : 10.1609/aaai.v36i7.20729 . ISSN 2374-3468 . ^ 「Vicuna:ChatGPT品質90%*でGPT-4を圧倒するオープンソースチャットボット | LMSYS Org」 lmsys.org . 2024年8月11日 閲覧 。 ^ リュウ、ハオティアン;李春源。呉、青陽。イ・ヨンジェ(2023-12-15)。 「ビジュアル指示チューニング」 。 神経情報処理システムの進歩 。 36 : 34892–34916 。 ^ Radford, Alec; Kim, Jong Wook; Xu, Tao; Brockman, Greg; McLeavey, Christine; Sutskever, Ilya (2022). 「大規模弱教師によるロバストな音声認識」. arXiv : 2212.04356 [ eess.AS ]. ^ Jaegle, Andrew; Gimeno, Felix; Brock, Andrew; Zisserman, Andrew; Vinyals, Oriol; Carreira, Joao (2021-06-22). 「Perceiver: 反復的注意による一般知覚」. arXiv : 2103.03206 [ cs.CV ]. ^ ジェイグル、アンドリュー;ボルジョー、セバスチャン。アライラック、ジャン=バティスト。カール・ドーシュ。イヨネスク、カタリン州。ディン、デイビッド。コップラ、スカンダ。ゾラン、ダニエル。ブロック、アンドリュー。シェルハマー、エヴァン。エナフ、オリヴィエ (2021-08-02)。 「パーシーバー IO: 構造化された入力と出力のための一般的なアーキテクチャ」。 arXiv : 2107.14795 [ cs.LG ]。 ^ 「Parti: Pathways Autoregressive Text-to-Image Model」 . sites.research.google . 2024年8月9日 閲覧。 ^ a b ヴィジェガス、ルーベン;ババエイザデ、モハマド。キンダーマンズ、ピーター=ヤン。モラルド、ヘルナン。張、漢。サファール、モハマド・タギ。カストロ、サンティアゴ;クンツェ、ユリウス。エルハン、ドゥミトル(2022-09-29)。 「Phenaki: オープンドメインのテキスト記述からの可変長ビデオ生成」。 arXiv : 2210.02399 [ cs.CV ]。 ^ a b Chang, Huiwen; Zhang, Han; Barber, Jarred; Maschinot, AJ; Lezama, Jose; Jiang, Lu; Yang, Ming-Hsuan ; Murphy, Kevin; Freeman, William T. (2023-01-02). 「Muse: マスク付き生成トランスフォーマーによるテキストから画像への生成」. arXiv : 2301.00704 [ cs.CV ]. ^ Ramesh, Aditya; Pavlov, Mikhail; Goh, Gabriel; Gray, Scott; Voss, Chelsea; Radford, Alec; Chen, Mark; Sutskever, Ilya (2021-02-26)、 ゼロショットテキスト画像生成 、 arXiv : 2102.12092 ^ ユウ、ジアフイ;徐元中。コー・ジンユ。ルオン、タン;バイド、グンジャン。ワン・ジルイ。ヴァスデヴァン、ビジェイ。クー、アレクサンダー。 Yang、yingfei (2022-06-21)、 コンテンツリッチなテキストから画像への生成のための自己回帰モデルのスケーリング 、 arXiv : 2206.10789 ^ Kariampuzha, William; Alyea, Gioconda; Qu, Sue; Sanjak, Jaleal; Mathé, Ewy; Sid, Eric; Chatelaine, Haley; Yadaw, Arjun; Xu, Yanji; Zhu, Qian (2023). 「大規模希少疾患疫学のため の 高精度情報抽出」 . Journal of Translational Medicine . 21 (1): 157. doi : 10.1186/s12967-023-04011-y . PMC 9972634. PMID 36855134 .
さらに読む アレクサンダー・ラッシュ『注釈付きトランスフォーマー』 、 Wayback Machine で2021年9月22日にアーカイブ 、ハーバードNLPグループ、2018年4月3日 Phuong, Mary; Hutter, Marcus (2022). 「Transformersのための形式アルゴリズム」. arXiv : 2207.09238 [ cs.LG ]. フェランド、ハビエル。サルティ、ガブリエレ。ビザッツァ、アリアナ。コスタ・ジュッサ、マルタ R. (2024-05-01)。 「トランスフォーマーベースの言語モデルの内部動作に関する入門書」。arXiv : 2405.00208 [ cs.CL ]。 Leech, Gavin (2024年11月6日). 「Transformer++」 . argmin gravitas . 2025年2月26日時点のオリジナルよりアーカイブ。 2025年5月8日 閲覧 。 米国特許 10452978 、Noam M. Shazeer、エイダン・ニコラス・ゴメス。ウカシュ・ミエチスワフ・カイザー。ヤコブ・D・ウシュコライト。リオン・オーウェン・ジョーンズ。ニキ・J・パーマー;イリア・ポロスキン。 Ashish Teku Vaswani、「注意ベースのシーケンス変換ニューラル ネットワーク」、2019 年 10 月 22 日に発行、Google LLC に譲渡