🌟

30分で完全理解するTransformerの世界

2023/02/14に公開
4

はじめに

初めまして。ZENKIGENデータサイエンスチームのはまなすです。正式な所属はDeNAデータ本部AI技術開発部なのですが[1]、業務委託という形で今年度から深層学習系の開発等に携わっています。

深層学習界隈では、2017年に衝撃的なタイトル(Attention Is All You Need)の論文が発表されてから早5年半、元出自の機械翻訳タスクを大きく越えて、Transformer関連の技術が様々な領域で用いられる汎用アーキテクチャとして目覚ましく発展し続けています。

今回はそんなTransformerが現時点までにどのように活用されてきたか、また、どのように工夫されてきたかをざっくりと俯瞰し、流れをおさらいする目的の記事になります。本記事の大枠は、2021年時点でのサーベイ論文である A Survey of Transformers に倣いつつ、適宜、2023年2月上旬現在までの情報で簡潔に肉付けしたものになっています。

Transformerって?

発展の系譜を眺める前に、Transformerがどんな仕組みのモデルだったかについて簡単に触れておきたいと思います。Transformer完全理解者の諸兄は本章はスキップして次章よりご覧ください。

構造的な話

最も大事な構成要素:Attention

Transformerは、Attentionと呼ばれる仕組みを効率的に積層した深層学習モデルです。Attentionをとても抽象的に表現すると、データを検索するための鍵(Key)と実際の値(Value)のペア集合に対して、問い合わせ(Query)を投げて値を取り出す操作という説明がしっくりくるのではないかなと思います。このとき、QueryとKeyは厳密に一致する必要はなく、各QueryとKeyの類似度に基づいて連続的に重みが計算され、その加重平均としてValueが引き出されます。

もう少し詳しく見ていきましょう。

深層学習では、基本的にあらゆる特徴量はベクトルを並べたテンソルとして表現されます。例えば d_k 次元のベクトルとして各Queryが表され、それらが N 個並んだ行列として Q\in\mathbb{R}^{N\times d_k} を考えることができます。同様に、Keyを K\in\mathbb{R}^{M\times d_k}、Valueを V\in\mathbb{R}^{M\times d_v} と表すと、最も基本的なAttentionは次のような行列演算の関数として表せます。

{\rm Attention}(Q, K, V)={\rm softmax}\left(\frac{QK^{\top}}{\sqrt{d_k}}\right)V=AV\in\mathbb{R}^{N\times d_v},

ただし、softmax関数は行方向、つまり各Queryに対して、全てのKeyへの重みの総和が1になる方向に適用されるものとします。このようにして計算された A は各QueryとKeyのペアの類似度を示すヒートマップのような役割を担い、一般にAttention Matrixなどと呼称されます。

さらに、各特徴量をより小さい次元のベクトルへ分割し、それぞれの分割グループでAttentionを適用して最後に結合する手法が一般に採用されます。これはMulti-Head Attentionと呼ばれ、QueryからKeyへ注目するパターンを並列で複数学習できることから表現力の向上が期待できます。


Fig.1. 後述するBERTにおいて観測されるAttentionの例。左図と右図がそれぞれある層のあるHeadにおけるAttention-Matrixを表しており、トークン同士が強く反応している箇所が濃い色で表示されている。(中央図の補足:FrameNetと呼ばれる語彙同士の接続に関するデータセットに基づき、複数の例文中でコアとなる語彙同士の繋がりを特定。BERTのSelf-Attentionがそれらの接続に関して反応した強度の平均を集計することで、そのような接続を捉えるSelf-Attentionが実際に学習されているかを判断する試み。)
Revealing the Dark Secrets of BERT より引用。


さて、このようなAttention機構ですが、Q, K, V を用意する経路によってさらに呼び名が変わります。基本的にKeyとValueはセットで与えられるため、具体的には以下のように分類できます。

  • Self-Attention:ある共通の入力 X に対しそれぞれの変換行列を適用して、Q=XW_Q, K=XW_K, V=XW_V を用意する。自分自身の要素との注目度合いを抽出する。
  • Masked Self-Attention:自己回帰生成(順に要素を予測していくタスク)などに用いられる場合、Self-Attentionの各要素が自身より未来の要素を参照できないようにする必要がある。このため、Attention Matrixに三角状のマスクを適用し、各要素が未来の要素にアクセスできないようにすることで、過去と現在の情報のみから未来の情報を予測できるように学習させる。
  • Cross-Attention:異なる入力行列 X, Y から、Q=XW_Q, K=YW_K, V=YW_V として用意する。これは、X が異なる情報源 Y から情報を抽出する処理として解釈できる。

Transformerの全体像

前節のAttention機構を積層しつつ、線形層や正規化層を適切に挟み込んだアーキテクチャとしてTransformerは提案されました。また、対象入力を特徴ベクトルとして埋め込む層や、位置情報を符号化して付加する層も重要な構成要素です。原典の Attention Is All You Need では翻訳タスクに適用されたため、埋め込み層は言語のトークンに対する処理として実装されました。

オリジナルのTransformerは、翻訳元言語の入力文を処理するエンコーダ、および翻訳文を自己回帰生成するデコーダから構成されます。エンコーダは入力文を受け取り、Self-Attention等を繰り返し適用しながらトークン列を加工していきます(Fig.2 左側)。エンコーダの出力はデコーダのCross-Attentionに与えられ、Key-Valueを計算するために用いられます(Fig.2 左側から右側中央に伸びる矢印)。すなわち、デコーダの条件付けを計算していることになります。

翻訳文の生成を担当するのはデコーダです(Fig.2 右側)。ここでは、最初に [BOS](Begin Of Sentence:文頭)というトークンだけから成る入力を用意します。これをMasked Self-AttentionやCross-Attentionを繰り返し適用しながら加工していき、最終的な出力として [BOS] の次のトークン、すなわち、翻訳文の最初に来るトークンを予測します。この予測結果は [BOS] に繋げられて再びデコーダに入力され、同様に次の次のトークンが予測されます。この処理を逐次的に繰り返すことにより、徐々に翻訳文が生成されていくのです。最終的に、デコーダが [EOS](End Of Sentence:文末)という特殊トークンを出力したら生成終了です。

学習時は正解トークン列を一度にデコーダに入力しますが、Masked Self-Attentionにより、未来の情報をリークしないようにしながら全トークンを並列で処理することが可能になります。


Fig.2. 初期Transformerの概要。A Survey of Transformers より引用。

Transformerの利活用

このようにして提案されたTransformerですが、その汎用性が認知されるにつれ、大きく以下の3つに大別される使用法が主流となってきました。

  • エンコーダ・デコーダ方式:オリジナルのTransformerと同様の利用法。機械翻訳など、ある系列を異なる系列に変換するタスクにおいて典型的に用いられる。
  • エンコーダのみ:入力系列の表現学習に利用。系列分類やラベリングタスクへの転用も多い。
  • デコーダのみ:エンコーダとのCross-Attentionを除外し、自己回帰生成のデコーダ部のみを残した構造。LM(Language Model:言語モデル)など、生成タスクでの利用が主。

性質的な話

Transformerの帰納バイアス

学習データではなく、機械学習モデルそれ自体が有している仮定や構造上の偏りを帰納バイアスと呼びます。例えば線形回帰では入出力が線形の関係にあることを暗に仮定していますし、深層学習モデルの一大巨頭であるCNNsは、重みを共有した小さな局所カーネル関数を画像全体に適用するという構造上の制約が帰納バイアスとして立ち現れます。

