Transformers 文档

Tokenizer 的实用工具

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Tokenizer 的实用工具

此页面列出了 tokenizer 使用的所有实用函数,主要是类 PreTrainedTokenizerBase,它实现了 PreTrainedTokenizerPreTrainedTokenizerFast 之间的通用方法,以及 mixin SpecialTokensMixin

如果您正在研究库中 tokenizer 的代码,那么其中大多数函数才有用。

PreTrainedTokenizerBase

class transformers.PreTrainedTokenizerBase

< >

( **kwargs )

参数

  • model_max_length (int, 可选) — Transformer 模型输入的最大长度(以 token 数计)。当使用 from_pretrained() 加载 tokenizer 时,这将设置为与相关模型在 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 (strtokenizers.AddedToken, 可选) — 表示句子开头的特殊 token。将与 self.bos_tokenself.bos_token_id 关联。
  • eos_token (strtokenizers.AddedToken, 可选) — 表示句子结尾的特殊 token。将与 self.eos_tokenself.eos_token_id 关联。
  • unk_token (strtokenizers.AddedToken, 可选) — 表示词汇表外 token 的特殊 token。将与 self.unk_tokenself.unk_token_id 关联。
  • sep_token (strtokenizers.AddedToken, 可选) — 分隔同一输入中两个不同句子的特殊 token(例如 BERT 使用)。将与 self.sep_tokenself.sep_token_id 关联。
  • pad_token (strtokenizers.AddedToken, 可选) — 用于使 token 数组大小相同的特殊 token,以用于批处理目的。然后将被注意力机制或损失计算忽略。将与 self.pad_tokenself.pad_token_id 关联。
  • cls_token (strtokenizers.AddedToken, 可选) — 表示输入类别的特殊 token(例如 BERT 使用)。将与 self.cls_tokenself.cls_token_id 关联。
  • mask_token (strtokenizers.AddedToken, 可选) — 表示掩码 token 的特殊 token(由掩码语言建模预训练目标使用,例如 BERT)。将与 self.mask_tokenself.mask_token_id 关联。
  • additional_special_tokens (tuple 或 list of strtokenizers.AddedToken, 可选) — 附加特殊 token 的 tuple 或 list。在此处添加它们以确保在将 skip_special_tokens 设置为 True 时跳过它们。如果它们不是词汇表的一部分,则它们将被添加到词汇表的末尾。
  • clean_up_tokenization_spaces (bool, 可选, 默认为 True) — 模型是否应清理在 token 化过程中拆分输入文本时添加的空格。
  • split_special_tokens (bool, 可选, 默认为 False) — 特殊 token 是否应在 token 化过程中拆分。传递将影响 tokenizer 的内部状态。默认行为是不拆分特殊 token。这意味着如果 <s>bos_token,则 tokenizer.tokenize("<s>") = ['<s>]。否则,如果 split_special_tokens=True,则 tokenizer.tokenize("<s>") 将给出 ['<','s', '>']

PreTrainedTokenizerPreTrainedTokenizerFast 的基类。

处理这两个类的共享(主要是样板)方法。

类属性(被派生类覆盖)

  • 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: typing.Union[str, typing.List[str], typing.List[typing.List[str]]] = None text_pair: typing.Union[str, typing.List[str], typing.List[typing.List[str]], NoneType] = None text_target: typing.Union[str, typing.List[str], typing.List[typing.List[str]]] = None text_pair_target: typing.Union[str, typing.List[str], typing.List[typing.List[str]], NoneType] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True **kwargs ) BatchEncoding

参数

  • text (str, List[str], List[List[str]], 可选) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预 token 化字符串)。如果序列作为字符串列表(预 token 化)提供,则必须设置 is_split_into_words=True(以消除与序列批次的歧义)。
  • text_pair (str, List[str], List[List[str]], optional) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)形式提供,则必须设置 is_split_into_words=True(以消除与序列批次的歧义)。
  • text_target (str, List[str], List[List[str]], optional) — 要编码为目标文本的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)形式提供,则必须设置 is_split_into_words=True(以消除与序列批次的歧义)。
  • text_pair_target (str, List[str], List[List[str]], optional) — 要编码为目标文本的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果序列以字符串列表(预分词)形式提供,则必须设置 is_split_into_words=True(以消除与序列批次的歧义)。
  • add_special_tokens (bool, optional, defaults to True) — 是否在编码序列时添加特殊 token。这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些 token 会自动添加到 input ids 中。如果您想自动添加 boseos token,这将非常有用。
  • padding (bool, strPaddingStrategy, optional, defaults to False) — 激活并控制填充。接受以下值:

    • True'longest':填充到批次中最长序列的长度(如果仅提供单个序列,则不填充)。
    • 'max_length':填充到参数 max_length 指定的最大长度,或者如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认):不填充(即,可以输出具有不同长度序列的批次)。
  • truncation (bool, strTruncationStrategy, optional, defaults to False) — 激活并控制截断。接受以下值:

    • True'longest_first':截断为参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将逐个 token 截断,从序列对中最长的序列中移除 token。
    • 'only_first':截断为参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将仅截断序列对中的第一个序列。
    • 'only_second':截断为参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将仅截断序列对中的第二个序列。
    • False'do_not_truncate' (默认):不截断(即,可以输出序列长度大于模型最大允许输入大小的批次)。
  • max_length (int, optional) — 控制截断/填充参数使用的最大长度。

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

  • stride (int, optional, defaults to 0) — 如果与 max_length 一起设置,当 return_overflowing_tokens=True 时返回的溢出 token 序列将包含来自截断序列末尾的一些 token,以便在截断序列和溢出序列之间提供一些重叠。此参数的值定义了重叠 token 的数量。
  • is_split_into_words (bool, optional, defaults to False) — 输入是否已预分词(例如,拆分为单词)。如果设置为 True,则分词器假定输入已经拆分为单词(例如,通过在空格上拆分),它将对其进行分词。这对于 NER 或 token 分类很有用。
  • pad_to_multiple_of (int, optional) — 如果设置,则将序列填充到提供值的倍数。需要激活 padding。这对于在计算能力 >= 7.5 (Volta) 的 NVIDIA 硬件上启用 Tensor Cores 的使用尤其有用。
  • padding_side (str, optional) — 模型应该在其上应用填充的一侧。应从 [‘right’, ‘left’] 中选择。默认值从同名的类属性中选取。
  • return_tensors (strTensorType, optional) — 如果设置,将返回 tensor 而不是 python 整数列表。可接受的值为:

    • 'tf':返回 TensorFlow tf.constant 对象。
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • return_token_type_ids (bool, optional) — 是否返回 token 类型 ID。如果保留为默认值,将根据特定分词器的默认值返回 token 类型 ID,由 return_outputs 属性定义。

    什么是 token 类型 ID?

  • return_attention_mask (bool, optional) — 是否返回 attention mask。如果保留为默认值,将根据特定分词器的默认值返回 attention mask,由 return_outputs 属性定义。

    什么是 attention mask?

  • return_overflowing_tokens (bool, optional, defaults to False) — 是否返回溢出的 token 序列。如果提供了一对输入 id 序列(或一批对)并使用了 truncation_strategy = longest_firstTrue,则会引发错误,而不是返回溢出的 token。
  • return_special_tokens_mask (bool, optional, defaults to False) — 是否返回特殊 token mask 信息。
  • return_offsets_mapping (bool, optional, defaults to False) — 是否为每个 token 返回 (char_start, char_end)

    这仅在继承自 PreTrainedTokenizerFast 的快速分词器上可用,如果使用 Python 的分词器,此方法将引发 NotImplementedError

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

