Transformers documentation

PhoBERT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2020年3月2日にHF papersで公開され、2020年11月16日にHugging Face Transformersに貢献されました。

PhoBERT

概要

PhoBERTモデルは、Dat Quoc NguyenとAnh Tuan NguyenによるPhoBERT: Pre-trained language models for Vietnameseで提案されました。

論文の抄録は以下の通りです。

ベトナム語向けの最初の公開大規模単一言語モデルである PhoBERT-base と PhoBERT-large の2つのバージョンを提示します。実験結果により、PhoBERT は最近の最良の事前学習多言語モデルである XLM-R (Conneau et al., 2020) を一貫して上回り、品詞付与、依存構文解析、固有表現認識、自然言語推論を含む複数のベトナム語固有の NLP タスクにおいて、最先端の性能を向上させることが示されました。

このモデルはdqnguyenによって提供されました。元のコードはこちらで確認できます。

使用例

import torch

from transformers import AutoModel, AutoTokenizer


phobert = AutoModel.from_pretrained("vinai/phobert-base", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("vinai/phobert-base")

# INPUT TEXT MUST BE ALREADY WORD-SEGMENTED!
line = "Tôi là sinh_viên trường đại_học Công_nghệ ."

input_ids = torch.tensor([tokenizer.encode(line)])

with torch.no_grad():
    features = phobert(input_ids)  # Models outputs are now tuples

PhoBERTの実装はトークナイゼーションを除きBERTと同一です。設定クラスとそのパラメータに関する情報は、BERTのドキュメントを参照してください。PhoBERT固有のトークナイザーについては以下に説明します。

PhobertTokenizer

クラス transformers.PhobertTokenizer

< >

( vocab_filemerges_filebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'**kwargs )

パラメータ

  • vocab_file (str) — 語彙ファイルへのパス。
  • merges_file (str) — マージファイルへのパス。
  • 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>") — 値をマスクするために使用されるトークンです。これは、マスク言語モデリングでこのモデルを学習する際に使用されるトークンです。モデルが予測しようとするトークンです。

Byte-Pair-Encoding に基づく PhoBERT トークナイザーを構築します。

このトークナイザーは、PreTrainedTokenizer を継承しており、主要なメソッドのほとんどが含まれています。これらのメソッドに関する詳細については、このスーパークラスを参照してください。

add_from_file

< >

( f )

テキストファイルから既存の辞書を読み込み、そのシンボルをこのインスタンスに追加します。

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — 特殊トークンが追加されるIDのリストです。
  • token_ids_1 (list[int]、省略可) — シーケンスペア用の第2のIDリスト(任意)。

戻り値

list[int]

適切な特殊トークンを含む入力 IDのリスト。

シーケンス分類タスクにおいて、シーケンスまたはシーケンスのペアからモデルの入力を構築するには、連結して特殊トークンを追加します。PhoBERTのシーケンスは、次の形式を持ちます:

  • 単一シーケンス: <s> X </s>
  • シーケンスのペア: <s> A </s></s> B </s>

convert_tokens_to_string

< >

( tokens )

単一の文字列内のトークン(文字列)のシーケンスに変換します。

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — ID のリストです。
  • token_ids_1 (list[int]、省略可) — シーケンスペア用の第2のIDリスト(任意)。

戻り値

list[int]

ゼロのリスト。

シーケンスペア分類タスクで使用するために、渡された2つのシーケンスからマスクを作成します。PhoBERTはトークンタイプIDを使用しないため、ゼロのリストが返されます。

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]

パラメータ

  • token_ids_0 (list[int]) — ID のリストです。
  • token_ids_1 (list[int]、省略可) — シーケンスペア用の第2のIDリスト(任意)。
  • already_has_special_tokens (bool、任意、デフォルトは False) — トークンリストが、モデル用の特殊トークンで既にフォーマットされているかどうかを示します。

戻り値

list[int]

範囲 [0, 1] の整数のリスト: 特殊トークンは 1、シーケンストークンは 0。

特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。このメソッドは、トークナイザーのprepare_for_modelメソッドを使用して特殊トークンを追加する際に呼び出されます。

Update on GitHub