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。

这些内容通常只在你研究库中分词器(tokenizers)的代码时才有用。

PreTrainedTokenizerBase

class transformers.PreTrainedTokenizerBase

< >

( **kwargs )

参数

  • model_max_length (int, 可选) — 输入到 transformer 模型的最大长度(以 token 数量计)。当使用 from_pretrained() 加载分词器时,此值将设置为 max_model_input_sizes 中为关联模型存储的值(见上文)。如果未提供值,则默认为 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],可选) — 模型前向传播接受的输入列表(例如 "token_type_ids" 或 "attention_mask")。默认值取自同名的类属性。
  • bos_token(str 或 tokenizers.AddedToken,可选)—— 表示句子开头的特殊标记。
  • eos_token(str 或 tokenizers.AddedToken,可选)— 表示句子结束的特殊标记。
  • unk_token(str 或 tokenizers.AddedToken,可选)— 表示词表外(out-of-vocabulary)词元的特殊词元。
  • sep_token (str 或 tokenizers.AddedToken,可选) — 用于分隔同一输入中两个不同句子的特殊标记(例如 BERT 使用)。
  • pad_token (str 或 tokenizers.AddedToken,可选) — 一种特殊标记,用于将标记数组调整为相同大小以便进行批处理。随后,注意力机制或损失计算会忽略该标记。
  • cls_token (str 或 tokenizers.AddedToken,可选) — 表示输入类别的特殊标记(例如 BERT 中使用)。
  • mask_token (str 或 tokenizers.AddedToken,可选) — 表示被掩码 token 的特殊 token(用于掩码语言建模预训练目标,例如 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]) — 模型前向传播中预期输入的列表。
  • 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], 可选) — 传递给 tokenizer 的额外 kwargs。这些 kwargs 将与显式参数及其他 kwargs 合并,其中显式参数具有更高的优先级。
  • add_special_tokens (bool,可选,默认为 True) — 在编码序列时是否添加特殊标记。此操作将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些标记会自动添加到输入 ID 中。如果您希望自动添加 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 指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。这将逐个 token 进行截断,如果提供了一对序列(或一批序列对),则会从该对中最长的序列中移除一个 token。
    • 'only_first':截断至由参数 max_length 指定的最大长度,或者在未提供该参数时,截断至模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则仅截断其中的第一个序列。
    • 'only_second':截断至由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。仅当提供了一对序列(或一批序列对)时,才会截断其中的第二个序列。
    • False 或 'do_not_truncate'(默认值):不进行截断(即,可以输出序列长度大于模型最大可接受输入大小的批次)。
  • max_length (int, 可选) — 控制截断/填充参数之一所使用的最大长度。如果未设置或设置为 None,则当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(如 XLNet),则禁用截断/填充到最大长度的功能。

    如果未设置或设置为 None,当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(例如 XLNet),则禁用截断/填充至最大长度的功能。

  • stride (int,可选,默认为 0) — 如果与 max_length 一起设置为某个数值,则当 return_overflowing_tokens=True 时,返回的溢出 token 将包含截断序列末尾的若干 token,以在截断序列和溢出序列之间提供一定的重叠。此参数的值定义了重叠 token 的数量。
  • is_split_into_words (bool,可选,默认为 False) — 输入是否已经预先分词(例如,已拆分为单词)。如果设置为 True,分词器将假设输入已经拆分为单词(例如,通过按空白字符拆分),然后对其进行分词。这对于命名实体识别(NER)或 token 分类非常有用。
  • 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, 可选) — 是否返回 token type ID。如果保持默认值,将根据特定分词器的默认设置返回 token type ID,该设置由 return_outputs 属性定义。

    什么是 token type ID?

  • return_attention_mask (bool, 可选) — 是否返回注意力掩码。如果保持默认值,将根据特定分词器的默认设置返回注意力掩码,该设置由 return_outputs 属性定义。

    什么是注意力掩码?

  • return_overflowing_tokens (bool,可选,默认为 False) — 是否返回溢出的 token 序列。如果提供了输入 id 的序列对(或序列对批次),且 truncation_strategy = longest_first 或 True,则会抛出错误,而不是返回溢出的 token。
  • return_special_tokens_mask (bool,可选,默认为 False) — 是否返回特殊 token 掩码信息。
  • return_offsets_mapping (bool, 可选, 默认为 False) — 是否返回 (char_start, char_end) 每个 token 的。

    此功能仅在继承自 PreTrainedTokenizerFast 的快速分词器上可用。如果使用 Python 分词器,此方法将抛出 NotImplementedError。

  • return_length (bool,可选,默认为 False) — 是否返回编码后输入的长度。
  • verbose (bool,可选,默认为 True) — 是否打印更多信息和警告。
  • **kwargs — 传递给 self.tokenize() 方法