返回

BatchEncoding

一个 BatchEncoding,包含以下字段

  • input_ids — 要馈送到模型的 token id 列表。

    什么是输入 ID?

  • token_type_ids — 要馈送到模型的 token 类型 id 列表 (当 return_token_type_ids=True 或如果 “token_type_ids”self.model_input_names 中时)。

    什么是 token 类型 ID?

  • attention_mask — 指定模型应注意哪些 token 的索引列表 (当 return_attention_mask=True 或如果 “attention_mask”self.model_input_names 中时)。

    什么是 attention mask?

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

  • num_truncated_tokens — 截断的 token 数量 (当指定了 max_lengthreturn_overflowing_tokens=True 时)。

  • special_tokens_mask — 0 和 1 的列表,其中 1 指定添加的特殊 token,0 指定常规序列 token (当 add_special_tokens=Truereturn_special_tokens_mask=True 时)。

  • length — 输入的长度 (当 return_length=True 时)

用于分词并为模型准备一个或多个序列或一个或多个序列对的主要方法。

apply_chat_template

< >

( conversation: typing.Union[typing.List[typing.Dict[str, str]], typing.List[typing.List[typing.Dict[str, str]]]] tools: typing.Optional[typing.List[typing.Union[typing.Dict, typing.Callable]]] = None documents: typing.Optional[typing.List[typing.Dict[str, str]]] = None chat_template: typing.Optional[str] = None add_generation_prompt: bool = False continue_final_message: bool = False tokenize: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: bool = False max_length: typing.Optional[int] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_dict: bool = False return_assistant_tokens_mask: bool = False tokenizer_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None **kwargs ) Union[List[int], Dict]

参数

  • conversation (Union[List[Dict[str, str]], List[List[Dict[str, str]]]]) — 包含 “role” 和 “content” 键的字典列表,表示到目前为止的聊天记录。
  • tools (List[Dict], 可选) — 工具(可调用函数)的列表,模型可以访问这些工具。如果模板不支持函数调用,则此参数无效。每个工具都应作为 JSON Schema 传递,其中提供工具的名称、描述和参数类型。有关更多信息,请参阅我们的 聊天模板指南
  • documents (List[Dict[str, str]], 可选) — 表示文档的字典列表,如果模型执行 RAG(检索增强生成),则模型可以访问这些文档。如果模板不支持 RAG,则此参数无效。我们建议每个文档都应该是一个包含 “title” 和 “text” 键的字典。有关使用聊天模板传递文档的示例,请参阅 聊天模板指南 的 RAG 部分。
  • chat_template (str, 可选) — 用于此转换的 Jinja 模板。通常不需要向此参数传递任何内容,因为默认情况下将使用模型的模板。
  • add_generation_prompt (bool, 可选) — 如果设置此项,则会将带有指示助手消息开始的 token 的提示附加到格式化输出中。当您想要从模型生成响应时,这很有用。请注意,此参数将传递给聊天模板,因此模板中必须支持此参数才能生效。
  • continue_final_message (bool, 可选) — 如果设置此项,则将格式化聊天,以便聊天中的最后一条消息是开放式的,没有任何 EOS token。模型将继续这条消息,而不是开始一条新消息。这允许您为其 “预填充” 模型响应的一部分。不能与 add_generation_prompt 同时使用。
  • tokenize (bool, 默认为 True) — 是否对输出进行 token 化。如果为 False,则输出将为字符串。
  • padding (bool, strPaddingStrategy, 可选, 默认为 False) — 选择一种策略来填充返回的序列(根据模型的填充侧和填充索引):

    • True'longest': 填充到批次中最长的序列(如果仅提供单个序列,则不填充)。
    • 'max_length': 填充到参数 max_length 指定的最大长度,如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认): 不填充(即,可以输出具有不同长度序列的批次)。
  • truncation (bool, 默认为 False) — 是否在最大长度处截断序列。如果 tokenize 为 False,则无效。
  • max_length (int, 可选) — 用于填充或截断的最大长度(以 token 为单位)。如果 tokenize 为 False,则无效。如果未指定,则 tokenizer 的 max_length 属性将用作默认值。
  • return_tensors (strTensorType, 可选) — 如果设置,将返回特定框架的张量。如果 tokenize 为 False,则无效。可接受的值为:

    • 'tf': 返回 TensorFlow tf.Tensor 对象。
    • 'pt': 返回 PyTorch torch.Tensor 对象。
    • 'np': 返回 NumPy np.ndarray 对象。
    • 'jax': 返回 JAX jnp.ndarray 对象。
  • return_dict (bool, 默认为 False) — 是否返回带有命名输出的字典。如果 tokenize 为 False,则无效。
  • tokenizer_kwargs (Dict[str -- Any], 可选): 传递给 tokenizer 的其他 kwargs。
  • return_assistant_tokens_mask (bool, 默认为 False) — 是否返回助手生成 token 的掩码。对于助手生成的 token,掩码将包含 1。对于用户和系统 token,掩码将包含 0。此功能仅适用于通过 {% generation %} 关键字支持它的聊天模板。
  • **kwargs — 传递给模板渲染器的其他 kwargs。聊天模板可以访问这些 kwargs。

返回

Union[List[int], Dict]

表示到目前为止已 token 化的聊天的 token ID 列表,包括控制 token。此输出已准备好传递给模型,可以直接传递,也可以通过 generate() 等方法传递。如果设置了 return_dict,则将返回 tokenizer 输出的字典。

将带有 "role""content" 键的字典列表转换为 token ID 列表。此方法旨在与聊天模型一起使用,并将读取 tokenizer 的 chat_template 属性以确定转换时要使用的格式和控制 token。

as_target_tokenizer

< >

( )

临时设置用于编码目标的 tokenizer。对于与序列到序列模型关联的 tokenizer 很有用,这些模型需要对标签进行稍微不同的处理。

batch_decode

< >

( sequences: typing.Union[typing.List[int], typing.List[typing.List[int]], ForwardRef('np.ndarray'), ForwardRef('torch.Tensor'), ForwardRef('tf.Tensor')] skip_special_tokens: bool = False clean_up_tokenization_spaces: bool = None **kwargs ) List[str]

参数

  • sequences (Union[List[int], List[List[int]], np.ndarray, torch.Tensor, tf.Tensor]) — token 化输入 ID 列表。可以使用 __call__ 方法获取。
  • skip_special_tokens (bool, 可选, 默认为 False) — 是否在解码中删除特殊 token。
  • clean_up_tokenization_spaces (bool, 可选) — 是否清理 token 化空格。如果为 None,则默认为 self.clean_up_tokenization_spaces
  • kwargs (其他关键字参数, 可选) — 将传递给底层模型特定的解码方法。

返回

List[str]

解码后的句子列表。

通过调用 decode 将 token ID 列表的列表转换为字符串列表。

batch_encode_plus

< >

( batch_text_or_text_pairs: typing.Union[typing.List[str], typing.List[typing.Tuple[str, str]], typing.List[typing.List[str]], typing.List[typing.Tuple[typing.List[str], typing.List[str]]], typing.List[typing.List[int]], typing.List[typing.Tuple[typing.List[int], typing.List[int]]]] add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True split_special_tokens: bool = False **kwargs ) BatchEncoding

