Transformers 4.37 中文文档(九十九)

2024-07-26 10:03:34 浏览数 (2)

原文:huggingface.co/docs/transformers

管道的实用程序

原文:huggingface.co/docs/transformers/v4.37.2/en/internal/pipelines_utils

此页面列出了库为管道提供的所有实用程序函数。

这些大多数只有在研究库中模型的代码时才有用。

参数处理

class transformers.pipelines.ArgumentHandler

<来源>

代码语言:javascript复制
( )

处理每个 Pipeline 的参数的基本接口。

class transformers.pipelines.ZeroShotClassificationArgumentHandler

<来源>

代码语言:javascript复制
( )

通过将每个可能的标签转换为 NLI 前提/假设对来处理零射击文本分类的参数。

class transformers.pipelines.QuestionAnsweringArgumentHandler

<来源>

代码语言:javascript复制
( )

QuestionAnsweringPipeline 要求用户提供多个参数(即问题和上下文),以映射到内部的 SquadExample

QuestionAnsweringArgumentHandler 管理从命令行提供的参数创建 SquadExample 的所有可能性。

数据格式

class transformers.PipelineDataFormat

<来源>

代码语言:javascript复制
( output_path: Optional input_path: Optional column: Optional overwrite: bool = False )

参数

  • output_path (str) — 要保存传出数据的位置。
  • input_path (str) — 要查找输入数据的位置。
  • column (str) — 要读取的列。
  • overwrite (bool, 可选, 默认为 False) — 是否覆盖 output_path

所有管道支持的数据格式的基类,用于读取和写入。当前支持的数据格式包括:

  • JSON
  • CSV
  • stdin/stdout(管道)

PipelineDataFormat 还包括一些实用程序,用于处理多列,例如通过 dataset_kwarg_1=dataset_column_1 格式将数据集列映射到管道关键字参数。

from_str

<来源>

代码语言:javascript复制
( format: str output_path: Optional input_path: Optional column: Optional overwrite = False ) → export const metadata = 'undefined';PipelineDataFormat

参数

  • format (str) — 所需管道的格式。可接受的值为 "json""csv""pipe"
  • output_path (str, 可选) — 要保存传出数据的位置。
  • input_path (str, 可选) — 要查找输入数据的位置。
  • column (str, 可选) — 要读取的列。
  • overwrite (bool, 可选, 默认为 False) — 是否覆盖 output_path

返回

PipelineDataFormat

适当的数据格式。

根据 format 创建 PipelineDataFormat 的正确子类实例。

save

<来源>

代码语言:javascript复制
( data: Union )

参数

  • data (dictdict 列表) — 要存储的数据。

使用当前 PipelineDataFormat 的表示保存提供的数据对象。

save_binary

<来源>

代码语言:javascript复制
( data: Union ) → export const metadata = 'undefined';str

参数

  • data (dictdict 列表) — 要存储的数据。

返回

str

数据保存的路径。

将提供的数据对象保存为 pickle 格式的二进制数据在磁盘上。

class transformers.CsvPipelineDataFormat

<来源>

代码语言:javascript复制
( output_path: Optional input_path: Optional column: Optional overwrite = False )

参数

  • output_path (str) — 保存传出数据的位置。
  • input_path (str) — 查找输入数据的位置。
  • column (str) — 要读取的列。
  • overwrite (bool, 可选, 默认为 False) — 是否覆盖 output_path

支持使用 CSV 数据格式的管道。

保存

<来源>

代码语言:javascript复制
( data: List )

参数

  • data (List[dict]) — 要存储的数据。

使用当前的 PipelineDataFormat 表示保存提供的数据对象。

class transformers.JsonPipelineDataFormat

<来源>

代码语言:javascript复制
( output_path: Optional input_path: Optional column: Optional overwrite = False )

参数

  • output_path (str) — 保存传出数据的位置。
  • input_path (str) — 查找输入数据的位置。
  • column (str) — 要读取的列。
  • overwrite (bool, 可选, 默认为 False) — 是否覆盖 output_path

支持使用 JSON 文件格式的管道。

保存

<来源>

代码语言:javascript复制
( data: dict )

参数

  • data (dict) — 要存储的数据。

将提供的数据对象保存在 json 文件中。

class transformers.PipedPipelineDataFormat

<来源>

代码语言:javascript复制
( output_path: Optional input_path: Optional column: Optional overwrite: bool = False )

参数

  • output_path (str) — 保存传出数据的位置。
  • input_path (str) — 查找输入数据的位置。
  • column (str) — 要读取的列。
  • overwrite (bool, 可选, 默认为 False) — 是否覆盖 output_path

从管道输入读取数据到 python 进程。对于多列数据,列应该用分隔符分开

如果提供了列,则输出将是一个包含 {column_x: value_x} 的字典

保存

<来源>

代码语言:javascript复制
( data: dict )

参数

  • data (dict) — 要存储的数据。

打印数据。

实用工具

class transformers.pipelines.PipelineException

<来源>

代码语言:javascript复制
( task: str model: str reason: str )

参数

  • task (str) — 管道的任务。
  • model (str) — 管道使用的模型。
  • reason (str) — 要显示的错误消息。

在处理 call 时由 Pipeline 引发。

分词器实用程序

原始文本:huggingface.co/docs/transformers/v4.37.2/en/internal/tokenization_utils

此页面列出了分词器使用的所有实用函数,主要是实现 PreTrainedTokenizer 和 PreTrainedTokenizerFast 之间的常见方法的类 PreTrainedTokenizerBase 和混合 SpecialTokensMixin。

大多数情况下,这些只有在研究库中的分词器代码时才有用。

PreTrainedTokenizerBase

class transformers.PreTrainedTokenizerBase

< source >

代码语言:javascript复制
( **kwargs )

