Transformers documentation

トークナイザー

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

トークナイザー

トークナイザーは、モデルへの入力準備を担当します。このライブラリには、すべてのモデル用のトークナイザーが含まれています。ほとんどのトークナイザーは、完全な Python 実装と、Rust ライブラリ 🤗 Tokenizers に基づく「Fast」実装の2つのバリエーションで利用できます。「Fast」実装により、以下が可能になります:

  1. 特にバッチトークナイゼーションを行う場合
  2. 元の文字列(文字および単語)とトークン空間(例:特定の文字を含むトークンのインデックス、または特定のトークンに対応する文字のスパン)の間をマッピングするための追加のメソッド。

ベースクラスである PreTrainedTokenizer と PreTrainedTokenizerFast は、文字列入力をモデル入力にエンコードするための共通メソッド(下記を参照)を実装しています。また、ローカルファイルやディレクトリ、またはライブラリが提供する事前学習済みトークナイザー(HuggingFace の AWS S3 リポジトリからダウンロード)から、Python 製および「Fast」トークナイザーをインスタンス化・保存する機能も備えています。両クラスとも、共通メソッドを含む PreTrainedTokenizerBase に依存しています。

したがって、PreTrainedTokenizer と PreTrainedTokenizerFast は、すべてのトークナイザーを使用するための主要なメソッドを実装しています。

  • トークナイズ(文字列をサブワードのトークン文字列に分割すること)、トークン文字列をIDに変換することおよびその逆変換、そしてエンコード/デコード(つまり、トークナイズして整数に変換すること)。
  • ベースとなる構造(BPE、SentencePiece など)に依存しない方法で、語彙に新しいトークンを追加する。
  • 特殊トークン(マスク、文頭トークンなど)の管理:それらを追加し、tokenizer の属性に割り当てて簡単にアクセスできるようにし、トークン化の際に分割されないことを確認します。

BatchEncoding は、PreTrainedTokenizerBase のエンコードメソッド(__call__、encode_plus および batch_encode_plus)の出力を保持し、Python の辞書から派生しています。tokenizer が純粋な Python 製の場合、このクラスは標準的な Python の辞書と同様に動作し、これらのメソッドによって計算されたさまざまなモデル入力(input_ids、attention_mask など)を保持します。tokenizer が「Fast」tokenizer(つまり HuggingFace の tokenizers library をベースにしているもの)の場合、このクラスはさらに、元の文字列(文字や単語)とトークンスペース(例:特定の文字を含むトークンのインデックスを取得したり、特定のトークンに対応する文字の範囲を取得したりする)の間のマッピングに使用できる、いくつかの高度なアライメントメソッドを提供します。

マルチモーダル トークナイザ

それ以外に、各トークナイザーは「マルチモーダル」なトークナイザーとして動作し、トークナイザーの属性として関連するすべての特殊トークンを保持します。これにより、より簡単にアクセスできるようになります。例えば、LLaVAのようなビジョン言語モデルからトークナイザーを読み込んだ場合、プレースホルダーとして使用される特殊な画像トークンを取得するためにtokenizer.image_token_idにアクセスできます。

任意のタイプのtokenizerに追加の特殊トークンを有効にするには、以下の行を追加してtokenizerを保存する必要があります。追加の特殊トークンはモダリティに関連するものである必要はなく、モデルが頻繁にアクセスする必要がある任意のものです。以下のコードでは、output_dirのtokenizerは、3つの追加の特殊トークンに直接アクセスできるようになります。

vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)

PreTrainedTokenizer

class transformers.PythonBackend

< >

( **kwargs )