参数

  • batch_text_or_text_pairs (List[str], List[Tuple[str, str]], List[List[str]], List[Tuple[List[str], List[str]]], 以及对于非快速分词器,也支持 List[List[int]], List[Tuple[List[int], List[int]]]) — 要编码的序列或序列对的批次。 这可以是字符串/字符串序列/整数序列的列表,或字符串/字符串序列/整数序列对的列表(详见 encode_plus)。
  • add_special_tokens (bool, 可选, 默认为 True) — 是否在编码序列时添加特殊 token。 这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些 token 会自动添加到 input ids 中。 如果你想自动添加 boseos token,这将非常有用。
  • padding (bool, strPaddingStrategy, 可选, 默认为 False) — 激活并控制填充。 接受以下值:

    • True'longest':填充到批次中最长的序列(如果仅提供单个序列,则不填充)。
    • 'max_length':填充到 max_length 参数指定的最大长度,如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认):不填充(即,可以输出具有不同长度序列的批次)。
  • truncation (bool, strTruncationStrategy, 可选, 默认为 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),则将停用截断/填充到最大长度的功能。

  • 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 Core 的使用特别有用。
  • padding_side (str, 可选) — 模型应在其上应用填充的一侧。 应在 [‘right’, ‘left’] 中选择。 默认值从同名类属性中选取。
  • return_tensors (strTensorType, 可选) — 如果设置,将返回 tensor 而不是 python 整数列表。 可接受的值为:

    • 'tf':返回 TensorFlow tf.constant 对象。
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • return_token_type_ids (bool, 可选) — 是否返回 token 类型 ID。 如果保留为默认值,将根据特定分词器的默认值(由 return_outputs 属性定义)返回 token 类型 ID。

    什么是 token 类型 ID?

  • return_attention_mask (bool, 可选) — 是否返回 attention mask。 如果保留为默认值,将根据特定分词器的默认值(由 return_outputs 属性定义)返回 attention mask。

    什么是 attention mask?

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

    这仅在继承自 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 或如果 “token_type_ids”self.model_input_names 中时)。

    什么是 token 类型 ID?

  • attention_mask — 指定模型应注意哪些 token 的索引列表 (当 return_attention_mask=True 或如果 “attention_mask”self.model_input_names 中时)。

    什么是 attention mask?

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

  • num_truncated_tokens — 截断的 token 数量 (当指定了 max_lengthreturn_overflowing_tokens=True 时)。

  • special_tokens_mask — 0 和 1 的列表,其中 1 指定添加的特殊 token,0 指定常规序列 token (当 add_special_tokens=Truereturn_special_tokens_mask=True 时)。

  • length — 输入的长度 (当 return_length=True 时)

对序列列表或序列对列表进行分词并为模型准备。

此方法已弃用,应改用 __call__

build_inputs_with_special_tokens

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — 第一个分词后的序列。
  • token_ids_1 (List[int], 可选) — 第二个分词后的序列。

返回

List[int]

带有特殊 token 的模型输入。

通过连接并添加特殊 token,从序列或序列对构建模型输入,用于序列分类任务。

此实现不添加特殊 token,此方法应在子类中重写。

clean_up_tokenization

< >

( out_string: str ) str

参数

  • out_string (str) — 要清理的文本。

返回

str

清理后的字符串。

清理简单的英语分词伪像列表,例如标点符号前的空格和缩写形式。

convert_tokens_to_string

< >

( tokens: typing.List[str] ) str

参数

  • tokens (List[str]) — 要连接成字符串的 tokens。

返回

str

连接后的 tokens。

将 token 序列转换为单个字符串。最简单的方法是 " ".join(tokens),但我们通常希望同时删除 sub-word 分词伪影。

create_token_type_ids_from_sequences

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None ) List[int]

参数

  • token_ids_0 (List[int]) — 第一个 token 化序列。
  • token_ids_1 (List[int], optional) — 第二个 token 化序列(可选)。

返回

List[int]

Token 类型 IDs。

创建与传递的序列对应的 token 类型 ID。 什么是 token 类型 IDs?

如果模型具有构建这些 ID 的特殊方式,则应在子类中重写。

decode

< >

( token_ids: typing.Union[int, typing.List[int], ForwardRef('np.ndarray'), ForwardRef('torch.Tensor'), ForwardRef('tf.Tensor')] skip_special_tokens: bool = False clean_up_tokenization_spaces: bool = None **kwargs ) str

参数

  • token_ids (Union[int, List[int], np.ndarray, torch.Tensor, tf.Tensor]) — token 化输入 id 列表。可以使用 __call__ 方法获取。
  • skip_special_tokens (bool, optional, defaults to False) — 是否在解码中删除特殊 token,默认为 False
  • clean_up_tokenization_spaces (bool, optional) — 是否清理 token 化空格。如果为 None,将默认为 self.clean_up_tokenization_spaces
  • kwargs (附加关键字参数,可选) — 将传递给底层模型特定的解码方法。

返回

str

解码后的句子。

使用 tokenizer 和词汇表,以及删除特殊 token 和清理 token 化空格的选项,将 id 序列转换为字符串。

类似于执行 self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids))

encode

< >

( text: typing.Union[str, typing.List[str], typing.List[int]] text_pair: typing.Union[str, typing.List[str], typing.List[int], NoneType] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None **kwargs ) List[int], torch.Tensor, tf.Tensor or np.ndarray

参数

  • text (str, List[str] or List[int]) — 要编码的第一个序列。这可以是字符串、字符串列表(使用 tokenize 方法 token 化的字符串)或整数列表(使用 convert_tokens_to_ids 方法 token 化的字符串 id)。
  • text_pair (str, List[str] or List[int], optional) — 可选的要编码的第二个序列。这可以是字符串、字符串列表(使用 tokenize 方法 token 化的字符串)或整数列表(使用 convert_tokens_to_ids 方法 token 化的字符串 id)。
  • add_special_tokens (bool, optional, defaults to True) — 是否在编码序列时添加特殊 token,默认为 True。这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些 token 会自动添加到输入 id 中。如果您想自动添加 boseos token,这将非常有用。
  • padding (bool, str or PaddingStrategy, optional, defaults to False) — 激活和控制 padding。接受以下值:

    • True'longest':padding 到批次中最长的序列(如果仅提供单个序列,则不进行 padding)。
    • 'max_length':padding 到由参数 max_length 指定的最大长度,或者如果未提供该参数,则 padding 到模型可接受的最大输入长度。
    • False'do_not_pad' (默认):不进行 padding(即,可以输出具有不同长度序列的批次)。
  • truncation (bool, str or TruncationStrategy, optional, defaults to False) — 激活和控制截断。接受以下值:

    • True'longest_first':截断为由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将逐个 token 截断,从序列对中最长的序列中删除 token。
    • 'only_first':截断为由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将仅截断序列对中的第一个序列。
    • 'only_second':截断为由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将仅截断序列对中的第二个序列。
    • False'do_not_truncate' (默认):不截断(即,可以输出序列长度大于模型最大允许输入大小的批次)。
  • max_length (int, optional) — 控制截断/padding 参数之一使用的最大长度。

    如果未设置或设置为 None,如果截断/padding 参数之一需要最大长度,则将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(例如 XLNet),则将停用截断/padding 到最大长度。

  • stride (int, optional, defaults to 0) — 如果与 max_length 一起设置为数字,则当 return_overflowing_tokens=True 时返回的溢出 token 将包含来自截断序列末尾的一些 token,以便在截断序列和溢出序列之间提供一些重叠。此参数的值定义了重叠 token 的数量。
  • is_split_into_words (bool, optional, defaults to False) — 指示输入是否已预先 token 化(例如,拆分为单词),默认为 False。如果设置为 True,则 tokenizer 假定输入已拆分为单词(例如,通过在空格上拆分),tokenizer 将对其进行 token 化。这对于 NER 或 token 分类非常有用。
  • pad_to_multiple_of (int, optional) — 如果设置,将序列 padding 到提供的值的倍数。需要激活 padding。这对于在计算能力 >= 7.5 (Volta) 的 NVIDIA 硬件上启用 Tensor Cores 的使用特别有用。
  • padding_side (str, optional) — 模型应在其上应用 padding 的一侧。应在 [‘right’, ‘left’] 之间选择。默认值从同名的类属性中选取。
  • return_tensors (str or TensorType, optional) — 如果设置,将返回 tensor 而不是 python 整数列表。可接受的值为:

    • 'tf':返回 TensorFlow tf.constant 对象。
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • **kwargs — 传递给 .tokenize() 方法。