参数

  • model_max_length (int, 可选) — 输入到变换器模型的最大长度(以标记数计)。当使用 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 模板字符串。查看 huggingface.co/docs/transformers/chat_templating 获取完整描述。
  • model_input_names (List[string], 可选) — 模型前向传递接受的输入列表(如 "token_type_ids""attention_mask")。默认值从同名类属性中选择。
  • bos_token (strtokenizers.AddedToken, 可选) — 代表句子开头的特殊标记。将与 self.bos_tokenself.bos_token_id 相关联。
  • eos_token (strtokenizers.AddedToken, 可选) — 代表句子结尾的特殊标记。将与 self.eos_tokenself.eos_token_id 相关联。
  • unk_token (strtokenizers.AddedToken, 可选) — 代表一个未知词的特殊标记。将与 self.unk_tokenself.unk_token_id 相关联。
  • sep_token (strtokenizers.AddedToken, 可选) — 用于在同一输入中分隔两个不同句子的特殊标记(例如,BERT 使用)。将与 self.sep_tokenself.sep_token_id 相关联。
  • pad_token (strtokenizers.AddedToken, 可选) — 用于使标记数组大小相同以进行批处理的特殊标记。然后将被注意机制或损失计算忽略。将与 self.pad_tokenself.pad_token_id 相关联。
  • cls_token (strtokenizers.AddedToken, 可选) — 代表输入类别的特殊标记(例如,BERT 使用)。将与 self.cls_tokenself.cls_token_id 相关联。
  • mask_token (strtokenizers.AddedToken, 可选) — 代表一个被屏蔽的标记的特殊标记(用于掩码语言建模预训练目标,如 BERT)。将与 self.mask_tokenself.mask_token_id 相关联。
  • additional_special_tokens(元组或strtokenizers.AddedToken的列表,可选) — 附加特殊标记的元组或列表。在此处添加它们以确保在skip_special_tokens设置为 True 时解码时跳过它们。如果它们不是词汇的一部分,它们将被添加到词汇的末尾。
  • clean_up_tokenization_spaces (bool, 可选,默认为True) — 模型是否应清除在分词过程中拆分输入文本时添加的空格。
  • split_special_tokens (bool, 可选,默认为False) — 特殊标记是否应在分词过程中拆分。默认行为是不拆分特殊标记。这意味着如果<s>bos_token,那么tokenizer.tokenize("<s>") = ['<s>]。否则,如果split_special_tokens=True,那么tokenizer.tokenize(“”)将给出[‘<’, ‘s’, ‘>’]。目前仅支持slow`分词器支持此参数。

PreTrainedTokenizer 和 PreTrainedTokenizerFast 的基类。

处理这两个类的共享(大部分是样板)方法。

类属性(由派生类覆盖)

  • vocab_files_names (Dict[str, str]) — 一个字典,其中键是模型所需的每个词汇文件的__init__关键字名称,关联值是用于保存关联文件的文件名(字符串)。
  • pretrained_vocab_files_map (Dict[str, Dict[str, str]]) — 一个字典的字典,高级键是模型所需的每个词汇文件的__init__关键字名称,低级键是预训练模型的short-cut-names,关联值是关联预训练词汇文件的url
  • max_model_input_sizes (Dict[str, Optional[int]]) — 一个字典,其中键是预训练模型的short-cut-names,关联值是该模型的序列输入的最大长度,如果模型没有最大输入大小,则为None
  • pretrained_init_configuration (Dict[str, Dict[str, Any]]) — 预训练模型的short-cut-names作为键,关联值是一个字典,其中包含加载预训练模型时传递给 tokenizer 类的__init__方法的特定参数。
  • model_input_names (List[str]) — 模型前向传递中预期的输入列表。
  • padding_side (str) — 模型应该应用填充的默认位置。应为'right''left'
  • truncation_side (str) — 模型应该应用截断的默认位置。应为'right''left'
__call__

<来源>

代码语言:javascript复制
( text: Union = None text_pair: Union = None text_target: Union = None text_pair_target: Union = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: Optional = None return_tensors: Union = None return_token_type_ids: Optional = None return_attention_mask: Optional = 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 ) → export const metadata = 'undefined';BatchEncoding

参数

  • text (str, List[str], List[List[str]], optional) — 要编码的序列或批量序列。每个序列可以是字符串或字符串列表(预先分词的字符串)。如果提供的序列是字符串列表(预先分词的),必须设置is_split_into_words=True(以消除与批量序列的歧义)。
  • text_pair (str, List[str], List[List[str]], optional) — 要编码的序列或批量序列。每个序列可以是字符串或字符串列表(预先分词的字符串)。如果提供的序列是字符串列表(预先分词的),必须设置is_split_into_words=True(以消除与批量序列的歧义)。
  • text_targetstrList[str]List[List[str]]可选)— 要编码为目标文本的序列或批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),必须设置is_split_into_words=True(以消除与批次序列的歧义)。
  • text_pair_targetstrList[str]List[List[str]]可选)— 要编码为目标文本的序列或批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),必须设置is_split_into_words=True(以消除与批次序列的歧义)。
  • add_special_tokensbool可选,默认为True)— 在编码序列时是否添加特殊标记。这将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens函数,该函数定义了自动添加到输入 id 的标记。如果要自动添加boseos标记,则这很有用。
  • paddingboolstr或 PaddingStrategy,可选,默认为False)— 激活和控制填充。接受以下值:
    • True'longest':填充到批次中最长的序列(如果只提供单个序列,则不填充)。
    • 'max_length': 使用参数max_length指定的最大长度进行填充,或者使用模型的最大可接受输入长度(如果未提供该参数)。
    • False'do_not_pad'(默认):无填充(即,可以输出长度不同的序列批次)。
  • truncationboolstr或 TruncationStrategy,可选,默认为False)— 激活和控制截断。接受以下值:
    • True'longest_first':使用参数max_length指定的最大长度进行截断,或者使用模型的最大可接受输入长度(如果未提供该参数)。这将逐标记截断,如果提供了一对序列(或一批对序列),则从较长序列中删除一个标记。
    • 'only_first': 使用参数max_length指定的最大长度进行截断,或者使用模型的最大可接受输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则仅截断第一个序列。
    • 'only_second': 使用参数max_length指定的最大长度进行截断,或者使用模型的最大可接受输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则仅截断第二个序列。
    • False'do_not_truncate'(默认):无截断(即,可以输出长度大于模型最大可接受输入大小的批次)。
  • max_lengthint可选)— 由截断/填充参数之一使用的最大长度。 如果未设置或设置为None,则将使用预定义的模型最大长度(如果截断/填充参数中需要最大长度)。如果模型没有特定的最大输入长度(如 XLNet),则将禁用截断/填充到最大长度。
  • strideint可选,默认为 0)— 如果与max_length一起设置为一个数字,则当return_overflowing_tokens=True时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。此参数的值定义了重叠标记的数量。
  • is_split_into_words (bool, optional, defaults to False) — 输入是否已经预分词化(例如,已经分成单词)。如果设置为True,分词器会假定输入已经分成单词(例如,通过在空格上分割),然后对其进行分词。这对于 NER 或令牌分类很有用。
  • pad_to_multiple_of (int, optional) — 如果设置,将填充序列到提供的值的倍数。需要激活padding。这对于启用具有计算能力>= 7.5(Volta)的 NVIDIA 硬件上的 Tensor Cores 的使用特别有用。
  • return_tensors (str或 TensorType, optional) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'tf': 返回 TensorFlow tf.constant对象。
    • 'pt': 返回 PyTorch torch.Tensor对象。
    • 'np': 返回 Numpy np.ndarray对象。
  • return_token_type_ids (bool, optional) — 是否返回令牌类型 ID。如果保持默认设置,将根据特定分词器的默认值返回令牌类型 ID,由return_outputs属性定义。 什么是 token 类型 ID?
  • return_attention_mask (bool, optional) — 是否返回注意力掩码。如果保持默认设置,将根据特定分词器的默认值返回注意力掩码,由return_outputs属性定义。 什么是注意力掩码?
  • return_overflowing_tokens (bool, optional, defaults to False) — 是否返回溢出的令牌序列。如果提供了一对输入 ID 序列(或一批对)并且truncation_strategy = longest_firstTrue,则会引发错误,而不是返回溢出的令牌。
  • return_special_tokens_mask (bool, optional, defaults to False) — 是否返回特殊令牌掩码信息。
  • return_offsets_mapping (bool, optional, defaults to False) — 是否返回每个令牌的(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 — 要馈送给模型的令牌 ID 列表。 什么是输入 ID?
  • token_type_ids — 要馈送给模型的令牌类型 ID 列表(当return_token_type_ids=True或*token_type_ids*在self.model_input_names中时)。 什么是 token 类型 ID?
  • attention_mask — 指定模型应该关注的令牌的索引列表(当return_attention_mask=True或*attention_mask*在self.model_input_names中时)。 什么是注意力掩码?
  • 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=Truereturn_special_tokens_mask=True时)。
  • length — 输入的长度(当return_length=True时)

