見出し画像

Huggingface Transformers 入門 (2) - モデル

以下の記事を参考に書いてます。

Huggingface Transformers : Summary of the models

前回

1. モデルのカテゴリ

Huggingface Transformers」のモデルは、下のカテゴリに分類されます。

・自己回帰モデル (Autoregressive models)
・オートエンコーディングモデル (Autoencoding models)
・Sequence-to-sequenceモデル (Sequence-to-sequence models)
・マルチモーダルモデル (Multimodal models)
・検索ベースモデル (Retrieval-based models)

2. 自己回帰モデル

「自己回帰モデル」は、古典的な「言語モデル」で事前学習します。一連のトークンに続くトークンを予測します。このモデルはオリジナルのTransformerモデルのデコーダに相当します。文全体にマスクが使用されているので、アテンションヘッドは、次の文の前を見ることができ、次の文の後は見えません。このモデルはファインチューニングが可能です。多くのタスクで良い結果を得ることができます。

得意なタスクは「テキスト生成」、モデルの例は「GPT」です。

・GPT
・GPT-2
・CTRL
・Transformer-XL
・Reformer
・XLNet

◎ GPT
「GPT」は、Transformerベースの最初の「自己回帰モデル」です。「Book Corpus」データセットで事前学習しています。
「言語モデル」と「マルチタスク言語モデル/多肢選択分類」のモデルを提供しています。

◎ GPT-2
「GPT-2」は、「GPT」のより大きく優れたバージョンで、Webテキスト(3つ以上のカルマを持つRedditの発信リンクからのWebページ)で事前学習されています。
「言語モデル」と「マルチタスク言語モデル/多肢選択分類」のモデルを提供しています。

◎ CTRL
「CTRL」は、「GPT」と同じですが、「制御コード」のアイデアが追加されています。テキストは「プロンプト」と「制御コード」(テキスト生成に影響を与える)から生成されます。
「言語モデル」のためのモデルを提供しています。

◎ Transformer-XL
「Transformer-XL」は、「GPT」と同じですが、2つの連続したセグメントの再帰メカニズムを導入しています(2つの連続した入力を持つ通常のRNNに似ています)。ここでいうセグメントとは、複数の文書にまたがる可能性のある連続したトークンの数(例えば512)であり、セグメントはモデルに順番に供給されます。

基本的に、前のセグメントの隠れた状態を現在の入力に連結してアテンションスコアを計算します。これにより、モデルは現在のセグメントだけでなく、前のセグメントにあった情報にも注意を払うことができます。複数のアテンション層を積み重ねることにより、受容野を複数の前のセグメントに増やすことができます。これは、位置埋め込みを位置相対埋め込みに変更します。アテンションスコアが計算される方法を調整する必要があります。

「言語モデル」のモデルを提供しています。

◎ Reformer
「Reformer」は、メモリフットプリントと計算時間を削減するための多くのトリックを備えた自己回帰型変換モデルです。これらのトリックには以下が含まれます。

・軸位置エンコーディングを使用。
・従来のアテンションを LSH (local-sensitive hashing) アテンションに置き換える。
・各レイヤの中間結果を格納しないようにするために、可逆変換レイヤを使ってバックワードパス中に取得。
・バッチ全体ではなく、チャンク単位でフィードフォワード演算を計算。

これらのトリックで、このモデルは、従来のTransformer自己回帰モデルよりもはるかに大きな文を与えることができます。
「言語モデル」のモデルを提供しています。

【注意】このモデルは「オートエンコーディング」の設定で非常によく使われますが、そのような事前学習のためのチェックポイントはまだありません。