返回

List[int], torch.Tensor, tf.Tensor or np.ndarray

文本的 token 化 id。

使用 tokenizer 和词汇表,将字符串转换为 id(整数)序列。

与执行 self.convert_tokens_to_ids(self.tokenize(text)) 相同。

encode_plus

< >

( text: typing.Union[str, typing.List[str], typing.List[int]] text_pair: typing.Union[str, typing.List[str], typing.List[int], NoneType] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True **kwargs ) BatchEncoding

参数

  • text (str, List[str] or (for non-fast tokenizers) List[int]) — 需要编码的第一个序列。 这可以是一个字符串,一个字符串列表(使用 tokenize 方法分词的字符串)或一个整数列表(使用 convert_tokens_to_ids 方法分词的字符串 ID)。
  • text_pair (str, List[str] or List[int], optional) — 可选的第二个要编码的序列。 这可以是一个字符串,一个字符串列表(使用 tokenize 方法分词的字符串)或一个整数列表(使用 convert_tokens_to_ids 方法分词的字符串 ID)。
  • add_special_tokens (bool, optional, defaults to True) — 是否在编码序列时添加特殊 token。 这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些 token 会自动添加到 input ids 中。 如果你想自动添加 boseos token,这将非常有用。
  • padding (bool, str or PaddingStrategy, optional, defaults to False) — 激活并控制填充。 接受以下值:

    • True'longest': 填充到 batch 中最长的序列(如果只提供单个序列,则不填充)。
    • 'max_length': 填充到由参数 max_length 指定的最大长度,或者如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认): 不填充(即,可以输出具有不同长度序列的 batch)。
  • truncation (bool, str or TruncationStrategy, optional, defaults to False) — 激活并控制截断。 接受以下值:

    • True'longest_first': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将逐个 token 截断,从该对中最长的序列中删除 token。
    • 'only_first': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将仅截断该对中的第一个序列。
    • 'only_second': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将仅截断该对中的第二个序列。
    • False'do_not_truncate' (默认): 不截断(即,可以输出序列长度大于模型最大允许输入大小的 batch)。
  • max_length (int, optional) — 控制由截断/填充参数之一使用的最大长度。

    如果未设置或设置为 None,如果截断/填充参数之一需要最大长度,则将使用预定义的模型最大长度。 如果模型没有特定的最大输入长度(如 XLNet),则将停用截断/填充到最大长度。

  • stride (int, optional, defaults to 0) — 如果与 max_length 一起设置为数字,当 return_overflowing_tokens=True 时返回的溢出 token 序列将包含来自截断序列末尾的一些 token,以便在截断序列和溢出序列之间提供一些重叠。 此参数的值定义了重叠 token 的数量。
  • is_split_into_words (bool, optional, defaults to False) — 输入是否已预先分词(例如,拆分为单词)。 如果设置为 True,则 tokenizer 假定输入已拆分为单词(例如,通过在空格上拆分),它将对其进行 token 化。 这对于 NER 或 token 分类非常有用。
  • pad_to_multiple_of (int, optional) — 如果设置,将序列填充为提供值的倍数。 需要激活 padding。 这对于在计算能力 >= 7.5 (Volta) 的 NVIDIA 硬件上启用 Tensor Core 的使用特别有用。
  • padding_side (str, optional) — 模型应在其上应用填充的一侧。 应在 [‘right’, ‘left’] 之间选择。 默认值从同名的类属性中选择。
  • return_tensors (str or TensorType, optional) — 如果设置,将返回 tensor 而不是 python 整数列表。 可接受的值为:

    • 'tf': 返回 TensorFlow tf.constant 对象。
    • 'pt': 返回 PyTorch torch.Tensor 对象。
    • 'np': 返回 Numpy np.ndarray 对象。
  • return_token_type_ids (bool, optional) — 是否返回 token 类型 ID。 如果保留为默认值,将根据特定 tokenizer 的默认值返回 token 类型 ID,由 return_outputs 属性定义。

    什么是 token 类型 ID?

  • return_attention_mask (bool, optional) — 是否返回 attention mask。 如果保留为默认值,将根据特定 tokenizer 的默认值返回 attention mask,由 return_outputs 属性定义。

    什么是 attention mask?

  • return_overflowing_tokens (bool, optional, defaults to False) — 是否返回溢出的 token 序列。 如果提供了一对输入 id 序列(或一批对),且 truncation_strategy = longest_firstTrue,则会引发错误,而不是返回溢出的 token。
  • return_special_tokens_mask (bool, optional, defaults to False) — 是否返回特殊 token mask 信息。
  • return_offsets_mapping (bool, optional, defaults to False) — 是否为每个 token 返回 (char_start, char_end)

    这仅在继承自 PreTrainedTokenizerFast 的快速 tokenizer 上可用,如果使用 Python 的 tokenizer,此方法将引发 NotImplementedError

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

返回

BatchEncoding

一个 BatchEncoding,包含以下字段

  • input_ids — 要馈送到模型的 token id 列表。

    什么是输入 ID?

  • token_type_ids — 要馈送到模型的 token 类型 id 列表 (当 return_token_type_ids=True 或如果 “token_type_ids”self.model_input_names 中时)。

    什么是 token 类型 ID?

  • attention_mask — 指定模型应注意哪些 token 的索引列表 (当 return_attention_mask=True 或如果 “attention_mask”self.model_input_names 中时)。

    什么是 attention mask?

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

  • num_truncated_tokens — 截断的 token 数量 (当指定了 max_lengthreturn_overflowing_tokens=True 时)。

  • special_tokens_mask — 0 和 1 的列表,其中 1 指定添加的特殊 token,0 指定常规序列 token (当 add_special_tokens=Truereturn_special_tokens_mask=True 时)。

  • length — 输入的长度 (当 return_length=True 时)

Tokenize 并为模型准备一个序列或一对序列。

此方法已弃用,应改用 __call__

from_pretrained

< >

( pretrained_model_name_or_path: typing.Union[str, os.PathLike] *init_inputs cache_dir: typing.Union[str, os.PathLike, NoneType] = None force_download: bool = False local_files_only: bool = False token: typing.Union[bool, str, NoneType] = None revision: str = 'main' trust_remote_code = False **kwargs )

