HuggingFace Transformers 4.5 : 利用方法 : モデルの要点

HuggingFace Transformers 4.5 : 利用方法 : モデルの要点 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/10/2021 (4.5.1)

* 本ページは、HuggingFace Transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料 Web セミナー開催中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。
スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • ウェビナー運用には弊社製品「ClassCat® Webinar」を利用しています。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com  ;  WebSite: https://www.classcat.com/  ;  Facebook

 

HuggingFace Transformers : 利用方法 : モデルの要点

これは Transformers で利用可能なモデルの要点です。元の transformer モデル に馴染みがあることを仮定しています。優しいイントロダクションのためには annotated transformer を確認してください。ここではモデル間の高位な違いにフォーカスします。それぞれのドキュメントでそれらをより詳細に調べることができます。各タイプのモデルと総ての コミュニティ・モデル のために利用可能なチェックポイントを見るために 事前訓練モデルページ を確認することもできます。

ライブラリのモデルの各一つは以下のカテゴリーの一つに分類されます :

  • 自己回帰モデル
  • オートエンコーダ・モデル
  • sequence-to-sequence モデル
  • マルチモーダル・モデル
  • 検索ベースの (= Retrieval-based) モデル

自己回帰 (= autoregressive) モデルは古典的な言語モデリング・タスク上で事前訓練されています : 次のトークンを前の総てのものを読んだときに推測します。それらは元の transformer モデルのデコーダに相当し、そして attention ヘッドが後に何があるかではなく前に何があったかだけを見ることができるようにマスクが full センテンスの上で使用されます。これらのモデルは多くのタスク上で再調整されて素晴らしい結果を獲得できますが、最も自然な応用はテキスト生成です。そのようなモデルの典型的な例は GPT です。

※ 訳注: 自己回帰モデルはある時間ステップにおけるモデル出力がそれ以前のモデル出力に依存する確率過程です。

オートエンコーディング・モデルは入力トークンを何らかの方法で破損 (= corrupt) させて元のセンテンスを再構築することを試みることにより事前訓練されます。それらはどのようなマスクもなしで完全な入力にアクセスするという意味で元の transformer モデルのエンコーダに対応します。それらのモデルは通常はセンテンス全体の双方向表現を構築します。それらはテキスト生成のような多くのタスク上で再調整されて素晴らしい結果を獲得できますが、それらの最も自然な応用はセンテンス分類やトークン分類です。そのようなモデルの典型的な例は BERT です。

自己回帰モデルとオートエンコーディング・モデルの唯一の違いはモデルが事前訓練される方法にある ことに注意してください。従って自己回帰とオートエンコーディング・モデルの両者のために同じアーキテクチャが利用できます。与えられたモデルが両者のタイプの事前訓練のために使用されたとき、それが最初に紹介された記事に対応するカテゴリーにそれを入れます。

sequence-to-sequence モデルは、翻訳タスクのためか他のタスクを sequence-to-sequence 問題に変換することにより、元の transformer のエンコーダとデコーダの両者を利用します。それらは多くのタスクに再調整できますが、それらの最も自然な応用は翻訳、要約そして質問応答です。元の transformer モデルは (翻訳のためだけの) そのようなモデルの例で、T5 は他のタスク上で再調整できる例です。

マルチモーダル (多様性)・モデルはテキスト入力を他の種類 (e.g. 画像) と混在させてそして与えられたタスクに対してより固有です。

 

自己回帰モデル

前に言及したように、これらのモデルは元の transformer のデコーダ部に依拠していて各位置でモデルが attention ヘッドの前のトークンだけを見れるように attention マスクを利用します。

 

Original GPT

transformer アーキテクチャに基づく最初の自己回帰モデルです、Book Corpus データセット上で事前訓練されました。

このライブラリは言語モデリングとマルチタスク言語モデリング/多肢選択式分類のためのモデルのバージョンを提供します。

 

GPT-2

GPT のより大きくてより良いバージョンです、WebText 上で事前訓練されました (3 karma 以上の Reddit の outgoing リンクからの web ページ)。

このライブラリは言語モデリングとマルチタスク言語モデリング/多肢選択式分類のためのモデルのバージョンを提供します。

 

CTRL