◎ XLNet
「XLNet」は、従来の自己回帰モデルではなく、それをベースにした学習戦略を使用しています。これは文中のトークンを順列化し、最後のn個のトークンを使ってトークンn+1を予測することをモデルに許可します。これはすべてマスクで行われるので、文は実際には正しい順序でモデルに投入されますが、最初のn個のトークンをn+1でマスクする代わりに、XLNetでは1,...,シーケンスの長さを指定した並べ替えで前のトークンを隠すマスクを使用しています。また、長期依存性を構築するために「Transformer-XL」と同じ再帰メカニズムを使用しています。

「言語モデル」「トークン分類」「テキスト分類」「多肢選択分類」「質問応答」のモデルを提供しています。

3. オートエンコーディングモデル

入力トークンを何らかの方法で破損させ、元の文を再構築しようとすることで事前学習されています。このモデルは、マスクなしで完全な入力にアクセスできるという意味で、オリジナルのTransformerモデルのエンコーダに相当します。これらのモデルは通常、文全体の双方向表現を構築します。ファインチューイングが可能で、「テキスト生成」のような多くのタスクで大きな結果を得ることができます。

得意なタスクは「テキスト分類」「トークン分類」、モデルの例は、「BERT」です。

・BERT
・ALBERT
・RoBERTa
・DistilBERT
・XLM
・XLM-RoBERTa
・FlauBERT
・ELECTRA
・Longformer

【情報】「自己回帰モデル」と「オートエンコーディングモデル」の唯一の違いは、モデルの事前学習の方法にあります。そのため、両方に同じアーキテクチャを使用することができます。

◎ BERT
「BERT」は、より正確には事前学習中に,トークンの所定のパーセンテージ(通常は15%)がマスクされます.

・確率0.8の特別なマスクトークン
・確率0.1でマスクされたものとは異なるランダムなトークン
・確率0.1の同じトークン

モデルは元の文を予測しなければなりませんが、2つ目の目的があります。
入力は2つの文AとBです(間に分離トークンがあります)。50%の確率で、コーパスの中で文が連続しており、残りの50%では文が関連していません。文が連続しているかどうかを予測しなければなりません。

「言語モデル」(従来型またはマスク付き)「次の文の予測」「トークン分類」「テキスト分類」「多肢選択分類」「質問応答」のモデルを提供していますいます。

◎ ALBERT
「ALBERT」は、「BERT」と同じですが、いくつかの微調整があります。

・埋め込みサイズEは、埋め込みが文脈に依存しないのに対し、隠された状態は文脈に依存。
・レイヤーはパラメータを共有するグループに分割。
・次の文の予測は、文の順序予測に置き換えられる。

「マスク付き言語モデル」「トークン分類」「テキスト分類」「多肢選択分類」「質問応答」のモデルを提供しています。

◎ RoBERTa
「RoBERTa」は、「BERT」と同じですが、より優れた事前学習のトリックを持ちます。

・動的マスキング:トークンはエポックごとに異なるマスキングを行うのに対し、BERT はそれを一度に全て行う。
・NSP (次の文の予測) の損失がなく、2つの文を一緒に置く代わりに、512トークンに到達するために一緒に連続したテキストの塊を置く。
・大きなバッチで学習。
・文字ではなくバイトをサブユニットとしてBPEを使用。

「マスク付き言語モデル」「トークン分類」「テキスト分類」「多肢選択分類」「質問応答」のモデルを提供しています。

◎ DistilBERT
「DistlBERT」は、「BERT」と同じですが、よりサイズが小さくなります。事前学習されたBERTモデルの蒸留によって学習されたもので、より大きなモデルと同じ確率を予測するように学習されたことを意味します。

実際の目的は以下の組み合わせです。

・教師モデルと同じ確率を求める。
・マスクされたトークンを正しく予測。
・生徒と教師モデルの隠れた状態間のコサイン類似度。

「マスク付き言語モデル」「トークン分類」「テキスト分類」「質問応答」のモデルを提供します。

◎ XLM
「XLM」は、複数の言語で学習された「Transformer」です。このモデルの学習には3つの異なるタイプがあり、ライブラリはそれら全てのチェックポイントを提供しています。