返回值

BatchEncoding

一个包含以下字段的 BatchEncoding:

  • input_ids — 要输入模型的 token id 列表。

    什么是输入 ID?

  • token_type_ids — 要输入模型的 token 类型 ID 列表(当 return_token_type_ids=True 或 self.model_input_names 中包含 “token_type_ids” 时)。

    什么是 token type ID?

  • attention_mask — 索引列表,指定模型应关注哪些 token(当 return_attention_mask=True 或 “attention_mask” 位于 self.model_input_names 中时)。

    什么是注意力掩码?

  • overflowing_tokens — 溢出 token 序列的列表(当指定了 max_length 且 return_overflowing_tokens=True 时)。

  • num_truncated_tokens — 被截断的 token 数量(当指定了 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 时)

用于对一条或多条序列,或一对或多对序列进行分词并准备输入模型的主要方法。

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 的索引来测试)。bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    只有当 Token 尚未存在于词汇表中时(通过检查分词器是否为其分配了 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 等)的字典添加到编码器中,并将其链接到类属性。如果特殊标记不在词汇表中,则将其添加到词汇表中(索引从当前词汇表的最后一个索引开始)。

在向词汇表中添加新 token 时,您应确保同时调整模型的 token 嵌入矩阵大小,使其嵌入矩阵与分词器相匹配。

为此,请使用 resize_token_embeddings() 方法。

使用 add_special_tokens 可确保您的特殊标记能以多种方式使用:

  • 在解码时,可以通过设置 skip_special_tokens = True 来跳过特殊标记。
  • 特殊标记由分词器仔细处理(它们永远不会被拆分),与 AddedTokens 类似。
  • 您可以轻松使用分词器类的属性(例如 tokenizer.cls_token)来引用特殊标记。这使得开发与模型无关的训练和微调脚本变得十分便捷。

在可能的情况下,所提供的预训练模型已经注册了特殊标记(例如 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 的序列) — 仅当这些 token 尚未存在于词表中时,才会将其添加进去。tokenizers.AddedToken 用于封装字符串 token,以便自定义其行为:例如该 token 是否仅匹配单个单词、是否应去除左侧所有可能的空白字符、是否应去除右侧所有可能的空白字符等。
  • special_tokens(bool,可选,默认为 False)— 指定该 token 是否为特殊 token。这主要会改变归一化行为。 有关 tokenizers.AddedToken 的详细信息,请参阅 HuggingFace tokenizers 库。

返回值

int

添加到词汇表中的标记数量。

#TODO 从此处移除!PreTrainedTokenizerBase 应当与 AddedToken 无关。

添加新标记列表。如果新标记不在词汇表中,它们将被追加到末尾。因此,添加的标记与分词算法词汇表中的标记不会以相同方式处理。

使用 prepend_scheme="always"(例如 NLLB)的 Metaspace 预分词器,会在添加的 token 之后的文本前添加 "▁"。执行 tokenizer.add_tokens(["abcd"]) 后,"abcdgym" 会被分词为 ["abcd", "▁gym"],并解码为 "abcd gym"。如果添加的 token 可能出现在单词内部,请切换预分词器

改为 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(检索增强生成)时模型可访问的文档。如果模板不支持 RAG,此参数将不起作用。我们建议每个文档应为一个包含 “title” 和 “text” 键的字典。
  • chat_template (str,可选) — 用于此转换的 Jinja 模板。通常无需向此参数传入任何值,因为默认会使用模型的模板。
  • add_generation_prompt (bool, 可选) — 如果设置此参数,将在格式化输出的末尾追加一个包含指示助手消息起始的 token 的提示。当您希望从模型生成回复时,此参数非常有用。 请注意,此参数会传递给聊天模板,因此模板必须支持该参数,此参数才能生效。
  • continue_final_message (bool 或 str,可选) — 如果设置了此参数,聊天将被格式化,使得聊天中的最后一条消息是开放式的,不包含任何 EOS token。模型将继续该消息,而不是开始一条新消息。这允许你“预填充”模型响应的一部分。如果传入字符串,它将用作要续写的字段的键(例如 “reasoning_content”)。不能与 add_generation_prompt 同时使用。
  • tokenize (bool,默认为 True) — 是否对输出进行分词。如果为 False,输出将是一个字符串。
  • sanitize_control_tokens (bool,默认为 False) — 如果设置为 True,则出现在消息、工具、文档或作为 **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, 可选) — 用于填充或截断的最大长度(以 token 计)。如果 tokenize 为 False,则此参数无效。如果未指定,将使用分词器的 max_length 属性作为默认值。
  • return_tensors (str 或 TensorType, 可选) — 如果设置,将返回特定框架的张量。如果 tokenize 为 False. ,则无效。可接受的值为:
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 NumPy np.ndarray 对象。
  • return_dict (bool,默认为 True) — 是否返回包含命名输出的字典。如果 tokenize 为 False,则此参数无效。
  • tokenizer_kwargs (dict[str -- Any],可选):传递给 tokenizer 的额外 kwargs。
  • return_assistant_tokens_mask (bool,默认为 False) — 是否返回助手生成 token 的掩码。对于助手生成的 token,掩码中对应位置为 1;对于用户和系统 token,掩码中对应位置为 0。 此功能仅适用于通过 {% generation %} 关键字支持该功能的聊天模板。
  • **kwargs — 传递给模板渲染器的额外 kwargs。聊天模板可以访问这些参数。

