Transformers documentation

トークナイザー用のユーティリティ

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

トークナイザー用のユーティリティ

このページでは、トークナイザーで使用されるすべてのユーティリティ関数をリストしています。主に、PreTrainedTokenizerとPreTrainedTokenizerFastの間に共通するメソッドを実装するクラスPreTrainedTokenizerBaseについてです。

それらの多くは、ライブラリのトークナイザーのコードを研究している場合にのみ有用です。

PreTrainedTokenizerBase

class transformers.PreTrainedTokenizerBase

< >

( **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', '>'] を返します。

すべてのトークナイザーバックエンドの基底クラス。

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

  • 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_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>"

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))

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を直接使用できます。

clean_up_tokenization

< >

( text: str )

与えられたテキスト内のトークン化スペースを整理します。 このメソッドは、主にリモートコードのサポートのために使用されます。

convert_ids_to_tokens

< >

( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]

パラメータ

  • ids (int または list[int]) — トークンに変換するトークン ID(またはトークン ID のリスト)。
  • skip_special_tokens (bool、省略可、デフォルトはFalse) — デコーディング時に特殊トークンを除去するかどうかを指定します。

戻り値

str または list[str]

デコードされたトークン。

語彙と追加トークンを使用して、単一のインデックスまたはトークンシーケンス内のインデックスシーケンスを、トークンまたはトークンシーケンスに変換します。

convert_tokens_to_ids

< >

( tokens: str | list[str] ) → int or list[int]

パラメータ

  • tokens (str または list[str]) — トークン ID に変換する 1 つ以上のトークン。

戻り値

int または list[int]

トークンIDまたはトークンIDのリスト。

…

convert_tokens_to_string

< >

( tokens: list[str] ) → str

パラメータ

  • tokens (list[str]) — 文字列に結合するトークン。

戻り値

str

結合されたトークン。

単一の文字列内のトークンシーケンスを結合します。最もシンプルな方法は" ".join(tokens)ですが、同時にサブワードトークナイズのアーティファクトを除去したい場合が多いです。

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)) を実行するのと同じです。

encode_message_with_chat_template

< >

( message: dict[str, str]conversation_history: list[dict[str, str]] | None = None**kwargs ) → list[int]

パラメータ

  • message (dict) — トークン化対象のメッセージを表す、“role” と “content” をキーとする辞書です。
  • conversation_history (list[dict]、任意) — “role”キーと“content”キーを持つ辞書のリストで、これまでに蓄積されたチャット履歴を表します。メッセージを1件ずつトークン化する場合は、会話内の以前のメッセージをここに渡す必要があります。
  • **kwargs — apply_chat_template メソッドに渡す追加の kwargs。

戻り値

list[int]

トークン化されたメッセージを表すトークン ID のリスト。

単一のメッセージをトークン化します。このメソッドはapply_chat_templateの簡便なラッパーであり、メッセージを1つずつトークン化できるようにします。トークン単位のストリーミング処理などに便利です。 このメソッドが完璧であるとは保証されていません。一部のモデルでは、単一のメッセージを確実にトークン化することが不可能な場合があります。例えば、チャットテンプレートが各メッセージの後にトークンを追加する一方で、チャット全体にプレフィックスを追加する場合、チャット開始トークンとメッセージ開始トークンを区別することはできません。 このような場合、このメソッドは正しいトークン化を見つけるために最善を尽くしますが、完璧であるとは限りません。注: このメソッドはadd_generation_promptをサポートしていません。生成プロンプトを追加する場合は、会話のトークン化後に別途行ってください。

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike*init_inputscache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'trust_remote_code = False**kwargs )