参数

  • pretrained_model_name_or_path (str or os.PathLike) — 可以是以下之一:

    • 一个字符串,即托管在 huggingface.co 模型仓库内的预定义 tokenizer 的模型 ID
    • 一个目录的路径,该目录包含 tokenizer 所需的词汇表文件,例如使用 save_pretrained() 方法保存的目录,例如 ./my_model_directory/
    • (已弃用,不适用于所有派生类) 指向单个已保存词汇表文件的路径或 URL(当且仅当 tokenizer 只需要单个词汇表文件时,例如 Bert 或 XLNet),例如 ./my_model_directory/vocab.txt
  • cache_dir (str or os.PathLike, optional) — 下载的预定义 tokenizer 词汇表文件应缓存到的目录的路径,如果不想使用标准缓存。
  • force_download (bool, optional, defaults to False) — 是否强制(重新)下载词汇表文件并覆盖已缓存的版本(如果存在)。
  • resume_download — 已弃用并忽略。现在所有下载在可能的情况下默认都会恢复。将在 Transformers v5 版本中移除。
  • proxies (Dict[str, str], optional) — 一个代理服务器字典,用于按协议或端点使用,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理服务器用于每个请求。
  • token (str or bool, optional) — 用作远程文件 HTTP Bearer 授权的令牌。如果为 True,将使用运行 `huggingface-cli login` 时生成的令牌(存储在 `~/.huggingface` 中)。
  • local_files_only (bool, optional, defaults to False) — 是否仅依赖本地文件,而不尝试下载任何文件。
  • revision (str, optional, defaults to "main") — 要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,因为我们使用基于 git 的系统在 huggingface.co 上存储模型和其他工件,因此 `revision` 可以是 git 允许的任何标识符。
  • subfolder (str, optional) — 如果相关文件位于 huggingface.co 上模型仓库的子文件夹中(例如,对于 facebook/rag-token-base),请在此处指定。
  • inputs (additional positional arguments, optional) — 额外的 positional 参数,*可选* — 将传递给 Tokenizer 的 __init__ 方法。
  • trust_remote_code (bool, optional, defaults to False) — 是否允许在 Hub 上自定义模型,这些模型在其自己的建模文件中定义。此选项应仅对您信任且已阅读代码的存储库设置为 `True`,因为它将在您的本地计算机上执行 Hub 上存在的代码。
  • kwargs (additional keyword arguments, optional) — 额外的 keyword 参数,*可选* — 将传递给 Tokenizer 的 __init__ 方法。可用于设置特殊 token,例如 `bos_token`、`eos_token`、`unk_token`、`sep_token`、`pad_token`、`cls_token`、`mask_token`、`additional_special_tokens`。有关更多详细信息,请参阅 `__init__` 中的参数。

Instantiate a PreTrainedTokenizerBase (or a derived class) from a predefined tokenizer. 从预定义的 tokenizer 实例化一个 PreTrainedTokenizerBase(或派生类)。

Passing token=True is required when you want to use a private model. 当您想使用私有模型时,需要传递 `token=True`。

Examples 示例

# 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 get_chat_template

< >

( chat_template: typing.Optional[str] = None tools: typing.Optional[typing.List[typing.Dict]] = None ) str

参数

  • chat_template (str, optional) — 用于此转换的 Jinja 模板或模板名称。通常不需要向此参数传递任何内容,因为默认情况下将使用模型的模板。
  • tools (List[Dict], optional) — 模型可以访问的工具(可调用函数)列表。如果模板不支持函数调用,则此参数无效。每个工具都应作为 JSON Schema 传递,提供工具的名称、描述和参数类型。有关更多信息,请参阅我们的 聊天模板指南

返回

str

The chat template string. 聊天模板字符串。

Retrieve the chat template string used for tokenizing chat messages. This template is used internally by the apply_chat_template method and can also be used externally to retrieve the model’s chat template for better generation tracking. 检索用于 token 化聊天消息的聊天模板字符串。此模板在内部由 `apply_chat_template` 方法使用,也可以在外部使用以检索模型的聊天模板,以便更好地跟踪生成。

get_special_tokens_mask get_special_tokens_mask

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = None already_has_special_tokens: bool = False ) 范围在 [0, 1] 内的整数列表

参数

  • token_ids_0 (List[int]) — 第一个序列的 ID 列表。
  • token_ids_1 (List[int], optional) — 第二个序列的 ID 列表。
  • already_has_special_tokens (bool, optional, defaults to False) — token 列表是否已使用模型的特殊 token 格式化。

返回

A list of integers in the range [0, 1] 范围在 [0, 1] 内的整数列表

1 for a special token, 0 for a sequence token. 1 代表特殊 token,0 代表序列 token。

Retrieves sequence ids from a token list that has no special tokens added. This method is called when adding special tokens using the tokenizer prepare_for_model or encode_plus methods. 从没有添加特殊 token 的 token 列表中检索序列 ID。当使用 tokenizer 的 `prepare_for_model` 或 `encode_plus` 方法添加特殊 token 时,会调用此方法。

get_vocab get_vocab

< >

( ) Dict[str, int]

返回

Dict[str, int] Dict[str, int]

The vocabulary. 词汇表。

Returns the vocabulary as a dictionary of token to index. 以 token 到索引的字典形式返回词汇表。

tokenizer.get_vocab()[token] is equivalent to tokenizer.convert_tokens_to_ids(token) when token is in the vocab. 当 `token` 在词汇表中时,`tokenizer.get_vocab()[token]` 等同于 `tokenizer.convert_tokens_to_ids(token)`。

pad pad

< >

( encoded_inputs: typing.Union[transformers.tokenization_utils_base.BatchEncoding, typing.List[transformers.tokenization_utils_base.BatchEncoding], typing.Dict[str, typing.List[int]], typing.Dict[str, typing.List[typing.List[int]]], typing.List[typing.Dict[str, typing.List[int]]]] padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = True max_length: typing.Optional[int] = None pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_attention_mask: typing.Optional[bool] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None verbose: bool = True )