返回值

Union[list[int], Dict]

一个令牌 ID 列表,表示迄今为止已分词的聊天内容,包括控制令牌。此输出可直接传递给模型,或通过 generate() 等方法进行传递。如果设置了 return_dict,则返回一个包含分词器输出的字典。

将包含 "role" 和 "content" 键的字典列表转换为 token id 列表。此方法旨在与聊天模型配合使用,它会读取分词器的 chat_template 属性,以确定转换时所使用的格式和控制 token。

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,将 token id 的列表的列表转换为字符串列表。

此方法是为了向后兼容而提供的。decode 方法现在原生支持批量输入,因此您可以直接使用 decode 而无需使用 batch_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])— 要转换为 token 的 token id(或 token ids)。
  • skip_special_tokens(bool,可选,默认为 False)— 是否在解码过程中移除特殊标记。

返回值

str 或 list[str]

解码后的 token。

使用词汇表和添加的 token,将单个索引或 token 序列中的索引序列转换为对应的 token 或 token 序列。

convert_tokens_to_ids

< >

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

参数

  • tokens(str 或 list[str])— 要转换为 token id 的一个或多个 token。

返回值

int 或 list[int]

token id 或 token id 列表。

使用词汇表将单个 token 字符串(或 token 序列)转换为单个整数 id(或 id 序列)。

convert_tokens_to_string

< >

( tokens: list[str] ) → str

参数

  • tokens (list[str]) — 要拼接成字符串的 token。

返回值

str

拼接后的标记。

将单个字符串中的一系列 token 进行转换。最简单的方式是 " ".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]]

单个序列的解码字符串,或一批序列的解码字符串列表。

使用分词器和词汇表将 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],可选)— 要编码的可选第二个序列。它可以是一个字符串、一个字符串列表(使用 tokenize 方法分词后的字符串)或一个整数列表(使用 convert_tokens_to_ids 方法得到的分词字符串 ID)。
  • add_special_tokens (bool,可选,默认为 True) — 在编码序列时是否添加特殊标记。此操作将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些标记会自动添加到输入 ID 中。如果您希望自动添加 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 指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。这将逐个 token 进行截断,如果提供了一对序列(或一批序列对),则会从该对中最长的序列中移除一个 token。
    • 'only_first':截断至由参数 max_length 指定的最大长度,或者在未提供该参数时,截断至模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则仅截断其中的第一个序列。
    • 'only_second':截断至由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断至模型可接受的最大输入长度。仅当提供了一对序列(或一批序列对)时,才会截断其中的第二个序列。
    • False 或 'do_not_truncate'(默认值):不进行截断(即,可以输出序列长度大于模型最大可接受输入大小的批次)。
  • max_length (int, 可选) — 控制截断/填充参数之一所使用的最大长度。如果未设置或设置为 None,则当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(如 XLNet),则禁用截断/填充到最大长度的功能。

    如果未设置或设置为 None,当截断/填充参数需要最大长度时,将使用预定义的最大模型长度。如果模型没有特定的最大输入长度(例如 XLNet),则禁用截断/填充至最大长度的功能。

  • stride (int,可选,默认为 0) — 如果与 max_length 一起设置为某个数值,则当 return_overflowing_tokens=True 时,返回的溢出 token 将包含截断序列末尾的若干 token,以在截断序列和溢出序列之间提供一定的重叠。此参数的值定义了重叠 token 的数量。
  • is_split_into_words (bool,可选,默认为 False) — 输入是否已经预先分词(例如,已拆分为单词)。如果设置为 True,分词器将假设输入已经拆分为单词(例如,通过按空白字符拆分),然后对其进行分词。这对于命名实体识别(NER)或 token 分类非常有用。
  • 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” 键,表示迄今为止的聊天历史。如果您正在逐条对消息进行分词,应在此处传入对话中的先前消息。
  • **kwargs — 传递给 apply_chat_template 方法的额外 kwargs。

