Transformers documentation
BARTpho
このモデルは2021年9月20日にHF papersで公開され、2021年10月18日にHugging Face Transformersに貢献されました。
BARTpho
BARTphoは、大規模なベトナム語のシーケンスツーシーケンスモデルです。単語ベースのバージョンと音節ベースのバージョンが提供されています。このモデルは、BARTの大規模アーキテクチャと、そのノイズ除去事前学習に基づいて構築されています。
すべての元のチェックポイントは、VinAI組織の下で確認できます。
このモデルは dqnguyen によって提供されました。 BARTpho をさまざまな言語タスクに適用する方法の例については、右側のサイドバーをご覧ください。
以下の例では、PipelineまたはAutoModelクラスを使用してテキストを要約する方法を示しています。
from transformers import AutoTokenizer, BartForConditionalGeneration
tokenizer = AutoTokenizer.from_pretrained(
"vinai/bartpho-word",
)
model = BartForConditionalGeneration.from_pretrained(
"vinai/bartpho-word",
device_map="auto",
)
text = """
Quang tổng hợp hay gọi tắt là quang hợp là quá trình thu nhận và chuyển hóa năng lượng ánh sáng Mặt trời của thực vật,
tảo và một số vi khuẩn để tạo ra hợp chất hữu cơ phục vụ bản thân cũng như làm nguồn thức ăn cho hầu hết các sinh vật
trên Trái Đất. Quang hợp trong thực vật thường liên quan đến chất tố diệp lục màu xanh lá cây và tạo ra oxy như một sản phẩm phụ
"""
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(inputs["input_ids"], num_beams=2, min_length=0, max_length=20)
tokenizer.batch_decode(outputs, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]注記
- BARTphoは、BARTの大規模アーキテクチャを使用し、エンコーダーとデコーダーの上に追加のlayer-normalizationレイヤーを配置しています。BART固有のクラスは、mBART固有のクラスに置き換える必要があります。
- この実装は、
monolingual_vocab_fileファイルを介したトークナイズ処理のみに対応しています。これは、その多言語語彙から抽出されたベトナム語固有のトークンタイプのサブセットです。別の言語でこのトークナイザーを使用する場合は、monolingual_vocab_fileを対象言語に特化したものに置き換えてください。
BartphoTokenizer
class transformers.BartphoTokenizer
< source >( vocab_filemonolingual_vocab_filebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'sp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )
パラメータ
- vocab_file (
str) — 語彙ファイルへのパスです。この語彙は、mBART でも使用されている、250K のタイプで構成される、多言語 XLM-RoBERTa から入手可能な事前学習済み SentencePiece モデルです。 - monolingual_vocab_file (
str) — 単一言語語彙ファイルへのパスです。この単一言語語彙は、250K 型の多言語語彙 vocab_file から抽出されたベトナム語特化型の集合です。 - bos_token (
str, 省略可, デフォルトは"<s>") — 事前学習時に使用されたシーケンス開始トークン。シーケンス分類器のトークンとしても使用できます。特殊トークンを用いてシーケンスを構築する場合、シーケンスの先頭に使用されるのはこのトークンではありません。使用されるのは
cls_tokenです。 - eos_token (
str, 省略可, デフォルトは"</s>") — シーケンスの終了トークンです。特殊トークンを用いてシーケンスを構築する場合、シーケンスの終了に使用されるのはこのトークンではありません。 使用されるのは
sep_tokenです。 - sep_token (
str、任意、デフォルトは"</s>") — 区切りトークンです。複数のシーケンスからシーケンスを構築する際に使用されます。例えば、シーケンス分類では2つのシーケンス、質問応答ではテキストと質問です。また、特殊トークンを用いて構築されたシーケンスの最後のトークンとしても使用されます。 - cls_token (
str、任意、デフォルトは"<s>") — シーケンス分類(トークンごとの分類ではなく、シーケンス全体の分類)を行う際に使用される分類トークンです。特殊トークンを用いて構築された場合、シーケンスの最初のトークンになります。 - unk_token (
str、任意、デフォルトは"<unk>") — 不明トークンです。語彙に存在しないトークンは ID に変換できず、代わりにこのトークンが設定されます。 - pad_token (
str、任意、デフォルトは"<pad>") — パディングに使用されるトークンです。例えば、長さが異なるシーケンスをバッチ処理する際に使用します。 - mask_token (
str、任意、デフォルトは"<mask>") — 値をマスクするために使用されるトークンです。これは、マスク言語モデリングでこのモデルを学習する際に使用されるトークンです。モデルが予測しようとするトークンです。 - sp_model_kwargs (
dict, 省略可) — はSentencePieceProcessor.__init__()メソッドに渡されます。 SentencePiece の Python ラッパー は、次のような設定を行うために使用できます:-
enable_sampling: サブワード正規化を有効にします。 -
nbest_size: unigramのサンプリングパラメータ。BPE-Dropoutでは無効です。nbest_size = {0,1}: サンプリングは行われません。nbest_size > 1: nbest_size 個の結果からサンプリングします。nbest_size < 0: nbest_size が無限大であると仮定し、forward-filtering-and-backward-sampling アルゴリズムを使用して、すべての仮説(ラティス)からサンプリングします。
-
alpha: 単一語サンプリングの平滑化パラメータ、および BPE-dropout におけるマージ操作のドロップアウト確率。
-
- sp_model (
SentencePieceProcessor) — すべての変換(文字列、トークン、ID)に使用されるSentencePieceプロセッサ。
XLMRobertaTokenizerをベースにしています。SentencePieceに基づいています。
このトークナイザーは、PreTrainedTokenizer を継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。
build_inputs_with_special_tokens
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = None ) → list[int]
パラメータ
- token_ids_0 (
list[int]) — 特殊トークンが追加されるIDのリストです。 - token_ids_1 (
list[int]、省略可) — シーケンスペア用の第2のIDリスト(任意)。
戻り値
list[int]
適切な特殊トークンを含む入力 IDのリスト。
シーケンス分類タスクにおいて、シーケンスまたはシーケンスのペアからモデルの入力を構築するために、連結と特殊トークンの追加を行います。BARTPhoのシーケンスは、次の形式を持ちます:
- 単一シーケンス:
<s> X </s> - シーケンスのペア:
<s> A </s></s> B </s>
create_token_type_ids_from_sequences
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = None ) → list[int]
シーケンスペア分類タスクで使用するために、渡された2つのシーケンスからマスクを作成します。BARTPhoはトークンタイプIDを使用しないため、ゼロのリストが返されます。
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]
特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。このメソッドは、トークナイザーのprepare_for_modelメソッドを使用して特殊トークンを追加する際に呼び出されます。
fairseqの語彙を使用するようにオーバーライド