GPT モデルと同じですが、制御コードのアイデアを追加しています。テキストは prompt (empty であり得ます) とテキスト生成に影響を与えるために使用される制御コードの一つ (or 幾つか) から生成されます : wikipedia 記事、本や映画レビューのスタイルで生成します。

このライブラリは言語モデリングのためのモデルのバージョンだけを提供します。

 

Transformer-XL

通常の GPT モデルと同じですが、2 つの連続するセグメントに対してリカレンス機構を導入します (2 つの連続する入力を持つ通常の RNN に類似しています)。このコンテキストでは、セグメントは数多くの連続するトークン (例えば 512) で、これは複数のドキュメントに渡って広がるかもしれません、そしてセグメントは順番にモデルに供給されます。

基本的には、前のセグメントの隠れ状態は attention スコアを計算するために現在の入力に結合されます。これはモデルに現在のセグメントに加えて前のセグメント内の情報に注意を払うことを許容します。マルチ attention 層をスタックすることにより、受容野 (= receptive field) は複数の前のセグメントに増加できます。

これは位置埋め込みを位置相対的 (= relative) 埋め込みに変更します、(何故ならば通常の位置埋め込みは与えられた位置で現在の入力と現在の隠れ状態の同じ結果を与えるからです) そして attention スコアが計算される方法で何某かの調整を行なう必要があります。

このライブラリは言語モデリングのためのモデルのバージョンだけを提供します。

 

Reformer

メモリ使用量と計算時間を削減するために多くのトリックを持つ自己回帰 transformer モデルです。これらのトリックは以下を含みます :

  • axial (軸の) 位置エンコーディング を使用します (より詳細は下を見てください)。それは (シークエンス長が非常に大きいとき) 巨大な位置エンコーディング行列を持つことをそれをより小さい行列に分解することにより回避する機構です。
  • 伝統的な attention を LSH (local-sensitive hashing) attention により置き換えます (より詳細は下を見てください)。それは attention 層で full 積 query-key を計算することを回避するテクニックです。
  • 各層の中間結果をストアすることを、backward パスの間にそれらを得るために可逆な (= reversible) transformer 層を使用するか (次の層の入力から残差を減算することはそれらを与え戻します)、与えられた層内で結果のためにそれらを再計算することにより (それらをストアするよりも非効率的ですがメモリを節約します) 回避します。
  • バッチ全体上ではなく chunks により feedforward 演算を計算します。

これらのトリックで、モデルは伝統的な transformer 自己回帰モデルよりも遥かに大きなセンテンスが供給できます。

Note: このモデルはオートエンコーディング設定で非常に上手く利用できるでしょう、けれどもそのような事前訓練のためのチェックポイントはまだありません。

このライブラリは言語モデリングのためのモデルのバージョンだけを提供します。

 

XLNet

XLNet は伝統的な自己回帰モデルではありませんが、その上で構築される訓練ストラテジーを利用します。それはセンテンスのトークンを並べ替えて (= permute) から、トークン n+1 を予測するために最後の n トークン(s) を使用することをモデルに許容します。これはマスクで成されますので、センテンスは実際には正しい順序でモデルに供給されますが、n+1 のために最初の n トークンをマスクする代わりに、XLNet は 1,…,シークエンス長のある与えられた並べ替え (= permutation) 内の前のトークンを隠すマスクを使用します。

XLNet はまた長期依存性を構築するために Transformer-XL と同じリカレンス機構も利用します。

このライブラリは言語モデリング、トークン分類、センテンス分類、マルチ選択分類と質問応答のためのモデルのバージョンを提供します。

 

オートエンコーディング・モデル

前に言及したように、これらのモデルは元の transformer のエンコーダ部に依拠していてマスクは使用しませんのでモデルは attention ヘッドで総てのトークンを見ることができます。事前訓練については、ターゲットは元のセンテンスで入力はそれらの破損バージョンです。

 

BERT

ランダム・マスキングを使用して入力を破損させます、より正確には、事前訓練の間、トークンの与えられたパーセンテージ (通常は 15%) が以下によりマスクされます :

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