返回值

list[int]

表示分词后消息的 token id 列表。

对单条消息进行分词。此方法是 apply_chat_template 的便捷封装,允许您逐条对消息进行分词。这对于逐 token 流式传输等场景非常有用。 此方法不保证完美。对于某些模型,可能无法稳健地对单条消息进行分词。例如,如果聊天模板在每条消息后添加 token,但同时还有一个添加到整个聊天开头的 prefix,那么将无法区分聊天起始 token 和消息起始 token。 在这些情况下,此方法会尽力找到正确的分词方式,但可能并不完美。注意: 此方法不支持 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 上以自定义建模文件定义的模型。此选项仅应为您信任且已阅读过其代码的仓库设置为 True,因为它会在您的本地机器上执行 Hub 上存在的代码。
  • kwargs(额外的关键字参数,可选) — 将传递给 Tokenizer 的 __init__ 方法。可用于设置特殊标记,例如 bos_token、 eos_token、unk_token、sep_token、pad_token、cls_token、mask_token、 extra_special_tokens。有关更多详细信息,请参阅 __init__ 中的参数。

从预定义的 tokenizer 实例化一个 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(字符串、token id 列表或一维张量)为必填项:流会在由聊天提示上下文所隐含的状态下初始化(在规范中的 start_anchor 之后进行右截断),因此通过 stream.feed() 传入的生成片段能够被正确分类,即使聊天模板输出了助手回合的内容(例如 <think>\n)且模型从中继续生成。若省略该参数将引发异常;如果流确实是从一个干净的助手回合开始,请传入 prefix="" 以选择退出。

tools (list[Union[Dict, Callable]],可选):模型可用的工具,格式与 apply_chat_template 接受的格式相同。设置后,每当一个区域关闭时,工具调用参数会根据调用工具的 JSON schema 进行类型转换,因此流式 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 到索引的字典形式的词汇表。

当 token 在词表中时,tokenizer.get_vocab()[token] 与 tokenizer.convert_tokens_to_ids(token) 等价。

填充

< >

( 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 列表 BatchEncoding, dict[str, list[int]], dict[str, list[list[int]] 或 list[dict[str, list[int]]]) — 分词后的输入。可以表示单个输入(BatchEncoding 或 dict[str, list[int]]) )或一批分词后的输入( BatchEncoding, dict[str, list[list[int]]] 或 list[dict[str, list[int]]]) 因此,您可以在预处理阶段以及 PyTorch Dataloader 的 collate 函数中使用此方法。

    您可以使用张量(NumPy 数组或 PyTorch 张量)代替 list[int],有关返回类型,请参阅上方的说明。

  • padding (bool, str 或 PaddingStrategy, 可选, 默认为 True) — 选择一种策略,用于对返回的序列进行填充(根据模型的填充方向和填充索引),可选策略如下:
    • True 或 'longest'(默认值):填充至批次中最长的序列(如果仅提供单个序列,则不进行填充)。
    • 'max_length':填充至由参数 max_length 指定的最大长度;若未提供该参数,则填充至模型可接受的最大输入长度。
    • False 或 'do_not_pad':不进行填充(即可以输出包含不同长度序列的批次)。
  • max_length (int,可选) — 返回列表的最大长度,以及可选的填充长度(见上文)。
  • pad_to_multiple_of (int, 可选) — 如果设置,则将序列填充为所提供值的倍数。

    这在启用 NVIDIA 硬件(计算能力 >= 7.5,即 Volta 架构)上的 Tensor Cores 使用时尤为有用。

  • padding_side (str, 可选) — 模型应应用填充的一侧。应在 [‘right’, ‘left’] 之间进行选择。 默认值取自同名的类属性。
  • return_attention_mask (bool, 可选) — 是否返回注意力掩码。如果保持默认值,将根据特定分词器的默认设置返回注意力掩码,该设置由 return_outputs 属性定义。

    什么是注意力掩码?

  • return_tensors (str 或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • verbose (bool,可选,默认为 True) — 是否打印更多信息和警告。

将单个编码输入或一批编码输入填充至预定义长度或该批次中的最大序列长度。

填充侧(left/right)的填充 token id 在分词器层面定义(通过 self.padding_side、self.pad_token_id 和 self.pad_token_type_id)。

请注意,对于快速分词器,使用 __call__ 方法比先调用编码文本的方法,再调用 pad 方法以获取填充后的编码要更快。

如果传入的 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、1D/2D tensor,或这些类型的列表) — 模型生成的输出。可以是解码后的文本或 token ids,形式为单个序列(str / list[int] / 1D 数组 / 1D tensor)或一个批次(list[str] / list[list[int]] / 2D 数组 / 2D tensor)。请注意,此处应仅包含模型输出,不应包含任何前置的提示文本(提示文本应放在 prefix 中)。
  • schema (dict, 可选) — 响应模板,用于指示预期的输出格式以及应如何执行解析。如果未提供,将使用分词器的 response_template 属性。
  • prefix (str、token ids、1D/2D tensor,或这些类型的列表) — 生成之前的提示词。由于许多聊天模板会预先写入消息的一部分,因此需要查看提示词才能正确解析。对于批处理的 response,可以传入单个前缀(广播到每个条目)或为每个条目传入一个前缀。
  • tools (list[Union[Dict, Callable]],可选) — 模型可用的工具,格式与 apply_chat_template 接受的格式相同。 传入时,工具调用参数会根据调用工具的 JSON schema 进行类型转换: 对于整数参数,"7" 会变为 7;对于字符串参数,则保持为 "7"。