パラメータ

  • model_max_length (int, optional) — The maximum length (in number of tokens) for the inputs to the transformer model. When the tokenizer is loaded with from_pretrained(), this will be set to the value stored for the associated model in max_model_input_sizes (see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • truncation_side (str, 省略可) — モデルに切り詰めを適用する側です。[‘right’, ‘left’] から選択してください。 デフォルト値は、同名のクラス属性から選択されます。
  • chat_template (str、省略可) — チャットメッセージのリストを整形するために使用される Jinja テンプレート文字列です。詳細については、https://huggingface.co/docs/transformers/chat_templating を参照してください。
  • model_input_names (list[string]、任意) — モデルの forward pass が受け入れる入力のリスト("token_type_ids" や "attention_mask" など)です。デフォルト値は、同名のクラス属性から選択されます。
  • bos_token (str または tokenizers.AddedToken、省略可) — 文の開始を表す特殊トークンです。
  • eos_token (str または tokenizers.AddedToken、省略可能) — 文の終わりを表す特殊トークンです。
  • unk_token (str または tokenizers.AddedToken、省略可) — 語彙外のトークンを表す特殊トークンです。
  • sep_token (str または tokenizers.AddedToken、省略可) — 同一入力内の2つの異なる文を区切るための特殊トークン(BERTなどで使用されます)。
  • pad_token (str または tokenizers.AddedToken、省略可) — バッチ処理のためにトークン配列のサイズを揃える際に使用する特殊トークン。アテンション機構や損失計算では無視されます。
  • cls_token (str または tokenizers.AddedToken、省略可) — 入力のカテゴリを表す特別なトークンです(BERT などで使用されます)。
  • mask_token (str または tokenizers.AddedToken、省略可) — マスクされたトークンを表す特別なトークンです(BERT などのマスク言語モデリング事前学習目的で使用されます)。self.mask_token および self.mask_token_id に関連付けられます。
  • extra_special_tokens (str または tokenizers.AddedToken のリスト、省略可) — モデル固有の追加の特殊トークンのリストです。skip_special_tokens が True に設定されている場合、デコード時にこれらがスキップされることを保証するために、ここに追加してください。語彙に存在しない場合は、語彙の末尾に追加されます。
  • split_special_tokens (bool、省略可、デフォルトは False) — トークン化処理中に特殊トークンを分割するかどうかを指定します。この引数を渡すと、トークナイザーの内部状態に影響します。デフォルトの動作は、特殊トークンを分割しないことです。つまり、<s> が bos_token である場合、tokenizer.tokenize("<s>") = ['<s> となります。一方、split_special_tokens=True の場合、tokenizer.tokenize("<s>") は ['<','s', '>'] を返します。

すべてのスロートークナイザーの基底クラス。

PreTrainedTokenizerBaseを継承します。

トークン化および特殊トークンに関するすべての共有メソッド、事前学習済みトークナイザーのダウンロード/キャッシュ/読み込み、および語彙へのトークン追加に関するメソッドを処理します。

このクラスは、すべてのトークナイザーに対して追加トークンを統一的に含めるため、BPE や sentencepiece など、基盤となる辞書構造固有の語彙拡張メソッドを個別に処理する必要がありません。

クラス属性(派生クラスによって上書きされる)

  • vocab_files_names (dict[str, str]) — モデルに必要な各語彙ファイルの__init__キーワード名をキーとし、対応するファイルを保存するためのファイル名(文字列)を値とする辞書。
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — 辞書の辞書です。上位のキーは、モデルが要求する各語彙ファイルの __init__ キーワード引数名で、下位のキーは事前学習済みモデルの short-cut-names であり、対応する値として、関連する事前学習済み語彙ファイルへの url が格納されています。
  • model_input_names (list[str]) — モデルの forward pass で期待される入力のリスト。
  • padding_side (str) — モデルにパディングを適用する側のデフォルト値です。 'right' または 'left' を指定する必要があります。
  • truncation_side (str) — モデルに切り詰めを適用する側のデフォルト値。'right' または 'left' を指定します。

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

パラメータ

  • text (str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化済み文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_pair (str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化された文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_target (str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_pair_target (str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • tokenizer_kwargs (dict[str, Any]、省略可) — トークナイザーに渡す追加の kwargs です。これらは明示的なパラメータおよびその他の kwargs とマージされますが、明示的なパラメータが優先されます。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け入れます:
    • True または 'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 省略可能, デフォルトは False) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、省略可能、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複を確保します。この引数の値は、重複するトークンの数を定義します。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • pad_to_multiple_of (int, 任意) — 設定すると、指定された値の倍数にシーケンスをパディングします。padding が有効になっている必要があります。 これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • return_token_type_ids (bool, 省略可能) — トークンタイプIDを返すかどうか。デフォルトのままにすると、特定のトークナイザーのデフォルトに従ってトークンタイプIDを返します。これは return_outputs 属性で定義されます。

    トークンタイプIDとは?

  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、 return_outputs 属性によって定義される、特定の tokenizer のデフォルトに従って attention mask を返します。

    アテンションマスクとは?

  • return_overflowing_tokens (bool、任意、デフォルトは False) — 溢れ出したトークンシーケンスを返すかどうかを指定します。入力 ID のシーケンスのペア(またはペアのバッチ)が truncation_strategy = longest_first または True とともに提供された場合、溢れ出したトークンを返す代わりにエラーが発生します。
  • return_special_tokens_mask (bool、省略可能、デフォルトはFalse) — 特殊トークンのマスク情報を返すかどうかを指定します。
  • return_offsets_mapping (bool, 省略可能, デフォルトは False) — 各トークンについて (char_start, char_end) を返すかどうか。

    この機能は、PreTrainedTokenizerFast を継承する高速トークナイザーでのみ利用可能です。Python のトークナイザーを使用している場合、このメソッドは NotImplementedError を送出します。

  • return_length (bool、任意、デフォルトは False) — エンコードされた入力の長さを返すかどうかを指定します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。
  • **kwargs — self.tokenize() メソッドに渡されます

戻り値

BatchEncoding

以下のフィールドを持つBatchEncoding:

  • input_ids — モデルに与えるトークン ID のリスト。

    入力IDとは何ですか?

  • token_type_ids — モデルに渡すトークンタイプIDのリスト(return_token_type_ids=Trueの場合、またはself.model_input_namesに“token_type_ids”が含まれている場合)。

    トークンタイプIDとは?

  • attention_mask — モデルがどのトークンに注意を向けるべきかを指定するインデックスのリスト(return_attention_mask=True の場合、または self.model_input_names に “attention_mask” が含まれている場合)。

    アテンションマスクとは?

  • overflowing_tokens — 溢れ出したトークンシーケンスのリスト(max_lengthが指定され、return_overflowing_tokens=Trueの場合)。

  • num_truncated_tokens — トークンが切り詰められた数(max_length が指定され、return_overflowing_tokens=True の場合)。

  • special_tokens_mask — 0 と 1 のリスト。1 は追加された特殊トークンを、0 は通常のシーケンストークンを示します(add_special_tokens=True かつ return_special_tokens_mask=True の場合)。

  • length — 入力データの長さ(return_length=Trueの場合)

1 つ以上のシーケンス、または 1 つ以上のシーケンスのペアをトークナイズし、モデル用に準備するためのメインメソッドです。

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

パラメータ

  • new_tokens (str、tokenizers.AddedToken、または str または tokenizers.AddedToken のシーケンス) — トークンは、語彙にまだ存在しない場合のみ追加されます。tokenizers.AddedToken は文字列トークンをラップし、その動作を個別に設定できます。例えば、このトークンが単一の単語にのみ一致させるべきか、左側の潜在的な空白をすべて除去すべきか、右側の潜在的な空白をすべて除去すべきかなどです。
  • special_tokens (bool、省略可、デフォルトは False) — トークンが特殊トークンであるかどうかを指定します。主に正規化の動作に影響します。 詳細は、HuggingFace tokenizers ライブラリの tokenizers.AddedToken を参照してください。

戻り値

int

語彙に追加されるトークンの数。

#TODO ここから削除すること! PreTrainedTokenizerBase は AddedToken を意識しないようにすべきです。

新しいトークンのリストを追加します。新しいトークンが語彙に存在しない場合、末尾に追加されます。そのため、追加されたトークンと、トークン化アルゴリズムの語彙からのトークンは、同じように扱われません。

Metaspace プリトークナイザーを使用し、prepend_scheme="always" を指定した高速トークナイザー(NLLB など)は、追加トークンの後に続くテキストの先頭に "▁" を付加します。tokenizer.add_tokens(["abcd"]) を実行した後、"abcdgym" は ["abcd", "▁gym"] にトークン化され、デコードすると "abcd gym" になります。追加トークンが単語の内部に出現し得る場合は、プリトークナイザーを切り替えて

prepend_scheme="first" に設定し、入力のはじめの部分にのみプレフィックスを付与するようにします:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

例:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

パラメータ

  • special_tokens_dict (辞書 str から str, tokenizers.AddedToken, または Sequence[Union[str, AddedToken]]) — キーは、事前定義された特殊属性のリストに含まれる必要があります: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    トークンは、まだ語彙に存在しない場合のみ追加されます(unk_tokenのインデックスが割り当てられるかどうかを確認してテストします)。

  • replace_extra_special_tokens (bool、任意、デフォルトは True) — True の場合、special_tokens_dict で指定されたリストによって、既存の追加特殊トークンのリストが置き換えられます。それ以外の場合、extra_special_tokens が拡張されます。前者の場合、これらのトークンはトークナイザーの完全な語彙から削除されるわけではなく、単に非特殊トークンとしてフラグが付けられるだけです。なお、これはデコーディング時にスキップされるトークンを決定するものであり、added_tokens_encoder および added_tokens_decoder には影響しません。つまり、以前の extra_special_tokens は依然として追加トークンであり、モデルによって分割されることはありません。

戻り値

int

語彙に追加されるトークンの数。

エンコーダーに特殊トークン(eos、pad、cls など)の辞書を追加し、クラス属性にリンクします。特殊トークンが語彙に存在しない場合は、現在の語彙の最後のインデックスからインデックスを付けて語彙に追加されます。

語彙に新しいトークンを追加する場合は、モデルのトークン埋め込み行列をリサイズし、埋め込み行列がトークナイザーと一致するようにする必要があります。

そのためには、resize_token_embeddings() メソッドを使用してください。

add_special_tokens を使用すると、特別なトークンを以下の複数の方法で使用できます。

  • skip_special_tokens = True を使用すると、デコード時に特殊トークンをスキップできます。
  • 特殊トークンは、AddedTokensと同様に、トークナイザーによって慎重に処理されます(分割されることはありません)。
  • tokenizer.cls_token などの tokenizer クラスの属性を使用して、特殊トークンに簡単に参照できます。これにより、モデル非依存の学習およびファインチューニングスクリプトの開発が容易になります。

可能な限り、提供される事前学習済みモデルには特別なトークンがすでに登録されています(例えば、BertTokenizer の cls_token は '[CLS]' として、XLM のものは '</s>' として登録されています)。

例:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

パラメータ

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — “role”キーと“content”キーを持つ辞書のリストで、これまでに蓄積されたチャット履歴を表します。
  • tools (list[Union[Dict, Callable]]、省略可) — モデルからアクセス可能なツール(呼び出し可能な関数)のリストです。テンプレートが関数呼び出しをサポートしていない場合、この引数は無効になります。各ツールは、ツールの名前、説明、引数の型を指定した JSON Schema として渡す必要があります。詳細については、ツール使用ガイドを参照してください。
  • documents (list[dict[str, str]], 任意) — モデルが RAG(検索拡張生成)を実行している場合にアクセス可能な文書を表する dict のリストです。テンプレートが RAG をサポートしていない場合、この引数は無効になります。各文書は、“title” と “text” キーを含む dict であることが推奨されます。
  • chat_template (str、省略可) — この変換に使用する Jinja テンプレートです。モデルのテンプレートがデフォルトで使用されるため、この引数に何かを渡す必要は通常ありません。
  • add_generation_prompt (bool, 任意) — この値が設定されている場合、アシスタントメッセージの開始を示すトークンを含むプロンプトが、整形された出力の末尾に追加されます。これは、モデルから応答を生成したい場合に便利です。 なお、この引数はチャットテンプレートに渡されるため、この引数が効果を発揮するには、テンプレート側でのサポートが必要です。
  • continue_final_message (bool or str, 任意) — これを設定すると、チャットは最終メッセージがオープンエンドになるようにフォーマットされ、EOS トークンが付きません。モデルは新しいメッセージを開始するのではなく、このメッセージを続けます。これにより、モデルの応答の一部を「プリフィル」できます。文字列が渡された場合、継続するフィールドのキーとして使用されます(例: “reasoning_content”)。add_generation_prompt と同時に使用することはできません。
  • tokenize (bool、デフォルトはTrue) — 出力をトークン化するかどうかを指定します。Falseの場合、出力は文字列になります。
  • sanitize_control_tokens (bool、デフォルトは False) — 設定されている場合、メッセージ、ツール、ドキュメント、または **kwargs として渡されるテンプレート変数に含まれる制御トークンは通常のテキストとしてエンコードされ、チャットテンプレート自体によって書き込まれた制御トークンのみがトークンとしてエンコードされます。制御トークンとは、トークナイザーの特殊トークンと、tokenizer.chat_control_tokens に含まれる追加トークンのことです。この変数が設定されていない場合、チャットテンプレートのテキストと文字列リテラル中出现する追加トークンから制御トークンが推測されます。制御トークンの全体のみがサニタイズされるため、テンプレートが入力から文字列を結合して制御トークンを作成している場合('<|' + message['role'] + '|>' のように)、それらの文字列は別途検証する必要があります。辞書のキーもサニタイズされません。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:
    • Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool、デフォルトは False) — 最大長でシーケンスを切り詰めるかどうか。tokenize が False の場合は無効です。
  • max_length (int, 省略可) — パディングや切り詰めのために使用する最大長(トークン数)。tokenize が False の場合は無効です。指定しない場合、デフォルトとしてトークナイザーの max_length 属性が使用されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。tokenize が False. 指定可能な値は次のとおりです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • return_dict (bool、デフォルトは True) — 名前付き出力を含む辞書を返すかどうかを指定します。False の場合は、この引数は無効になります。
  • tokenizer_kwargs (dict[str -- Any]、省略可): トークナイザーに渡す追加のキーワード引数。
  • return_assistant_tokens_mask (bool、デフォルトはFalse) — アシスタントが生成したトークンのマスクを返すかどうかを指定します。アシスタントが生成したトークンに対しては、マスクに 1 が含まれます。ユーザーおよびシステムのトークンに対しては、マスクに 0 が含まれます。この機能は、{% generation %} キーワードを通じてサポートされているチャットテンプレートのみに利用可能です。
  • **kwargs — テンプレートレンダラーに渡す追加の kwargs です。チャットテンプレートからアクセスできます。

戻り値

Union[list[int], Dict]

これまでにトークン化されたチャットを表するトークンIDのリストです。制御トークンも含みます。この出力は、generate()などのメソッドを介して、または直接モデルに渡す準備ができています。return_dictが設定されている場合、代わりにトークナイザの出力のdictを返します。

"role"キーと"content"キーを持つ辞書のリストを、トークンIDのリストに変換します。このメソッドはチャットモデルでの使用を想定しており、変換時に使用するフォーマットおよび制御トークンを決定するために、トークナイザーのchat_template属性を読み取ります。

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

パラメータ

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID のリスト。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • clean_up_tokenization_spaces (bool、任意) — トークン化のスペースを整理するかどうか。None の場合、self.clean_up_tokenization_spaces がデフォルトとして使用されます。
  • kwargs (追加のキーワード引数、任意) — 基盤となるモデル固有のデコードメソッドに渡されます。

戻り値

list[str]

デコードされた文のリスト。

decode を呼び出して、トークン ID のリストのリストを文字列のリストに変換します。

このメソッドは後方互換性のために提供されています。decodeメソッドは現在、バッチ入力をネイティブで処理するため、batch_decodeの代わりにdecodeを直接使用できます。

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

パラメータ

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID の単一シーケンスまたはバッチ(シーケンスのリスト)です。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • kwargs (追加のキーワード引数、任意) — 基盤となるモデル固有のデコードメソッドに渡されます。

戻り値

Union[str, list[str]]

単一のシーケンスに対するデコード済み文字列、またはシーケンスのバッチに対するデコード済み文字列のリスト。

tokenizerとvocabularyを使用して、idのシーケンスを文字列に変換します。また、シーケンスのリストを文字列のリストに変換することもできます。特殊トークンの削除や、トークン化スペースのクリーンアップなどのオプションが利用可能です。

self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)) を実行するのと似ています。

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

パラメータ

  • text (str、list[str] または list[int]) — エンコードする最初のシーケンスです。文字列、文字列のリスト(tokenize メソッドでトークン化された文字列)、または整数のリスト(convert_tokens_to_ids メソッドでトークン化された文字列 ID)のいずれかです。
  • text_pair (str、list[str] または list[int]、任意) — エンコード対象の任意の第2シーケンスです。文字列、文字列のリスト(tokenize メソッドでトークン化された文字列)、または整数のリスト(convert_tokens_to_ids メソッドでトークン化された文字列ID)を指定できます。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け入れます:
    • True または 'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 省略可能, デフォルトは False) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、省略可能、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複を確保します。この引数の値は、重複するトークンの数を定義します。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • pad_to_multiple_of (int, 任意) — 設定すると、指定された値の倍数にシーケンスをパディングします。padding が有効になっている必要があります。 これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • **kwargs — .tokenize() メソッドに渡されます。

戻り値

list[int]、torch.Tensor、または np.ndarray

テキストのトークン化されたIDです。

トークナイザーと語彙を使用して、文字列をid(整数)のシーケンスに変換します。

self.convert_tokens_to_ids(self.tokenize(text)) を実行するのと同じです。

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

パラメータ

  • repo_id (str) — トークナイザーをプッシュするリポジトリの名前です。特定の組織にプッシュする場合は、組織名を含む必要があります。
  • commit_message (str, 任意) — プッシュ時にコミットするメッセージ。デフォルトは"Upload tokenizer"です。
  • commit_description (str, 省略可) — 作成されるコミットの説明
  • private (bool、省略可) — リポジトリを非公開にするかどうか。None(デフォルト)の場合、組織のデフォルトが非公開でない限り、リポジトリは公開になります。リポジトリが既に存在する場合、この値は無視されます。
  • token (bool または str、省略可) — リモートファイルの HTTP ベアラ認証に使用するトークン。True(デフォルト)の場合、hf auth login を実行した際に生成されたトークン(~/.huggingface に保存)が使用されます。
  • revision (str、省略可) — アップロードしたファイルをプッシュするブランチ。
  • create_pr (bool、省略可、デフォルトはFalse) — アップロードしたファイルを含む PR を作成するか、直接コミットするかどうかを指定します。
  • max_shard_size (int または str、省略可能、デフォルトは "50GB") — モデルにのみ適用されます。シャード化される前のチェックポイントの最大サイズです。シャード化されたチェックポイントは、それぞれがこのサイズ未満になります。文字列で指定する場合は、数字の後に単位("5MB" など)を続ける必要があります。
  • tags (list[str]、省略可) — Hub にプッシュするタグのリストです。

🤗 Model Hub にトークナイザーのファイルをアップロードします。

例:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

build_inputs_with_special_tokens

< >

( 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のリスト。

特殊トークンを追加して、シーケンスまたはシーケンスのペアからモデルの入力を構築します。

このメソッドは、トークナイザーのspecial_tokens_patternに基づいて入力を動的に構築します:

  • "none": 特別なトークンなし
  • "cls_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] または seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 または [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] または [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>(tokenizer に保存されたカスタムの prefix/suffix)

create_token_type_ids_from_sequences

< >

( 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。

シーケンスペア分類タスクで使用するために、渡された2つのシーケンスからマスクを作成します。

このメソッドは、トークナイザーの設定属性に基づいてトークンタイプIDを動的に構築します:

  • token_type_ids_pattern: 使用するパターン(“all_zeros”または“bert_style”)
  • token_type_ids_include_special_tokens: 長さの計算に特殊トークンを考慮するかどうか

例:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

戻り値

dict[str, int]

追加されたトークン。

語彙に追加されたトークンを、トークンからインデックスへの辞書として返します。現時点では、トークンがすでに語彙に存在する場合でも常に追加されるため、結果はfast呼び出しと異なる場合があります。これは変更すべき点です。

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

パラメータ

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

戻り値

範囲 [0, 1] 内の整数のリスト

特殊トークンには1、シーケンストークンには0を指定します。

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

このメソッドは、トークナイザーのspecial_tokens_patternに基づいて、特殊トークンのマスクを動的に構築します:

  • "none": 特殊トークンを指定しません(デフォルト、すべて 0 を返します)
  • "cls_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] または seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 または [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] または [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

パラメータ

  • pair (bool、省略可能、デフォルトは False) — シーケンスのペアの場合と単一のシーケンスの場合で、追加されるトークンの数を計算するかどうかを指定します。

戻り値

int

シーケンスに追加される特殊トークンの数。

特殊トークン付きでシーケンスをエンコードする際に追加されるトークンの数を返します。

これはダミー入力をエンコードし、追加されたトークンの数をチェックするため、効率的ではありません。この処理をトレーニングループ内に配置しないでください。

prepare_for_model

< >

( ids: list[int]pair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

パラメータ

  • ids — 最初のシーケンスのトークン化された入力 ID。
  • pair_ids — 2番目のシーケンスのトークン化された入力 ID(任意)。

モデルで使用できるように、入力IDのシーケンスを準備します。特殊トークンの追加、切り詰め、パディングを行います。

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

パラメータ

  • text (str) — 準備するテキスト。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • kwargs (dict[str, Any]、省略可) — トークン化に使用するキーワード引数です。

戻り値

tuple[str, dict[str, Any]]

準備されたテキストと、未使用のkwargs。

トークン化の前に、必要な変換を実行します。

このメソッドは、kwargsから引数をポップし、残りのkwargsも返す必要があります。エンコーディング処理の最後にkwargsをテストすることで、すべての引数が使用されたことを確認します。

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

パラメータ

  • save_directory (str) — 語彙を保存するディレクトリ。
  • filename_prefix (str, 任意) — 保存するファイル名に付加する任意のプレフィックスです。

戻り値

tuple[str, ...]

保存されたファイルへのパス。ファイルが保存されていない場合は空のタプル。

一般的な語彙保存パターン用のデフォルト実装です。 <self.encoder>/<self.vocab>をJSONとして保存し、必要に応じて<self.bpe_ranks>をmergesとして保存します。 語彙が存在しない場合は空のタプルを返します。

トークナイザーにカスタムの保存ロジック(SentencePieceモデル、複数の語彙ファイル、特殊なファイル形式など)が必要な場合は、このメソッドをオーバーライドしてください。

tokenize

< >

( text: str**kwargs )

パラメータ

  • text — エンコード対象のシーケンス。
  • **kwargs — モデル固有のprepare_for_tokenization前処理メソッドに渡されます。

トークナイザーを使用して、文字列をトークンのシーケンスに変換します。

truncate_sequences

< >

( ids: list[int]pair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

指定された戦略に従ってシーケンスを切り詰めます。

PreTrainedTokenizerFast

PreTrainedTokenizerFast は tokenizers ライブラリに依存しています。🤗 tokenizers ライブラリから取得したトークナイザーは、🤗 transformers に非常に簡単に読み込むことができます。その方法については、🤗 tokenizers のトークナイザーの使用 ページを参照してください。

クラス transformers.TokenizersBackend

< >

( *args**kwargs )

パラメータ

  • model_max_length (int, optional) — The maximum length (in number of tokens) for the inputs to the transformer model. When the tokenizer is loaded with from_pretrained(), this will be set to the value stored for the associated model in max_model_input_sizes (see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • truncation_side (str, 省略可) — モデルに切り詰めを適用する側です。[‘right’, ‘left’] から選択してください。 デフォルト値は、同名のクラス属性から選択されます。
  • chat_template (str、省略可) — チャットメッセージのリストを整形するために使用される Jinja テンプレート文字列です。詳細については、https://huggingface.co/docs/transformers/chat_templating を参照してください。
  • model_input_names (list[string]、任意) — モデルの forward pass が受け入れる入力のリスト("token_type_ids" や "attention_mask" など)です。デフォルト値は、同名のクラス属性から選択されます。
  • bos_token (str または tokenizers.AddedToken、省略可) — 文の開始を表す特殊トークンです。
  • eos_token (str または tokenizers.AddedToken、省略可能) — 文の終わりを表す特殊トークンです。
  • unk_token (str または tokenizers.AddedToken、省略可) — 語彙外のトークンを表す特殊トークンです。
  • sep_token (str または tokenizers.AddedToken、省略可) — 同一入力内の2つの異なる文を区切るための特殊トークン(BERTなどで使用されます)。
  • pad_token (str または tokenizers.AddedToken、省略可) — バッチ処理のためにトークン配列のサイズを揃える際に使用する特殊トークン。アテンション機構や損失計算では無視されます。
  • cls_token (str または tokenizers.AddedToken、省略可) — 入力のカテゴリを表す特別なトークンです(BERT などで使用されます)。
  • mask_token (str または tokenizers.AddedToken、省略可) — マスクされたトークンを表す特別なトークンです(BERT などのマスク言語モデリング事前学習目的で使用されます)。self.mask_token および self.mask_token_id に関連付けられます。
  • extra_special_tokens (str または tokenizers.AddedToken のリスト、省略可) — モデル固有の追加の特殊トークンのリストです。skip_special_tokens が True に設定されている場合、デコード時にこれらがスキップされることを保証するために、ここに追加してください。語彙に存在しない場合は、語彙の末尾に追加されます。
  • split_special_tokens (bool、省略可、デフォルトは False) — トークン化処理中に特殊トークンを分割するかどうかを指定します。この引数を渡すと、トークナイザーの内部状態に影響します。デフォルトの動作は、特殊トークンを分割しないことです。つまり、<s> が bos_token である場合、tokenizer.tokenize("<s>") = ['<s> となります。一方、split_special_tokens=True の場合、tokenizer.tokenize("<s>") は ['<','s', '>'] を返します。
  • tokenizer_object (tokenizers.Tokenizer) — インスタンス化の元となる 🤗 tokenizers の tokenizers.Tokenizer オブジェクト。詳細は 🤗 tokenizers のトークナイザーの使用 を参照してください。
  • tokenizer_file (str) — 🤗 tokenizers の以前にシリアライズされた tokenizers.Tokenizer オブジェクトを表すローカルの JSON ファイルへのパス。

すべての高速トークナイザーの基底クラス(HuggingFace tokenizers ライブラリをラップします)。

PreTrainedTokenizerBaseを継承します。

トークン化と特殊トークンに関する共通メソッド、事前学習済みトークナイザーのダウンロード/キャッシュ/読み込み、および語彙へのトークン追加に関するメソッドをすべて処理します。

このクラスは、すべてのトークナイザーに対して追加トークンを統一的に含めるため、BPE や sentencepiece など、基盤となる辞書構造の固有な語彙拡張メソッドを個別に処理する必要がありません。

クラス属性(派生クラスによって上書きされる)

  • vocab_files_names (dict[str, str]) — モデルに必要な各語彙ファイルの__init__キーワード名をキーとし、対応するファイルを保存するためのファイル名(文字列)を値とする辞書。
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — 辞書の辞書です。上位のキーは、モデルが要求する各語彙ファイルの __init__ キーワード引数名で、下位のキーは事前学習済みモデルの short-cut-names であり、対応する値として、関連する事前学習済み語彙ファイルへの url が格納されています。
  • model_input_names (list[str]) — モデルの forward pass で期待される入力のリスト。
  • padding_side (str) — モデルにパディングを適用する側のデフォルト値です。 'right' または 'left' を指定する必要があります。
  • truncation_side (str) — モデルに切り詰めを適用する側のデフォルト値。'right' または 'left' を指定します。

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

パラメータ

  • text (str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化済み文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_pair (str、list[str]、list[list[str]]、任意) — エンコード対象のシーケンスまたはシーケンスのバッチです。各シーケンスは、文字列または文字列のリスト(事前トークン化された文字列)であることができます。シーケンスが文字列のリスト(事前トークン化済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_target (str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • text_pair_target (str、list[str]、list[list[str]]、任意) — ターゲットテキストとしてエンコードされるシーケンスまたはシーケンスのバッチです。各シーケンスは文字列、または文字列のリスト(プレトークナイズ済み文字列)であることができます。シーケンスが文字列のリスト(プレトークナイズ済み)として提供される場合、is_split_into_words=True を設定する必要があります(シーケンスのバッチとの曖昧さを解消するため)。
  • tokenizer_kwargs (dict[str, Any]、省略可) — トークナイザーに渡す追加の kwargs です。これらは明示的なパラメータおよびその他の kwargs とマージされますが、明示的なパラメータが優先されます。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け入れます:
    • True または 'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 省略可能, デフォルトは False) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、省略可能、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複を確保します。この引数の値は、重複するトークンの数を定義します。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • pad_to_multiple_of (int, 任意) — 設定すると、指定された値の倍数にシーケンスをパディングします。padding が有効になっている必要があります。 これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • return_token_type_ids (bool, 省略可能) — トークンタイプIDを返すかどうか。デフォルトのままにすると、特定のトークナイザーのデフォルトに従ってトークンタイプIDを返します。これは return_outputs 属性で定義されます。

    トークンタイプIDとは?

  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、 return_outputs 属性によって定義される、特定の tokenizer のデフォルトに従って attention mask を返します。

    アテンションマスクとは?

  • return_overflowing_tokens (bool、任意、デフォルトは False) — 溢れ出したトークンシーケンスを返すかどうかを指定します。入力 ID のシーケンスのペア(またはペアのバッチ)が truncation_strategy = longest_first または True とともに提供された場合、溢れ出したトークンを返す代わりにエラーが発生します。
  • return_special_tokens_mask (bool、省略可能、デフォルトはFalse) — 特殊トークンのマスク情報を返すかどうかを指定します。
  • return_offsets_mapping (bool, 省略可能, デフォルトは False) — 各トークンについて (char_start, char_end) を返すかどうか。

    この機能は、PreTrainedTokenizerFast を継承する高速トークナイザーでのみ利用可能です。Python のトークナイザーを使用している場合、このメソッドは NotImplementedError を送出します。

  • return_length (bool、任意、デフォルトは False) — エンコードされた入力の長さを返すかどうかを指定します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。
  • **kwargs — self.tokenize() メソッドに渡されます

戻り値

BatchEncoding

以下のフィールドを持つBatchEncoding:

  • input_ids — モデルに与えるトークン ID のリスト。

    入力IDとは何ですか?

  • token_type_ids — モデルに渡すトークンタイプIDのリスト(return_token_type_ids=Trueの場合、またはself.model_input_namesに“token_type_ids”が含まれている場合)。

    トークンタイプIDとは?

  • attention_mask — モデルがどのトークンに注意を向けるべきかを指定するインデックスのリスト(return_attention_mask=True の場合、または self.model_input_names に “attention_mask” が含まれている場合)。

    アテンションマスクとは?

  • overflowing_tokens — 溢れ出したトークンシーケンスのリスト(max_lengthが指定され、return_overflowing_tokens=Trueの場合)。

  • num_truncated_tokens — トークンが切り詰められた数(max_length が指定され、return_overflowing_tokens=True の場合)。

  • special_tokens_mask — 0 と 1 のリスト。1 は追加された特殊トークンを、0 は通常のシーケンストークンを示します(add_special_tokens=True かつ return_special_tokens_mask=True の場合)。

  • length — 入力データの長さ(return_length=Trueの場合)

1 つ以上のシーケンス、または 1 つ以上のシーケンスのペアをトークナイズし、モデル用に準備するためのメインメソッドです。

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

パラメータ

  • new_tokens (str、tokenizers.AddedToken、または str または tokenizers.AddedToken のシーケンス) — トークンは、語彙にまだ存在しない場合のみ追加されます。tokenizers.AddedToken は文字列トークンをラップし、その動作を個別に設定できます。例えば、このトークンが単一の単語にのみ一致させるべきか、左側の潜在的な空白をすべて除去すべきか、右側の潜在的な空白をすべて除去すべきかなどです。
  • special_tokens (bool、省略可、デフォルトは False) — トークンが特殊トークンであるかどうかを指定します。主に正規化の動作に影響します。 詳細は、HuggingFace tokenizers ライブラリの tokenizers.AddedToken を参照してください。

戻り値

int

語彙に追加されるトークンの数。

#TODO ここから削除すること! PreTrainedTokenizerBase は AddedToken を意識しないようにすべきです。

新しいトークンのリストを追加します。新しいトークンが語彙に存在しない場合、末尾に追加されます。そのため、追加されたトークンと、トークン化アルゴリズムの語彙からのトークンは、同じように扱われません。

Metaspace プリトークナイザーを使用し、prepend_scheme="always" を指定した高速トークナイザー(NLLB など)は、追加トークンの後に続くテキストの先頭に "▁" を付加します。tokenizer.add_tokens(["abcd"]) を実行した後、"abcdgym" は ["abcd", "▁gym"] にトークン化され、デコードすると "abcd gym" になります。追加トークンが単語の内部に出現し得る場合は、プリトークナイザーを切り替えて

prepend_scheme="first" に設定し、入力のはじめの部分にのみプレフィックスを付与するようにします:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

例:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

パラメータ

  • special_tokens_dict (辞書 str から str, tokenizers.AddedToken, または Sequence[Union[str, AddedToken]]) — キーは、事前定義された特殊属性のリストに含まれる必要があります: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    トークンは、まだ語彙に存在しない場合のみ追加されます(unk_tokenのインデックスが割り当てられるかどうかを確認してテストします)。

  • replace_extra_special_tokens (bool、任意、デフォルトは True) — True の場合、special_tokens_dict で指定されたリストによって、既存の追加特殊トークンのリストが置き換えられます。それ以外の場合、extra_special_tokens が拡張されます。前者の場合、これらのトークンはトークナイザーの完全な語彙から削除されるわけではなく、単に非特殊トークンとしてフラグが付けられるだけです。なお、これはデコーディング時にスキップされるトークンを決定するものであり、added_tokens_encoder および added_tokens_decoder には影響しません。つまり、以前の extra_special_tokens は依然として追加トークンであり、モデルによって分割されることはありません。

戻り値

int

語彙に追加されるトークンの数。

エンコーダーに特殊トークン(eos、pad、cls など)の辞書を追加し、クラス属性にリンクします。特殊トークンが語彙に存在しない場合は、現在の語彙の最後のインデックスからインデックスを付けて語彙に追加されます。

語彙に新しいトークンを追加する場合は、モデルのトークン埋め込み行列をリサイズし、埋め込み行列がトークナイザーと一致するようにする必要があります。

そのためには、resize_token_embeddings() メソッドを使用してください。

add_special_tokens を使用すると、特別なトークンを以下の複数の方法で使用できます。

  • skip_special_tokens = True を使用すると、デコード時に特殊トークンをスキップできます。
  • 特殊トークンは、AddedTokensと同様に、トークナイザーによって慎重に処理されます(分割されることはありません)。
  • tokenizer.cls_token などの tokenizer クラスの属性を使用して、特殊トークンに簡単に参照できます。これにより、モデル非依存の学習およびファインチューニングスクリプトの開発が容易になります。

可能な限り、提供される事前学習済みモデルには特別なトークンがすでに登録されています(例えば、BertTokenizer の cls_token は '[CLS]' として、XLM のものは '</s>' として登録されています)。

例:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

パラメータ

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — “role”キーと“content”キーを持つ辞書のリストで、これまでに蓄積されたチャット履歴を表します。
  • tools (list[Union[Dict, Callable]]、省略可) — モデルからアクセス可能なツール(呼び出し可能な関数)のリストです。テンプレートが関数呼び出しをサポートしていない場合、この引数は無効になります。各ツールは、ツールの名前、説明、引数の型を指定した JSON Schema として渡す必要があります。詳細については、ツール使用ガイドを参照してください。
  • documents (list[dict[str, str]], 任意) — モデルが RAG(検索拡張生成)を実行している場合にアクセス可能な文書を表する dict のリストです。テンプレートが RAG をサポートしていない場合、この引数は無効になります。各文書は、“title” と “text” キーを含む dict であることが推奨されます。
  • chat_template (str、省略可) — この変換に使用する Jinja テンプレートです。モデルのテンプレートがデフォルトで使用されるため、この引数に何かを渡す必要は通常ありません。
  • add_generation_prompt (bool, 任意) — この値が設定されている場合、アシスタントメッセージの開始を示すトークンを含むプロンプトが、整形された出力の末尾に追加されます。これは、モデルから応答を生成したい場合に便利です。 なお、この引数はチャットテンプレートに渡されるため、この引数が効果を発揮するには、テンプレート側でのサポートが必要です。
  • continue_final_message (bool or str, 任意) — これを設定すると、チャットは最終メッセージがオープンエンドになるようにフォーマットされ、EOS トークンが付きません。モデルは新しいメッセージを開始するのではなく、このメッセージを続けます。これにより、モデルの応答の一部を「プリフィル」できます。文字列が渡された場合、継続するフィールドのキーとして使用されます(例: “reasoning_content”)。add_generation_prompt と同時に使用することはできません。
  • tokenize (bool、デフォルトはTrue) — 出力をトークン化するかどうかを指定します。Falseの場合、出力は文字列になります。
  • sanitize_control_tokens (bool、デフォルトは False) — 設定されている場合、メッセージ、ツール、ドキュメント、または **kwargs として渡されるテンプレート変数に含まれる制御トークンは通常のテキストとしてエンコードされ、チャットテンプレート自体によって書き込まれた制御トークンのみがトークンとしてエンコードされます。制御トークンとは、トークナイザーの特殊トークンと、tokenizer.chat_control_tokens に含まれる追加トークンのことです。この変数が設定されていない場合、チャットテンプレートのテキストと文字列リテラル中出现する追加トークンから制御トークンが推測されます。制御トークンの全体のみがサニタイズされるため、テンプレートが入力から文字列を結合して制御トークンを作成している場合('<|' + message['role'] + '|>' のように)、それらの文字列は別途検証する必要があります。辞書のキーもサニタイズされません。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:
    • Trueまたは'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool、デフォルトは False) — 最大長でシーケンスを切り詰めるかどうか。tokenize が False の場合は無効です。
  • max_length (int, 省略可) — パディングや切り詰めのために使用する最大長(トークン数)。tokenize が False の場合は無効です。指定しない場合、デフォルトとしてトークナイザーの max_length 属性が使用されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。tokenize が False. 指定可能な値は次のとおりです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': NumPyのnp.ndarrayオブジェクトを返します。
  • return_dict (bool、デフォルトは True) — 名前付き出力を含む辞書を返すかどうかを指定します。False の場合は、この引数は無効になります。
  • tokenizer_kwargs (dict[str -- Any]、省略可): トークナイザーに渡す追加のキーワード引数。
  • return_assistant_tokens_mask (bool、デフォルトはFalse) — アシスタントが生成したトークンのマスクを返すかどうかを指定します。アシスタントが生成したトークンに対しては、マスクに 1 が含まれます。ユーザーおよびシステムのトークンに対しては、マスクに 0 が含まれます。この機能は、{% generation %} キーワードを通じてサポートされているチャットテンプレートのみに利用可能です。
  • **kwargs — テンプレートレンダラーに渡す追加の kwargs です。チャットテンプレートからアクセスできます。

戻り値

Union[list[int], Dict]

これまでにトークン化されたチャットを表するトークンIDのリストです。制御トークンも含みます。この出力は、generate()などのメソッドを介して、または直接モデルに渡す準備ができています。return_dictが設定されている場合、代わりにトークナイザの出力のdictを返します。

"role"キーと"content"キーを持つ辞書のリストを、トークンIDのリストに変換します。このメソッドはチャットモデルでの使用を想定しており、変換時に使用するフォーマットおよび制御トークンを決定するために、トークナイザーのchat_template属性を読み取ります。

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

パラメータ

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID のリスト。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • clean_up_tokenization_spaces (bool、任意) — トークン化のスペースを整理するかどうか。None の場合、self.clean_up_tokenization_spaces がデフォルトとして使用されます。
  • kwargs (追加のキーワード引数、任意) — 基盤となるモデル固有のデコードメソッドに渡されます。

戻り値

list[str]

デコードされた文のリスト。

decode を呼び出して、トークン ID のリストのリストを文字列のリストに変換します。

このメソッドは後方互換性のために提供されています。decodeメソッドは現在、バッチ入力をネイティブで処理するため、batch_decodeの代わりにdecodeを直接使用できます。

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

パラメータ

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — トークン化された入力 ID の単一シーケンスまたはバッチ(シーケンスのリスト)です。__call__ メソッドを使用して取得できます。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。
  • kwargs (追加のキーワード引数、任意) — 基盤となるモデル固有のデコードメソッドに渡されます。

戻り値

Union[str, list[str]]

単一のシーケンスに対するデコード済み文字列、またはシーケンスのバッチに対するデコード済み文字列のリスト。

tokenizerとvocabularyを使用して、idのシーケンスを文字列に変換します。また、シーケンスのリストを文字列のリストに変換することもできます。特殊トークンの削除や、トークン化スペースのクリーンアップなどのオプションが利用可能です。

self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)) を実行するのと似ています。

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

パラメータ

  • text (str、list[str] または list[int]) — エンコードする最初のシーケンスです。文字列、文字列のリスト(tokenize メソッドでトークン化された文字列)、または整数のリスト(convert_tokens_to_ids メソッドでトークン化された文字列 ID)のいずれかです。
  • text_pair (str、list[str] または list[int]、任意) — エンコード対象の任意の第2シーケンスです。文字列、文字列のリスト(tokenize メソッドでトークン化された文字列)、または整数のリスト(convert_tokens_to_ids メソッドでトークン化された文字列ID)を指定できます。
  • add_special_tokens (bool、省略可、デフォルトは True) — シーケンスをエンコードする際に特殊トークンを追加するかどうかを指定します。これは、入力 ID に自動的に追加されるトークンを定義する基盤となる PretrainedTokenizerBase.build_inputs_with_special_tokens 関数を使用します。bos や eos トークンを自動的に追加したい場合に便利です。
  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは False) — パディングの有効化と制御を行います。以下の値を受け入れます:
    • True または 'longest': バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad'(デフォルト):パディングを行いません(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • truncation (bool, str または TruncationStrategy, 省略可能, デフォルトは False) — 切り詰めを有効にし、制御します。以下の値を受け取ります:
    • True または 'longest_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが許容する最大入力長まで切り詰めます。この場合、トークン単位で切り詰めが行われ、ペアのシーケンス(またはペアのバッチ)が提供されている場合は、ペアの中で最も長いシーケンスから1トークンずつ削除します。
    • 'only_first': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れることのできる最大入力長まで切り詰めます。この設定では、ペアのシーケンス(またはペアのバッチ)が提供された場合のみ、ペアの最初のシーケンスだけが切り詰められます。
    • 'only_second': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長まで切り詰めます。このモードでは、シーケンスのペア(またはペアのバッチ)が提供された場合のみ、ペアの2番目のシーケンスが切り詰められます。
    • False または 'do_not_truncate'(デフォルト): トランケーションを行いません(つまり、モデルが許容する最大入力サイズを超えるシーケンス長を持つバッチを出力する可能性があります)。
  • max_length (int, 省略可能) — truncation/padding パラメータのいずれかによって使用される最大長を制御します。

    未設定のまま、またはNoneに設定されている場合、truncation/padding パラメータのいずれかが最大長を必要とする場合、事前に定義されたモデルの最大長が使用されます。モデルに特定の最大入力長がない場合(XLNet など)、最大長への truncation/padding は無効になります。

  • stride (int、省略可能、デフォルトは 0) — max_length とともに数値が設定されている場合、return_overflowing_tokens=True で返されるオーバーフローしたトークンは、切り詰められたシーケンスの末尾の一部のトークンを含み、切り詰められたシーケンスとオーバーフローしたシーケンスの間に重複を確保します。この引数の値は、重複するトークンの数を定義します。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • pad_to_multiple_of (int, 任意) — 設定すると、指定された値の倍数にシーケンスをパディングします。padding が有効になっている必要があります。 これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェア上で Tensor Cores を使用可能にするために特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • **kwargs — .tokenize() メソッドに渡されます。

戻り値

list[int]、torch.Tensor、または np.ndarray

テキストのトークン化されたIDです。

トークナイザーと語彙を使用して、文字列をid(整数)のシーケンスに変換します。

self.convert_tokens_to_ids(self.tokenize(text)) を実行するのと同じです。

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

パラメータ

  • repo_id (str) — トークナイザーをプッシュするリポジトリの名前です。特定の組織にプッシュする場合は、組織名を含む必要があります。
  • commit_message (str, 任意) — プッシュ時にコミットするメッセージ。デフォルトは"Upload tokenizer"です。
  • commit_description (str, 省略可) — 作成されるコミットの説明
  • private (bool、省略可) — リポジトリを非公開にするかどうか。None(デフォルト)の場合、組織のデフォルトが非公開でない限り、リポジトリは公開になります。リポジトリが既に存在する場合、この値は無視されます。
  • token (bool または str、省略可) — リモートファイルの HTTP ベアラ認証に使用するトークン。True(デフォルト)の場合、hf auth login を実行した際に生成されたトークン(~/.huggingface に保存)が使用されます。
  • revision (str、省略可) — アップロードしたファイルをプッシュするブランチ。
  • create_pr (bool、省略可、デフォルトはFalse) — アップロードしたファイルを含む PR を作成するか、直接コミットするかどうかを指定します。
  • max_shard_size (int または str、省略可能、デフォルトは "50GB") — モデルにのみ適用されます。シャード化される前のチェックポイントの最大サイズです。シャード化されたチェックポイントは、それぞれがこのサイズ未満になります。文字列で指定する場合は、数字の後に単位("5MB" など)を続ける必要があります。
  • tags (list[str]、省略可) — Hub にプッシュするタグのリストです。

🤗 Model Hub にトークナイザーのファイルをアップロードします。

例:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

利用可能なシリアライズファイル(tokenizer.json、sentencepieceモデル、tekken.json、vocab/merges)からtokenizers.Tokenizerバックエンドを構築します。

get_added_vocab

< >

( ) → dict[str, int]

戻り値

dict[str, int]

追加されたトークン。

語彙に追加されたトークンを、トークンからインデックスへの辞書として返します。

num_special_tokens_to_add

< >

( pair: bool = False ) → int

パラメータ

  • pair (bool、省略可能、デフォルトは False) — シーケンスのペアの場合と単一のシーケンスの場合で、追加されるトークンの数を計算するかどうかを指定します。

戻り値

int

シーケンスに追加される特殊トークンの数。

特殊トークン付きでシーケンスをエンコードする際に追加されるトークンの数を返します。

これはダミー入力をエンコードし、追加されたトークンの数をチェックするため、効率的ではありません。この処理をトレーニングループ内に配置しないでください。

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

パラメータ

  • save_format (str, 省略可) — "mistral" を指定すると、元のファイルをコピーしてネイティブの tekken.json として保存します(元の tekken 語彙ファイルが利用可能である必要があります)。保存時にファイル名は tekken.json に正規化され、インスタンス化されたトークナイザーはこれと完全に一致している必要があります。 "hf" または None を指定すると、デフォルトの HuggingFace 形式になります。
  • kwargs (dict[str, Any]、省略可) — push_to_hub() メソッドに渡される追加のキーワード引数。

戻り値

str のタプル

保存されたファイル。

トークナイザーの完全な状態を保存します。

ネイティブ語彙ファイル(例: Mistral の tekken.json)から変換されたトークナイザー向けに、save_format のサポートを追加して save_pretrained() を拡張します。legacy_format、filename_prefix、および push_to_hub については、ベースメソッドを参照してください。

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

パラメータ

  • padding_strategy (PaddingStrategy) — 入力に適用されるパディングの種類
  • truncation_strategy (TruncationStrategy) — 入力に適用される切り詰めの種類
  • max_length (int) — シーケンスの最大サイズ。
  • stride (int) — オーバーフローを処理する際に使用するストライド。
  • pad_to_multiple_of (int, 省略可) — 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェアで Tensor Cores を使用できるようにするため、特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。

fast tokenizers(HuggingFace tokenizers ライブラリによって提供される)に対して、切り詰め(truncation)とパディング(padding)の戦略を定義し、その後、トークナイザーの設定を復元します。

提供されたトークナイザーには、管理セクションの前にパディング / トランケーション戦略が設定されていません。トークナイザーが以前にパディング / トランケーション戦略を設定していた場合、管理セクションを終了する際に、パディング / トランケーションなしにリセットされます。

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

パラメータ

  • text_iterator (list[str] のジェネレーター) — 学習コーパスです。テキストのバッチのジェネレーターである必要があります。例えば、すべてをメモリに保持している場合は、テキストのリストのリストになります。
  • vocab_size (int) — トークナイザーに使用したい語彙のサイズです。
  • length (int, 任意) — イテレータ内のシーケンスの総数です。意味のある進捗の追跡に使用されます。
  • new_special_tokens (str または AddedToken のリスト、省略可) — 学習中のトークナイザーに追加する新しい特殊トークンのリストです。
  • special_tokens_map (dict[str, str]、省略可) — このトークナイザーが使用する一部の特殊トークンの名前を変更する場合は、この引数に、元の特殊トークン名から新しい特殊トークン名へのマッピングを渡します。
  • kwargs (dict[str, Any]、省略可) — 🤗 Tokenizers ライブラリからトレーナーに渡される追加のキーワード引数。

text_iteratorで学習された、元のトークナイザーと同じタイプの新しいトークナイザー。

現在のトークナイザーと同じデフォルト(特殊トークンやトークナイズパイプラインに関するもの)を維持したまま、新しいコーパスでトークナイザーを学習します。

update_post_processor

< >

( )

現在のbos_tokenとeos_tokenで、基盤となるpost processorを更新します。

PythonBackend

class transformers.PythonBackend

< >

( **kwargs )

パラメータ

  • model_max_length (int, optional) — The maximum length (in number of tokens) for the inputs to the transformer model. When the tokenizer is loaded with from_pretrained(), this will be set to the value stored for the associated model in max_model_input_sizes (see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • truncation_side (str, 省略可) — モデルに切り詰めを適用する側です。[‘right’, ‘left’] から選択してください。 デフォルト値は、同名のクラス属性から選択されます。
  • chat_template (str、省略可) — チャットメッセージのリストを整形するために使用される Jinja テンプレート文字列です。詳細については、https://huggingface.co/docs/transformers/chat_templating を参照してください。
  • model_input_names (list[string]、任意) — モデルの forward pass が受け入れる入力のリスト("token_type_ids" や "attention_mask" など)です。デフォルト値は、同名のクラス属性から選択されます。
  • bos_token (str または tokenizers.AddedToken、省略可) — 文の開始を表す特殊トークンです。
  • eos_token (str または tokenizers.AddedToken、省略可能) — 文の終わりを表す特殊トークンです。
  • unk_token (str または tokenizers.AddedToken、省略可) — 語彙外のトークンを表す特殊トークンです。
  • sep_token (str または tokenizers.AddedToken、省略可) — 同一入力内の2つの異なる文を区切るための特殊トークン(BERTなどで使用されます)。
  • pad_token (str または tokenizers.AddedToken、省略可) — バッチ処理のためにトークン配列のサイズを揃える際に使用する特殊トークン。アテンション機構や損失計算では無視されます。
  • cls_token (str または tokenizers.AddedToken、省略可) — 入力のカテゴリを表す特別なトークンです(BERT などで使用されます)。
  • mask_token (str または tokenizers.AddedToken、省略可) — マスクされたトークンを表す特別なトークンです(BERT などのマスク言語モデリング事前学習目的で使用されます)。self.mask_token および self.mask_token_id に関連付けられます。
  • extra_special_tokens (str または tokenizers.AddedToken のリスト、省略可) — モデル固有の追加の特殊トークンのリストです。skip_special_tokens が True に設定されている場合、デコード時にこれらがスキップされることを保証するために、ここに追加してください。語彙に存在しない場合は、語彙の末尾に追加されます。
  • split_special_tokens (bool、省略可、デフォルトは False) — トークン化処理中に特殊トークンを分割するかどうかを指定します。この引数を渡すと、トークナイザーの内部状態に影響します。デフォルトの動作は、特殊トークンを分割しないことです。つまり、<s> が bos_token である場合、tokenizer.tokenize("<s>") = ['<s> となります。一方、split_special_tokens=True の場合、tokenizer.tokenize("<s>") は ['<','s', '>'] を返します。

すべてのスロートークナイザーの基底クラス。

PreTrainedTokenizerBaseを継承します。

トークン化および特殊トークンに関するすべての共有メソッド、事前学習済みトークナイザーのダウンロード/キャッシュ/読み込み、および語彙へのトークン追加に関するメソッドを処理します。

このクラスは、すべてのトークナイザーに対して追加トークンを統一的に含めるため、BPE や sentencepiece など、基盤となる辞書構造固有の語彙拡張メソッドを個別に処理する必要がありません。

クラス属性(派生クラスによって上書きされる)

  • vocab_files_names (dict[str, str]) — モデルに必要な各語彙ファイルの__init__キーワード名をキーとし、対応するファイルを保存するためのファイル名(文字列)を値とする辞書。
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — 辞書の辞書です。上位のキーは、モデルが要求する各語彙ファイルの __init__ キーワード引数名で、下位のキーは事前学習済みモデルの short-cut-names であり、対応する値として、関連する事前学習済み語彙ファイルへの url が格納されています。
  • model_input_names (list[str]) — モデルの forward pass で期待される入力のリスト。
  • padding_side (str) — モデルにパディングを適用する側のデフォルト値です。 'right' または 'left' を指定する必要があります。
  • truncation_side (str) — モデルに切り詰めを適用する側のデフォルト値。'right' または 'left' を指定します。

build_inputs_with_special_tokens

< >

( 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のリスト。

特殊トークンを追加して、シーケンスまたはシーケンスのペアからモデルの入力を構築します。

このメソッドは、トークナイザーのspecial_tokens_patternに基づいて入力を動的に構築します:

  • "none": 特別なトークンなし
  • "cls_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] または seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 または [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] または [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>(tokenizer に保存されたカスタムの prefix/suffix)

create_token_type_ids_from_sequences

< >

( 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。

シーケンスペア分類タスクで使用するために、渡された2つのシーケンスからマスクを作成します。

このメソッドは、トークナイザーの設定属性に基づいてトークンタイプIDを動的に構築します:

  • token_type_ids_pattern: 使用するパターン(“all_zeros”または“bert_style”)
  • token_type_ids_include_special_tokens: 長さの計算に特殊トークンを考慮するかどうか

例:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

戻り値

dict[str, int]

追加されたトークン。

語彙に追加されたトークンを、トークンからインデックスへの辞書として返します。現時点では、トークンがすでに語彙に存在する場合でも常に追加されるため、結果はfast呼び出しと異なる場合があります。これは変更すべき点です。

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

パラメータ

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

戻り値

範囲 [0, 1] 内の整数のリスト

特殊トークンには1、シーケンストークンには0を指定します。

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

このメソッドは、トークナイザーのspecial_tokens_patternに基づいて、特殊トークンのマスクを動的に構築します:

  • "none": 特殊トークンを指定しません(デフォルト、すべて 0 を返します)
  • "cls_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] または seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 または [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] または [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] または [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

パラメータ

  • pair (bool、省略可能、デフォルトは False) — シーケンスのペアの場合と単一のシーケンスの場合で、追加されるトークンの数を計算するかどうかを指定します。

戻り値

int

シーケンスに追加される特殊トークンの数。

特殊トークン付きでシーケンスをエンコードする際に追加されるトークンの数を返します。

これはダミー入力をエンコードし、追加されたトークンの数をチェックするため、効率的ではありません。この処理をトレーニングループ内に配置しないでください。

prepare_for_model

< >

( ids: list[int]pair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

パラメータ

  • ids — 最初のシーケンスのトークン化された入力 ID。
  • pair_ids — 2番目のシーケンスのトークン化された入力 ID(任意)。

モデルで使用できるように、入力IDのシーケンスを準備します。特殊トークンの追加、切り詰め、パディングを行います。

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

パラメータ

  • text (str) — 準備するテキスト。
  • is_split_into_words (bool、任意、デフォルトは False) — 入力がすでに事前トークン化済み(例:単語に分割済み)かどうかを指定します。True に設定すると、トークナイザーは入力がすでに単語に分割済み(たとえば空白で分割済み)であると仮定し、それをトークン化します。これは NER やトークン分類に有用です。
  • kwargs (dict[str, Any]、省略可) — トークン化に使用するキーワード引数です。

戻り値

tuple[str, dict[str, Any]]

準備されたテキストと、未使用のkwargs。

トークン化の前に、必要な変換を実行します。

このメソッドは、kwargsから引数をポップし、残りのkwargsも返す必要があります。エンコーディング処理の最後にkwargsをテストすることで、すべての引数が使用されたことを確認します。

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

パラメータ

  • save_directory (str) — 語彙を保存するディレクトリ。
  • filename_prefix (str, 任意) — 保存するファイル名に付加する任意のプレフィックスです。

戻り値

tuple[str, ...]

保存されたファイルへのパス。ファイルが保存されていない場合は空のタプル。

一般的な語彙保存パターン用のデフォルト実装です。 <self.encoder>/<self.vocab>をJSONとして保存し、必要に応じて<self.bpe_ranks>をmergesとして保存します。 語彙が存在しない場合は空のタプルを返します。

トークナイザーにカスタムの保存ロジック(SentencePieceモデル、複数の語彙ファイル、特殊なファイル形式など)が必要な場合は、このメソッドをオーバーライドしてください。

tokenize

< >

( text: str**kwargs )

パラメータ

  • text — エンコード対象のシーケンス。
  • **kwargs — モデル固有のprepare_for_tokenization前処理メソッドに渡されます。

トークナイザーを使用して、文字列をトークンのシーケンスに変換します。

truncate_sequences

< >

( ids: list[int]pair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

指定された戦略に従ってシーケンスを切り詰めます。

TokenizersBackend

クラス transformers.TokenizersBackend

< >

( *args**kwargs )

パラメータ

  • model_max_length (int, optional) — The maximum length (in number of tokens) for the inputs to the transformer model. When the tokenizer is loaded with from_pretrained(), this will be set to the value stored for the associated model in max_model_input_sizes (see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • truncation_side (str, 省略可) — モデルに切り詰めを適用する側です。[‘right’, ‘left’] から選択してください。 デフォルト値は、同名のクラス属性から選択されます。
  • chat_template (str、省略可) — チャットメッセージのリストを整形するために使用される Jinja テンプレート文字列です。詳細については、https://huggingface.co/docs/transformers/chat_templating を参照してください。
  • model_input_names (list[string]、任意) — モデルの forward pass が受け入れる入力のリスト("token_type_ids" や "attention_mask" など)です。デフォルト値は、同名のクラス属性から選択されます。
  • bos_token (str または tokenizers.AddedToken、省略可) — 文の開始を表す特殊トークンです。
  • eos_token (str または tokenizers.AddedToken、省略可能) — 文の終わりを表す特殊トークンです。
  • unk_token (str または tokenizers.AddedToken、省略可) — 語彙外のトークンを表す特殊トークンです。
  • sep_token (str または tokenizers.AddedToken、省略可) — 同一入力内の2つの異なる文を区切るための特殊トークン(BERTなどで使用されます)。
  • pad_token (str または tokenizers.AddedToken、省略可) — バッチ処理のためにトークン配列のサイズを揃える際に使用する特殊トークン。アテンション機構や損失計算では無視されます。
  • cls_token (str または tokenizers.AddedToken、省略可) — 入力のカテゴリを表す特別なトークンです(BERT などで使用されます)。
  • mask_token (str または tokenizers.AddedToken、省略可) — マスクされたトークンを表す特別なトークンです(BERT などのマスク言語モデリング事前学習目的で使用されます)。self.mask_token および self.mask_token_id に関連付けられます。
  • extra_special_tokens (str または tokenizers.AddedToken のリスト、省略可) — モデル固有の追加の特殊トークンのリストです。skip_special_tokens が True に設定されている場合、デコード時にこれらがスキップされることを保証するために、ここに追加してください。語彙に存在しない場合は、語彙の末尾に追加されます。
  • split_special_tokens (bool、省略可、デフォルトは False) — トークン化処理中に特殊トークンを分割するかどうかを指定します。この引数を渡すと、トークナイザーの内部状態に影響します。デフォルトの動作は、特殊トークンを分割しないことです。つまり、<s> が bos_token である場合、tokenizer.tokenize("<s>") = ['<s> となります。一方、split_special_tokens=True の場合、tokenizer.tokenize("<s>") は ['<','s', '>'] を返します。
  • tokenizer_object (tokenizers.Tokenizer) — インスタンス化の元となる 🤗 tokenizers の tokenizers.Tokenizer オブジェクト。詳細は 🤗 tokenizers のトークナイザーの使用 を参照してください。
  • tokenizer_file (str) — 🤗 tokenizers の以前にシリアライズされた tokenizers.Tokenizer オブジェクトを表すローカルの JSON ファイルへのパス。

すべての高速トークナイザーの基底クラス(HuggingFace tokenizers ライブラリをラップします)。

PreTrainedTokenizerBaseを継承します。

トークン化と特殊トークンに関する共通メソッド、事前学習済みトークナイザーのダウンロード/キャッシュ/読み込み、および語彙へのトークン追加に関するメソッドをすべて処理します。

このクラスは、すべてのトークナイザーに対して追加トークンを統一的に含めるため、BPE や sentencepiece など、基盤となる辞書構造の固有な語彙拡張メソッドを個別に処理する必要がありません。

クラス属性(派生クラスによって上書きされる)

  • vocab_files_names (dict[str, str]) — モデルに必要な各語彙ファイルの__init__キーワード名をキーとし、対応するファイルを保存するためのファイル名(文字列)を値とする辞書。
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — 辞書の辞書です。上位のキーは、モデルが要求する各語彙ファイルの __init__ キーワード引数名で、下位のキーは事前学習済みモデルの short-cut-names であり、対応する値として、関連する事前学習済み語彙ファイルへの url が格納されています。
  • model_input_names (list[str]) — モデルの forward pass で期待される入力のリスト。
  • padding_side (str) — モデルにパディングを適用する側のデフォルト値です。 'right' または 'left' を指定する必要があります。
  • truncation_side (str) — モデルに切り詰めを適用する側のデフォルト値。'right' または 'left' を指定します。

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

利用可能なシリアライズファイル(tokenizer.json、sentencepieceモデル、tekken.json、vocab/merges)からtokenizers.Tokenizerバックエンドを構築します。

get_added_vocab

< >

( ) → dict[str, int]

戻り値

dict[str, int]

追加されたトークン。

語彙に追加されたトークンを、トークンからインデックスへの辞書として返します。

num_special_tokens_to_add

< >

( pair: bool = False ) → int

パラメータ

  • pair (bool、省略可能、デフォルトは False) — シーケンスのペアの場合と単一のシーケンスの場合で、追加されるトークンの数を計算するかどうかを指定します。

戻り値

int

シーケンスに追加される特殊トークンの数。

特殊トークン付きでシーケンスをエンコードする際に追加されるトークンの数を返します。

これはダミー入力をエンコードし、追加されたトークンの数をチェックするため、効率的ではありません。この処理をトレーニングループ内に配置しないでください。

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

パラメータ

  • save_format (str, 省略可) — "mistral" を指定すると、元のファイルをコピーしてネイティブの tekken.json として保存します(元の tekken 語彙ファイルが利用可能である必要があります)。保存時にファイル名は tekken.json に正規化され、インスタンス化されたトークナイザーはこれと完全に一致している必要があります。 "hf" または None を指定すると、デフォルトの HuggingFace 形式になります。
  • kwargs (dict[str, Any]、省略可) — push_to_hub() メソッドに渡される追加のキーワード引数。

戻り値

str のタプル

保存されたファイル。

トークナイザーの完全な状態を保存します。

ネイティブ語彙ファイル(例: Mistral の tekken.json)から変換されたトークナイザー向けに、save_format のサポートを追加して save_pretrained() を拡張します。legacy_format、filename_prefix、および push_to_hub については、ベースメソッドを参照してください。

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

パラメータ

  • padding_strategy (PaddingStrategy) — 入力に適用されるパディングの種類
  • truncation_strategy (TruncationStrategy) — 入力に適用される切り詰めの種類
  • max_length (int) — シーケンスの最大サイズ。
  • stride (int) — オーバーフローを処理する際に使用するストライド。
  • pad_to_multiple_of (int, 省略可) — 設定すると、シーケンスを指定された値の倍数にパディングします。これは、計算能力が >= 7.5 (Volta) の NVIDIA ハードウェアで Tensor Cores を使用できるようにするため、特に有用です。
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。

fast tokenizers(HuggingFace tokenizers ライブラリによって提供される)に対して、切り詰め(truncation)とパディング(padding)の戦略を定義し、その後、トークナイザーの設定を復元します。

提供されたトークナイザーには、管理セクションの前にパディング / トランケーション戦略が設定されていません。トークナイザーが以前にパディング / トランケーション戦略を設定していた場合、管理セクションを終了する際に、パディング / トランケーションなしにリセットされます。

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

パラメータ

  • text_iterator (list[str] のジェネレーター) — 学習コーパスです。テキストのバッチのジェネレーターである必要があります。例えば、すべてをメモリに保持している場合は、テキストのリストのリストになります。
  • vocab_size (int) — トークナイザーに使用したい語彙のサイズです。
  • length (int, 任意) — イテレータ内のシーケンスの総数です。意味のある進捗の追跡に使用されます。
  • new_special_tokens (str または AddedToken のリスト、省略可) — 学習中のトークナイザーに追加する新しい特殊トークンのリストです。
  • special_tokens_map (dict[str, str]、省略可) — このトークナイザーが使用する一部の特殊トークンの名前を変更する場合は、この引数に、元の特殊トークン名から新しい特殊トークン名へのマッピングを渡します。
  • kwargs (dict[str, Any]、省略可) — 🤗 Tokenizers ライブラリからトレーナーに渡される追加のキーワード引数。

text_iteratorで学習された、元のトークナイザーと同じタイプの新しいトークナイザー。

現在のトークナイザーと同じデフォルト(特殊トークンやトークナイズパイプラインに関するもの)を維持したまま、新しいコーパスでトークナイザーを学習します。

update_post_processor

< >

( )

現在のbos_tokenとeos_tokenで、基盤となるpost processorを更新します。

SentencePieceBackend

class transformers.SentencePieceBackend

< >

( **kwargs )

パラメータ

  • model_max_length (int, optional) — The maximum length (in number of tokens) for the inputs to the transformer model. When the tokenizer is loaded with from_pretrained(), this will be set to the value stored for the associated model in max_model_input_sizes (see above). If no value is provided, will default to VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • truncation_side (str, 省略可) — モデルに切り詰めを適用する側です。[‘right’, ‘left’] から選択してください。 デフォルト値は、同名のクラス属性から選択されます。
  • chat_template (str、省略可) — チャットメッセージのリストを整形するために使用される Jinja テンプレート文字列です。詳細については、https://huggingface.co/docs/transformers/chat_templating を参照してください。
  • model_input_names (list[string]、任意) — モデルの forward pass が受け入れる入力のリスト("token_type_ids" や "attention_mask" など)です。デフォルト値は、同名のクラス属性から選択されます。
  • bos_token (str または tokenizers.AddedToken、省略可) — 文の開始を表す特殊トークンです。
  • eos_token (str または tokenizers.AddedToken、省略可能) — 文の終わりを表す特殊トークンです。
  • unk_token (str または tokenizers.AddedToken、省略可) — 語彙外のトークンを表す特殊トークンです。
  • sep_token (str または tokenizers.AddedToken、省略可) — 同一入力内の2つの異なる文を区切るための特殊トークン(BERTなどで使用されます)。
  • pad_token (str または tokenizers.AddedToken、省略可) — バッチ処理のためにトークン配列のサイズを揃える際に使用する特殊トークン。アテンション機構や損失計算では無視されます。
  • cls_token (str または tokenizers.AddedToken、省略可) — 入力のカテゴリを表す特別なトークンです(BERT などで使用されます)。
  • mask_token (str または tokenizers.AddedToken、省略可) — マスクされたトークンを表す特別なトークンです(BERT などのマスク言語モデリング事前学習目的で使用されます)。self.mask_token および self.mask_token_id に関連付けられます。
  • extra_special_tokens (str または tokenizers.AddedToken のリスト、省略可) — モデル固有の追加の特殊トークンのリストです。skip_special_tokens が True に設定されている場合、デコード時にこれらがスキップされることを保証するために、ここに追加してください。語彙に存在しない場合は、語彙の末尾に追加されます。
  • split_special_tokens (bool、省略可、デフォルトは False) — トークン化処理中に特殊トークンを分割するかどうかを指定します。この引数を渡すと、トークナイザーの内部状態に影響します。デフォルトの動作は、特殊トークンを分割しないことです。つまり、<s> が bos_token である場合、tokenizer.tokenize("<s>") = ['<s> となります。一方、split_special_tokens=True の場合、tokenizer.tokenize("<s>") は ['<','s', '>'] を返します。

sentencepiece.modelファイルから読み込むSentencePieceベースのトークナイザーの基底クラスです。

PreTrainedTokenizerを継承します。

トークン化および特殊トークンに関するすべての共有メソッド、事前学習済みトークナイザーのダウンロード/キャッシュ/読み込み、および語彙へのトークン追加に関するメソッドを処理します。

このクラスは、すべてのトークナイザーに対して追加トークンを統一的に含めるため、BPE や sentencepiece など、基盤となる辞書構造固有の語彙拡張メソッドを個別に処理する必要がありません。

クラス属性(派生クラスによって上書きされる)

  • vocab_files_names (dict[str, str]) — モデルに必要な各語彙ファイルの__init__キーワード名をキーとし、対応するファイルを保存するためのファイル名(文字列)を値とする辞書。
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — 辞書の辞書です。上位のキーは、モデルが要求する各語彙ファイルの __init__ キーワード引数名で、下位のキーは事前学習済みモデルの short-cut-names であり、対応する値として、関連する事前学習済み語彙ファイルへの url が格納されています。
  • model_input_names (list[str]) — モデルの forward pass で期待される入力のリスト。
  • padding_side (str) — モデルにパディングを適用する側のデフォルト値です。 'right' または 'left' を指定する必要があります。
  • truncation_side (str) — モデルに切り詰めを適用する側のデフォルト値。'right' または 'left' を指定します。

convert_tokens_to_string

< >

( tokens: list[str] )

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

get_vocab

< >

( )

辞書として語彙を返します

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

パラメータ

  • save_directory (str) — 語彙を保存するディレクトリ。
  • filename_prefix (str, 任意) — 保存するファイル名に付加する任意のプレフィックスです。

戻り値

tuple(str)

保存されたファイルへのパス。

sentencepieceの語彙(元のファイルのコピー)をディレクトリに保存します。

BatchEncoding

クラス transformers.BatchEncoding

< >

( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )

パラメータ

  • data (dict, 任意) — __call__/encode_plus/batch_encode_plus メソッドによって返される、リスト/配列/テンソルの辞書(‘input_ids’、‘attention_mask’ など)。
  • encoding (tokenizers.Encoding または Sequence[tokenizers.Encoding]、任意) — トークナイザーが、単語/文字空間からトークン空間へのマッピングなどの追加情報を出力する fast tokenizer の場合、tokenizers.Encoding インスタンス(バッチの場合はインスタンスのリスト)がこの情報を保持します。
  • tensor_type (Union[None, str, TensorType], 省略可) — tensor_type を指定すると、初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換できます。
  • prepend_batch_axis (bool、任意、デフォルトは False) — テンソルに変換する際にバッチ軸を追加するかどうかを指定します(上記の tensor_type を参照)。tensor_type パラメータが設定されている場合のみこのパラメータが有効であり、それ以外の場合は無効です。
  • n_sequences (Optional[int], 省略可) — 各エンコーディングが表す入力シーケンスの数(不明な場合はNone、単一のシーケンスの場合は1、シーケンスのペアの場合は2)。

call()、~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus および ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus メソッドの出力(トークン、attention_masks など)を保持します。

このクラスは Python の辞書から派生しており、辞書として使用できます。さらに、このクラスは、単語/文字空間からトークン空間への変換を行うユーティリティメソッドを公開しています。

char_to_token

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

パラメータ

  • batch_or_char_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスしか含まれない場合、シーケンス内の文字のインデックスを指定できます。
  • char_index (int, オプション) — batch_or_char_index にバッチインデックスが指定されている場合、これはシーケンス内の文字のインデックスとして使用できます。
  • sequence_index (int, 任意、デフォルトは 0) — バッチにシーケンスのペアがエンコードされている場合、提供された文字インデックスがそのペアのどちらのシーケンス(0 または 1)に属するかを指定するために使用できます。

戻り値

int

トークンのインデックス。文字インデックスが空白のみで構成されるトークンを指し、かつtrim_offsets=Trueで空白がトリムされている場合は、None。

バッチ内のシーケンスについて、元の文字列の1文字に対応するトークンのインデックスを、エンコードされた出力から取得します。

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.char_to_token(char_index)
  • バッチサイズが1以上の場合、self.char_to_token(batch_index, char_index)

このメソッドは、入力シーケンスが事前にトークン化されたシーケンスとして提供される場合(つまり、単語をユーザーが定義する場合)に特に適しています。この場合、エンコードされたトークンと提供されたトークン化された単語を簡単に関連付けることができます。

char_to_word

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

パラメータ

  • batch_or_char_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスしか含まれない場合、元の文字列内の文字のインデックスを指定できます。
  • char_index (int, 任意) — batch_or_char_index にバッチインデックスが指定されている場合、元の文字列における文字のインデックスを指定できます。
  • sequence_index (int, 任意、デフォルトは 0) — バッチにシーケンスのペアがエンコードされている場合、提供された文字インデックスがそのペアのどちらのシーケンス(0 または 1)に属するかを指定するために使用できます。

戻り値

int

その文字を含む単語のインデックス。

バッチ内のシーケンスの元の文字列における、元の文字列の特定の文字に対応する元の文字列内の単語を取得します。

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.char_to_word(char_index)
  • バッチサイズが1より大きい場合、self.char_to_word(batch_index, char_index)

このメソッドは、入力シーケンスが事前にトークン化されたシーケンスとして提供される場合(つまり、単語をユーザーが定義する場合)に特に適しています。この場合、エンコードされたトークンと提供されたトークン化された単語を簡単に関連付けることができます。

convert_to_tensors

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

パラメータ

  • tensor_type (str または TensorType、任意) — 使用するテンソルの型です。str の場合、TensorType の列挙型のいずれかの値である必要があります。None の場合、変更は行われません。
  • prepend_batch_axis (bool、省略可、デフォルトはFalse) — 変換時にバッチ次元を追加するかどうか。

内部のコンテンツをテンソルに変換します。

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

パラメータ

  • batch_index (int、省略可能、デフォルト値は 0) — バッチにアクセスするためのインデックス。

戻り値

list[Optional[int]]

各トークンに対応するシーケンスIDを示すリストです。トークナイザーによって追加される特殊トークンはNoneに、その他のトークンは対応するシーケンスのインデックスにマッピングされます。

トークンを元の文の ID にマッピングするリストを返します:

  • シーケンスの前後や間に追加される特殊トークンにはNoneを指定します。
  • 0 は、最初のシーケンスの単語に対応するトークンに割り当てられます。
  • 1 は、2つのシーケンスが同時にエンコードされた場合、2番目のシーケンスの単語に対応するトークンに割り当てられます。

へ

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

パラメータ

  • device (str または torch.device または int) — テンソルを配置するデバイス。
  • non_blocking (bool) — コピーを非同期で実行するかどうか。

戻り値

BatchEncoding

変更後の同じインスタンス。

v.to(device, non_blocking=non_blocking) を呼び出して、すべての値をデバイスに送信します(PyTorch のみ)。

token_to_chars

< >

( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan

パラメータ

  • batch_or_token_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスのみが含まれている場合、これはシーケンス内のトークンのインデックスとして使用できます。
  • token_index (int, 任意) — batch_or_token_index にバッチインデックスが指定されている場合、これはシーケンス内のトークンまたはトークン群のインデックスとして使用できます。

戻り値

CharSpan

元の文字列における文字の範囲、またはトークン(例: , )が元の文字列のどの文字にも対応しない場合は None。

バッチ内のシーケンスにおいて、エンコードされたトークンに対応する文字スパンを取得します。

文字スパンは、CharSpanとして返されます:

  • start — トークンに関連付けられた元の文字列の最初の文字のインデックス。
  • end — トークンに関連付けられた元の文字列において、最後の文字の直後の文字のインデックス。

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.token_to_chars(token_index)
  • バッチサイズが1以上の場合、self.token_to_chars(batch_index, token_index)

token_to_sequence

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

パラメータ

  • batch_or_token_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスのみが含まれている場合、これはシーケンス内のトークンのインデックスとして使用できます。
  • token_index (int, 任意) — batch_or_token_index にバッチインデックスが指定されている場合、これはシーケンス内のトークンのインデックスとして使用できます。

戻り値

int

トークンを含む入力シーケンスのインデックス(ペアの最初のシーケンスの場合は0、2番目のシーケンスの場合は1)。

指定されたトークンが表すシーケンスのインデックスを取得します。一般的な使用例では、このメソッドは単一のシーケンスまたはペアの最初のシーケンスに対して0を、ペアの2番目のシーケンスに対して1を返します。

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.token_to_sequence(token_index)
  • バッチサイズが 1 より大きい場合、self.token_to_sequence(batch_index, token_index)

このメソッドは、入力シーケンスが事前にトークン化されたシーケンスとして提供される場合(つまり、単語がユーザーによって定義されている場合)に特に適しています。この場合、エンコードされたトークンと提供されたトークン化された単語を簡単に関連付けることができます。

token_to_word

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

パラメータ

  • batch_or_token_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスのみが含まれている場合、これはシーケンス内のトークンのインデックスとして使用できます。
  • token_index (int, 任意) — batch_or_token_index にバッチインデックスが指定されている場合、これはシーケンス内のトークンのインデックスとして使用できます。

戻り値

int

入力シーケンス内の単語のインデックス。

バッチ内のシーケンスにおいて、エンコードされたトークンに対応する(つまり、そのトークンを構成する)単語のインデックスを取得します。

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.token_to_word(token_index)
  • バッチサイズが1を超える場合、self.token_to_word(batch_index, token_index)

このメソッドは、入力シーケンスが事前にトークン化されたシーケンスとして提供される場合(つまり、単語がユーザーによって定義されている場合)に特に適しています。この場合、エンコードされたトークンと提供されたトークン化された単語を簡単に関連付けることができます。

トークン

< >

( batch_index: int = 0 ) → list[str]

パラメータ

  • batch_index (int、省略可能、デフォルト値は 0) — バッチにアクセスするためのインデックス。

戻り値

list[str]

そのインデックスのトークンのリスト。

指定されたバッチインデックスにおけるトークン(単語/サブワード分割後、整数インデックスへの変換前の入力文字列の部分)のリストを返します(fast トークナイザーの出力でのみ動作します)。

word_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

パラメータ

  • batch_index (int、省略可能、デフォルト値は 0) — バッチにアクセスするためのインデックス。

戻り値

list[Optional[int]]

各トークンに対応する単語を示すリストです。トークナイザーによって追加される特殊トークンはNoneにマッピングされ、その他のトークンは対応する単語のインデックスにマッピングされます(単語の一部を構成する複数のトークンは、同じ単語インデックスにマッピングされます)。

高速トークナイザーの場合、トークンを元の文における実際の単語に対応付けるリストを返します。

word_to_chars

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan

パラメータ

  • batch_or_word_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスしか含まれない場合、これはシーケンス内の単語のインデックスとして使用できます。
  • word_index (int、省略可) — batch_or_word_index にバッチインデックスが指定されている場合、これはシーケンス内の単語のインデックスとして使用できます。
  • sequence_index (int、省略可能、デフォルトは 0) — バッチにシーケンスのペアがエンコードされている場合、提供された単語インデックスがそのペアのどちらのシーケンス(0 または 1)に属するかを指定するために使用できます。

戻り値

CharSpan

文字列内の関連する文字の範囲。CharSpan は、以下の要素を持つ NamedTuple です:

  • start: 元の文字列において、その単語に関連付けられた最初の文字のインデックス
  • end: 元の文字列において、その単語に関連付けられた最後の文字の直後の文字のインデックス

バッチ内のシーケンスにおいて、指定された単語に対応する元の文字列内の文字スパンを取得します。

CharSpan NamedTuple として、以下の内容が返されます:

  • start: 元の文字列における最初の文字のインデックス
  • end: 元の文字列の最後の文字の直後の文字のインデックス

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.word_to_chars(word_index)
  • バッチサイズが1以上の場合、self.word_to_chars(batch_index, word_index)

word_to_tokens

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)

パラメータ

  • batch_or_word_index (int) — バッチ内のシーケンスのインデックスです。バッチに1つのシーケンスしか含まれない場合は、シーケンス内の単語のインデックスを指定できます。
  • word_index (int、省略可) — batch_or_word_index にバッチインデックスが指定されている場合、これはシーケンス内の単語のインデックスとして使用できます。
  • sequence_index (int、省略可能、デフォルトは 0) — バッチにシーケンスのペアがエンコードされている場合、提供された単語インデックスがそのペアのどちらのシーケンス(0 または 1)に属するかを指定するために使用できます。

戻り値

(TokenSpan、任意)

エンコードされたシーケンスにおけるトークンの範囲を返します。その単語に対応するトークンがない場合はNoneを返します。これは、トークンがトークン化の整形に使用された特殊トークンである場合に特に起こり得ます。例えば、トークン化の先頭にクラストークンを追加する場合などが挙げられます。

バッチ内のシーケンスにおいて、単語に対応するエンコード済みトークンスパンを取得します。

トークンスパンは、TokenSpanとして返されます。

  • start — 最初のトークンのインデックス。
  • end — 最後のトークンの直後のトークンのインデックス。

次のように呼び出すことができます:

  • バッチサイズが 1 の場合、self.word_to_tokens(word_index, sequence_index: int = 0)
  • self.word_to_tokens(batch_index, word_index, sequence_index: int = 0) バッチサイズが1以上の場合

このメソッドは、入力シーケンスが事前にトークン化されたシーケンスとして提供される場合(つまり、単語をユーザーが定義する場合)に特に適しています。この場合、エンコードされたトークンと提供されたトークン化された単語を簡単に関連付けることができます。

Update on GitHub