BART論文の要点の解釈: この記事を読むだけで十分です

  • 通称:自然言語の生成、翻訳 、理解のためのノイズ除去シーケンス対シーケンスの事前トレーニング。BART は双方向および自己 回帰トランスフォーマー由来
  • 発売時期:2019.10.29
  • チーム: Facebook AI
  • 紙のアドレス
  • コードアドレス

目次

概要

1. はじめに

2.モデル

2.1 アーキテクチャ(モデル構造)

2.2 BARTの事前トレーニング(事前トレーニング)

3.BARTの微調整

3.1 シーケンス分類タスク

3.2 トークン分類タスク (トークンレベルの分類タスク)

3.3 シーケンス生成タスク(テキスト生成タスク)

3.4 機械翻訳

4. トレーニング前の目標の比較

4.1 比較対象

4.2 タスク

4.3 結果

5. 大規模な事前トレーニング実験


BART は生成タスクに非常に適したモデルですが、もちろん識別タスクも完了でき、その効果も非常に優れています。これは主に BERT と GPT の 2 つのモデルの考え方を組み合わせたもので、双方向エンコーディングの利点だけでなく、一方向の自己回帰エンコーディングの利点も備えています。この記事では主に BART の原論文について説明しますので、理解したいだけであればこの序文を読んでも十分ですが、原論文を読むことを強くお勧めします。ここでは、文書の各部分について、重要なポイントのみを説明します。

概要

  • BART は、エンコーダ-デコーダのトランスフォーマである標準のトランスフォーマ構造に従います。
  • BART の事前トレーニングは、主に次の 2 段階のアイデアに基づいています。

        1) ランダムノイズ関数を通じて記事の構造を破壊する (率直に言えば、文書の構造を破壊する可能性のあるあらゆる方法)。

        2)構造が破壊された物品を再構築することをモデルに強制的に学習させ、物品が元の外観に戻るようにする。

記事の構造をどのように破壊するかについては?著者は、さまざまな方法を評価した結果、次の方法が最も効果的であることがわかりました。1 つは元の文の順序をランダムにシャッフルする方法、もう 1 つは [MASK] をランダムに使用する方法です。Bert とは異なり、Bert は単語です。連続する複数のワードの場合、[MASK] に置き換えられ、BART は [MASK] に置き換えられます。

論文では、著者は他の事前トレーニング モデルと同じ方法で BART に対してアブレーション実験も実施しました、つまり、BERT、XLNet、およびその他の事前トレーニング手法を BART に移植して、どのモデルがどのモデルに最も大きな影響を与えるかをより適切に検証しました。最後のタスクのパフォーマンス。

1. はじめに

これは要約で紹介したものと似ていますが、簡単に言うと、BART のトレーニングが 2 つのステップに分かれていることがわかります: ランダム ノイズによって記事の構造を破壊し、次にシーケンス間モデルをトレーニングして再構成します。破損したテキスト。

フラグメント化マスクでは、フラグメントの長さはランダムに選択されますが、実際にはランダムではなく、後述するようにポアソン分布法を使用して、異なる長さのフラグメント(長さ 0 を含む)をサンプリングします。

ここで説明したように、BART はタスク生成 (NLG) で特に効果的であるだけでなく、自然言語理解タスク (NLU) でも非常に優れたパフォーマンスを発揮します。

いくつかの論文で提供されている BART 図を見てみましょう。

BART では、その入力と出力の長さが厳密に一致している必要はありません。つまり、エンコーダーの入力とデコーダーの出力を揃える必要はありません。上記の構造図からわかるように、Encoder の左側は Bert と同様に Encoder によって双方向にエンコードされた構造破壊後の記事を受け取り、Encoder からの出力を受け取った後、右側がその出力を受け取ることがわかります。 GPT と同様に、Encoder から予測結果を出力し、自己回帰デコードを通じて予測結果を出力します (GPT は Encoder を必要としないことに注意してください)。自己回帰デコードは、N-Gram ワード バッグ モデルや NNLM モデルと同様の最尤確率に基づいています。著者は上図で、微調整のためにBARTのエンコーダとデコーダが同じ入力を受け取り、このときの入力記事は破棄されないことにも言及しました。このように、デコーダの最後の次元の出力は次のように使用されます。のベクトル表現は、Bert がエンコーダの最終的な非表示状態を使用することを除いて、Bert と似ています。実際、ここでの著者の紹介は一般的なものであり、以下で説明するように、微調整方法はさまざまなタスクに基づいて行う必要がありますが、これについては後で説明します。

