Transformers documentation
トークナイザー用のユーティリティ
トークナイザー用のユーティリティ
このページでは、トークナイザーで使用されるすべてのユーティリティ関数をリストしています。主に、PreTrainedTokenizerとPreTrainedTokenizerFastの間に共通するメソッドを実装するクラスPreTrainedTokenizerBaseについてです。
それらの多くは、ライブラリのトークナイザーのコードを研究している場合にのみ有用です。
PreTrainedTokenizerBase
class transformers.PreTrainedTokenizerBase
< source >( **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 inmax_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__
< source >( 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属性で定義されます。 - 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:
-
input_ids — モデルに与えるトークン ID のリスト。
-
token_type_ids — モデルに渡すトークンタイプIDのリスト(
return_token_type_ids=Trueの場合、またはself.model_input_namesに“token_type_ids”が含まれている場合)。 -
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
< source >( 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
< source >( 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
< source >( 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
< source >( 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を直接使用できます。
与えられたテキスト内のトークン化スペースを整理します。 このメソッドは、主にリモートコードのサポートのために使用されます。
convert_ids_to_tokens
< source >( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]
語彙と追加トークンを使用して、単一のインデックスまたはトークンシーケンス内のインデックスシーケンスを、トークンまたはトークンシーケンスに変換します。
convert_tokens_to_ids
< source >( tokens: str | list[str] ) → int or list[int]
…
convert_tokens_to_string
< source >( tokens: list[str] ) → str
単一の文字列内のトークンシーケンスを結合します。最もシンプルな方法は" ".join(tokens)ですが、同時にサブワードトークナイズのアーティファクトを除去したい場合が多いです。
decode
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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]
特殊トークンが追加されていないトークンリストからシーケンスIDを取得します。
高速なトークナイザーでは、データコラテーターはalready_has_special_tokens=Trueを指定してこれを呼び出し、すでに整形済みのシーケンスに対してマスクを構築します。その場合、all_special_idsへの所属を確認することによってマスクを計算します。
トークンからインデックスへの辞書として語彙を返します。
token が語彙に存在する場合、tokenizer.get_vocab()[token] は tokenizer.convert_tokens_to_ids(token) と同等です。
pad
< source >( 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
< source >( 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
< source >( 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
< source >( auto_class = 'AutoTokenizer' )
このクラスを指定された auto クラスに登録します。ライブラリ内のものはすでにAutoTokenizerにマッピングされているため、このメソッドはカスタムトークナイザーでのみ使用すべきです。
save_chat_templates
< source >( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )
新しい形式を使用している場合、チャットテンプレートを保存ディレクトリに書き出し、tokenizer の設定に存在する場合はそれらを削除します。レガシー形式を使用している場合は、ファイルを書き出さず、代わりにテンプレートを正しい形式で tokenizer の設定に書き込みます。
save_pretrained
< source >( 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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
tokenizerの語彙のみを保存します(語彙 + 追加トークン)。
このメソッドでは、tokenizer の設定や特殊トークンのマッピングは保存されません。tokenizer の状態全体を保存するには、_save_pretrained() を使用してください。
tokenize
< source >( 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
< source >( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )
PreTrainedTokenizerBase.call() の truncation 引数に指定可能な値。IDE でのタブ補完に便利です。
class transformers.CharSpan
< source >( start: ForwardRef('int')end: ForwardRef('int') )
元の文字列における文字スパン。
class transformers.TokenSpan
< source >( start: ForwardRef('int')end: ForwardRef('int') )
エンコードされた文字列内のトークンスパン(トークンのリスト)。