将模型生成文本所产生的输出字符串转换为解析后的消息字典。 此方法旨在与聊天模型配合使用,除非直接传入 schema 参数,否则它将读取分词器的 response_template 属性来控制解析。

接受单个序列或一个批次。单个序列(一个字符串,或一个一维的 token id 序列)返回一个解析后的消息 dict;一个批次(一个字符串列表、一个 token id 序列列表,或一个二维张量 / 数组)返回一个解析后的消息字典 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) — 要推送分词器(tokenizer)的仓库名称。推送到特定组织时,应包含该组织的名称。
  • commit_message (str, 可选) — 推送时提交的提交信息。默认值为 "Upload tokenizer"。
  • commit_description (str, 可选) — 将创建的提交的描述
  • private (bool,可选) — 是否将仓库设为私有。如果为 None(默认值),除非组织的默认设置为私有,否则仓库将是公开的。如果仓库已存在,则忽略此值。
  • token (bool 或 str,可选) — 用于远程文件的 HTTP bearer 授权令牌。如果为 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 类。此操作仅适用于自定义分词器,因为库中的分词器已经与 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, 可选) — 仅适用于快速分词器。如果未设置(默认值),则同时以统一 JSON 格式和旧版格式(如果存在)保存分词器,即包含分词器特定的词汇表以及单独的 added_tokens 文件。

    如果 False,则仅以统一的 JSON 格式保存分词器。该格式与“慢速”分词器(未由 tokenizers 库提供支持)不兼容,因此无法在对应的“慢速”分词器中加载该分词器。

    如果 True,将以旧版格式保存分词器。如果“slow”分词器不存在,则会引发值错误。

  • filename_prefix (str, 可选) — 为分词器保存的文件名添加的前缀。
  • 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)

已保存文件的路径。

仅保存分词器的词表(词表 + 新增 token)。

此方法不会保存分词器的配置和特殊标记映射。请使用 _save_pretrained() 来保存分词器的完整状态。

tokenize

< >

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

参数

  • text (str) — 要编码的序列。
  • pair (str, optional) — 要与第一个序列一起编码的第二个序列。
  • add_special_tokens (bool,可选,默认为 False) — 是否添加与对应模型关联的特殊标记。
  • kwargs(额外的关键字参数,可选) — 将传递给底层模型特定的 encode 方法。详情请参见 call()

返回值

list[str]

令牌列表。

将字符串转换为 token 序列,并将未知 token 替换为 unk_token。

枚举和命名元组

class transformers.tokenization_utils_base.TruncationStrategy

< >

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

PreTrainedTokenizerBase.call() 中 truncation 参数的可能取值。便于在 IDE 中进行 Tab 补全。

class transformers.CharSpan

< >

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

参数

  • start (int) — 原始字符串中第一个字符的索引。
  • end (int) — 原始字符串中最后一个字符之后的字符的索引。

原始字符串中的字符跨度。

class transformers.TokenSpan

< >

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

参数

  • start (int) — 该片段中第一个 token 的索引。
  • end (int) — 该 span 中最后一个 token 之后那个 token 的索引。

编码字符串中的 Token 跨度(Token 列表)。

Update on GitHub