・「因果言語モデル」(CLM)は伝統的な自己回帰学習。
各学習サンプルに対して言語の1つが選択され、モデルの入力は256トークンの文で、それらの言語の1つの文書にまたがっている可能性があります。
・「RoBERTa」のような「マスク付き言語モデル」(MLM)。
各学習サンプルに対して1つの言語が選択され、モデル入力は256トークンの文であり、それらの言語の1つで複数の文書にまたがっている可能性があります。
・MLMと「翻訳言語モデル」(TLM)の組み合わせ。
これは、2つの異なる言語の文をランダムにマスキングして連結することで構成されます。マスクされたトークンのうちの1つを予測するために、モデルは言語1の周囲の文脈と言語2で与えられた文脈の両方を使用することができます。

チェックポイントは、名前に clm, mlm, mlm-tlm をつけて、どの方法で事前学習を行ったかを示します。位置埋め込みに加えて、モデルは言語埋め込みを持ちます。MLM/CLMを用いて学習する場合、これはモデルに使用された言語の表示を与えます。MLM+TLMを用いて学習する場合、各パートに使用された言語の表示を与えます。

「言語モデル」「トークン分類」「テキスト分類」「質問応答」のモデルを提供しています。

◎ XLM-RoBERTa
「XLM-RoBERTa」は、「XLM」アプローチに「RoBERTa」のトリックを使用していますが、「翻訳言語モデル」は使用していません。これは、1つの言語から来た文に対して「マスク付き言語モデル」のみを使用しています。しかし、このモデルはより多くの言語(100)で学習され、言語エンベッディングを使用しないので、それ自体で入力言語を検出することができます。

「マスク付き言語モデル」「トークン分類」「テキスト分類」「多肢選択分類」「質問応答」のモデルを提供しています。

◎FlauBERT
「FlaBERT」は、「RoBERTa」のように、文の順序予測はありません。
「言語モデル」「テキスト分類」のモデルを提供しています。

◎ ELECTRA
「ELECTRA」は、「ELECTRA」は、小さな「マスク付き言語モデル」を使用して事前学習された「Transformer」です。入力はその言語モデルによって破壊され、ランダムにマスクされた入力テキストを受け取ります。「ELECTRA」はどのトークンがオリジナルでどのトークンが置き換えられたものかを予測しなければならないテキストを出力します。GANの学習と同様に、小さな言語モデルは数ステップで学習されます。

「マスク付き言語モデル」「トークン分類」「テキスト分類」のモデルを提供しています。

◎ Longformer
「Longformer」は、アテンション行列をスパース行列に置き換えて高速化する変換モデルです。多くの場合、与えられたトークンに対して行動を起こすには、ローカルコンテキストだけで十分です。事前に選択された入力トークンの中には、グローバルアテンションが与えられているものもありますが、アテンション行列のパラメータはずっと少なく、結果的に高速化されます。これは、それ以外の場合は「RoBERTa」と同じ方法で事前学習されます。

「マスク付き言語モデル」「トークン分類」「テキスト分類」「多肢選択分類」「質問応答」のためのモデルを提供しています。

【注意】このモデルは、自己回帰で非常によく使用できますが、そのような事前学習のためのチェックポイントはまだありません。

4. Sequence-to-sequenceモデル

「翻訳」タスクのため、または他のタスクをSequence-to-sequence問題に変換することによって、元のTransformerのエンコーダとデコーダの両方を使用します。これらは多くのタスクにファインチューニングが可能です。

得意なタスクは「翻訳」「要約」「質問応答」、モデルの例は、オリジナルの「Transformer」です。

・BART
・Pegasus
・MarianMT
・T5
・MBart

◎ BART
「BART」は、エンコーダとデコーダを持つSequence-to-sequenceモデルです。エンコーダには破損したバージョンのトークンが与えられ,デコーダには元のトークンが与えられます。