参数

  • encoded_inputs (BatchEncoding, list of BatchEncoding, Dict[str, List[int]], Dict[str, List[List[int]] or List[Dict[str, List[int]]]) — Token 化的输入。可以表示一个输入(BatchEncodingDict[str, List[int]])或一批 token 化的输入(BatchEncoding 列表、Dict[str, List[List[int]]]List[Dict[str, List[int]]]),因此您可以在预处理以及 PyTorch Dataloader 的 collate 函数中使用此方法。 除了 List[int],您还可以使用张量(numpy 数组、PyTorch 张量或 TensorFlow 张量),有关返回类型,请参见上面的注释。
  • padding (bool, str or PaddingStrategy, optional, defaults to True) — 选择一种策略来填充返回的序列(根据模型的填充侧和填充索引):
    • True'longest'(默认值):填充到批次中最长的序列(如果仅提供单个序列,则不填充)。
    • 'max_length':填充到使用参数 max_length 指定的最大长度,或者如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad':不填充(即,可以输出具有不同长度序列的批次)。
  • max_length (int, optional) — 返回列表的最大长度以及可选的填充长度(请参阅上文)。
  • pad_to_multiple_of (int, optional) — 如果设置,则将序列填充为所提供值的倍数。这对于在计算能力 >= 7.5 (Volta) 的 NVIDIA 硬件上启用 Tensor Core 的使用尤其有用。
  • padding_side (str, optional) — 模型应在其上应用填充的一侧。应在 [‘right’, ‘left’] 之间选择。默认值从同名类属性中选取。
  • return_attention_mask (bool, optional) — 是否返回 attention mask。如果保留为默认值,将根据特定 tokenizer 的默认值(由 `return_outputs` 属性定义)返回 attention mask。

    什么是 attention mask?

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

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

填充侧(左/右)填充 token id 在 tokenizer 级别定义(使用 self.padding_sideself.pad_token_idself.pad_token_type_id)。

请注意,对于快速 tokenizer,使用 __call__ 方法比使用方法编码文本然后调用 pad 方法来获得填充编码更快。

如果传递的 encoded_inputs 是 numpy 数组、PyTorch 张量或 TensorFlow 张量的字典,则结果将使用相同的类型,除非您使用 return_tensors 提供不同的张量类型。 在 PyTorch 张量的情况下,您将丢失张量的特定设备。

prepare_for_model

< >

( ids: typing.List[int] pair_ids: typing.Optional[typing.List[int]] = None add_special_tokens: bool = True padding: typing.Union[bool, str, transformers.utils.generic.PaddingStrategy] = False truncation: typing.Union[bool, str, transformers.tokenization_utils_base.TruncationStrategy] = None max_length: typing.Optional[int] = None stride: int = 0 pad_to_multiple_of: typing.Optional[int] = None padding_side: typing.Optional[str] = None return_tensors: typing.Union[str, transformers.utils.generic.TensorType, NoneType] = None return_token_type_ids: typing.Optional[bool] = None return_attention_mask: typing.Optional[bool] = None return_overflowing_tokens: bool = False return_special_tokens_mask: bool = False return_offsets_mapping: bool = False return_length: bool = False verbose: bool = True prepend_batch_axis: bool = False **kwargs ) BatchEncoding

参数

  • ids (List[int]) — 第一个序列的 Tokenized 输入 id。 可以通过链接 tokenizeconvert_tokens_to_ids 方法从字符串中获得。
  • pair_ids (List[int], optional) — 第二个序列的 Tokenized 输入 id。 可以通过链接 tokenizeconvert_tokens_to_ids 方法从字符串中获得。
  • add_special_tokens (bool, optional, defaults to True) — 是否在编码序列时添加特殊 token。 这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了哪些 token 会自动添加到输入 id 中。 如果您想自动添加 boseos token,这将非常有用。
  • padding (bool, strPaddingStrategy, optional, defaults to False) — 激活和控制填充。 接受以下值:

    • True'longest':填充到批次中最长的序列(如果仅提供单个序列,则不填充)。
    • 'max_length':填充到由参数 max_length 指定的最大长度,如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认):不填充(即,可以输出具有不同长度序列的批次)。
  • truncation (bool, strTruncationStrategy, optional, defaults to False) — 激活和控制截断。 接受以下值:

    • True'longest_first':截断为由参数 max_length 指定的最大长度,如果未提供该参数,则截断为模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将逐个 token 截断,从序列对中最长的序列中删除一个 token。
    • 'only_first':截断为由参数 max_length 指定的最大长度,如果未提供该参数,则截断为模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将仅截断序列对中的第一个序列。
    • 'only_second':截断为由参数 max_length 指定的最大长度,如果未提供该参数,则截断为模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将仅截断序列对中的第二个序列。
    • False'do_not_truncate' (默认):不截断(即,可以输出序列长度大于模型最大允许输入大小的批次)。
  • max_length (int, optional) — 控制截断/填充参数之一使用的最大长度。

    如果保留未设置或设置为 None,如果截断/填充参数之一需要最大长度,则将使用预定义的模型最大长度。 如果模型没有特定的最大输入长度(如 XLNet),则将停用截断/填充到最大长度。

  • stride (int, optional, defaults to 0) — 如果与 max_length 一起设置为数字,则当 return_overflowing_tokens=True 时返回的溢出 token 序列将包含来自截断序列末尾的一些 token,以在截断序列和溢出序列之间提供一些重叠。 此参数的值定义了重叠 token 的数量。
  • is_split_into_words (bool, optional, defaults to False) — 输入是否已预先 token 化(例如,拆分为单词)。 如果设置为 True,则 tokenizer 假定输入已拆分为单词(例如,通过在空格上拆分),它将对其进行 token 化。 这对于 NER 或 token 分类很有用。
  • pad_to_multiple_of (int, optional) — 如果设置,将序列填充为提供值的倍数。 需要激活 padding。 这对于在计算能力 >= 7.5 (Volta) 的 NVIDIA 硬件上启用 Tensor Core 的使用尤其有用。
  • padding_side (str, optional) — 模型应在其上应用填充的一侧。 应在 [‘right’, ‘left’] 之间选择。 默认值从同名类的属性中选取。
  • return_tensors (strTensorType, optional) — 如果设置,将返回张量而不是 python 整数列表。 可接受的值为:

    • 'tf':返回 TensorFlow tf.constant 对象。
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • return_token_type_ids (bool, optional) — 是否返回 token 类型 ID。 如果保留为默认值,将根据特定 tokenizer 的默认值返回 token 类型 ID,由 return_outputs 属性定义。

    什么是 token 类型 ID?

  • return_attention_mask (bool, optional) — 是否返回 attention mask。 如果保留为默认值,将根据特定 tokenizer 的默认值返回 attention mask,由 return_outputs 属性定义。

    什么是 attention mask?

  • return_overflowing_tokens (bool, optional, defaults to False) — 是否返回溢出的 token 序列。 如果提供了一对输入 id 序列(或一批对),并且 truncation_strategy = longest_firstTrue,则会引发错误,而不是返回溢出的 token。
  • return_special_tokens_mask (bool, optional, defaults to False) — 是否返回特殊 token 掩码信息。
  • return_offsets_mapping (bool, optional, defaults to False) — 是否为每个 token 返回 (char_start, char_end)

    这仅在继承自 PreTrainedTokenizerFast 的快速 tokenizer 上可用,如果使用 Python 的 tokenizer,此方法将引发 NotImplementedError

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

返回

BatchEncoding

一个 BatchEncoding,包含以下字段

  • input_ids — 要馈送到模型的 token id 列表。

    什么是输入 ID?

  • token_type_ids — 要馈送到模型的 token 类型 id 列表 (当 return_token_type_ids=True 或如果 “token_type_ids”self.model_input_names 中时)。

    什么是 token 类型 ID?

  • attention_mask — 指定模型应注意哪些 token 的索引列表 (当 return_attention_mask=True 或如果 “attention_mask”self.model_input_names 中时)。

    什么是 attention mask?

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

  • num_truncated_tokens — 截断的 token 数量 (当指定了 max_lengthreturn_overflowing_tokens=True 时)。

  • special_tokens_mask — 0 和 1 的列表,其中 1 指定添加的特殊 token,0 指定常规序列 token (当 add_special_tokens=Truereturn_special_tokens_mask=True 时)。

  • length — 输入的长度 (当 return_length=True 时)

准备一个输入 id 序列,或一对输入 id 序列,以便模型可以使用它。 它添加特殊 token,如果溢出则截断序列,同时考虑特殊 token,并为溢出的 token 管理滑动窗口(使用用户定义的 stride)。 请注意,对于 pair_ids 不是 Nonetruncation_strategy = longest_firstTrue 的情况,不可能返回溢出的 token。 这种参数组合将引发错误。

prepare_seq2seq_batch

< >

( src_texts: typing.List[str] tgt_texts: typing.Optional[typing.List[str]] = None max_length: typing.Optional[int] = None max_target_length: typing.Optional[int] = None padding: str = 'longest' return_tensors: str = None truncation: bool = True **kwargs ) BatchEncoding