Transformerは扱うデータにほとんど仮定を置かないぶん、柔軟で普遍的な表現力を獲得できますが、その反面帰納バイアスに乏しく、データ量が不十分な環境では過学習に脆弱であるという弱点を持つことには留意が必要です。実際、後述する様々な事前学習手法や画像分野にTransformerを適用する手法では、従来研究と比較してもより大規模なデータが用いられており、その傾向は年々加速しています。

Transformerのスケーリング則

前節では若干ネガティブな書き方をしましたが、一方で、Transformerは学習データ量が増大するほど際限なく性能向上する可能性が示唆されており、実験的な裏打ちや、それに伴う効率的な実践上の提案も為されています。

より具体的には、Transformerの性能は『(埋め込み層を除く)モデルのパラメータ数N』『訓練データセットに含まれるトークン数D』『訓練計算量C』等の変数によって記述される冪乗則に従うことが、かのGPT系列を開発するOpenAIにより発表された2本の先行研究により指摘されています。まず Scaling Laws for Neural Language Models にてこの冪乗則が観測され、続く Scaling Laws for Autoregressive Generative Modeling にて、このスケーリング則が画像やマルチモーダルを含めた複数のドメインにも敷衍されることが発見されました。ただし、(埋め込み層を除く)訓練計算量は、バッチあたりのトークン数Bと訓練ステップ数Sを用いてC\approx6NBSと推定できることが示されており、固定サイズのBにおいてはD=BSと表せるため、実質的な束縛変数は2種類であると見做すことができます。[2]

さらにOpenAIはこのスケーリング則の上限を GPT-3 の開発により押し上げ、今もなおより巨大なモデルによりその際限なさを実証し続けています。一方で、2022年にはさらにDeepMindから『パラメータサイズとデータサイズには実践的に最適なバランスが存在する』という研究成果が発表されており、スケーリング則に関する今後のさらなる理解が待たれます。

また後述するように、一定以上の大規模自然言語モデルには『創発性』が備わる場合があることも知られており、スケーリング則の予想から不連続に性能が飛躍しうることが確認されています。

2022年末は後述するChatGPTの台頭が大きな話題となりましたが、これもまさにTransformerのスケーリング則の上に実現した成果だと言えます(勿論、それを基盤に数々の工夫が込められています)。まことしやかにGPT-4が噂されはじめて久しく、直近ではGPT-3.75とでも呼ぶべきモデルが検索エンジンのBingに搭載されるなど慌ただしい幕開けとなった2023年ですが、本年は我々がこれまでにない新たな驚愕を甘受する年になるかもしれません。


Fig.3. GPT-3の提案論文にて示されたスケーリング則の敷衍。点線が先行研究に基づき導かれた冪乗則の理想的挙動。各実線は異なる設定で実装されたGPT-3の、学習に伴うvalidation lossの曲線。Scaling Laws for Autoregressive Generative Modeling での観測からさらに冪乗則の水準を2桁推し進めた。黄色の曲線が収束していないのは、十分な学習資源を投入する前に当初の予算を消費したためであるとされている。Language Models are Few-Shot Learners より引用。

Transformerの分類体系

オリジナルの台頭以降、その汎用性の高さからあらゆる領域に浸透したTransformerですが、その派生は主に『モデルアーキテクチャの改修』『事前学習方法』『応用領域』の違いにより分類することが可能です。例えば、2021年時点のサーベイ論文では Fig.4 のように各カテゴリの代表的な手法が挙げられています。以降では主にこちらを参照しつつ、時折2022年以降の手法も交えながらTransformerの発展の系譜を眺めてみましょう。


Fig.4. 幾つかの観点で分類したTransformerの派生手法。A Survey of Transformers より引用。

各構成要素単位での改修

Transformerが様々な領域に応用され、そのモデルサイズやデータ規模が巨大になるにつれて、各構成要素をいかにメモリ効率良く、あるいは高速に計算するかへの関心が高まっています。特によく言及されるのは、Attentionは『入力系列長の2乗に比例して計算量が増大する』『機構それ自体が入力系列の順序を考慮できない』という性質であり、これらの弱点を緩和するアプローチを中心に、極めて多くの派生要素が提案されてきました。同時に、Transformerの要であるAttention機構を拡張することで、さらなる表現力向上を図る動きも盛んになっています。

本章ではそれらの概観を捉えると同時に、それぞれの技術的内容への橋渡しを目的に、幾つかの要素に分けてモデルアーキテクチャの改修手法を簡単に紹介します。詳細な数式や技術的背景は、A Survey of TransformersEfficient Transformers: A Survey 、および各原典をご覧ください。

Attention

スパース化

通常のAttentionでは各要素が自身を含めた全ての要素と関わり合いますが、そのAttention Matrixの特定部分以外を計算しないようスパース化(疎行列化)することで、上述の計算複雑性を軽減しようとする研究が多数存在します。これは、通常のTransformerも学習の結果スパースなAttention Matrixを獲得していることが多いという観測に基づく工夫であり、入力モーダルやタスクに応じて要素同士の関わり方には偏りが生じることを反映することによって、精度を極力犠牲にせず計算量を削減することが可能です。場合によっては、不要な接続を排除することが精度向上に寄与することもあります。

上記を実現する主流な方法は、Fig.5 のようにトークン位置に基づいてAttention Matrixを制限することです。また Fig.6 のようにそれらを複合することで、スパース性を保ちつつより複雑な関係性を抽出する試みへも派生していきます。例えばBigBirdでは、計算量を系列長に比例するオーダに下げ、より長い系列を扱えるようにするため、先頭の特殊トークン付近に広域的な情報を集約し分配するマスク、局所位置に着目するマスク、およびランダムマスクを組み合わせています。


Fig.5. 位置に基づくスパースなAttentionの例。A Survey of Transformers より引用。


Fig.6. 位置に基づくスパースなAttentionを複合した例。A Survey of Transformers より引用。

さらに、二分木の要領で徐々に情報集約していくBP-Transformerや、画像領域に特化して、局所領域軸方向にAttention Matrixを制限する手法等も提案されています。

その他、入力内容に基づいてAttention Matrixのスパース性を制御する手法群も存在します。イメージとしては、各Queryに対してそれぞれ類似性が高いKey集合だけを予め取り出すことができるならば、全てのKeyに対してAttentionを計算する必要がなくなり、計算量を削減することができそうです。最大内積探索問題とも関連の深いこの問題設定において、k-meansクラスタリングを利用したRouting Transformerや、局所性鋭敏型ハッシュを利用したReformer、入力系列をグラフと見做してタスク特化な接続を学習するSAC、Sinkhornアルゴリズムを用いて特定のKey集合をQueryに分配するSparse Sinkhorn Attentionなど、多岐に亘る手法が提案されています。

線形化

Attentionのコアとなる計算要素は {\rm softmax}\left(QK^{\top}\right)V であり、非線形な \rm softmax 関数に挟まれている QK の行列積を先に計算しなければならないことが、先述の計算量の原因となっています。この部分を何らかの方法で {\rm softmax}\left(QK^{\top}\right)\simeq \hat{Q}\hat{K}^{\top} のように置換できれば、\hat{K}V の行列積を先に計算することで計算量を系列長に比例するオーダに削減することができます。