「条件付き生成」「テキスト分類」のモデルを提供しています。

◎ Pegasus
「Pegasus」は、「BART」と同じエンコーダ/デコーダモデルのアーキテクチャを持つSequence-to-sequenceモデルです。Pegasusは2つの自己教師あり目的関数を用いて事前学習を行います。「マスク付き言語モデル」(MLM)と、「ギャップセンテンス生成」(GSG)と呼ばれる新しい要約に特化した事前学習目的関数です。

・MLM:エンコーダ入力トークンはマスクトークンにランダムに置き換えられ、エンコーダによって予測されなければならない。
・GSG: エンコーダの入力文全体が第2のマスクトークンによって置き換えられ、デコーダに供給されますが、通常の自動逆行変換デコーダのように未来の単語を隠すための因果マスクを持っている。

「BART」とは対照的に、「Pegasus」の事前学習は意図的に「要約」に似ています。重要な文はマスクされ、残りの文から1つの出力シーケンスとしてまとめて生成され、抽出的要約に似ています。

「条件付き生成」のモデルを提供しています。これは「要約」に使用されるべきです。

◎ MarianMT
「MarianMT」は、「BART」と同じモデルを用いた翻訳モデルのフレームワークです。
「条件生成」のモデルを提供しています。

◎ T5
「T5」は、伝統的な「Transformer」を使用しています。すべてのNLPタスクで動作できるように、特定の接頭辞を使用してテキスト対テキストの問題に変換します。事前学習には、教師あり学習と自己教師あり学習があります。教師あり学習は、「GLUE」と「SuperGLUE」が提供する下流のタスクに対して行われます。

◎ MBart
「MBart」は、モデルアーキテクチャと事前学習の目的は「BART」と同じですが、MBart」は25言語で学習され、教師あり・教師なしの機械翻訳を対象としています。「MBart」は、複数の言語の完全なテキストをノイズ除去することで、完全なシーケンス間のモデルを事前学習する最初の方法の一つです。

「条件付き生成」のモデルを提供しています。

5. マルチモーダルモデル

テキスト入力を他の種類(画像など)と混合し、与えられたタスクに特化しています。ライブラリには、他の人のように自己管理型で事前学習されていない「マルチモーダルモデル」が1つあります。

・MMBT

◎ MMBT
「MMBT」は、マルチモーダル設定で使用されるTransformerモデルで、テキストと画像を組み合わせて予測を行います。「Transformer」は、トークン化されたテキストの埋め込みと、線形層(レスネットの最後の特徴数からTransformerの隠された状態次元に行くために)を通過する(プーリング層の後に)事前学習された画像上のResネットの最終的な活性化を入力として取ります。

異なる入力が連結され、位置の埋め込みに加えて、セグメントの埋め込みが追加され、入力ベクトルのどの部分がテキストに対応し、どの部分が画像に対応しているかをモデルに知らせることができます。

事前学習されたモデルは、「分類」のためにのみ機能します。

6. 検索ベースモデル

いくつかのモデルでは、例えば、オープンドメインの「質問応答」のための(事前)学習と推論の間に文書検索を使用しています。

・DPR

◎ DPR
「DPR」 (Dense Passage Retrieval) は、最先端のオープンドメインの「質問応答」の研究のためのツールとモデルのセットです。

「DPR」は3つのモデルで構成されています。

・質問エンコーダー : 質問をベクトルとしてエンコード。
・コンテキストエンコーダ : コンテキストをベクトルとしてエンコード。
・リーダー : 検索されたコンテキスト内の質問の答えを、関連性スコアとともに抽出。

DPRのパイプライン(まだ実装されていません)では、検索ステップを使って、ある質問が与えられたトップk個のコンテキストを見つけ、その質問と検索されたドキュメントを持ったリーダーを呼び出して答えを取得します。

次回



この記事が気に入ったらサポートをしてみませんか?