2.モデル

このセクションが鍵です。

冒頭で、著者は見事に要約しました: BART モデルの実装は依然として本質的にシーケンスツーシーケンスのパラダイムであり、その本質はエンコーダー デコーダー アーキテクチャです。エンコーダーは、破損したテキストをエンコードする双方向エンコーディングです。 ; デコーダは一方向デコード (左から右) であり、自己回帰デコードであり、必要なターゲット テキストをデコードします。最適化の目的は負の対数尤度関数です。

2.1 アーキテクチャ(モデル構造)

この段落にはいくつかの重要なポイントがあります。

  • BART モデルでは、活性化関数は ReLU の代わりに GeLU を使用します。
  • パラメーターは、平均 0、分散 0.02 の正規分布を使用してランダムに初期化されます。
  • Bart-base は 6 層コーデック、Bart-large は 12 層コーデックです。

同時に、著者はBARTとBERTの違いを次のように指摘しました。

  • デコーダの各層のクロスアテンション部分の k と v は、エンコーダの最後の層の出力を使用し、q はデコーダのセルフアテンションの出力です。これが本来のトランスの構造です。

  • Bert は最終出力予測の前にフィードフォワード ネットワーク (フィードフォワード) を使用しますが、BART はそれを削除します。これは、BART が BERT と同じモデル レベル、たとえば同じベースであり、パラメータの数が約 10% 削減されるという事実にもつながります。

正直なところ、個人的には上記 2 つの違いは少し蛇足だと感じています。BART のアーキテクチャはもともとフルトランスフォーマーとしての位置付けにあるため、BERT との上記の違いは当然あります。

2.2 BARTの事前トレーニング(事前トレーニング)

BART の事前トレーニングの目標は、損傷した物品の再構成損失関数を最適化することです。これは実際には、デコーダの予測結果とターゲット物品 (ラベル) のクロスエントロピー損失です。ハイライトは、どのような形式の破壊でも記事を受け入れることができることであり、これは非常に強力です。私はいくつかのコンテストに参加しましたが、入力はキーワードの束であり、出力はこれらに基づいた完全な構造を持つ記事である必要がありますキーワード. BART の使用効果は非常に優れています。著者はまた、極端な場合に入力が完全に空であると仮定すると、BART は本質的に言語モデルであり、著者が何を説明したいのかがあまり明確ではないことも指摘しました。

著者は以下に、記事の構造を分割する具体的な方法をいくつか挙げています。

  • 単一トークン レベルのマスキング (トークン マスキング) は BERT と同じで、[MASK] の特定の比率に従ってトークンをランダムにサンプリングします。
  • トークンレベルの損失(トークン削除)は、記事内のいくつかの単語を直接ランダムに削除します(削除のトークンが連続的であるかどうかについて著者は言及していないことに注意してください)。したがって、この方法には、複数の連続したトークンが削除される状況も含まれると推測されます), これは MASK とは異なります。MASK の場合、モデルは少なくとも元のトークンがどこにあるかを知っています。直接削除の場合、モデルは元のトークンが何であるかを知る必要があるだけでなく、元のトークンがどこにあるかも知る必要があります。これにより、目に見えない形でモデルの予測能力が向上します。
  • フラグメント レベルのトークン MASK (テキスト埋め込み) については上で説明しましたが、ここで著者はフラグメント選択の基礎を示します。つまり、スパン テキストは、長さなどの平均値 λ が 3 のポアソン分布を通じてサンプリングされます。 0 、長さ 3、長さ 5 などの場合、それらを 1 つの MASK のみに置き換えます。著者は、この手法が SpanBERT の考え方に似ているとも述べましたが、異なる点は、SpanBERT が固定幾何分布サンプリングを使用し、抽出されたフラグメントの長さが同じ数の MASK で置き換えられることです。実際にこの方法をサポートしていますが、学習にはさらに多くの労力が必要です。著者はまた、テキスト入力はモデルが MASK 内にいくつのトークンがあり、それらが何であるかを学習するためのものであるとも述べました。
  • 文の並べ替え。元のテキスト内の完全な文の順序をランダムにし、モデルが文の位置を学習できるようにします。
  • 記事のローテーション (ドキュメントのローテーション) は、実際には記事内の単語をランダムに取得し、その単語を基点として記事を回転させ、元のトークンが何であるかをモデルに学習させることです。正直この操作はかなりめんどくさいし、見た目はすごいけど謎はよく分からないんですが、Sentence Permutationにはすでにこの機能が組み込まれていると思います。