より正確な洞察のため、Attentionの計算を各Query, Key, Valueを特徴ベクトルで捉えた観点で見てみましょう(e.g., Q=\left\{\mathbf{q}_i\in\mathbb{R}^{d_k}\right\}_{i=1}^{N})。このとき、通常のAttentionの出力は次のように表すことができます。

\mathbf{z}_i = \sum_j\frac{\exp(\mathbf{q}_i^\top\mathbf{k}_j )}{\sum_l \exp (\mathbf{q}_i^\top\mathbf{k}_l )} \mathbf{v}_j.

この内積と\expを用いた類似度関数を、ある関数\phiを適用した内積に置換して、次のように書き換えてみます。ただし、\mathbf{z}_i\in\mathbb{R}^{d_v} です。

\begin{aligned} \mathbf{z}_i^\top &= \sum_j\frac{\phi(\mathbf{q}_i)^\top\phi(\mathbf{k}_j )}{\sum_l \phi (\mathbf{q}_i)^\top\phi(\mathbf{k}_l )} \mathbf{v}_j^\top\\ &= \frac{\phi(\mathbf{q}_i)^\top\sum_j\phi(\mathbf{k}_j )\mathbf{v}_j^\top}{ \phi (\mathbf{q}_i)^\top\sum_l\phi(\mathbf{k}_l )} \\ &= \frac{\phi(\mathbf{q}_i)^\top S}{ \phi (\mathbf{q}_i)^\top\mathbf{u}}. \end{aligned}

このとき、S\in\mathbb{R}^{d_k\times d_v} かつ \mathbf{u}\in\mathbb{R}^{d_k} です。S\mathbf{u} の計算には系列長に比例する計算量しか要さないため、総合的にAttentionの計算量を削減できるという理屈になっています。またこれらは自己回帰生成の際は逐次的に計算できるため、さらに効率化を図れるという副次的な利点も得られます。この文脈では、\phi にELU関数を利用したLinear Transformerや、乱択化フーリエ特徴を用いたPerformer等が提案されています。また、集約特徴量である S\mathbf{u} の計算にゲート処理を取り入れたRFAや、それらの記憶容量を拡張する工夫を考案したDelta Net等も提案されています。

Queryのプロトタイプ化とKey-Valueのメモリ圧縮

上記のような工夫のほかに、計算すべきトークン数を直接減らすことにより計算量を削減するアプローチも存在します。Fig.7 はその概要です。


Fig.7. 計算すべきトークン数を減らす工夫。A Survey of Transformers より引用。

プロトタイプを利用してQueryのトークン数を減らす手法としては、Queryを幾つかのクラスタに分類するClustered Attentionや、各QueryにおけるAttentionの分布と一様分布間のKLダイバージェンスを近似的に求めることで、情報量の多い一定数のQueryのみを計算に用いるInformer等が提案されています。

また、Key-Valueペアを情報圧縮することでトークン数を減らす手法としては、ストライドの大きな畳み込みを噛ませるMemory Compressed Attention、情報集約するための学習可能なグローバルトークンで一度入力を要約するSet TransformerLuna、線形写像によってKey-Valueペアをより小さいトークン数へ射影して用いるLinformer、Fig.5 (b) に示したスパースなAttentionを計算しつつ、Memory Compressed Attentionを組み合わせるPoolingformer等が提案されています。

Self-Attentionの低ランク化

経験的にAttention Matrixがスパース性を持つこととも関連しますが、Attention Matrixは大抵の場合に低ランク行列となることが報告されています。この性質は、Self-Attentionを低ランク行列で直接パラメータ化する手法、Nyström近似に基づくCSALRNyströmformerといった手法に活かされています。

事前分布の利用

入力とは別の情報源、あるいは事前知識から事前分布となるAttention Matrixを用意して複合することで、性能向上や省パラメータ化を図る研究も存在します。例えば、データ系列の局所性に着目し、それぞれのトークン位置を中心にガウス分布状の事前分布を計算するGaussian Transformerや、隣接する層のAttention Matrixは類似するという観測に基づき直前の層の計算結果を利用するPredictive Attention TransformerRealformer等の手法です。後者のタイプの極端な例として、一度計算されたAttention Matrixを複数層で使い回すLazyformerも提案されています。

さらに、タスクに応じて事前分布を適応的に計算するCAMTLや、入力系列とは完全に独立な事前分布のみをAttention Matrixとして用いるSynthesizerのような手法群も存在します。

Multi-Head Attentionの改善

Multi-Head Attentionは、異なるトークン位置にある複数の表現部分空間から同時に情報を集約できる点において魅力的ですが、実際に各Headがそれぞれ異なる特徴を捉えていることを保証する機構はありません。そこで例えば、異なるHead間の多様性を促進する制約項を損失関数に加える手法や、事前学習済みTransformerモデルに特徴的なAttentionパターンを促進する制約項を加えることで学習の収束を早めたり頑健性を向上させる手法、追加の線形射影や重み共有によりHead間で情報伝達が行われる経路を設けたTalking-Heads AttentionCollaborative Multi-head Attention等が提案されています。

また、各トークン位置からの距離に応じてAttentionの計算間隔をHead単位で制御し、効率的に局所特徴に注意を向ける手法として、そうしたスパンを適応的に学習するAdaptive Attention Span、各層やHeadごとに固定のスパンを予め定めるMulti-Scale Transformerも提案されています。さらに、複数Headの出力を単に再結合して線形射影する通常のTransformerの流れを再考し、Capsule Networksに着想を得た反復的な情報伝達経路選択過程を適用した手法(Dynamic Routingを適用した手法EM Routingを適用した手法)も存在します。

その他、Queryのみ複数Headに分割し、Key-Valueは共通の重みで射映することでメモリ消費を抑えるMulti-Query Attentionや、特徴ベクトルをHead数に応じて分割する慣例を再考し、各Headの次元数を系列長に一致させることで性能向上を図った手法等、多種多様な工夫が行われています。


さらに、Attention以外の構成要素に着目した改修も簡単に紹介したいと思います。

位置表現

Transformerの構成要素であるAttention、および位置ごとに適用される線形層は、いずれも順列不変な関数です。したがって、自然言語処理や画像処理など、各トークンの位置が重要となるモダリティにおいては、いかにして入力の位置情報をモデルの処理に反映させるかが重要になります。

通常のTransformerでは、トークンの絶対位置と特徴ベクトルの各次元位置に応じて周波数の異なる三角関数を計算するヒューリスティックな位置符号化が用いられました。

絶対位置の利用

絶対位置を利用する手法の系列としては、BERTのように位置埋め込みを学習可能にすることでより柔軟な位置表現を獲得できることが期待されますが、一方で予め定められた最大系列長以上を扱えないという欠点を内包することには注意が必要です。その改善として、位置符号化の周波数部分のみを学習可能にすることで三角関数による帰納バイアスを活かす手法や、位置表現を連続化してNeural ODEを適用するFLOATERのような手法も存在します。

さらに、通常のTransformerのように位置表現を最初にトークン埋め込みに加算するだけでは層を経るごとに情報が薄まるという考察から、Universal Transformersのように、Transformerの各層において位置表現を注入するような手法群が効果的であることも報告されています。

相対位置の利用

位置を表現する他の方法としては、トークンの絶対位置ではなく、各トークンから他のそれぞれのトークンに対する相対位置を符号化する方法も考えられます。このような手法はより長い系列を扱う能力に長けていることが知られており、相対位置の表現や与え方には様々な派生が提案されています(e.g., InDIGOTransformer-XLMusic TransformerDeBERTaT5)。