标记化和为模型准备一个或多个序列或一个或多个序列对的主要方法。

apply_chat_template

<来源>

代码语言:javascript复制
( conversation: Union chat_template: Optional = None add_generation_prompt: bool = False tokenize: bool = True padding: bool = False truncation: bool = False max_length: Optional = None return_tensors: Union = None **tokenizer_kwargs ) → export const metadata = 'undefined';List[int]

参数

  • conversation(Union[List[Dict[str, str]], “Conversation”) — 一个 Conversation 对象或包含“role”和“content”键的字典列表,表示到目前为止的聊天历史。
  • chat_template(str,可选) — 用于此转换的 Jinja 模板。如果未传递此参数,则将使用模型的默认聊天模板。
  • add_generation_prompt(bool,可选) — 是否以指示助手消息开始的标记结束提示。当您想要从模型生成响应时,这很有用。请注意,此参数将传递给聊天模板,因此必须在模板中支持此参数才能产生任何效果。
  • tokenizebool,默认为True) — 是否对输出进行标记化。如果为False,输出将是一个字符串。
  • paddingbool,默认为False) — 是否将序列填充到最大长度。如果 tokenize 为False,则无效。
  • truncationbool,默认为False) — 是否在最大长度处截断序列。如果 tokenize 为False,则无效。
  • max_lengthint可选) — 用于填充或截断的最大长度(以标记为单位)。如果未指定,则将使用分词器的max_length属性作为默认值。
  • return_tensorsstr或 TensorType,可选) — 如果设置,将返回特定框架的张量。如果 tokenize 为False,则无效。可接受的值为:
    • 'tf':返回 TensorFlow tf.Tensor对象。
    • 'pt':返回 PyTorch torch.Tensor对象。
    • 'np':返回 NumPy np.ndarray对象。
    • 'jax':返回 JAX jnp.ndarray对象。**tokenizer_kwargs — 传递给分词器的额外 kwargs。

返回

List[int]

表示到目前为止标记化聊天的标记 id 列表,包括控制标记。此输出已准备好直接传递给模型,或通过generate()等方法传递。

将 Conversation 对象或包含"role""content"键的字典列表转换为标记 id 列表。此方法旨在与聊天模型一起使用,并将读取分词器的 chat_template 属性以确定在转换时要使用的格式和控制标记。当 chat_template 为 None 时,将退回到在类级别指定的 default_chat_template。

as_target_tokenizer

<来源>

代码语言:javascript复制
( )

临时设置用于编码目标的分词器。对于需要为标签进行稍微不同处理的序列到序列模型相关的分词器非常有用。

batch_decode

