Transformers 4.37 中文文档(九十九)(1)https://developer.aliyun.com/article/1564041
encode
( 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
参数
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, 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'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.ndarray
对象。
- **kwargs — 传递给
.tokenize()
方法。
返回
List[int]
, torch.Tensor
, tf.Tensor
或 np.ndarray
文本的标记化 id。
将字符串转换为 id(整数)序列,使用分词器和词汇表。
与执行 self.convert_tokens_to_ids(self.tokenize(text))
相同。
encode_plus
( 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
函数,该函数定义了自动添加到输入标识的标记。如果要自动添加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
)或模型可接受的最大输入长度(如果未提供该参数)。这将逐个标记进行截断,如果提供了一对序列(或一批对序列),则从最长序列中删除一个标记。'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'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.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 toFalse
) — 是否返回溢出的标记序列。如果提供一对输入 id 序列(或一批对)并且truncation_strategy = longest_first
或True
,则会引发错误而不是返回溢出的标记。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=True
和return_special_tokens_mask=True
时)。length
— 输入的长度(当return_length=True
时)
对一个序列或一对序列进行标记化和准备模型。
此方法已弃用,应改用 __call__
。
from_pretrained
( 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
(str
或os.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
(str
或os.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
(str
或 bool, 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_token
、eos_token
、unk_token
、sep_token
、pad_token
、cls_token
、mask_token
、additional_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("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
( 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_model
或encode_plus
方法添加特殊标记时,会调用此方法。
get_vocab
( ) → export const metadata = 'undefined';Dict[str, int]
返回
Dict[str, int]
词汇表。
将词汇表作为标记到索引的字典返回。
当token
在词汇表中时,tokenizer.get_vocab()[token]
等同于tokenizer.convert_tokens_to_ids(token)
。
pad
( 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]
,请参考上面的返回类型说明。padding
(bool
,str
或 PaddingStrategy,可选,默认为True
) — 选择一种策略来填充返回的序列(根据模型的填充方向和填充索引),包括:
True
或'longest'
:填充到批量中最长的序列(如果只提供单个序列,则不填充)。'max_length'
: 填充到指定的最大长度,使用参数max_length
或者如果未提供该参数,则填充到模型的最大可接受输入长度。False
或'do_not_pad'
(默认):无填充(即可以输出具有不同长度序列的批次)。
max_length
(int
,可选) — 返回列表的最大长度和可选的填充长度(参见上文)。pad_to_multiple_of
(int
,可选) — 如果设置,将填充序列到提供的值的倍数。
这对于启用具有计算能力>= 7.5
(Volta)的 NVIDIA 硬件上的 Tensor Cores 特别有用。return_attention_mask
(bool
,可选) — 是否返回注意力蒙版。如果保持默认值,将根据特定 tokenizer 的默认值返回注意力蒙版,由return_outputs
属性定义。
注意力蒙版是什么?return_tensors
(str
或 TensorType,可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值包括:
'tf'
:返回 TensorFlowtf.constant
对象。'pt'
:返回 PyTorchtorch.Tensor
对象。'np'
:返回 Numpynp.ndarray
对象。
verbose
(bool
,可选,默认为True
) — 是否打印更多信息和警告。
将单个编码输入或批量编码输入填充到预定义长度或批量中的最大序列长度。
填充方向(左/右)填充标记 id 在 tokenizer 级别定义(使用self.padding_side
,self.pad_token_id
和self.pad_token_type_id
)。
请注意,使用快速 tokenizer 时,使用__call__
方法比使用编码文本的方法再调用pad
方法更快。
如果传递的 encoded_inputs
是 numpy 数组、PyTorch 张量或 TensorFlow 张量的字典,则结果将使用相同的类型,除非您使用 return_tensors
提供不同的张量类型。对于 PyTorch 张量,您将丢失张量的特定设备。
prepare_for_model
( 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
参数
ids
(List[int]
) — 第一个序列的标记化输入 id。可以通过链接tokenize
和convert_tokens_to_ids
方法从字符串中获取。pair_ids
(List[int]
,可选) — 第二个序列的标记化输入 id。可以通过链接tokenize
和convert_tokens_to_ids
方法从字符串中获取。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
指定,或者截断到模型可接受的最大输入长度(如果未提供该参数)。如果提供了一对序列(或一批对序列),则将逐标记截断,从一对序列中最长的序列中删除一个标记。'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
, 可选, 默认为False
) — 输入是否已经预分词(例如,已经分成单词)。如果设置为True
,分词器会假定输入已经分成单词(例如,通过在空格上分割),然后对其进行分词。这对于 NER 或标记分类很有用。pad_to_multiple_of
(int
, 可选) — 如果设置,将序列填充到提供的值的倍数。需要激活padding
。这对于在具有计算能力>= 7.5
(Volta)的 NVIDIA 硬件上启用 Tensor Cores 特别有用。return_tensors
(str
或 TensorType, 可选) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
'tf'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.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_first
或True
,则会引发错误而不是返回溢出的 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 不等于 None
且 truncation_strategy = longest_first 或 True
,不可能返回溢出的标记。这样的参数组合将引发错误。
prepare_seq2seq_batch
( 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'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.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_ids
,attention_mask
将是唯一的键。
为翻译准备模型输入。为了获得最佳性能,请一次翻译一句话。
push_to_hub
( 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_id
(str
)— 要将分词器推送到的存储库的名称。在推送到给定组织时,它应包含您的组织名称。use_temp_dir
(bool
,可选)— 是否使用临时目录存储保存之前的文件,然后将它们推送到 Hub。如果没有名为repo_id
的目录,则默认为True
,否则为False
。commit_message
(str
,可选)— 推送时要提交的消息。默认为"Upload tokenizer"
。private
(bool
,可选)— 创建的存储库是否应为私有。token
(bool
或str
,可选)— 用作远程文件 HTTP 令牌的令牌。如果为True
,将使用运行huggingface-cli login
时生成的令牌(存储在~/.huggingface
中)。如果未指定repo_url
,则默认为True
。max_shard_size
(int
或str
,可选,默认为"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 的标签列表。
将分词器文件上传到🤗模型 Hub。
示例:
from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("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"
)— 要将此新分词器注册到的自动类。
使用给定的自动类注册此类。这应仅用于自定义分词器,因为库中的分词器已经与AutoTokenizer
映射。
此 API 是实验性的,可能在下一个版本中有一些轻微的破坏性更改。
save_pretrained
( save_directory: Union legacy_format: Optional = None filename_prefix: Optional = None push_to_hub: bool = False **kwargs ) → export const metadata = 'undefined';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
类方法重新加载。
警告,无。这不会保存您在实例化后对分词器应用的修改(例如,在创建后修改tokenizer.do_lower_case
)。
save_vocabulary
( save_directory: str filename_prefix: Optional = None ) → export const metadata = 'undefined';Tuple(str)
参数
save_directory
(str
) — 保存词汇表的目录。filename_prefix
(str
, 可选) — 要添加到保存文件名称的可选前缀。
返回
Tuple(str)
保存的文件路径。
仅保存分词器的词汇表(词汇表+添加的标记)。
此方法不会保存分词器的配置和特殊标记映射。使用_save_pretrained()
保存分词器的整个状态。
tokenize
( text: str pair: Optional = None add_special_tokens: bool = False **kwargs ) → export const metadata = 'undefined';List[str]
参数
text
(str
) — 要编码的序列。pair
(str
, 可选) — 要与第一个序列一起编码的第二个序列。add_special_tokens
(bool
, 可选, 默认为False
) — 是否添加与相应模型相关的特殊标记。kwargs
(额外关键字参数,可选) — 将传递给底层模型特定的编码方法。详细信息请参见call
()
返回
List[str]
标记列表。
将字符串转换为标记序列,用unk_token
替换未知标记。
truncate_sequences
( ids: List pair_ids: Optional = None num_tokens_to_remove: int = 0 truncation_strategy: Union = 'longest_first' stride: int = 0 ) → export const metadata = 'undefined';Tuple[List[int], List[int], List[int]]
参数
ids
(List[int]
) — 第一个序列的标记化输入 id。可以通过链接tokenize
和convert_tokens_to_ids
方法从字符串中获取。pair_ids
(List[int]
, 可选) — 第二个序列的标记化输入 id。可以通过链接tokenize
和convert_tokens_to_ids
方法从字符串中获取。num_tokens_to_remove
(int
, 可选, 默认为 0) — 使用截断策略要移除的标记数。truncation_strategy
(str
或 TruncationStrategy, 可选, 默认为False
) — 截断的策略。可以是:
'longest_first'
: 截断到指定的最大长度(使用参数max_length
)或模型的最大可接受输入长度(如果未提供该参数)。这将逐个标记截断,如果提供了一对序列(或一批序列),则从一对序列中最长的序列中删除一个标记。'only_first'
: 截断到指定的最大长度(使用参数max_length
)或模型的最大可接受输入长度(如果未提供该参数)。如果提供了一对序列(或一批序列),则仅截断第一个序列。'only_second'
:根据参数max_length
指定的最大长度截断,或者根据模型的最大可接受输入长度截断。如果未提供该参数,则仅截断一对序列中的第二个序列(或一批序列对)。'do_not_truncate'
(默认):不截断(即,可以输出长度大于模型最大可接受输入大小的批次)。
stride
(int
,可选,默认为 0)— 如果设置为正数,返回的溢出标记将包含来自返回的主序列的一些标记。该参数的值定义了额外标记的数量。
返回
Tuple[List[int], List[int], List[int]]
被截断的ids
,被截断的pair_ids
和溢出标记的列表。注意:如果提供了一对序列(或一批序列对),则longest_first策略返回空的溢出标记列表。
根据策略就地截断一个序列对。
Transformers 4.37 中文文档(九十九)(3)https://developer.aliyun.com/article/1564043