transformers/docs/source/ja/model_doc/bart.md

13 KiB
Raw Permalink Blame History

BART

免責事項: 何か奇妙なものを見つけた場合は、Github 問題 を提出し、割り当ててください。 @patrickvonplaten

Overview

Bart モデルは、BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation、 翻訳と理解 Mike Lewis、Yinhan Liu、Naman Goyal、Marjan 著 ガズビニネジャド、アブデルラフマン・モハメド、オメル・レヴィ、ベス・ストヤフ、ルーク・ゼトルモイヤー、2019年10月29日。

要約によると、

  • Bart は、双方向エンコーダ (BERT など) を備えた標準の seq2seq/機械翻訳アーキテクチャを使用します。 左から右へのデコーダ (GPT など)。
  • 事前トレーニング タスクには、元の文の順序をランダムにシャッフルし、新しい埋め込みスキームが含まれます。 ここで、テキストの範囲は単一のマスク トークンに置き換えられます。
  • BART は、テキスト生成用に微調整した場合に特に効果的ですが、理解タスクにも適しています。それ RoBERTa のパフォーマンスを GLUE および SQuAD の同等のトレーニング リソースと同等にし、新たな成果を達成します。 さまざまな抽象的な対話、質問応答、要約タスクに関する最先端の結果が得られ、成果が得られます。 ルージュは最大6枚まで。

チップ:

  • BART は絶対位置埋め込みを備えたモデルであるため、通常は入力を右側にパディングすることをお勧めします。 左。

  • エンコーダーとデコーダーを備えたシーケンスツーシーケンス モデル。エンコーダには破損したバージョンのトークンが供給され、デコーダには元のトークンが供給されます(ただし、通常のトランスフォーマー デコーダと同様に、将来のワードを隠すためのマスクがあります)。次の変換の構成は、エンコーダーの事前トレーニング タスクに適用されます。

    • ランダムなトークンをマスクします (BERT と同様)
    • ランダムなトークンを削除します
    • k 個のトークンのスパンを 1 つのマスク トークンでマスクします (0 トークンのスパンはマスク トークンの挿入です)
    • 文を並べ替えます
    • ドキュメントを回転して特定のトークンから開始するようにします

このモデルは sshleifer によって提供されました。著者のコードは ここ にあります。

Examples

Implementation Notes

  • Bart はシーケンスの分類に token_type_ids を使用しません。 [BartTokenizer] を使用するか、 [~BartTokenizer.encode] を使用して適切に分割します。
  • [BartModel] のフォワードパスは、渡されなかった場合、decoder_input_ids を作成します。 これは、他のモデリング API とは異なります。この機能の一般的な使用例は、マスクの塗りつぶしです。
  • モデルの予測は、次の場合に元の実装と同一になるように意図されています。 forced_bos_token_id=0。ただし、これは、渡す文字列が次の場合にのみ機能します。 [fairseq.encode] はスペースで始まります。
  • [~generation.GenerationMixin.generate] は、次のような条件付き生成タスクに使用する必要があります。 要約については、その docstring の例を参照してください。
  • facebook/bart-large-cnn 重みをロードするモデルには mask_token_id がないか、実行できません。 マスクを埋めるタスク。

Mask Filling

facebook/bart-base および facebook/bart-large チェックポイントを使用して、マルチトークン マスクを埋めることができます。

from transformers import BartForConditionalGeneration, BartTokenizer

model = BartForConditionalGeneration.from_pretrained("facebook/bart-large", forced_bos_token_id=0)
tok = BartTokenizer.from_pretrained("facebook/bart-large")
example_english_phrase = "UN Chief Says There Is No <mask> in Syria"
batch = tok(example_english_phrase, return_tensors="pt")
generated_ids = model.generate(batch["input_ids"])
assert tok.batch_decode(generated_ids, skip_special_tokens=True) == [
    "UN Chief Says There Is No Plan to Stop Chemical Weapons in Syria"
]

Resources

BART を始めるのに役立つ公式 Hugging Face およびコミュニティ (🌎 で示されている) リソースのリスト。ここに含めるリソースの送信に興味がある場合は、お気軽にプル リクエストを開いてください。審査させていただきます。リソースは、既存のリソースを複製するのではなく、何か新しいものを示すことが理想的です。

以下も参照してください。

BartConfig

autodoc BartConfig - all

BartTokenizer

autodoc BartTokenizer - all

BartTokenizerFast

autodoc BartTokenizerFast - all

BartModel

autodoc BartModel - forward

BartForConditionalGeneration

autodoc BartForConditionalGeneration - forward

BartForSequenceClassification

autodoc BartForSequenceClassification - forward

BartForQuestionAnswering

autodoc BartForQuestionAnswering - forward

BartForCausalLM

autodoc BartForCausalLM - forward

TFBartModel

autodoc TFBartModel - call

TFBartForConditionalGeneration

autodoc TFBartForConditionalGeneration - call

TFBartForSequenceClassification

autodoc TFBartForSequenceClassification - call

FlaxBartModel

autodoc FlaxBartModel - call - encode - decode

FlaxBartForConditionalGeneration

autodoc FlaxBartForConditionalGeneration - call - encode - decode

FlaxBartForSequenceClassification

autodoc FlaxBartForSequenceClassification - call - encode - decode

FlaxBartForQuestionAnswering

autodoc FlaxBartForQuestionAnswering - call - encode - decode

FlaxBartForCausalLM

autodoc FlaxBartForCausalLM - call