<来源>

代码语言:javascript复制
( sequences: Union skip_special_tokens: bool = False clean_up_tokenization_spaces: bool = None **kwargs ) → export const metadata = 'undefined';List[str]

参数

  • sequences (Union[List[int], List[List[int]], np.ndarray, torch.Tensor, tf.Tensor]) — 标记化输入 id 的列表。可以使用__call__方法获得。
  • skip_special_tokensbool可选,默认为False) — 是否删除解码中的特殊标记。
  • clean_up_tokenization_spacesbool可选) — 是否清除分词空格。如果为None,将默认为self.clean_up_tokenization_spaces
  • kwargs(额外的关键字参数,可选) — 将传递给底层模型特定的解码方法。

返回

List[str]

解码的句子列表。

将标记 id 列表的列表转换为字符串列表,通过调用解码。

batch_encode_plus

<来源>

代码语言:javascript复制
( batch_text_or_text_pairs: Union add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: Optional = None return_tensors: Union = None return_token_type_ids: Optional = None return_attention_mask: Optional = 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 ) → export const metadata = 'undefined';BatchEncoding

参数

  • batch_text_or_text_pairsList[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_tokensbool可选,默认为True) - 在编码序列时是否添加特殊标记。这将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens函数,该函数定义了自动添加到输入 id 的标记。如果要自动添加boseos标记,则这很有用。
  • paddingboolstr或 PaddingStrategy,可选,默认为False) - 激活和控制填充。接受以下值:
    • True'longest':填充到批次中最长的序列(如果只提供了单个序列,则不进行填充)。
    • 'max_length': 使用参数max_length指定的最大长度进行填充,或者如果未提供该参数,则使用模型的最大可接受输入长度。
    • False'do_not_pad'(默认):不进行填充(即,可以输出长度不同的序列批次)。
  • truncationboolstr或 TruncationStrategy,可选,默认为False) - 激活和控制截断。接受以下值:
    • True'longest_first': 使用参数max_length指定的最大长度进行截断,或者如果未提供该参数,则使用模型的最大可接受输入长度。这将逐个标记地截断,如果提供了一对序列(或一批序列),则从该对中最长的序列中删除一个标记。
    • 'only_first':使用参数max_length指定的最大长度进行截断,或者如果未提供该参数,则使用模型的最大可接受输入长度。如果提供了一对序列(或一批序列),则仅截断第一个序列。
    • 'only_second':使用参数max_length指定的最大长度进行截断,或者如果未提供该参数,则使用模型的最大可接受输入长度。如果提供了一对序列(或一批序列),则仅截断第二个序列。
    • False'do_not_truncate'(默认):不进行截断(即,可以输出长度大于模型最大可接受输入大小的序列批次)。
  • max_lengthint可选) - 控制截断/填充参数使用的最大长度。 如果未设置或设置为None,则如果截断/填充参数中的一个需要最大长度,则将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将停用截断/填充到最大长度。
  • strideint可选,默认为 0) - 如果与max_length一起设置为一个数字,则当return_overflowing_tokens=True时返回的溢出标记将包含从截断序列末尾返回的一些标记,以提供截断和溢出序列之间的一些重叠。此参数的值定义了重叠标记的数量。
  • is_split_into_wordsbool可选,默认为False) - 输入是否已经预分词(例如,已经分成单词)。如果设置为True,则分词器会假定输入已经分成单词(例如,通过在空格上分割),然后对其进行分词。这对于 NER 或标记分类很有用。
  • pad_to_multiple_ofint可选) — 如果设置,将序列填充到提供的值的倍数。需要激活padding。这对于在具有计算能力>= 7.5(Volta)的 NVIDIA 硬件上启用 Tensor Cores 特别有用。
  • return_tensorsstr或 TensorType,可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'tf':返回 TensorFlow tf.constant对象。
    • 'pt':返回 PyTorch torch.Tensor对象。
    • 'np':返回 Numpy np.ndarray对象。
  • return_token_type_idsbool可选) — 是否返回标记类型 ID。如果保持默认设置,将根据特定分词器的默认值返回标记类型 ID,由return_outputs属性定义。 什么是 token type IDs?
  • return_attention_maskbool可选) — 是否返回注意力掩码。如果保持默认设置,将根据特定分词器的默认值返回注意力掩码,由return_outputs属性定义。 什么是 attention masks?
  • return_overflowing_tokensbool可选,默认为False) — 是否返回溢出的标记序列。如果提供了一对输入 id 序列(或一批对)并且truncation_strategy = longest_firstTrue,则会引发错误,而不是返回溢出的标记。
  • return_special_tokens_maskbool可选,默认为False) — 是否返回特殊标记掩码信息。
  • return_offsets_mappingbool可选,默认为False) — 是否返回每个标记的(char_start, char_end)。 仅适用于继承自 PreTrainedTokenizerFast 的快速分词器,如果使用 Python 的分词器,此方法将引发NotImplementedError
  • return_lengthbool可选,默认为False) — 是否返回编码输入的长度。
  • verbosebool可选,默认为True) — 是否打印更多信息和警告。**kwargs — 传递给self.tokenize()方法

返回

BatchEncoding

具有以下字段的 BatchEncoding:

  • input_ids — 要提供给模型的标记 id 列表。 什么是输入 ID?
  • token_type_ids — 要提供给模型的标记类型 id 列表(当return_token_type_ids=True或*token_type_ids*在self.model_input_names中时)。 什么是 token type IDs?
  • attention_mask — 指定哪些标记应该被模型关注的索引列表(当return_attention_mask=True或*attention_mask*在self.model_input_names中时)。 什么是 attention masks?
  • overflowing_tokens — 溢出标记序列的列表(当指定max_lengthreturn_overflowing_tokens=True时)。
  • num_truncated_tokens — 截断的标记数量(当指定max_lengthreturn_overflowing_tokens=True时)。
  • special_tokens_mask — 0 和 1 的列表,其中 1 指定添加的特殊标记,0 指定常规序列标记(当add_special_tokens=Truereturn_special_tokens_mask=True时)。
  • length — 输入的长度(当return_length=True时)