モデルは元のセンテンスを予測しなければなりませんが、2 番目の目的を持ちます : 入力は 2 つのセンテンス A と B です (間には分離トークンを伴います)。確率 50% で、センテンスはコーパス内で連続的です、残りの 50% でそれらは関係ありません。モデルはセンテンスが連続的か否かを予測しなければなりません。

このライブラリは言語モデリング (伝統的 or マスク付き)、次文 (= next sentence) 予測、トークン分類、センテンス分類、多肢選択式分類と質問応答のためのモデルのバージョンを提供します。

 

ALBERT

BERT と同じですが 2, 3 の微調整を伴います :

  • 埋め込みサイズ E は理にかなった隠れサイズ H とは異なります、何故ならば埋め込みはコンテキスト独立である (一つの埋め込みベクトルは一つのトークンを表します) 一方で、隠れ状態はコンテキスト依存である (一つの隠れ状態はトークンのシークエンスを表します) からです、従って H >> E を持つことはより論理的です。また、埋め込み行列は巨大です、何故ならばそれは V x E (V は vocab サイズ) であるからです。E < H であれば、それはより少ないパラメータを持ちます。
  • 層は (メモリを節約するために) パラメータを共有するグループに分割されます。
  • 次文予測はセンテンス順序予測に置き換えられます : 入力では、2 つのセンテンス A と B を持ち (それらは連続的です) A に続いて B か B に続いて A のいずれかを供給します。モデルはそれらが交換されているか否かを予測しなければなりません。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、多肢選択式分類と質問応答のためのモデルのバージョンを提供します。

 

RoBERTa

BERT と同じですが以下のより良い事前訓練トリックを持ちます :

  • 動的マスキング : トークンは各エポックで異なってマスクされます、その一方で BERT はそれを一度限り行ないます。
  • NSP (次文予測) 損失はなくそして単に 2 センテンスを一緒に置く代わりに、512 トークンに達するまで連続するテキストのチャンクを一緒にまとめます (従ってセンテンスは幾つかのドキュメントに渡るかもしれない順番どおりです)。
  • より大規模なバッチで訓練します。
  • サブユニットとして文字ではなくバイトを持つ BPE を使用します (ユニコード文字ゆえに)。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、多肢選択式分類と質問応答のためのモデルのバージョンを提供します。

 

DistilBERT

BERT と同じですがより小さいです。事前訓練された BERT モデルの蒸留により訓練されます、より大きいモデルと同じ確率を予測するために訓練されたことを意味します。実際の目的は以下の組合せです :

  • 教師モデルと同じ確率を見つける
  • マスクされたトークンを正しく予測する (しかし次文目的ではない)
  • 生徒と教師モデルの隠れ状態の間の cos 類似度

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類と質問応答のためのモデルのバージョンを提供します。

 

ConvBERT

BERT とその変種のような事前訓練言語モデルは最近様々な自然言語理解タスクで印象的なパフォーマンスを獲得しています。けれども、 BERT はグローバル自己 attention ブロックに大きく依拠しているため大きなメモリ消費量と計算コストがかかります。総ての attention ヘッドはグローバル視点から attention マップを生成するために入力シークエンス全体の上で問い合わせをしますが、幾つかのヘッドはローカル依存性を学習する必要があるだけであることを観察します、これは計算の冗長性の存在を意味します。そこでローカル依存性を直接モデル化するためにこれらの自己 attention ヘッドを置き換える新しい span ベースの動的畳込みを提案します。新しい畳込みヘッドは、残りの自己 attention ヘッドと一緒に、新しい混合 attention ブロックを形成します、これはグローバルとローカル・コンテキスト学習の両者でより効率的です。この混合 attention 設計を BERT に装備して ConvBERT モデルを構築します。より低い訓練コストとより少ないモデルパラメータで、ConvBERT は様々な下流タスクで BERT とその変種のパフォーマンスを本質的に越えることを実験は示しました。驚くべきことに、ConvBERTbase モデルは ELECTRAbase より 0.7 高い、86.4 GLUE スコアを獲得する一方で、1/4 の訓練コスト未満を使用しています。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類と質問応答のためのモデルのバージョンを提供します。

 

XLM