その他、絶対位置表現とのハイブリッド手法であるTUPEや、回転位置埋め込みを用いることで絶対位置と相対位置の双方の役割を果たすRoFormerも提案されています。RoFormerはAttentionの線形化とも互換性があることが知られています。

明示的な位置表現の廃止

位置情報をそれ単体で埋め込む代わりに、トークン埋め込みを位置に関する複素連続関数として学習する手法のように、モデル内の他の処理によって位置に関する情報を非明示的に獲得させる研究も存在します。他に、局所RNNを用いるR-Transformerや、ゼロパディングを含む二次元畳み込みは画像内位置を非明示的に符号化できるという洞察に基づくCPEが提案されています。

デコーダにより獲得される位置表現の活用

Attentionは順列不変であると述べましたが、Masked Self-Attentionについてはその限りではありません。実際、位置に関するマスクのみを適用し、位置符号化を取り除いたTransformerもチューリング完全であることが証明されています。とりわけ、言語モデルのようにデコーダのみを用いるタイプのモデルは、明示的な位置表現を与えずとも位置に関する情報を獲得しうることが報告されているほか、絶対位置埋め込みを排除することがむしろ性能向上に寄与する場合があることも示されています。

正規化層

正規化層の適用位置

Fig.2 からもわかるように、通常のTransformerでは正規化層(LayerNorm)は各残差接続の後に配置されています。のちにこのタイプはPost-LNと呼ばれるようになりますが、Post-LNは層が深くなるほど学習が比較的不安定となることが知られています。

これに対し後続の研究では、正規化層を残差接続の中、特に各Attentionや線形層の直前に入れるPre-LNという方式が提案され、学習の安定性に寄与することが広く知られています。一般にPre-LNでは、最終出力のノルム規模を保つために、最終層の後に追加のLayerNormが追加されます。複数の理論的な研究により、Pre-LNでは勾配が安定し、Post-LNのような学習初期の大きな勾配を引き起こしにくいことがわかっています。一方、正常に学習を遂行することができれば、収束後の最終的な性能はPost-LNのほうが一般に勝ることも報告されています。


Fig.8. 正規化層の位置の比較。A Survey of Transformers より引用。

Post-LNが不安定な直接の原因は勾配の不均衡ではなく、残差接続への重度の依存関係が招く出力変動の増幅効果であるとする研究もあります。例えば、パラメータに僅かな摂動を加えたり、学習により重みが更新されたりすると、Pre-LNに比べてPost-LNは桁違いの規模で出力が変動してしまうということを突き止めています。この研究では、追加パラメータと初期化の工夫によって増幅効果の緩和手法を提案し、安定性を担保しつつPost-LNの性能を向上させることに成功しています。

正規化層の置換

オリジナルで採用されたLayerNormの妥当性を再考し、他の正規化層や新たなパラメータ化を提案する研究も存在します。例えば、LNを簡略化し性能を維持しつつ計算量を削減したRMSNorm、LNの学習可能パラメータは性能にほぼ寄与しないばかりでなく過学習の恐れがあり、かつLNの重要性はその勾配にあるとの解析結果から提案されたAdaNorm、CNNsでは一般的なBatchNormをTransformerにて効果的に活用するための考察から提案されたPowerNorm等があります。

正規化層の撤廃

そもそも学習を安定化させるために正規化層以外の構造は考えられないのか、という発想から、単に残差接続に学習可能な係数を乗ずるReZeroという手法も提案されています。この係数はゼロで初期化されるため、学習初期のモデルはほぼ恒等写像となり学習の安定化が見込めます。

位置ごとに適用される線形層

線形層は単純な構成要素ですが、単にAttentionのみを積層するだけではモデル性能が低下することが報告されているように、Transformerにおける重要な要素のひとつとなっています。

活性化関数の変更

通常のTransformerでは最も単純な活性化関数のひとつであるReLUが用いられていますが、この部分を代替する関数として、ReLUと類似した形状でありながら滑らかな勾配を持つSwishGeLU、ゲート処理を導入したGLU等が提案されています。

適応的な手法によるモデル容量の拡張

線形層を他の構成要素に置換する工夫も存在します。有名な手法としては、入力をQueryに変換した上で、モデルパラメータとして学習される広域的なKey-Valueペアから情報を集約して出力するProduct-Key Memoryが知られています。Attentionとも類似していますが、実際にMulti-Head化による恩恵も示されています。一方で、Key-Valueペアが入力由来ではなく外部辞書的な扱いであることや、低次元ベクトルの直積としてKeyを表現することで多様性を確保する工夫、k近傍法を用いてQueryとKeyの類似性計算を効率化する工夫などに差異が見られます。Product-Key Memoryはモデル全体の計算量増加を無視できる程度に抑制しつつ、顕著な性能向上を達成しています。


Fig.9. Product-Key Memoryの概要。Large Memory Layers with Product Keys より引用。

さらに、線形層を複数用意し、その複合によって表現容量を拡張するMoE(Mixture of Experts)系の手法も複数提案されています。各層で並列に用意されたひとつひとつの線形層がExpertと見做されるイメージです。この文脈では、学習可能な関数によりトークンごとに上位k個のExpertを選択し、その出力の加重平均を求めるGShardや、より極端に常にひとつのExpertのみが選択されるようにしたSwitch Transformer等が提案されています。

アーキテクチャレベルの改修

個別の構成要素を改善するだけでなく、モデルアーキテクチャにおける層の位置や意義さえ再考するような研究も盛んに取り組まれています。本章ではその例を概観します。

モデル軽量化

モデルの軽量化は一般に広く関心を集める事柄ですが、先に紹介した工夫だけでなく、アーキテクチャレベルでの取り組みも提案されています。Lite Transformerでは、通常のAttention機構を広域的文脈を捉えるAttention、および局所特徴を捉える畳み込みと線形層に分離した構造で置換することを提案し、軽量化とともに翻訳タスクでの性能向上を実現しました。

他に、エンコーダを漏斗形にして系列長を絞り込むFunnel Transformerや、3つの独自モジュールから成る構成ブロックで通常のTransformerブロックを代替したDeLighT等が提案されています。

適応的な演算回数

入力に応じて関数評価回数を変更することで、易しい入力に対しては計算量を低減し、難しい入力にはより多くの計算量を割くACT(Adaptive Computation Time)という仕組みを搭載した手法群も存在します。例えば、トークンごとに層の適用回数を動的に決定するUniversal Transformersや、各層で計算をスキップするか否かを判断するConditional Computation Transformerが知られています。また、全ての層を経る前に途中で計算を完了するような手法として、DeeBERTPABEEが提案されています。

分割統治法

先述のように通常のAttentionは系列長の2乗に比例する計算量を要するため、長い系列を扱う場合に困難が生じます。これを解決する一案として、入力系列をいくつかの小さな領域に分割し、それらを個別に処理しながら適切に文脈情報を集約するという方法が考えられます。主な方式はFig.10 に示すように2種類あり、各セグメントを順に処理しつつ文脈情報をキャッシュして伝達していく再帰的方式と、各セグメントの処理結果をさらにまとめて処理する階層的方式に分けられます。


Fig.10. 入力系列を分割して処理する方式の概要。A Survey of Transformers より引用。