对一组序列或一组序列对进行标记化和准备模型。

此方法已弃用,应改用__call__

build_inputs_with_special_tokens

<来源>

代码语言:javascript复制
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

  • token_ids_0List[int]) — 第一个标记化序列。
  • token_ids_1List[int]可选)—第二个标记化序列。

返回

List[int]

带有特殊标记的模型输入。

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

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

clean_up_tokenization

<来源>

代码语言:javascript复制
( out_string: str ) → export const metadata = 'undefined';str

参数

  • out_stringstr)—要清理的文本。

返回

str

清理后的字符串。

清理一系列简单的英语分词工件,如标点符号前的空格和缩写形式。

convert_tokens_to_string

<来源>

代码语言:javascript复制
( tokens: List ) → export const metadata = 'undefined';str

参数

  • tokensList[str])—要连接的标记。

返回

str

连接的标记。

将一系列标记转换为单个字符串。最简单的方法是" ".join(tokens),但我们经常希望同时删除子词标记化工件。

create_token_type_ids_from_sequences

<来源>

代码语言:javascript复制
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

  • token_ids_0List[int])—第一个标记化序列。
  • token_ids_1List[int]可选)—第二个标记化序列。

返回

List[int]

标记类型 ID。

创建与传递的序列相对应的标记类型 ID。什么是标记类型 ID?

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

decode

<来源>

代码语言:javascript复制
( token_ids: Union skip_special_tokens: bool = False clean_up_tokenization_spaces: bool = None **kwargs ) → export const metadata = 'undefined';str

参数

  • token_idsUnion[int]List[int]np.ndarraytorch.Tensortf.Tensor)—标记化输入 ID 的列表。可以使用__call__方法获得。
  • skip_special_tokensbool可选,默认为False)—是否在解码中删除特殊标记。
  • clean_up_tokenization_spacesbool可选)—是否清理分词空格。如果为None,将默认为self.clean_up_tokenization_spaces
  • kwargs(额外的关键字参数,可选)—将传递给底层模型特定的解码方法。

返回

str

解码后的句子。

将 ID 序列转换为字符串,使用分词器和词汇表,并提供选项以删除特殊标记和清理分词空格。

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

encode

<来源>

代码语言:javascript复制
( text: Union text_pair: Union = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 return_tensors: Union = None **kwargs ) → export const metadata = 'undefined';List[int], torch.Tensor, tf.Tensor or np.ndarray

参数

  • textstrList[str]List[int])—要编码的第一个序列。这可以是一个字符串,一个字符串列表(使用tokenize方法标记化的字符串)或一个整数列表(使用convert_tokens_to_ids方法标记化的字符串 ID)。
  • text_pairstrList[str]List[int]可选)—要编码的可选第二序列。这可以是一个字符串,一个字符串列表(使用tokenize方法标记化的字符串)或一个整数列表(使用convert_tokens_to_ids方法标记化的字符串 ID)。
  • add_special_tokensbool可选,默认为True)—在编码序列时是否添加特殊标记。这将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens函数,该函数定义了哪些标记会自动添加到输入 ID 中。如果要自动添加boseos标记,则这很有用。
  • paddingboolstr或 PaddingStrategy,可选,默认为False)—激活和控制填充。接受以下值:
    • True'longest': 填充到批次中最长的序列(如果只提供了单个序列,则不填充)。
    • 'max_length': 填充到由参数 max_length 指定的最大长度,或者如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad'(默认):不填充(即可以输出具有不同长度的序列的批次)。
  • truncation (bool, str 或 TruncationStrategy, optional, 默认为 False) — 激活和控制截断。接受以下值:
    • True'longest_first': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批序列对),则将逐标记截断,从序列对中最长的序列中删除一个标记。
    • '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 时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。该参数的值定义了重叠标记的数量。
  • is_split_into_words (bool, optional, 默认为 False) — 输入是否已经预分词化(例如,已经分成单词)。如果设置为 True,则分词器假定输入已经分成单词(例如,通过在空格上分割),它将对其进行分词。这对于 NER 或标记分类很有用。
  • pad_to_multiple_of (int, optional) — 如果设置,将序列填充到提供的值的倍数。需要激活 padding。这对于启用具有计算能力 >= 7.5(Volta)的 NVIDIA 硬件上的 Tensor Cores 特别有用。
  • return_tensors (str 或 TensorType, optional) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'tf': 返回 TensorFlow tf.constant 对象。
    • 'pt': 返回 PyTorch torch.Tensor 对象。
    • 'np': 返回 Numpy np.ndarray 对象。

    **kwargs — 传递给 .tokenize() 方法。

返回

List[int], torch.Tensor, tf.Tensornp.ndarray

文本的标记化 id。

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

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

encode_plus

< source >

代码语言:javascript复制
( text: Union text_pair: Union = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 is_split_into_words: bool = False pad_to_multiple_of: Optional = None return_tensors: Union = None return_token_type_ids: Optional = None return_attention_mask: Optional = 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 ) → export const metadata = 'undefined';BatchEncoding