参数

  • src_texts (List[str]) — 需要总结的文档列表或源语言文本列表。
  • tgt_texts (list, 可选的) — 摘要或目标语言文本列表。
  • max_length (int, 可选的) — 控制编码器输入(需要总结的文档或源语言文本)的最大长度。如果未设置或设置为 None,则当截断/填充参数之一需要最大长度时,将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将停用截断/填充到最大长度的功能。
  • max_target_length (int, 可选的) — 控制解码器输入(目标语言文本或摘要)的最大长度。如果未设置或设置为 None,则将使用 max_length 值。
  • padding (bool, strPaddingStrategy, 可选的, 默认为 False) — 激活并控制填充。接受以下值:

    • True'longest':填充到批次中最长序列的长度(如果仅提供单个序列,则不填充)。
    • 'max_length':填充到通过参数 max_length 指定的最大长度,或者如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认):不填充(即,可以输出具有不同长度序列的批次)。
  • return_tensors (strTensorType, 可选的) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:

    • 'tf':返回 TensorFlow tf.constant 对象。
    • 'pt':返回 PyTorch torch.Tensor 对象。
    • 'np':返回 Numpy np.ndarray 对象。
  • truncation (bool, strTruncationStrategy, 可选的, 默认为 True) — 激活并控制截断。接受以下值:

    • True'longest_first':截断到通过参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),这将逐个 token 地截断,从较长序列中移除 token。
    • 'only_first':截断到通过参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则这将仅截断第一个序列。
    • 'only_second':截断到通过参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则这将仅截断第二个序列。
    • False'do_not_truncate' (默认):不截断(即,可以输出序列长度大于模型最大允许输入大小的批次)。
  • **kwargs — 传递给 self.__call__ 的附加关键字参数。

返回

BatchEncoding

一个 BatchEncoding,包含以下字段

  • input_ids — 要馈送到编码器的 token id 列表。
  • attention_mask — 索引列表,指定模型应关注哪些 token。
  • labels — tgt_texts 的 token id 列表。

只有在传递 tgt_texts 时,才会返回键 [input_ids, attention_mask, labels] 的完整集合。否则,只会返回 input_ids 和 attention_mask 键。

准备用于翻译的模型输入。为了获得最佳性能,一次翻译一个句子。

push_to_hub

< >

( repo_id: str use_temp_dir: typing.Optional[bool] = None commit_message: typing.Optional[str] = None private: typing.Optional[bool] = None token: typing.Union[bool, str, NoneType] = None max_shard_size: typing.Union[int, str, NoneType] = '5GB' create_pr: bool = False safe_serialization: bool = True revision: str = None commit_description: str = None tags: typing.Optional[typing.List[str]] = None **deprecated_kwargs )

参数

  • repo_id (str) — 您想要将分词器推送到的仓库的名称。当推送到给定的组织时,它应该包含您的组织名称。
  • use_temp_dir (bool, 可选的) — 是否使用临时目录来存储推送至 Hub 之前保存的文件。如果不存在名为 repo_id 的目录,则默认为 True,否则为 False
  • commit_message (str, 可选的) — 推送时提交的消息。默认为 "Upload tokenizer"
  • private (bool, 可选的) — 是否将仓库设为私有。如果为 None(默认),则仓库将是公开的,除非组织的默认设置为私有。如果仓库已存在,则忽略此值。
  • token (boolstr, 可选的) — 用作远程文件的 HTTP bearer 授权的令牌。如果为 True,将使用运行 huggingface-cli login 时生成的令牌(存储在 ~/.huggingface 中)。如果未指定 repo_url,则默认为 True
  • max_shard_size (intstr, 可选的, 默认为 "5GB") — 仅适用于模型。检查点分片之前的最大大小。检查点分片后的每个分片大小将小于此大小。如果表示为字符串,则需要是后跟单位的数字(如 "5MB")。我们默认设置为 "5GB",以便用户可以在免费层级的 Google Colab 实例上轻松加载模型,而不会出现任何 CPU OOM 问题。
  • create_pr (bool, 可选的, 默认为 False) — 是否使用上传的文件创建 PR 或直接提交。
  • safe_serialization (bool, 可选的, 默认为 True) — 是否将模型权重转换为 safetensors 格式以实现更安全的序列化。
  • revision (str, 可选的) — 将上传的文件推送到的分支。
  • commit_description (str, 可选的) — 将要创建的提交的描述
  • tags (List[str], 可选的) — 要推送到 Hub 上的标签列表。

将分词器文件上传到 🤗 Model Hub。

Examples 示例

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 (strtype, 可选的, 默认为 "AutoTokenizer") — 用于注册此新分词器的自动类。

使用给定的自动类注册此类。这应该仅用于自定义分词器,因为库中的分词器已与 AutoTokenizer 映射。

此 API 是实验性的,并且在接下来的版本中可能会有一些轻微的破坏性更改。

save_pretrained

< >

( save_directory: typing.Union[str, os.PathLike] legacy_format: typing.Optional[bool] = None filename_prefix: typing.Optional[str] = None push_to_hub: bool = False **kwargs ) A tuple of str

参数

  • save_directory (stros.PathLike) — tokenizer 将被保存到的目录路径。
  • legacy_format (bool, 可选) — 仅适用于快速 tokenizer。如果未设置(默认),将以统一的 JSON 格式保存 tokenizer,如果存在旧格式,也会以旧格式保存,即使用 tokenizer 特定的词汇表和单独的 added_tokens 文件。

    如果为 False,则仅以统一的 JSON 格式保存 tokenizer。此格式与“慢速” tokenizer(非 tokenizers 库驱动)不兼容,因此 tokenizer 将无法在相应的“慢速” tokenizer 中加载。

    如果为 True,将以旧格式保存 tokenizer。如果“慢速” tokenizer 不存在,则会引发值错误。

  • filename_prefix (str, 可选) — 添加到 tokenizer 保存的文件名中的前缀。
  • push_to_hub (bool, 可选, 默认为 False) — 是否在保存后将您的模型推送到 Hugging Face 模型中心。您可以使用 repo_id 指定要推送到的存储库(默认为您命名空间中 save_directory 的名称)。
  • kwargs (Dict[str, Any], 可选) — 传递给 push_to_hub() 方法的附加关键字参数。

返回

A tuple of str

保存的文件。

保存完整的 tokenizer 状态。

此方法确保可以使用 ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained 类方法重新加载完整的 tokenizer。

Warning,None 注意,这不会保存您在实例化后可能应用于 tokenizer 的修改(例如,在创建后修改 tokenizer.do_lower_case)。

save_vocabulary

< >

( save_directory: str filename_prefix: typing.Optional[str] = None ) Tuple(str)

参数

  • save_directory (str) — 要在其中保存词汇表的目录。
  • filename_prefix (str, 可选) — 可选的前缀,添加到已保存文件的名称中。

返回

Tuple(str)

已保存文件的路径。

仅保存 tokenizer 的词汇表(词汇表 + 添加的 tokens)。

此方法不会保存 tokenizer 的配置和特殊 token 映射。使用 _save_pretrained() 保存 tokenizer 的完整状态。

tokenize

< >

( text: str pair: typing.Optional[str] = None add_special_tokens: bool = False **kwargs ) List[str]

参数

  • text (str) — 要编码的序列。
  • pair (str, 可选) — 要与第一个序列一起编码的第二个序列。
  • add_special_tokens (bool, 可选, 默认为 False) — 是否添加与相应模型关联的特殊 tokens。
  • kwargs (附加关键字参数, 可选) — 将传递给底层模型特定的 encode 方法。 有关详细信息,请参阅 call()

返回

List[str]

The list of tokens.

将字符串转换为 tokens 序列,用 unk_token 替换未知 tokens。

truncate_sequences

< >

( ids: typing.List[int] pair_ids: typing.Optional[typing.List[int]] = None num_tokens_to_remove: int = 0 truncation_strategy: typing.Union[str, transformers.tokenization_utils_base.TruncationStrategy] = 'longest_first' stride: int = 0 ) Tuple[List[int], List[int], List[int]]