幾つかの言語上で訓練された transformer モデルです。このモデルのための 3 つの異なるタイプの訓練がありそしてライブラリはそれらの総てのためのチェックポイントを提供します :

  • 因果 (= Causal) 言語モデリング (CLM)、これは伝統的な自己回帰訓練です (従ってこのモデルは前のセクションにも入れるかもしれません)。各訓練サンプルのために言語の一つが選択され、そしてモデル入力は 256 トークンのセンテンスで、それらの言語の一つで幾つかのドキュメントに渡るかもしれません。
  • マスク付き言語モデリング (MLM)、これは RoBERTa のようなものです。各訓練サンプルのために言語の一つが選択され、そしてモデル入力は 256 トークンのセンテンスで、トークンの動的マスクを用い、それらの言語の一つで幾つかのドキュメントに渡るかもしれません。
  • MLM と翻訳言語モデリング (TLM) の組合せ。これはランダム・マスキングを伴い、 2 つの異なる言語のセンテンスを連結することから構成されます。マスクされたトークンの一つを予測するため、モデルは言語 1 の周囲のコンテキストと言語 2 で与えられるコンテキストの両者を利用できます。

チェックポイントはそれらの名前で clm, mlm or mlm-tlm を持つことにより事前訓練のためにどの方法が利用されたかを参照します。位置埋め込みの上にモデルは言語埋め込みを持ちます。MLM/CLM を使用して訓練するとき、これは使用される言語の指示 を、そして MLM+TLM を使用して訓練するとき、各パートのために使用される言語の指示をモデルに与えます。

このライブラリは言語モデリング、トークン分類、センテンス分類と質問応答のためのモデルのバージョンを提供します。

 

XLM-RoBERTa

XLM アプローチ上で RoBERTa トリックを利用しますが、翻訳言語モデリング目的は利用しません。それは一つの言語からのセンテンス上のマスク付き言語モデリングだけを使用します。けれども、モデルはより多くの言語 (100) 上で訓練されて言語埋め込みは使用しませんので、入力言語を自身で検出することができます。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、多肢選択式分類と質問応答のためのモデルのバージョンを提供します。

 

FlauBERT

RoBERTa のように、センテンス順序予測はありません (従って単に MLB 目的の上で訓練されます)。

このライブラリはマスク付き言語モデリングとセンテンス分類のためのモデルのバージョンを提供します。

 

ELECTRA

ELECTRA は別の (小さい) マスク付き言語モデルの使用で事前訓練される transformer モデルです。入力はその言語モデルにより破損されます、それはランダムにマスクされた入力テキストを取りそしてテキストを出力します、その (出力) テキストでは ELECTRA はどのトークンが元のものでありどれが置き換えられたかを予測しなければなりません。GAN 訓練のためのように、その小さい言語モデルは数ステップの間訓練されてから (しかし目的としての元のテキストで、伝統的な GAN 設定でのように ELECTRA モデルを騙したりはしません)、ELECTRA モデルが数ステップの間訓練されます。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類のためのモデルのバージョンを提供します。

 

Funnel Transformer

Funnel Transformer は pooling を使用する transformer モデルで、少し ResNet モデルのようです : 層はブロックでグループ分けされ、そして (最初の一つを除いて) 各ブロックの最初で、隠れ状態はシークエンス次元内でプーリングされます。この方法で、それらの長さは 2 で除算され、これは次の隠れ状態の計算をスピードアップします。総ての事前訓練モデルは 3 つのブロックを持ち、これは最後の隠れ状態は元のシークエンス長の 4 分の 1 のシークエンス長を持つことを意味します。

分類のようなタスクについては、これは問題ではありませんが、マスク付き言語モデリングやトークン分類のようなタスクについては、元の入力と同じシークエンス長を持つ隠れ状態を必要とします。それらの場合には、最後の隠れ状態は入力シークエンス長にアップサンプリングされて 2 つの追加層を通り抜けます。それが各チェックポイントの 2 つのバージョンがある理由です。“-base” でサフィックスされるバージョンは 3 つのブロックだけを含む一方で、そのサフィックスがないバージョンは 3 つのブロックとその追加層を持つアップサンプリング・ヘッドを含みます。

利用可能な事前訓練モデルは ELECTRA と同じ事前訓練目的を使用しています。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、多肢選択式分類と質問応答のためのモデルのバージョンを提供します。

 

Longformer