参数

  • text (str, List[str]List[int](仅用于非快速分词器)) — 要编码的第一个序列。可以是一个字符串,一个字符串列表(使用 tokenize 方法进行分词),或一个整数列表(使用 convert_tokens_to_ids 方法进行分词)。
  • text_pair (str, List[str]List[int], 可选) — 要编码的可选第二个序列。可以是一个字符串,一个字符串列表(使用 tokenize 方法进行分词),或一个整数列表(使用 convert_tokens_to_ids 方法进行分词)。
  • add_special_tokens (bool, 可选, 默认为 True) — 在编码序列时是否添加特殊标记。这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了自动添加到输入标识的标记。如果要自动添加 boseos 标记,则这很有用。
  • 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)或模型可接受的最大输入长度(如果未提供该参数)。这将逐个标记进行截断,如果提供了一对序列(或一批对序列),则从最长序列中删除一个标记。
    • '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 时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。该参数的值定义了重叠标记的数量。
  • is_split_into_words (bool, optional, 默认为False) — 输入是否已经预分词化(例如,已分割为单词)。如果设置为True,分词器会假定输入已经分割为单词(例如,通过在空格上分割),然后对其进行分词。这对于 NER 或标记分类很有用。
  • pad_to_multiple_of (int, optional) — 如果设置,将序列填充到提供的值的倍数。需要激活padding。这对于启用具有计算能力>= 7.5(Volta)的 NVIDIA 硬件上的 Tensor Cores 特别有用。
  • return_tensors (str或 TensorType, optional) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'tf': 返回 TensorFlow tf.constant对象。
    • 'pt': 返回 PyTorch torch.Tensor对象。
    • 'np': 返回 Numpy np.ndarray对象。
  • return_token_type_ids (bool, optional) — 是否返回标记类型 ID。如果保持默认设置,将根据特定分词器的默认值返回标记类型 ID,由return_outputs属性定义。 什么是标记类型 ID?
  • return_attention_mask (bool, optional) — 是否返回注意力掩码。如果保持默认设置,将根据特定分词器的默认值返回注意力掩码,由return_outputs属性定义。 什么是注意力掩码?
  • return_overflowing_tokens (bool, optional, defaults to False) — 是否返回溢出的标记序列。如果提供一对输入 id 序列(或一批对)并且truncation_strategy = longest_firstTrue,则会引发错误而不是返回溢出的标记。
  • return_special_tokens_mask (bool, optional, 默认为False) — 是否返回特殊标记掩码信息。
  • return_offsets_mapping (bool, optional, 默认为False) — 是否返回每个标记的(char_start, char_end)。 这仅适用于继承自 PreTrainedTokenizerFast 的快速分词器,如果使用 Python 的分词器,此方法将引发NotImplementedError
  • return_length (bool, optional, 默认为False) — 是否返回编码输入的长度。
  • verbose (bool, optional, 默认为True) — 是否打印更多信息和警告。**kwargs — 传递给self.tokenize()方法

返回

BatchEncoding

具有以下字段的 BatchEncoding:

  • input_ids — 要提供给模型的标记 id 列表。 什么是输入 ID?
  • token_type_ids — 要提供给模型的标记类型 id 列表(当return_token_type_ids=True或*token_type_ids*在self.model_input_names中时)。 什么是标记类型 ID?
  • attention_mask — 指定哪些标记应该被模型关注的索引列表(当return_attention_mask=True或*attention_mask*在self.model_input_names中时)。 什么是注意力掩码?
  • 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=Truereturn_special_tokens_mask=True时)。
  • length — 输入的长度(当return_length=True时)

对一个序列或一对序列进行标记化和准备模型。

此方法已弃用,应改用 __call__

from_pretrained

<来源>

代码语言:javascript复制
( pretrained_model_name_or_path: Union *init_inputs cache_dir: Union = None force_download: bool = False local_files_only: bool = False token: Union = None revision: str = 'main' **kwargs )