参数

  • ids (List[int]) — 第一个序列的 Tokenized 输入 ids。 可以通过链接 tokenizeconvert_tokens_to_ids 方法从字符串中获得。
  • pair_ids (List[int], 可选) — 第二个序列的 Tokenized 输入 ids。 可以通过链接 tokenizeconvert_tokens_to_ids 方法从字符串中获得。
  • num_tokens_to_remove (int, 可选, 默认为 0) — 使用截断策略要删除的 tokens 数量。
  • truncation_strategy (strTruncationStrategy, 可选, 默认为 'longest_first') — 截断要遵循的策略。 可以是:

    • 'longest_first':截断为使用参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将逐个 token 截断,从这对序列中最长的序列中删除一个 token。
    • 'only_first':截断为使用参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将仅截断一对序列中的第一个序列。
    • 'only_second':截断为使用参数 max_length 指定的最大长度,或者如果未提供该参数,则截断为模型可接受的最大输入长度。 如果提供了一对序列(或一批对),这将仅截断一对序列中的第二个序列。
    • 'do_not_truncate' (默认):不截断(即,可以输出序列长度大于模型最大允许输入大小的批次)。
  • stride (int, 可选, 默认为 0) — 如果设置为正数,则返回的溢出 tokens 将包含来自主序列的一些 tokens。 此参数的值定义了额外的 tokens 数量。

返回

Tuple[List[int], List[int], List[int]]

截断的 ids,截断的 pair_ids 和溢出 tokens 列表。 注意:如果提供了一对序列(或一批对),longest_first 策略将返回空的溢出 tokens 列表。

按照策略就地截断序列对。

SpecialTokensMixin

class transformers.SpecialTokensMixin

< >

( verbose = False **kwargs )

参数

  • bos_token (strtokenizers.AddedToken, 可选) — 表示句子开头的特殊 token。
  • eos_token (strtokenizers.AddedToken, 可选) — 表示句子结尾的特殊 token。
  • unk_token (strtokenizers.AddedToken, 可选) — 表示词汇表外 token 的特殊 token。
  • sep_token (strtokenizers.AddedToken, 可选) — 用于分隔同一输入中两个不同句子的特殊 token (例如 BERT 所使用)。
  • pad_token (strtokenizers.AddedToken, 可选) — 用于使 token 数组大小一致以便于批处理的特殊 token。随后会被注意力机制或损失计算忽略。
  • cls_token (strtokenizers.AddedToken, 可选) — 表示输入类别的特殊 token (例如 BERT 所使用)。
  • mask_token (strtokenizers.AddedToken, 可选) — 表示被遮盖 token 的特殊 token (用于遮盖语言模型预训练目标,例如 BERT)。
  • additional_special_tokens (tuple 或 list,元素为 strtokenizers.AddedToken, 可选) — 额外的 token 的 tuple 或 list,将被标记为 special,这意味着如果 skip_special_tokens 设置为 True,它们将在解码时被跳过。

PreTrainedTokenizerPreTrainedTokenizerFast 派生的 mixin 类,用于处理与特殊 token 相关的特定行为。 特别是,此类保存可用于以模型无关的方式直接访问这些特殊 token 的属性,并允许设置和更新特殊 token。

add_special_tokens

< >

( special_tokens_dict: typing.Dict[str, typing.Union[str, tokenizers.AddedToken]] replace_additional_special_tokens = True ) int

参数

  • special_tokens_dict (字典,键为 str,值为 strtokenizers.AddedToken) — 键应在预定义的特殊属性列表中:[bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, additional_special_tokens]。

    只有当 token 尚未在词汇表中时,才会被添加 (通过检查 tokenizer 是否为其分配了 unk_token 的索引来测试)。

  • replace_additional_special_tokens (bool, 可选, 默认为 True) — 如果为 True,则现有的附加特殊 token 列表将被 special_tokens_dict 中提供的列表替换。 否则,仅扩展 self._special_tokens_map["additional_special_tokens"]。 在前一种情况下,token 将不会从 tokenizer 的完整词汇表中删除 - 它们仅被标记为非特殊 token。 请记住,这仅影响在解码期间跳过哪些 token,而不是 added_tokens_encoderadded_tokens_decoder。 这意味着先前的 additional_special_tokens 仍然是添加的 token,并且不会被模型拆分。

返回

int

添加到词汇表的 token 数量。

将特殊 token (eos, pad, cls 等) 的字典添加到 encoder,并将它们链接到类属性。如果特殊 token 不在词汇表中,则会将其添加到词汇表中 (从当前词汇表的最后一个索引开始索引)。

当向词汇表添加新 token 时,您应确保同时调整模型的 token 嵌入矩阵的大小,以便其嵌入矩阵与 tokenizer 匹配。

为了做到这一点,请使用 resize_token_embeddings() 方法。

使用 add_special_tokens 将确保您的特殊 token 可以通过多种方式使用

  • 使用 skip_special_tokens = True 解码时可以跳过特殊 token。
  • 特殊 token 由 tokenizer 仔细处理 (它们永远不会被拆分),类似于 AddedTokens
  • 您可以使用 tokenizer 类属性 (如 tokenizer.cls_token) 轻松引用特殊 token。 这使得开发模型无关的训练和微调脚本变得容易。

如果可能,特殊 token 已经为提供的预训练模型注册 (例如 BertTokenizercls_token 已注册为 :obj_’[CLS]’_,而 XLM 的 cls_token 也注册为 '</s>')。

Examples 示例

# 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: typing.Union[str, tokenizers.AddedToken, typing.List[typing.Union[str, tokenizers.AddedToken]]] special_tokens: bool = False ) int

参数

  • new_tokens (str, tokenizers.AddedTokenstrtokenizers.AddedToken 的列表) — 只有当 token 尚未在词汇表中时,才会被添加。 tokenizers.AddedToken 包装了一个字符串 token,让您可以自定义其行为:此 token 是否应仅与单个单词匹配,此 token 是否应去除左侧的所有潜在空格,此 token 是否应去除右侧的所有潜在空格等等。
  • special_tokens (bool, 可选, 默认为 False) — 可用于指定 token 是否为特殊 token。 这主要改变了归一化行为 (例如,特殊 token 如 CLS 或 [MASK] 通常不会小写)。

    有关 tokenizers.AddedToken 的详细信息,请参阅 HuggingFace tokenizers 库。

返回

int

添加到词汇表的 token 数量。

向 tokenizer 类添加新的 token 列表。 如果新 token 不在词汇表中,则会将其添加到词汇表中,索引从当前词汇表的长度开始,并且在应用 tokenization 算法之前将被隔离。 因此,添加的 token 和来自 tokenization 算法词汇表的 token 不会以相同的方式处理。

注意,当向词汇表添加新 token 时,您应确保同时调整模型的 token 嵌入矩阵的大小,以便其嵌入矩阵与 tokenizer 匹配。

为了做到这一点,请使用 resize_token_embeddings() 方法。

Examples 示例

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

sanitize_special_tokens

< >

( )

sanitize_special_tokens 现在已弃用,保留用于向后兼容性,并将在 transformers v5 中删除。

枚举和命名元组

class transformers.tokenization_utils_base.TruncationStrategy

< >

( value names = None module = None qualname = None type = None start = 1 )

PreTrainedTokenizerBase.__call__()truncation 参数的可能值。在 IDE 中用于标签页补全非常有用。

class transformers.CharSpan

< >

( start: int end: int )

参数

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

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

class transformers.TokenSpan

< >

( start: int end: int )

参数

  • start (int) — 跨度中第一个 token 的索引。
  • end (int) — 跨度中最后一个 token 之后 token 的索引。

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

< > 在 GitHub 上更新