高速にするために attention 行列をスパース行列に置き換えた transformer モデルです。しばしば、ローカル・コンテキスト (e.g. 左右の 2 つのトークンは何でしょう?) は与えられたトークンに対してアクションするために十分です。ある事前選択された入力トークンには依然として global attention が与えられますが、attention 行列はよりパラメータが少ない方法を持ち、スピードアップという結果になります。より多くの情報については ローカル attention セクション を見てください。

その他は RoBERTa と同じ方法で事前訓練されます。

Note: このモデルは自己回帰設定で非常に上手く利用できるでしょう、けれどもそのような事前訓練のためのチェックポイントはまだありません。

このライブラリはマスク付き言語モデリング、トークン分類、センテンス分類、多肢選択式分類と質問応答のためのモデルのバージョンを提供します。

 

Sequence-to-sequence モデル

前に言及したように、これらのモデルは元の transformer のエンコーダとデコーダの両者を保持しています。

 

BART

エンコーダとデコーダを持つ sequence-to-sequence モデル。エンコーダはトークンの破損バージョンが供給され、デコーダは元のトークンが供給されます (しかし通常の transformer デコーダのように未来の単語を隠すマスクを持ちます)。エンコーダについては、事前訓練タスク上、以下の変換の組合せが適用されます :

  • ランダムにトークンをマスクします (BERT のように)
  • ランダムにトークンを削除します
  • 単一のマスクトークンで k トークンの範囲をマスクします (0 トークンのスパンはマスクトークンの挿入です)
  • センテンスを並べ替える
  • 特定のトークンで開始されるようにドキュメントを rotate します

このライブラリは条件付き生成とシークエンス分類ためのモデルのバージョンを提供します。

 

Pegasus

BART と同じエンコーダ・デコーダモデルを持つ sequence-to-sequence モデルです。Pegasus は 2 つの自己教師あり目的関数上で同時に事前訓練されます : マスク付き言語モデリング (MLM) と Gap センテンス生成 (GSG, Gap Sentence Generation) と呼称される、新しい要約固有の事前訓練目的です。

  • MLM: エンコーダ入力トークンはマスクトークンによりランダムに置き換えられてエンコーダにより予測されなければなりません (BERT のように)。
  • GSG: エンコーダ入力センテンス全体が 2 番目のマスクトークンにより置き換えられてデコーダに供給されますが、それは通常の自己回帰 transformer デコーダのように未来の単語を隠すために因果マスクを持ちます。

BART と対照的に、Pegasus の事前訓練タスクは意図的に要約に類似しています : 重要なセンテンスはマスクされて残りのセンテンスから一つの出力センテンスとして一緒に生成されます、抽出型要約に類似しています。

このライブラリは要約のために使用されるべき条件付き生成のためのモデルのバージョンを提供します。

 

MarianMT

翻訳モデルのためのフレームワークです、BART と同じモデルを使用しています。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

 

T5

伝統的な transformer モデルを使用します (位置埋め込みで僅かな変更を伴います、これは各層で学習されます)。総ての NLP タスク上で動作できるように、それは特定のプレフィックスを使用することによりそれらをテキスト-to-テキスト問題に変換します : “summarize: ”, “question: ”, “translate English to German: ” 等々。

事前訓練は教師ありと自己教師あり訓練の両者を含みます。教師あり訓練は GLUE と SuperGLUE ベンチマークにより提供される下流タスク上で実行されます (それらを上で説明されたように text-to-text タスクに変換します)。

自己教師あり訓練はトークンの 15% をランダムに除去してそれらを個別の sentinel (見張り) トークンで置き換えることにより (もし幾つかの連続するトークンが除去のためにマークされる場合、グループ全体が単一の sentinel トークンで置き換えられます)、 破損トークンを利用します。エンコーダの入力は破損センテンスで、デコーダの入力は元のセンテンスでそれからターゲットは sentinel トークンで範囲が定められたドロップアウトされたトークンです。

例えば、センテンス “My dog is very cute .” を持ち、そしてトークン “dog”, “is” と “cute” を取り除くことを決めた場合、エンコーダ入力は “My <x> very <y> .” となりそしてターゲット入力は “<x> dog is <y> cute .<z>” になります。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

 

MT5