参数

  • pretrained_model_name_or_path (stros.PathLike) — 可以是以下之一:
    • 一个字符串,预定义 tokenizer 的模型 id,托管在 huggingface.co 模型仓库中。有效的模型 id 可以位于根级别,如 bert-base-uncased,也可以位于用户或组织名称下,如 dbmdz/bert-base-german-cased
    • 一个目录的路径,其中包含了 tokenizer 所需的词汇文件,例如使用 save_pretrained()方法保存的文件,例如 ./my_model_directory/
    • (已弃用,不适用于所有派生类)一个单个保存的词汇文件的路径或 url(仅当 tokenizer 只需要一个词汇文件时,如 Bert 或 XLNet),例如 ./my_model_directory/vocab.txt
  • cache_dir (stros.PathLike, optional) — 下载的预定义 tokenizer 词汇文件应该缓存在其中的目录路径,如果不应使用标准缓存。
  • force_download (bool, optional, 默认为 False) — 是否强制(重新)下载词汇文件并覆盖缓存版本(如果存在)。
  • resume_download (bool, optional, 默认为 False) — 是否删除接收不完整的文件。如果存在这样的文件,则尝试恢复下载。
  • proxies (Dict[str, str], optional) — 一个按协议或端点使用的代理服务器字典,例如 {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。这些代理将在每个请求中使用。
  • token (strbool, optional) — 用作远程文件 HTTP bearer 授权的 token。如果为 True,将使用运行 huggingface-cli login 时生成的 token(存储在 ~/.huggingface 中)。
  • local_files_only (bool, optional, 默认为 False) — 是否仅依赖本地文件,不尝试下载任何文件。
  • revision (str, optional, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,因为我们在 huggingface.co 上使用基于 git 的系统来存储模型和其他工件,所以 revision 可以是 git 允许的任何标识符。
  • subfolder (str, optional) — 如果相关文件位于 huggingface.co 模型仓库的子文件夹中(例如 facebook/rag-token-base),请在此处指定。
  • inputs(额外的位置参数,optional) — 将传递给 Tokenizer __init__方法。
  • kwargs(额外的关键字参数,optional) — 将传递给 Tokenizer __init__方法。可以用于设置特殊 token,如 bos_tokeneos_tokenunk_tokensep_tokenpad_tokencls_tokenmask_tokenadditional_special_tokens。有关更多详细信息,请参阅__init__中的参数。

从预定义 tokenizer 实例化一个 PreTrainedTokenizerBase(或派生类)。

当您想使用私有模型时,需要传递 token=True

示例:

代码语言:javascript复制
# 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("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("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_special_tokens_mask

<来源>

代码语言:javascript复制
( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';A list of integers in the range [0, 1]

参数

  • token_ids_0 (List[int]) — 第一个序列的 id 列表。
  • token_ids_1 (List[int], optional) — 第二个序列的 id 列表。
  • already_has_special_tokens (bool, optional, 默认为 False) — token 列表是否已经包含了模型所需的特殊 token。

返回值

一个整数列表,范围为 [0, 1]

1 代表特殊 token,0 代表序列 token。

从没有添加特殊标记的标记列表中检索序列 id。当使用 tokenizer 的prepare_for_modelencode_plus方法添加特殊标记时,会调用此方法。

get_vocab

<来源>

代码语言:javascript复制
( ) → export const metadata = 'undefined';Dict[str, int]

返回

Dict[str, int]

词汇表。

将词汇表作为标记到索引的字典返回。

token在词汇表中时,tokenizer.get_vocab()[token]等同于tokenizer.convert_tokens_to_ids(token)

pad

<来源>

代码语言:javascript复制
( encoded_inputs: Union padding: Union = True max_length: Optional = None pad_to_multiple_of: Optional = None return_attention_mask: Optional = None return_tensors: Union = None verbose: bool = True )

参数

  • encoded_inputs(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 收集函数中使用此方法。 你可以使用张量(numpy 数组,PyTorch 张量或 TensorFlow 张量)代替List[int],请参考上面的返回类型说明。
  • paddingboolstr或 PaddingStrategy,可选,默认为True) — 选择一种策略来填充返回的序列(根据模型的填充方向和填充索引),包括:
    • True'longest':填充到批量中最长的序列(如果只提供单个序列,则不填充)。
    • 'max_length': 填充到指定的最大长度,使用参数max_length或者如果未提供该参数,则填充到模型的最大可接受输入长度。
    • False'do_not_pad'(默认):无填充(即可以输出具有不同长度序列的批次)。
  • max_lengthint可选) — 返回列表的最大长度和可选的填充长度(参见上文)。
  • pad_to_multiple_ofint可选) — 如果设置,将填充序列到提供的值的倍数。 这对于启用具有计算能力>= 7.5(Volta)的 NVIDIA 硬件上的 Tensor Cores 特别有用。
  • return_attention_maskbool可选) — 是否返回注意力蒙版。如果保持默认值,将根据特定 tokenizer 的默认值返回注意力蒙版,由return_outputs属性定义。 注意力蒙版是什么?
  • return_tensorsstr或 TensorType,可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值包括:
    • 'tf':返回 TensorFlow tf.constant对象。
    • 'pt':返回 PyTorch torch.Tensor对象。
    • 'np':返回 Numpy np.ndarray对象。
  • verbosebool可选,默认为True) — 是否打印更多信息和警告。

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

填充方向(左/右)填充标记 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

<来源>

代码语言:javascript复制
( ids: List pair_ids: Optional = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None stride: int = 0 pad_to_multiple_of: Optional = None return_tensors: Union = None return_token_type_ids: Optional = None return_attention_mask: Optional = 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 ) → export const metadata = 'undefined';BatchEncoding