再帰的方式の代表的な例にはTransformer-XLCompressive TransformerMemformerがあります。また、学習済みモデルに再帰性を付与するファインチューニング手法も提案されています。

階層的方式の代表例としてはHIBERTHi-TransformerTENERが挙げられます。また、画像領域のTransformerであるViTに特化した階層的方式としてTransformer in Transformer (TNT) も提案されています。

代替的なモデル構造

Transformerの基本構造よりも最適な構造を模索するような研究も数多く展開されています。例えば、線形層とAttentionの位置関係を変更するようなアーキテクチャ改変としては、Transformerの処理を対流拡散方程式に倣う常微分方程式(ODE)と見做した上で、各Attentionを2つの線形層で挟む構造を採用したMacaron Netや、浅い層ほどAttentionを、深い層ほど線形層を集中させるよう構成要素を並び替えたSandwich Transformerが挙げられます。また、Self-Attentionにおけるマスクを入力系列から動的に求めて局所性を促進することで性能向上を図るMask Attention Networkも提案されています。

他に、2019年頃から急激に白熱したニューラルネットワークの自動構造探索(NAS)の流れで獲得されたEvolved TransformerDARTSformerも、人手での設計とは異なる観点からTransformerの構造に示唆を与える興味深い研究です。

さらに近年では、ともすれば神聖視されがちなAttention機構がTransformerの中で果たす役割を疑問視し、より単純な構成要素で置き換える手法も提案されてきています。特にこの流れは画像分野に顕著で、チャネル方向と空間方向に線形層を適用するだけの構造でAttentionを置き換えることにより、スループットを大幅に改善しつつSOTA研究に並ぶ画像分類精度を実現したMLP-Mixerが火付け役となり、空間方向にゲート処理を追加したgMLPへと続きました。


Fig.11. MLP-Mixerの概要。MLP-Mixer: An all-MLP Architecture for Vision より引用。

こうした研究の示唆を敷衍し、『Transformerの高性能さはAttentionではなく、Transformerの構造それ自体に依存している』と主張するMetaFormerでは、プーリング層という『恥ずかしいほどに』単純な構成要素でAttentionを置き換えたPoolFormerにより、計算効率と画像分類精度のトレードオフが大幅に改善できることを示しました。すなわち、トークン情報を何らかの方法で混合する構造自体が重要なのであり、Attentionはその一実現に過ぎないという提起でした。


Fig.12. (a) MetaFormerの概念図とその実装例。 (b) 積和演算回数と画像分類精度のトレードオフ。MetaFormer Is Actually What You Need for Vision より引用。

HyperMixerでは特に自然言語処理においてこの流れを加速させています。入力系列から動的にトークンを混合する線形層を定義するHyperMixerは、Attentionのように位置不変性や可変長系列への対応性を有します。一方で計算量は系列長に比例するため、2乗に比例するAttentionよりも一般に軽量です。GLUEベンチマークにおいて、他のMLP系手法を上回り、また通常のTransformerと同等かそれ以上の性能を実現しました。HyperMixerはAttentionよりも単純な構造であるが故、データセット規模が小さいほど相対的な性能向上が顕著であることも示されています。


Fig.13. HyperMixerの概要。HyperMixer: An MLP-based Green AI Alternative to Transformers より引用。

ところでこれらの改修は本当に意味があるの?

ここまで非常に幅広い改修のための研究を紹介しましたが、これらがどれほど汎用的に使える手法なのかは気になるところです。特に応用レベルではオリジナルの構造がほぼ改変なく用いられることも多く、それぞれの変種が実際にどれほど有用なのかには疑問が残ります。こうした問いに、Google Researchによる研究チームが2021年時点で一定の網羅的な回答を与えています。ただし、本記事で紹介した全ての手法が比較されているわけではない点と、性能比較のためのタスクが自然言語処理に限定されている点には留意してください。具体的にどのような手法が比較されたかについては、ぜひ原典をご覧ください。

この研究では、ハイパーパラメータやデータセット等の学習条件を揃えた上で各手法を適用したT5モデルにおいて、事前学習からのSuperGLUE、XSum、WebQuestionsといった転移タスクでの精度、およびWMT'14翻訳タスクでの性能を比較検証しました。

結果としては、GLUやその派生関数が一貫して有効であることが示されたほか、RMSNorm、層数の深化、デコーダの入出力埋め込みの共有に一定の効果があることが確認されました。また、アーキテクチャレベルの改修では、Product-Key Memory、Switch Transformer、Synthesizer系列による改善が見られました。一方で、その他の多くの手法については、オリジナルのTransformerからの優位性はほとんど見られないという結論が示されました。

著者らはこの結果について、『オリジナルで提案された構造が極めて完成度の高いものであり、改善の余地がほとんどない可能性』を挙げています。また、他の可能な説明として、『Transformerのために提案された改修手法は多くの場合限定的な効果しか持たず、応用先を超えて汎化しないのではないか』とも考察しています。

事前学習手法と応用領域

大規模なデータセットで事前学習したTransformerモデルを下流タスクでファインチューニングする方式の有効性は、数々の研究により実証されています。Transformerを用いた自然言語処理における初期研究であるBERTの顕著な有効性が確認されて以降、事前学習を前提とするモデルが次々に提案されてきました。十分なデータ規模と計算量のもとで学習された事前学習モデルは高い汎化性能を獲得することで知られ、近年ではとりわけ基盤モデルと呼称されることもあります。こうしたモデルの発展が、Transformerを様々なモダリティへ展開させる大きな基礎を形作りました。

2021年時点での事前学習モデルの体系は、Pre-trained Models for Natural Language Processing: A Survey によくまとまっています。


Fig.14. 事前学習手法の概要。Pre-trained Models for Natural Language Processing: A Survey より引用。

アーキテクチャレベルの分類

本記事では主にアーキテクチャレベルの差異に着目して、簡単にこのトピックの概要を掴もうと思います。個別の手法の詳細は、ぜひ Fig.14 中の各原著論文をご覧ください。

エンコーダのみ

このカテゴリの代表例は先述のBERTです。BERTは教師なし表現学習手法で、入力系列の一部をランダムで欠落させてその部分を予測するタスク(MLM)、および2種類の結合された文章が連続するものか否かを予測するタスク(NSP)を同時に解くことで、ラベルのない大量のテキストコーパスから汎用的な自然言語表現能力が獲得できることを示し、事前学習の流れの開拓に大きな寄与を果たしました。

さらにRoBERTaではBERTの性能向上に寄与する要因を調査し、データ規模拡大、学習時間延長、動的なMLMやNSPの撤廃などを提案しました。BERT派生研究は2020年時点でも大量に現れ、以降、上位互換と呼べる他手法が台頭するまでの間、洪水のように提案され続けました。

他に、本記事で紹介したBigBirdやSwitch Transformerもこの括りで捉えることができます。

デコーダのみ

入出力が同一のモダリティであれば、あるいは、異なる言語や異なるモダリティを統合して単一のトークン集合にまとめて扱ってしまえば、エンコーダは要らず、デコーダのみでTransformerを運用することができます。そのような言語モデルで最も有名なのは先述のGPT系列(GPTGPT-2GPT-3)でしょう。これらのモデルの驚くべき点は、莫大な言語データを取り込むことで獲得されたFew-shot性能、あるいはZero-shot性能にあるといえます。