パラメータ

  • pretrained_model_name_or_path (str または os.PathLike) — 以下のいずれかです:
    • huggingface.co上のモデルリポジトリにホストされている事前定義されたトークナイザーのmodel idを表す文字列。
    • トークナイザーに必要とされる語彙ファイルを含むディレクトリへのパス。例えば、save_pretrained()メソッドを使用して保存されたものなど、./my_model_directory/のようなパスを指定します。
    • (非推奨、すべての派生クラスに適用されるわけではありません) 単一の保存済み語彙ファイルへのパス(Bert や XLNet のように、トークナイザーが単一の語彙ファイルのみを必要とする場合のみ)、例: ./my_model_directory/vocab.txt。
  • cache_dir (str または os.PathLike、省略可) — 標準のキャッシュを使用しない場合、ダウンロードされた事前定義されたトークナイザの語彙ファイルをキャッシュするディレクトリのパス。
  • force_download (bool、任意、デフォルトは False) — 語彙ファイルの(再)ダウンロードを強制し、キャッシュされたバージョンが存在する場合にそれを上書きするかどうかを指定します。
  • proxies (dict[str, str]、省略可) — プロトコルまたはエンドポイントごとに使用するプロキシサーバーの辞書です。例: {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。各リクエストでこれらのプロキシが使用されます。
  • token (str または bool、省略可) — リモートファイルの HTTP ベアラ認証に使用するトークン。True の場合、hf auth login を実行した際に生成されたトークン(~/.huggingface に保存)を使用します。
  • local_files_only (bool、省略可、デフォルトはFalse) — ローカルファイルのみを使用し、ファイルのダウンロードを試みないかどうかを指定します。
  • revision (str、任意、デフォルトは "main") — 使用する特定のモデルのバージョンです。huggingface.co 上でモデルやその他の成果物を保存するために git ベースのシステムを使用しているため、ブランチ名、タグ名、コミット ID のいずれかを指定できます。したがって、revision には git で許可される任意の識別子を指定できます。
  • subfolder (str, 省略可) — huggingface.co 上のモデルリポジトリのサブフォルダ内に該当するファイルが配置されている場合(例: facebook/rag-token-base)に、ここで指定します。
  • inputs(追加の位置引数、任意)— Tokenizer の __init__ メソッドに渡されます。
  • trust_remote_code (bool、省略可、デフォルトは False) — Hub 上で独自の modeling ファイルによって定義されたカスタムモデルを許可するかどうか。このオプションは、信頼できるリポジトリで、かつコードを確認済みの場合にのみ True に設定してください。そうしないと、Hub に存在するコードがローカルマシン上で実行されてしまうためです。
  • kwargs(追加のキーワード引数、任意)— Tokenizer の __init__ メソッドに渡されます。bos_token、eos_token、unk_token、sep_token、pad_token、cls_token、mask_token、extra_special_tokens などの特殊トークンを設定するために使用できます。詳細は __init__ のパラメータを参照してください。

PreTrainedTokenizerBase(またはその派生クラス)を、事前定義されたトークナイザーからインスタンス化します。

プライベートモデルを使用する場合は、token=True を渡す必要があります。

例:

# We can't instantiate directly the base class *PreTrainedTokenizerBase* so let's show our examples on a derived class: BertTokenizer
# Download vocabulary from huggingface.co and cache.
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")

# Download vocabulary from huggingface.co (user-uploaded) and cache.
tokenizer = BertTokenizer.from_pretrained("dbmdz/bert-base-german-cased")

# If vocabulary files are in a directory (e.g. tokenizer was saved using *save_pretrained('./test/saved_model/')*)
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/")

# If the tokenizer uses a single vocabulary file, you can point directly to this file
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/my_vocab.txt")

# You can link tokens to special vocabulary when instantiating
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased", unk_token="<unk>")
# You should be sure '<unk>' is in the vocabulary when doing that.
# Otherwise use tokenizer.add_special_tokens({'unk_token': '<unk>'}) instead)
assert tokenizer.unk_token == "<unk>"

get_chat_template

< >

( chat_template: str | None = Nonetools: list[dict] | None = None ) → str

パラメータ

  • chat_template (str、省略可) — この変換に使用する Jinja テンプレート、またはテンプレートの名前です。 モデルのテンプレートがデフォルトで使用されるため、通常この引数に何かを渡す必要はありません。
  • tools (list[Dict]、任意) — モデルからアクセス可能なツール(呼び出し可能な関数)のリストです。テンプレートが関数呼び出しをサポートしていない場合、この引数は無効になります。各ツールは、ツールの名前、説明、引数の型を指定した JSON Schema として渡す必要があります。詳細については、チャットテンプレートガイドを参照してください。

戻り値

str

チャットテンプレートの文字列。

トークン化に使用されるチャットテンプレートの文字列を取得します。このテンプレートはapply_chat_templateメソッドによって内部で使用されるほか、モデルのチャットテンプレートを外部から取得して生成の追跡をより適切に行う目的でも使用できます。

get_response_parser

< >

( response_template: dict | None = Noneprefix: str | list[int] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

ストリーミングレスポンスを逐次的にパースするためのステートフルなResponseParserを返します。上書きされない限り、トークナイザーのresponse_template属性を使用します。

prefix(文字列、トークン ID のリスト、または 1 次元テンソル)は必須です。ストリームは、チャットプロンプトのコンテキストが示す状態(仕様の start_anchor 以降を右側から切り捨てた状態)で初期化されるため、stream.feed() 経由で投入される生成チャンクは、チャットテンプレートがアシスタントターン用のコンテンツ(例: <think>\n)を出力し、モデルがそこから継続する場合でも正しく分類されます。省略すると例外が発生します。ストリームが完全にクリーンなアシスタントターンから始まる場合は、prefix="" を渡してこの機能を無効にしてください。

tools (list[Union[Dict, Callable]], 省略可): モデルが利用可能なツール。apply_chat_template が受け取るのと同じ形式です。設定すると、各リージョンがクローズするたびに、呼び出されたツールの JSON スキーマを使用してツール呼び出しの引数がキャストされるため、ストリーミングの region_close イベントには型付きの引数が含まれます。

get_special_tokens_mask

< >

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

パラメータ

  • token_ids_0 — (すでにフォーマット済みの可能性がある)シーケンスの ID のリスト。
  • token_ids_1 — already_has_special_tokens=True の場合は使用されません。その場合は None でなければなりません。
  • already_has_special_tokens — シーケンスがすでに特殊トークンでフォーマットされているかどうかを示します。

戻り値

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

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

特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。

高速なトークナイザーでは、データコラテーターはalready_has_special_tokens=Trueを指定してこれを呼び出し、すでに整形済みのシーケンスに対してマスクを構築します。その場合、all_special_idsへの所属を確認することによってマスクを計算します。

get_vocab

< >

( ) → dict[str, int]

戻り値

dict[str, int]

語彙。

トークンからインデックスへの辞書として語彙を返します。

token が語彙に存在する場合、tokenizer.get_vocab()[token] は tokenizer.convert_tokens_to_ids(token) と同等です。

pad

< >

( encoded_inputs: BatchEncoding | list[BatchEncoding] | dict[str, EncodedInput] | dict[str, list[EncodedInput]] | list[dict[str, EncodedInput]]padding: bool | str | PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | TensorType | None = Noneverbose: bool = True )

パラメータ

  • encoded_inputs (BatchEncoding, のリスト BatchEncoding, dict[str, list[int]], dict[str, list[list[int]] または list[dict[str, list[int]]]) — トークン化された入力。1つの入力(BatchEncoding または dict[str, list[int]]) )または、トークン化された入力のバッチ( BatchEncoding, dict[str, list[list[int]]] または list[dict[str, list[int]]]) そのため、このメソッドは前処理時だけでなく、PyTorch の Dataloader の collate 関数でも使用できます。

    list[int]の代わりに、テンソル(NumPy配列またはPyTorchテンソル)を指定できます。戻り型については、上記の注記を参照してください。

  • padding (bool, str または PaddingStrategy, 省略可, デフォルトは True) — 返されるシーケンスのパディング戦略(モデルのパディング側およびパディングインデックスに従う)として、以下から選択します:
    • True または 'longest'(デフォルト): バッチ内の最長のシーケンスの長さにパディングします(単一のシーケンスのみが提供された場合は、パディングを行いません)。
    • 'max_length': 引数 max_length で指定された最大長、またはその引数が指定されていない場合はモデルが受け入れ可能な最大入力長までパディングします。
    • False または 'do_not_pad': パディングなし(つまり、長さが異なるシーケンスのバッチを出力できます)。
  • max_length (int, 任意) — 返されるリストの最大長、および必要に応じてパディングの長さ(上記を参照)。
  • pad_to_multiple_of (int, 省略可能) — 設定すると、シーケンスを指定された値の倍数にパディングします。

    これは、計算能力が>= 7.5(Volta)のNVIDIAハードウェア上でTensor Coresを使用可能にするために特に有用です。

  • padding_side (str, 省略可) — モデルにパディングを適用する側です。[‘right’, ‘left’] のいずれかを選択してください。 デフォルト値は、同名のクラス属性から取得されます。
  • return_attention_mask (bool, 省略可能) — attention mask を返すかどうか。デフォルトのままにすると、 return_outputs 属性によって定義される、特定の tokenizer のデフォルトに従って attention mask を返します。

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

  • return_tensors (str または TensorType, 省略可) — 設定すると、Python の整数のリストではなくテンソルを返します。指定可能な値は以下の通りです:
    • 'pt': PyTorchのtorch.Tensorオブジェクトを返します。
    • 'np': Numpy の np.ndarray オブジェクトを返します。
  • verbose (bool、任意、デフォルトはTrue) — より多くの情報や警告を表示するかどうかを指定します。

単一のエンコード済み入力、またはエンコード済み入力のバッチを、事前定義された長さまたはバッチ内の最大シーケンス長までパディングします。

Padding side (left/right)のpaddingトークンIDは、tokenizerレベルで定義されています(self.padding_side、self.pad_token_id、self.pad_token_type_id)。

高速トークナイザーでは、テキストをエンコードするメソッドを呼び出した後にpadメソッドを呼び出してパディング付きエンコーディングを取得するよりも、__call__メソッドを使用する方が高速です。

encoded_inputs に渡されたものが numpy 配列の辞書、または PyTorch テンソルの場合、return_tensors で別のテンソル型を指定しない限り、結果も同じ型になります。ただし、PyTorch テンソルの場合は、テンソルが配置されていた特定のデバイス情報が失われます。

parse_response

< >

( response: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensorschema: dict | None = Noneprefix: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

パラメータ

  • response (str、token ids、1次元/2次元テンソル、またはこれらのリスト) — モデルによって生成された出力です。単一のシーケンス(str / list[int] / 1次元配列 / 1次元テンソル)またはバッチ(list[str] / list[list[int]] / 2次元配列 / 2次元テンソル)として、デコードされたテキストまたは token ids のいずれかです。なお、ここにはモデルの出力のみを含めるべきで、それ以前のプロンプトテキストは含めません(プロンプトテキストはprefixに含めます)。
  • schema (dict、任意) — 期待される出力形式とパース方法を示すレスポンステンプレートです。指定しない場合、トークナイザーのresponse_template属性が使用されます。
  • prefix (str、トークン ID、1 次元/2 次元テンソル、またはこれらのリスト) — 生成の前にあったプロンプトです。多くのチャットテンプレートはメッセージの一部を事前に入力するため、正しく解析するにはプロンプトを確認する必要があります。バッチ処理されたresponseの場合、単一のプレフィックス(すべてのアイテムにブロードキャストされる)またはアイテムごとのプレフィックスを渡します。
  • tools (list[Union[Dict, Callable]]、省略可) — モデルが利用可能なツール。apply_chat_template が受け取るのと同じ形式です。 指定された場合、ツール呼び出しの引数は、呼び出されるツールの JSON スキーマに基づいてキャストされます。 "7" は整数パラメータの場合 7 になりますが、文字列パラメータの場合は "7" のままです。

モデルからテキストを生成して作成された出力文字列を、解析済みのメッセージ辞書に変換します。 このメソッドはチャットモデルでの使用を想定しており、schema 引数が直接渡されない限り、トークナイザーの response_template 属性を読み取って解析を制御します。

単一のシーケンスまたはバッチを受け取ります。単一のシーケンス(文字列、またはトークンIDの1次元シーケンス)の場合、解析済みメッセージのdictを1つ返します。バッチ(文字列のリスト、トークンIDシーケンスのリスト、または2次元テンソル/配列)の場合、各アイテムに対応する解析済みメッセージのdictからなるlistを返します。

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")

register_for_auto_class

< >

( auto_class = 'AutoTokenizer' )

パラメータ

  • auto_class (str または type、省略可、デフォルトは "AutoTokenizer") — この新しいトークナイザーを登録する auto クラスです。

このクラスを指定された auto クラスに登録します。ライブラリ内のものはすでにAutoTokenizerにマッピングされているため、このメソッドはカスタムトークナイザーでのみ使用すべきです。

save_chat_templates

< >

( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )

新しい形式を使用している場合、チャットテンプレートを保存ディレクトリに書き出し、tokenizer の設定に存在する場合はそれらを削除します。レガシー形式を使用している場合は、ファイルを書き出さず、代わりにテンプレートを正しい形式で tokenizer の設定に書き込みます。

save_pretrained

< >

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

パラメータ

  • save_directory (str または os.PathLike) — トークナイザーを保存するディレクトリのパス。
  • legacy_format (bool, 省略可能) — 高速トークナイザーでのみ適用されます。未設定の場合(デフォルト)、存在する場合はレガシー形式(トークナイザー固有の語彙と、独立した added_tokens ファイルを含む形式)でも保存される統一 JSON 形式でトークナイザーを保存します。

    Falseの場合、トークナイザーは統合JSON形式でのみ保存されます。この形式は「slow」トークナイザー(tokenizersライブラリによって提供されていないもの)と互換性がなく、対応する「slow」トークナイザーで読み込むことができません。

    Trueの場合、トークナイザーをレガシー形式で保存します。“slow”トークナイザーが存在しない場合、値エラーが発生します。

  • filename_prefix (str, 任意) — tokenizer が保存するファイル名に付加するプレフィックスです。
  • push_to_hub (bool、省略可、デフォルトは False) — モデルを保存した後、Hugging Face モデルハブにプッシュするかどうかを指定します。プッシュ先のリポジトリは repo_id で指定できます(指定しない場合、save_directory の名前があなたのネームスペース内でデフォルトとして使用されます)。
  • kwargs (dict[str, Any]、省略可) — push_to_hub() メソッドに渡される追加のキーワード引数。

戻り値

str のタプル

保存されたファイル。

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

このメソッドにより、~tokenization_utils_base.PreTrainedTokenizer.from_pretrained クラスメソッドを使用して完全なトークナイザを再読み込みできることを確認できます。

Warning,None インスタンス化後にトークナイザーに行った変更(作成後にtokenizer.do_lower_caseを変更した場合など)は保存されません。

save_vocabulary

< >

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

パラメータ

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

戻り値

tuple(str)

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

tokenizerの語彙のみを保存します(語彙 + 追加トークン)。

このメソッドでは、tokenizer の設定や特殊トークンのマッピングは保存されません。tokenizer の状態全体を保存するには、_save_pretrained() を使用してください。

tokenize

< >

( text: strpair: str | None = Noneadd_special_tokens: bool = False**kwargs ) → list[str]

パラメータ

  • text (str) — エンコード対象のシーケンス。
  • pair (str, optional) — 最初にエンコードするシーケンスとセットでエンコードする2番目のシーケンス。
  • add_special_tokens (bool、任意、デフォルトは False) — 対応するモデルに関連付けられた特殊トークンを追加するかどうかを指定します。
  • kwargs (追加のキーワード引数、省略可) — 基盤となるモデル固有のエンコードメソッドに渡されます。詳細は call()を参照してください。

戻り値

list[str]

トークンのリスト。

文字列をトークンの列に変換し、不明なトークンはunk_tokenに置き換えます。

Enum と namedtuple

クラス transformers.tokenization_utils_base.TruncationStrategy

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )

PreTrainedTokenizerBase.call() の truncation 引数に指定可能な値。IDE でのタブ補完に便利です。

class transformers.CharSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

パラメータ

  • start (int) — 元の文字列における最初の文字のインデックス。
  • end (int) — 元の文字列の最後の文字の直後の文字のインデックス。

元の文字列における文字スパン。

class transformers.TokenSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

パラメータ

  • start (int) — スパン内の最初のトークンのインデックス。
  • end (int) — スパン内の最後のトークンの直後のトークンのインデックス。

エンコードされた文字列内のトークンスパン(トークンのリスト)。

Update on GitHub