著者が提供したいくつかの破損方法の概略図を見てみましょう。

よくわかりませんが、作者のオープンソース モデルはこれらすべての破損方法を同時に使用しているのでしょうか? または、そのうちの 1 つまたはいくつかを使用します。

3.BARTの微調整

前述したように、微調整の方法はタスクごとに異なります。以下は、著者が言及したいくつかのタスクの微調整です。

3.1 シーケンス分類タスク

Encoder と Decoder は同じ入力を受け取り、Decoder によって出力された最後のトークンの隠れた状態を取得し、微調整のために分類層に接続します。実際、この分類層は調整されます。この考え方は BERT の分類と非常に似ていますタスクの微調整ですが、トークンの選択が異なります。BERT では、[CLS] トークンが入力シーケンスの最初の位置に追加され、最終出力もこの CLS から取得されますが、BART は最後に追加されます位置 [CLS] であるため、最終的な取得も最後の A トークンになります。このようにして、最後のトークンの表現は、以前のすべてのトークンの意味情報を参照できると著者は考えています。個人的には、それが合理的かどうかは具体的な実験の比較に依存しますが、実際には文全体をどの Token で表現するかはハードコーディングされていません。

3.2 トークン分類タスク (トークンレベルの分類タスク)

トークンレベルの分類タスクには、エンティティ認識、読解、質問応答などが含まれ、これらはすべて抽出的です。このタスクは文の分類に似ていますが、ここではデコーダーによって出力された各トークンの隠蔽状態が使用される、つまり各トークンが分類される点が異なります。

3.3 シーケンス生成タスク(テキスト生成タスク)

このタスクは BART の強みと見なすことができ、そのモデル構造により、抽象的な質問応答タスクや要約タスク (生成的で非抽出的であることに注意してください) などのシーケンス生成タスクとその微調整を自然にサポートします。この方法も非常に直接的かつ単純で、モデルにオリジナル テキストとターゲット テキストを与えると、エンコーダーはオリジナル テキストを受け取り、デコーダーは予測されたテキストをデコードし、ターゲット テキストとの損失を計算します。

3.4 機械翻訳

このタスクはさらに興味深いもので、作成者は BART のエンコーダ部分に比較的大きな変更を加えました。

作者は、元のBARTのエンコーダとデコーダを全体として新しいデコーダとみなして、元のエンコーダの単語埋め込み層(埋め込み層)を新しいエンコーダに置き換え、まず元の外国語コードを新しいエンコーダでエンコードします。エンコーダを作成し、元の BART のエンコーダ デコーダの構造に送信します。新しいエンコーダを再トレーニングし、元のエンコーダとデコーダをデコーダとして使用することで、単にデコーダを使用することによって生じるデコーダ機能の不足を補うことができると作者は信じているのでしょう。

微調整する際、著者は 2 段階の戦略を採用しました。最初の段階では、ランダムに初期化されたソース エンコーダー (つまり、新しいエンコーダー)、BART の位置埋め込みベクトル、および BART のセルフ アテンション入力射影行列のみを更新します。エンコーダーの最初の層 (元のエンコーダー)。残りのパラメータは固定されています。2 番目のステップでは、すべてのパラメーターを少量ずつ繰り返します。

4. トレーニング前の目標の比較

4.1 比較対象

このセクションは実際には、GPT、XLNet、BERT、UniLM、MASS などを含むさまざまなタイプの言語モデルの比較紹介です。興味のある学生は原文を読むことができます。

4.2 タスク