参数

  • idsList[int]) — 第一个序列的标记化输入 id。可以通过链接 tokenizeconvert_tokens_to_ids 方法从字符串中获取。
  • pair_idsList[int]可选) — 第二个序列的标记化输入 id。可以通过链接 tokenizeconvert_tokens_to_ids 方法从字符串中获取。
  • add_special_tokensbool可选,默认为 True) — 在编码序列时是否添加特殊标记。这将使用底层的 PretrainedTokenizerBase.build_inputs_with_special_tokens 函数,该函数定义了自动添加到输入 id 的标记。如果要自动添加 boseos 标记,这很有用。
  • paddingboolstr 或 PaddingStrategy,可选,默认为 False) — 激活和控制填充。接受以下值:
    • True'longest':填充到批次中最长的序列(如果只提供单个序列,则不填充)。
    • 'max_length':填充到指定的最大长度,该长度由参数 max_length 指定,或者填充到模型可接受的最大输入长度(如果未提供该参数)。
    • False'do_not_pad'(默认):不填充(即,可以输出具有不同长度的序列批次)。
  • truncationboolstr 或 TruncationStrategy,可选,默认为 False) — 激活和控制截断。接受以下值:
    • True'longest_first':截断到指定的最大长度,该长度由参数 max_length 指定,或者截断到模型可接受的最大输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则将逐标记截断,从一对序列中最长的序列中删除一个标记。
    • 'only_first':截断到指定的最大长度,该长度由参数 max_length 指定,或者截断到模型可接受的最大输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则只会截断第一个序列。
    • 'only_second':截断到指定的最大长度,该长度由参数 max_length 指定,或者截断到模型可接受的最大输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则只会截断第二个序列。
    • False'do_not_truncate'(默认):不截断(即,可以输出长度大于模型最大可接受输入大小的批次)。
  • max_lengthint可选) — 由截断/填充参数之一使用的最大长度。 如果未设置或设置为 None,则将使用预定义的模型最大长度,如果截断/填充参数中需要最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将禁用截断/填充到最大长度。
  • strideint可选,默认为 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 特别有用。
  • return_tensors (str 或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'tf': 返回 TensorFlow tf.constant对象。
    • 'pt': 返回 PyTorch torch.Tensor对象。
    • 'np': 返回 Numpy np.ndarray对象。
  • return_token_type_ids (bool, 可选) — 是否返回 token type IDs。如果保持默认设置,将根据特定分词器的默认设置返回 token type IDs,由return_outputs属性定义。 什么是 token type IDs?
  • return_attention_mask (bool, 可选) — 是否返回 attention mask。如果保持默认设置,将根据特定分词器的默认设置返回 attention mask,由return_outputs属性定义。 什么是 attention masks?
  • return_overflowing_tokens (bool, 可选, 默认为 False) — 是否返回溢出的 token 序列。如果提供一对输入 IDs 序列(或一批对)并且truncation_strategy = longest_firstTrue,则会引发错误而不是返回溢出的 tokens。
  • 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 ids 列表。 什么是输入 IDs?
  • token_type_ids — 要提供给模型的 token type ids 列表(当return_token_type_ids=True或*token_type_ids*在self.model_input_names中)。 什么是 token type IDs?
  • attention_mask — 指定哪些 token 应该被模型关注的索引列表(当return_attention_mask=True或*attention_mask*在self.model_input_names中)。 什么是 attention masks?
  • 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 指定添加的特殊 token,0 指定常规序列 token(当add_special_tokens=True并且return_special_tokens_mask=True时)。
  • length — 输入的长度(当return_length=True时)

准备输入 id 的序列,或一对输入 id 的序列,以便模型使用。它添加特殊标记,如果溢出则截断序列,同时考虑特殊标记,并管理一个移动窗口(带有用户定义的步幅)以处理溢出的标记。请注意,对于 pair_ids 不等于 Nonetruncation_strategy = longest_firstTrue,不可能返回溢出的标记。这样的参数组合将引发错误。

prepare_seq2seq_batch

< source >

代码语言:javascript复制
( src_texts: List tgt_texts: Optional = None max_length: Optional = None max_target_length: Optional = None padding: str = 'longest' return_tensors: str = None truncation: bool = True **kwargs ) → export const metadata = 'undefined';BatchEncoding

参数

  • src_texts (List[str]) — 要总结的文档或源语言文本的列表。
  • tgt_texts (list, 可选) — 摘要或目标语言文本的列表。
  • max_length (int, 可选) — 控制编码器输入(要总结的文档或源语言文本)的最大长度。如果未设置或设置为 None,并且截断/填充参数中需要最大长度,则将使用预定义的模型最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将禁用截断/填充到最大长度。
  • max_target_length (int, 可选) — 控制解码器输入(目标语言文本或摘要)的最大长度。如果未设置或设置为 None,将使用 max_length 值。
  • padding (bool, str 或 PaddingStrategy, 可选, 默认为 False) — 激活和控制填充。接受以下值:
    • True'longest': 填充到批次中最长的序列(如果只提供了单个序列,则不填充)。
    • 'max_length': 填充到由参数 max_length 指定的最大长度,或者如果未提供该参数,则填充到模型可接受的最大输入长度。
    • False'do_not_pad' (默认): 不填充(即,可以输出长度不同的序列批次)。
  • return_tensors (str 或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
    • 'tf': 返回 TensorFlow tf.constant 对象。
    • 'pt': 返回 PyTorch torch.Tensor 对象。
    • 'np': 返回 Numpy np.ndarray 对象。
  • truncation (bool, str 或 TruncationStrategy, 可选, 默认为 True) — 激活和控制截断。接受以下值:
    • True'longest_first': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批对),则将逐标记截断,从一对序列中最长的序列中删除一个标记。
    • 'only_first': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批对),则仅截断第一个序列。
    • 'only_second': 截断到由参数 max_length 指定的最大长度,或者如果未提供该参数,则截断到模型可接受的最大输入长度。如果提供了一对序列(或一批对),则仅截断第二个序列。
    • False'do_not_truncate' (默认): 不截断(即,可以输出长度大于模型最大可接受输入大小的序列)。**kwargs — 传递给 self.__call__ 的额外关键字参数。

返回

BatchEncoding

具有以下字段的 BatchEncoding:

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

仅当传递了 tgt_texts 时,将返回完整的键集[input_ids, attention_mask, labels]。否则,input_idsattention_mask将是唯一的键。

为翻译准备模型输入。为了获得最佳性能,请一次翻译一句话。

push_to_hub

<来源>

代码语言:javascript复制
( repo_id: str use_temp_dir: Optional = None commit_message: Optional = None private: Optional = None token: Union = None max_shard_size: Union = '5GB' create_pr: bool = False safe_serialization: bool = True revision: str = None commit_description: str = None tags: Optional = None **deprecated_kwargs )

参数

  • repo_idstr)— 要将分词器推送到的存储库的名称。在推送到给定组织时,它应包含您的组织名称。
  • use_temp_dirbool可选)— 是否使用临时目录存储保存之前的文件,然后将它们推送到 Hub。如果没有名为repo_id的目录,则默认为True,否则为False
  • commit_messagestr可选)— 推送时要提交的消息。默认为"Upload tokenizer"
  • privatebool可选)— 创建的存储库是否应为私有。
  • tokenboolstr可选)— 用作远程文件 HTTP 令牌的令牌。如果为True,将使用运行huggingface-cli login时生成的令牌(存储在~/.huggingface中)。如果未指定repo_url,则默认为True
  • max_shard_sizeintstr可选,默认为"5GB")— 仅适用于模型。在被分片之前的检查点的最大大小。然后,检查点将分片为每个大小低于此大小的大小。如果表示为字符串,需要是数字后跟一个单位(如"5MB")。我们将其默认设置为"5GB",以便用户可以在免费的 Google Colab 实例上轻松加载模型,而不会出现 CPU OOM 问题。
  • create_prbool可选,默认为False)— 是否创建具有上传文件的 PR 或直接提交。
  • safe_serializationbool可选,默认为True)— 是否将模型权重转换为 safetensors 格式以进行更安全的序列化。
  • revisionstr可选)— 要将上传的文件推送到的分支。
  • commit_descriptionstr可选)— 将创建的提交的描述
  • tagsList[str]可选)— 要推送到 Hub 的标签列表。

将分词器文件上传到

0 人点赞