特にGPT-3以降のモデルでは、いわゆる『プロンプトエンジニアリング』と呼ばれる工夫によってFew-shot性能が顕著に向上しています。このような枠組みではモデルに個別のタスクについて学習させる必要はなく、入力プロンプトにタスクの説明や幾らかの例を示した上で問いを投げかけると、それに適した回答を出力文として返してくれます。あたかも人が他者の簡潔な説明を理解し、内容を類型化して答えを述べるかのような振る舞いです。このような大規模モデルによる転移性能は、後続の研究でさらに拡大していくこととなります。Google系列により発表されたLaMDAPaLMもこのカテゴリに属します。

エンコーダ・デコーダ方式

オリジナルの形状を継承した手法としては、BERTの拡張であるBARTや、テキストからテキストへの転移学習として統一的に様々な言語タスクを学習するT5がよく知られています。特にT5は、タスクに応じた接頭辞をプロンプトに付け加える方式を提案した初期の研究としても有名です。これらの手法はエンコーダ部を持つため、入力に対して得られた表現特徴を他タスクへ流用する手法へも発展しています。

大規模言語モデルに見られる創発性

GPT-3やLaMDA、PaLMなど、一定規模を超えた大規模言語モデルには、ある種の『創発性』が発現することが観測されています。創発性とは、小さいモデル規模ではランダムな水準の精度しか達成できなかったタスクにおいて、ある閾値を境に不連続的にモデルがタスクに適応し、精度向上を実現する現象のことを指します。


Fig.15. GPT-3では、パラメータ数が13B以降のモデルで四則演算タスクの飛躍的な精度向上が見られた。創発性が報告された初期の例。Language Models are Few-Shot Learners より引用。

思考連鎖

特に、Chain-of-Thought(思考連鎖)と呼ばれるタイプのプロンプトは、創発性が見られる典型的な例であるとされています。思考連鎖では、推論を段階的な思考を経て行うことをモデルに直接促したり、そのような段階的思考を例示するプロンプトを与えることにより、算術推論や常識推論、記号操作など、その背景にある論理の流れを適切に把握しなければ回答できない類のタスク性能が多くの場合で劇的に改善されることが確認されています。また、モデル出力が自己一貫性を持つようサンプリングすることで、思考連鎖による推論がさらに改善することも示されています。

Emergent Abilities of Large Language Models では、上述したようなモデル群を総浮動小数点演算数(FLOPs)やパラメータ数の観点から調査し、様々なタスクにおいて創発性が現れる閾値を特定することを試みました。


Fig.16. BIG-Benchに含まれる膨大な種類のタスクにおいて、創発性が見られたか、単に計算量に応じて連続的に精度向上するタスクであったか、またはランダム予測を超える精度を実現するモデルがなかったかを集計した結果。Emergent Abilities of Large Language Models より引用。


Fig.17. あるFLOPsを境にランダム予測水準を抜けて精度改善するタスクの例。Emergent Abilities of Large Language Models より引用。

こうした挙動は、『系における量の変化が振る舞いの質に影響する』という相転移の性質を彷彿とさせます。

A Closer Look at Large Language Models Emergent Abilities では、このような創発性が見られる条件や傾向について、2022年11月末時点で読み取れる潜在的な説明を整理しています。特に、一般に公開されている大規模言語モデルの中で、思考連鎖を含む強力な創発性が見られるGPT-3の2種類のモデルカード(text-davinci-002とcode-davinci-002)を例に挙げ、プログラミングのコードを学習データに含むことが創発性に大きく寄与しているのではないかとする考察は非常に興味深いものです(ただし、当該記事が執筆された直後にtext-davinci-003がOpenAIより公開され、そちらとの性能比較は為されていないことには注意が必要です)。こうした仮説は、Tab.1 に見られるように、code-davinci-002が一貫してtext-davinci-002よりも高性能であることや、対話データやWEB文書から学習されたLaMDAが、コードをデータに含むcode-davinci-002やPaLMに大きく劣る結果を与えていることからも支持されます。


Tab.1. 5つの算術推論ベンチマークにて、思考連鎖を適用した様々な大規模言語モデルが標準プロンプトの精度を上回った。Chain-of-Thought Prompting Elicits Reasoning in Large Language Models より引用。

記事中では『表面上はコードと自然言語はほとんど関係がなく、有用である理由は不明』であると述べられていますが、定められた規則のもとで整然と理論展開するコードの特性や記号列の配置を学習することが思考連鎖に寄与するという仮説は、直感的にはかなり納得できるものなのではないかとも思えます。

一方で、このような思考連鎖においては、答えに辿り着く過程と答えが必ずしも一致しない場合が発生しうるという課題も確認されています。これに対し2023年2月初旬には、プロンプトを用いた推論タスクを次の2段階、すなわち『言語モデルにより自然言語入力を記号推論連鎖へ翻訳する段階』と『決定的ソルバにより推論連鎖から回答導出する段階』に分解する『忠実な思考連鎖』も提案されました。この方式では自然言語をまさにコードのような形式に翻訳させることで性能向上することが示されており、先述の見解と綺麗に接続する点が非常に興味深いです。


Fig.18. 忠実な思考連鎖の概要。算数の文章題やマルチホップQA、論理的推論等、推論タスクに応じて適切な記号操作方式へ翻訳し、それに基づいて回答させる。Faithful Chain-of-Thought Reasoning より引用。


Fig.19. 算数の文章題データセット(GSM8K)におけるプロンプトの提示例。忠実な思考連鎖では、問題文の例示において記号操作への置換を陽に示すことで、言語モデルの出力がそれに倣い入力問題を翻訳することを促す。これにより、出力の推論の流れと回答が一致しつつ正しい回答が得られる可能性を高める。Faithful Chain-of-Thought Reasoning より引用。

強化学習との併用

さて、再び A Closer Look at Large Language Models Emergent Abilities に戻ると、当該記事ではさらに、創発性が生まれる要因のひとつとして『人のフィードバックに基づく指示ベースの強化学習』が寄与している可能性を挙げています。この研究ではいわゆるRLHFと呼ばれる方式が応用され、人手による望ましい応答例や好みに基づくランク付けを反映して、言語モデルの出力をより自然で安全なものに改良しています。結果、GPT-3の拡張であるInstructGPTが提案されました。


Fig.20. InstructGPTの概要。教師ありファインチューニング、報酬モデルの学習、PPOに基づく強化学習の3段階から構成される。Training language models to follow instructions with human feedback より引用。

2022年末に突如としてOpenAIからオープンβが開始されていたChatGPTは、InstructGPTをさらに対話に特化させたモデルであるとされています。その応答の自然性や汎用性、創作やロールプレイ能力(あるいは、ある種の『それらしい嘘』を吐く能力)は使用者が増加するにつれて爆発的に解明され、年の瀬に一躍話題になったことは記憶に新しいですね。

ChatGPTの活用例は非常に幅広く、登場して数ヶ月で有志による解説記事や解説動画が無数に展開されていることからも、その尋常ではない影響力が窺い知れます。とりわけ、コンプライアンス意識が高く安全なAIであるように設計されたChatGPTに非倫理的な応答も許容するようハックする『脱獄』手法も日進月歩で開発されるなど、ユーザー母数の拡大に伴ってまだ見ぬ特性が明かされていく様子にリアルタイムで立ち会えることには静かな興奮を覚えます。