このセクションでは、いくつかの一般的な NLP タスクについて簡単に説明します。興味があれば、原文を読むことができます。

4.3 結果

このセクションでは、さまざまなタスクおよび BART のさまざまなランダム ノイズ関数 (つまり、上で紹介したさまざまな文書破壊方法) での、上記のさまざまなタイプの言語モデルの実験結果を示し、比較と要約を行います。

この表によれば、著者は次の重要な結論を導き出します。

まとめると次のような点があります。

  • 事前学習の効果は事前学習タスク、端的に言えばタスクデータに関係します。
  • 前述のドキュメント変換 (Document Rotation) または文の順序の破壊 (Sentence Permutation) メソッドは、単独で使用すると適切に機能しません。Token Deletion か Token MASK を使用するのが良いですが、これが重要なポイントです。このうち、生成タスクではマスク方式よりも削除方式の方が一般的に優れています。
  • 生成タスクでは、マスクメカニズムとアウトオブオーダーメカニズムに基づくモデルは他のメカニズムに基づくモデルほど優れておらず、前者は左から右への自己回帰メカニズムを含まないモデルです。したがって、自己回帰メカニズムは生成タスクには適していませんが、効果的にパフォーマンスを向上させることができると言われています。
  • 双方向エンコードのメカニズムは、BERT モデルなどの SQuAD 事前トレーニング タスクにおいて非常に重要です。ただし、BART モデルはこのタスクでも優れたパフォーマンスを発揮します。私の意見では、これは SQuAD が抽出的読解タスクであるためであり、自由にプレイできる強力な能力は必要ありませんが、事前トレーニング プロセス中に学習した最尤確率値の下でテキストの意味論に厳密に従っています。専門性と正確性の感覚が求められるため、この種のタスクには双方向エンコードが有益です。
  • パフォーマンスに影響を与えるのは、事前トレーニングの方法だけではない可能性があります。相対位置エンコードや階層的繰り返し (予想していなかった) 構造など、モデル自体の構造の改善も重要です。
  • ELT5 タスクでは、BART だけが他のモデルよりもパフォーマンスが悪いです。著者は、このタスクのデータセットの複雑さが他のタスクよりも高いためであると考えています。著者は、次の結論を導き出します。入力の制約が緩い場合、つまり出力が入力情報を厳密に参照する必要がない場合、BART の効果は低くなりますが、この場合の違いは必ずしも悪いことではないと思います。ほとんどの生成タスクでは、生成結果は入力された情報を厳密に参照する必要があり、間違った質問に対する答えはあまり良くない可能性があります。
  • ELI5 タスクに加えて、BART はテキスト入力が関係する場合にも良好なパフォーマンスを発揮しました。側面はテキスト塗りつぶしの効果を反映しています。

5. 大規模な事前トレーニング実験

この章では、BART-large の事前トレーニング実験について、統一的な方法で事前トレーニングの実験設定について説明します。

  • BART-large は 12 フロアを使用します。
  • 隠しサイズ 1024 次元。
  • 8000 バッチサイズ。
  • 500000 ステップが反復されました。
  • Tokenizer は GPT-2 と同じ方法を使用します。
  • 30% のテキスト充填と全文の文の並べ替えノイズ手法を組み合わせます。
  • ステップの最後の 10% でドロップアウトを無効にします。
  • 合計 160 GB のデータが使用されました。

著者は、いくつかの異なる生成タスクでさらなる実験と比較も実施しました。興味があれば、原文を読むことができます。ここで特に言及するのは、生成タスクでは、著者が微調整段階で平滑化されたクロスエントロピー損失を使用し、平滑化係数が 0.1 に設定されたことです。モデル推論の段階では、作成者はビーム検索メソッドのサイズを 5 に設定し、最小および最大の生成長と長さのペナルティも設定しました。

さらに、著者は、要約が原文と高度に類似している場合、抽出モデルと生成モデルの両方が同様に機能することが判明したため、BART は要約生成タスクに優れているとも説明しました。

実はここまでが BART の核心部分の紹介であり、残りは日常的な内容なので、BART をしっかり理解したい学生は原文とソースコードを読むことをお勧めします。

おすすめ

転載: blog.csdn.net/qq_36583400/article/details/131394337