モデル・アーキテクチャは T5 と同じです。mT5 の事前訓練目的は T5 の自己教師あり訓練を含みますが、T5 の教師あり訓練は含みません。mT5 は 101 言語上で訓練されています。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

 

MBart

モデル・アーキテクチャと事前訓練目的は BART と同じですが、MBart は 25 言語上で訓練されてそして教師ありと教師なし機械翻訳が対象とされています。多言語の full テキストをノイズ除去することによる完全な sequence-to-sequence モデルを事前訓練するための最初の方法の一つです。

このライブラリは条件付き生成のためのモデルのバージョンを提供します。

mbart-large-en-ro チェックポイント は英語 -> ルーマニア語翻訳のために利用できます。

mbart-large-cc25 チェックポイントは `examples/seq2seq/` のコードを使用して、他の翻訳と要約タスクのために再調整できますが、再調整なしではそれほど有用ではありません。

 

ProphetNet

ProphetNet は未来 n-gram 予測と呼ばれる、新しい sequence-to-sequence 事前訓練目的を導入します。未来 n-gram 予測では、各時間ステップで前のコンテキスト・トークンに基づいてモデルは (単に単一の次のトークンの代わりに) 次の n トークンを同時に予測します。未来 n-gram 予測はモデルが未来のトークンのために計画して強い局所的な相関性の上で overfitting を回避することを促進します。モデル・アーキテクチャは元の Transformer に基づきますが、デコーダの「標準的な」自己 attention 機構を主要な自己 attention 機構と self と n-stream (predict) 自己attention 機構と置き換えます。

このライブラリは条件付き生成のためのモデルの事前訓練バージョンと要約のための再調整バージョンを提供します。

 

XLM-ProphetNet

XLM-ProphetNet のモデル・アーキテクチャと事前訓練目的 は ProphetNet と同じですが、XLM-ProphetNet は交差 lingual データセット XGLUE 上で事前訓練されました。

このライブラリは多言語条件付き生成のためのこのモデルの事前訓練バージョンとヘッドライン生成と質問生成のための再調整バージョンをそれぞれ提供します。

 

マルチモーダル・モデル

ライブラリには一つのマルチモーダル・モデルがあります、これは他のもののような自己教師あり流儀での事前訓練はされません。

 

MMBT

マルチモーダル設定で使用される transformers モデルは、予測を行なうためにテキストと画像を連結します。transformer モデルは入力としてトークン化されたテキストの埋め込みと、画像上で事前訓練された resnet の (resnet の最後の多くの特徴から transformer の隠れ状態次元へ通り抜けるための) 線形層を通り抜けた (最後のプーリング層の後の) 最後の活性を取ります。

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

事前訓練モデルは分類のためだけに動作します。

 

Retrieval-based (検索ベース) モデル

幾つかのモデルは、例えばオープンドメインの質問応答のために (事前) 訓練と推論の間にドキュメント検索を利用します。

 

DPR

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

DPR は 3 つのモデルにあります :

  • 質問エンコーダ : 質問をベクトルとしてエンコードする
  • コンテキスト・エンコーダ : コンテキストをベクトルとしてエンコードする
  • リーダー (= Reader) : 関連 (= relevance) スコア (推論された span が実際に質問に答える場合に高い) とともに、検索されたコンテキスト内から質問の答えを抽出する。

DPR のパイプラインはある質問が与えられたときに top k コンテキストを見つけるために検索ステップを使用し、それからそれは回答を得るために質問と検索されたドキュメントとともにリーダーを呼び出します。

 

RAG

  • All モデルページ : rag (7) ; モデル文書 : rag
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Patrick Lewis, Ethan Perez, Aleksandara Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela
    (知識集約型 NLP タスクのための Retrieval-Augmented 生成)

Retrieval-augmented 生成 (“RAG”) モデルは事前訓練 dense retrieval (DPR) と Seq2Seq モデルのパワーを結合しています。RAG モデルは docs を取得し、それらを seq2seq モデルに渡してから、出力を生成するために周辺化します。下流タスクに適応するために取得と生成の両者を許容するために、retriever と seq2seq モジュールは事前訓練モデルから初期化され、同時に再調整されます。

2 つのモデル RAG-Token と RAG-Sequence は生成のために利用可能です。

 

以上