ChatGPTの台頭で検索エンジンが脅かされるとの言説も見られましたが、実際OpenAIと提携するMicrosoftは2023年2月初旬、ChatGPTで得られた知見をもとに開発されたと見られるPrometheusをBingに搭載し、新たな検索体験を提供しはじめました。競合であるGoogleもLaMDAを継承した対話モデルであるBardを公開予定であるとしており、開発競争は熾烈を極めています。

微小な追加計算量による大規模言語モデルの性能向上

創発性に関する話題において現時点で触れるべき研究としては、他にUL2Rおよび指示ベースのファインチューニングが挙げられます。UL2RはUL2と呼ばれる研究の改良手法で、相対的に少ない計算量の追加で言語モデルのスケーリング則をさらに推し進めることに成功しました。

UL2では、言語モデルの事前学習における従来の訓練方法である自己回帰型生成や破損箇所推定タスクを統一化したフレームワークを提案し、入力文章の欠損箇所を予測するノイズ除去を3つの異なる方法で行う混合ノイズ除去器として言語モデルを学習することを提案します。


Fig.21. UL2の概要。図中でグレーアウトされた部分をマスクした入力を与え、これらを特殊トークンで連結したものが予測対象となる。短スパン・低破損のR-Denoising、文章を丸ごと欠損させることで自己回帰生成やプレフィックス学習に対応させたS-Denoising、より破損水準が挑戦的なX-Denoisingから成る。UL2: Unifying Language Learning Paradigms より引用。

UL2Rでは、PaLM等の事前学習済みモデルの学習をさらにUL2を用いて継続することを提案し、無視できるほどの追加計算量で劇的な性能向上が実現できることを示しました。またその結果、パラメータ数540BのPaLMに対し、UL2Rを適用した僅か64BのU-PaLMが性能を凌駕するタスクも確認されたり、PaLMでは創発性が見られなかったタスクで創発性が観測されたりするなど、総じてUL2Rの有効性が確かめられました。


Fig.22. UL2Rの効果例。各PaLMの事前学習済みチェックポイント( ■ )に対し、僅か0.1%程度の追加学習をUL2を用いて行うことで、点線で繋いだような劇的な性能向上( ★ )を果たす。いずれも、PaLMをそのまま継続学習していた場合に到達していた性能と同等の水準にその数割の総計算量で到達できている。Transcending Scaling Laws with 0.1% Extra Compute より引用。

さらに指示ベースのファインチューニングでは、指示形式や思考連鎖の形式で記された1800以上のタスクにて事前学習済み言語モデルをファインチューニングすることで、やはり0.2%程度の僅かな追加計算量によって総合的な性能向上を実現しています(とはいえ、540BのPaLMの事前学習では莫大な計算量を必要とするので、その0.2%でも依然として相当量ではありますが)。筆者らはこの手法により追加学習されたモデルにFlanの接頭辞をつけることで区別しています。


Fig.23. Flanモデルの概要。Scaling Instruction-Finetuned Language Models より引用。

Flanモデルの優位性は単なる性能向上に留まりません。未知タスクへの汎化性能が上がるほか、これまでの定番のプロンプトエンジニアリングのように入力に少数の解答例を含めずとも、単なる質問文のみから適切に出力してくれるZero-shot性能も向上しています。PaLMほどの大規模モデルでも、Zero-shotではFew-shotよりも生成品質は落ち、質問に答えずに質問に関連するテキストを生成し続けたり、質問文をただ言い換えるだけだったり、生成が止めどなく溢れたりといった課題点が知られていました。一方、Flan-PaLMではこれらの課題がより緩和されており、よりユーザーフレンドリーな言語モデルに近づきました。


Fig.24. Flan-PaLMではZero-shot入力へより適切に回答できている。『2人のAI研究者がデートに行くことを表す言葉を作りなさい』という入力に対して、デートとデータマイニングを掛けて『デートマイニング』と回答しているユーモアはポイントが高い。Scaling Instruction-Finetuned Language Models より引用。

また、これらの工夫を組み合わせたFlan-U-PaLMが、それぞれを単体で適用した場合よりも高性能であることも示され、両手法が互いに相補的な効果を持つことがわかりました。大規模言語モデルが今後も巨大化を続けていくことが予想される中、投入計算量に対して見返りの大きいこうした技術の重要性はますます高まっていくものと考えられます。

言語以外の応用領域

もとは自然言語処理分野にて提案されたTransformerですが、現在ではその他の分野でもデファクトスタンダードの座を恣にしつつあります。本章では最後に、言語と掛け合わせたマルチモーダル手法も含め、他モダリティでの代表的な研究を簡単に紹介します。

画像処理分野

画像分類、物体検出、画像生成、動画処理など、幅広く応用されています。特に貢献が大きいのは、画像を小領域でパッチ化しTransformerに与える構造を普及させたViTでしょう。ViTは様々な派生を生み出しましたが、特にピラミッド型の構造を採用したSwin Transformerでは計算量や解像度に起因するViTの課題を解決することを試みています。さらに、動画に適用する手法としてViViTへと発展していきました。

ViTにおいては、2023年2月中旬、新たな効率化の工夫の上で言語モデルと同様にモデルをスケールアップさせることにより、画像領域におけるZero-shot性能の向上を達成する研究が登場しました。この時点でのパラメータ数は22Bと、540BのPaLM等のスケールにはまだ一歩及ばぬ規模感ですが、今後の更なる発展により自然言語処理以外での創発的能力が明らかにされていく日も遠くないかもしれません。

関連手法は A Survey on Vision TransformerTransformers in Vision: A Survey に詳しいほか、日本語資料ではcvpaper.challengeによるメタサーベイも非常に参考になります。また、ViTを含めた医療分野への展開などは Transforming medical imaging with Transformers? A comparative review of key properties, current progresses, and future perspectives によくまとまっています。

言語との結びつきとしては、言語と画像を共通の潜在空間に埋め込む基盤モデルであるCLIPの貢献は特に大きいでしょう。CLIPの成功を受け、言語と画像を繋ぐ基盤モデルはFlorenceBLIPBLIP-2へと続いています。また、テキストからの画像生成において画像生成部にTransformerを用いる系譜も盛んに研究されており、界隈の先駆的研究であるDALL·Eをはじめ、CogViewERNIE-ViLGMake-A-SceneCogView2Parti、そしてMuseへと続いていきます。さらに、テキストからの動画生成として、CogVideoPhenakiも提案されています。

近年の画像生成トレンドは専ら拡散モデルに集中していますが、PartiやMuseのように、現在でもTransformerベースの手法が現役で提案され続けている点にはある種の構図が見え隠れして面白いです。一方で、拡散モデルのコア部分にViTインスパイアのTransformer構造を採用したDiTも提案されるなど、ますます各方面へ浸透している様子はさらなる期待感を煽ります。

音声分野

音声認識、音声合成、音声強調、音楽生成など、やはり幅広いタスクでTransformerが採用されています。音声はそれ自体が一次元の系列であるほか、音声認識や合成など、入出力に言語情報を自然に含むタスクも多く、相性が良いといえるでしょう。特に近年では、大量の音声データを用いた教師なし学習により汎用的な表現特徴を獲得するwav2vec 2.0HuBERT等の手法も提案されており、音声認識や音声感情認識等の下流タスクで良好な性能を収めています。一方直近では、68万時間にも及ぶ膨大な量の書き起こしコーパスを用いた教師あり学習により、音声認識にて劇的な精度改善を実現したWhisperも話題となりました。

音楽生成の初期研究としては、音楽特有の長い系列の扱いやメロディ展開における文脈の反映に取り組んだMusic Transformerが後続研究に影響を与えています。2023年には、音の言語モデルともいえるAudioLM、および自然言語と音声を潜在空間で結びつけるMuLanの2手法に基づくMusicLMが発表され、テキストからの高品質な音響・音楽生成が実現されました

結び

躍進を続けるTransformerの系譜について、本記事ではモデルアーキテクチャの改修、事前学習手法、および応用例の観点から多角的に流れを追いました。本記事が、乱立する手法群を俯瞰したり、『名前は聞いたことある研究だけどどんな立ち位置だったかよくわからない』といったときに立ち返ることのできる辞書的な場所になれば望外の喜びです。

当初のタイトルが『15分で完全理解する〜』だったのに、執筆につれてどんどん時間が伸びたのは秘密です。ここまでご覧いただいた皆様に、心よりの感謝を。

参考文献

参考資料

https://arxiv.org/abs/1706.03762

https://arxiv.org/abs/2106.04554

https://arxiv.org/abs/2009.06732

https://deeplearning.hatenablog.com/entry/scaling_law

https://medium.com/syncedreview/training-compute-optimal-large-language-models-deepminds-70b-parameter-chinchilla-outperforms-b6098d040265

https://medium.com/@boredgeeksociety/gpt4-facts-reasonable-expectations-7fcf599778fc

https://arxiv.org/abs/2003.08271

https://arxiv.org/abs/2012.12556

https://arxiv.org/abs/2101.01169

https://speakerdeck.com/yushiku/20220608_ssii_transformer

https://www.slideshare.net/cvpaperchallenge/transformer-247407256

https://arxiv.org/abs/2206.01136v1

https://kai760.medium.com/nlp-2020年に生まれたbertの派生形まとめ-36f2f455919d

https://ai.googleblog.com/2022/11/characterizing-emergent-phenomena-in.html

https://yaofu.notion.site/A-Closer-Look-at-Large-Language-Models-Emergent-Abilities-493876b55df5479d80686f68a1abd72f

https://ai.googleblog.com/2022/11/better-language-models-without-massive.html

お知らせ

少しでも弊社にご興味を持っていただけた方は、お気軽にご連絡頂けますと幸いです。まずはカジュアルにお話を、という形でも、副業を検討したいという形でも歓迎しています。

https://recruit.zenkigen.co.jp/career
https://speakerdeck.com/zenkigenforrecruit/detailed-version-recruitment-materials-for-data-scientists

脚注
  1. 記事執筆当時。 ↩︎

  2. Kyo氏によるご指摘を踏まえて該当論文を再読し、記述を修正いたしました。初稿にて不正確な情報を提示していましたことをお詫びするとともに、ご指摘に感謝いたします。 ↩︎

ZENKIGENテックブログ

Discussion

イヌイヌ

こんなにいいねボタン押されてるのにコメントないんだ。そういうものなのかな、、、。

ii

ボリュームのある記事の執筆ありがとうございます。ケチをつけるようなコメントになってしまって申し訳ないのですが、

極めて多くの派生要素が提案されてきました。同時に、Transformerの要であるAttention機構を拡張することで、さらなる表現力向上を図る動きも盛んになっています。
本章ではそれらの概観を捉えると同時に、それぞれの技術的内容への橋渡しを目的に、幾つかの要素に分けてモデルアーキテクチャの改修手法を簡単に紹介します。詳細な数式や技術的背景は、A Survey of Transformers や Efficient Transformers: A Survey 、および各原典をご覧ください。

という記載箇所から長々と各種新しい手法の紹介をしてから、

ところでこれらの改修は本当に意味があるの?
ここまで非常に幅広い改修のための研究を紹介しましたが、これらがどれほど汎用的に使える手法なのかは気になるところです。特に応用レベルではオリジナルの構造がほぼ改変なく用いられることも多く、それぞれの変種が実際にどれほど有用なのかには疑問が残ります。・・・一方で、その他の多くの手法については、オリジナルのTransformerからの優位性はほとんど見られないという結論が示されました。

と話がひっくり返る段落構成なのはいただけないです。記事冒頭に注記すべきでしょう。多くの手法についてオリジナルのTransformerからの優位性はほとんど見られない改変なのであれば、なぜ長々と紹介する必要があったのでしょうか?Transformerに関するこれまでの出版時系列をまとめることが記事の主旨なのであればこういう段落構成も理解できるのですが、Transformerの世界を他人に30分で完全理解させたい人が、効果に疑義が生じている手法を敢えて紹介していくintroductionに違和感があります。理解させたいのはTransformerという技術ではなくて"Transformerの世界"なので互いに反目する主張を併記するというのもあり得なくはないのですが、梯子外された感がちょっと。

はまなすなぎさはまなすなぎさ

貴重なコメントをいただきありがとうございます。また、記事をご覧いただきましたことに、心より感謝申し上げます。

この度ご指摘をいただきました懸念点について、そのご意見の意図するところを私自身理解できますことを予め申し添えた上で、いくつか記事を執筆した者としての私の気持ちを述べさせていただきたいと思います。

最初に、タイトルの「30分で理解する」というフレーズは、この記事を発表した当初も(多くは半分冗談めいた形でしたが)読者の方々から指摘されていたところであり、実際このボリュームは初見で30分で読めるものではないと感じます。そのあたりにつきましては、いわゆるテック系の誇張表現のノリとして寛容に受け止めていただくことでご容赦いただきたい部分であると思っており、この記事の主題は短い時間でテーマについて簡潔にお伝えすることというよりはむしろ、分野に関する網羅的な知識を紹介するところにありました、ということを、最初にお伝えしたく存じます。

iさんが研究の分野にいらっしゃったことがあるのかは存じ上げませんが、特に機械学習分野では、提案された手法が常に優秀で、誰しもが望む特効薬のような効力を持つことは稀です。それよりは、限定された用途や、あくまで著者の実験可能であった範囲の環境で優位性が示されていたり、何か「よさ」の兆しがある、というケースの方が多いです。一方で、仮にある研究で見られた効果が数値上強くなかったとしても、そこで提案されたアーキテクチャや理論、考え方そのものには、後続の研究に活かされる可能性がいずれも等しく秘められていると考えています。例えば、着眼点やアイデア自体は優れていたが、実現方法が当時の技術では未熟であったために効果が芳しくなかった、という研究も多々あるかと思いますし、そうした研究たちも、のちの研究に多分に示唆を与える役目を担ってきたものばかりです。それはときに、反面教師(こうすればうまくいかないという負例)として、有用な知見を与えるものであったかもしれません。

そういう意味で、私は「いつでも汎用的に使えるというわけではない手法」や「後続の研究で効果を疑問視された研究」を紹介することが無意味だとは、全く考えていません。連綿と続く研究史の中で、その当時の著者たちが何を考え、それがのちの研究でどのように評価されたかを辿ることには、意味があると考えているからです。

その上で、本記事が「梯子を外された感」を与えてしまう構成だったのであれば、それは筆者としての私の落ち度です。今後、より読者の方にスムーズに、読後感よくご覧いただける記事を書いていけるよう、引き続き精進してまいります。

ii

返信いただき有り難うございます。1年近く機械学習を勉強してきましたが、自分のこの業界に関する知見が未だ入門者のそれを脱していなかったようです。おっしゃること、確かにそうかもしれません。単に自分が焦っていただけだと感じました。