Transformers 4.37 中文文档(十八)(4)https://developer.aliyun.com/article/1564910
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 bearer 授权的令牌。如果为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 上的标签列表。
将分词器文件上传到 🤗 Model 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")
convert_ids_to_tokens
( ids: Union skip_special_tokens: bool = False ) → export const metadata = 'undefined';str or List[str]
参数
ids
(int
或List[int]
)-要转换为标记的标记 id(或标记 id)。skip_special_tokens
(bool
,可选,默认为False
)-是否在解码中删除特殊标记。
返回
str
或List[str]
解码后的标记。
将单个索引或索引序列转换为标记或标记序列,使用词汇表和添加的标记。
convert_tokens_to_ids
( tokens: Union ) → export const metadata = 'undefined';int or List[int]
参数
tokens
(str
或List[str]
)-要转换为标记 id 的一个或多个标记。
返回
int
或List[int]
标记 id 或标记 id 列表。
将标记字符串(或标记序列)转换为单个整数 id(或 id 序列),使用词汇表。
get_added_vocab
( ) → export const metadata = 'undefined';Dict[str, int]
返回
Dict[str, int]
添加的标记。
将词汇表中添加的标记作为标记到索引的字典返回。
num_special_tokens_to_add
( pair: bool = False ) → export const metadata = 'undefined';int
参数
pair
(bool
,可选,默认为False
)-在序列对或单个序列的情况下是否应计算添加的标记数。
返回
int
添加到序列的特殊标记数。
在使用特殊标记对序列进行编码时返回添加的标记数。
这会对虚拟输入进行编码并检查添加的标记数,因此效率不高。不要将其放在训练循环内。
set_truncation_and_padding
( padding_strategy: PaddingStrategy truncation_strategy: TruncationStrategy max_length: int stride: int pad_to_multiple_of: Optional )
参数
padding_strategy
(PaddingStrategy)-将应用于输入的填充类型truncation_strategy
(TruncationStrategy)-将应用于输入的截断类型max_length
(int
)-序列的最大大小。stride
(int
)-处理溢出时要使用的步幅。pad_to_multiple_of
(int
,可选)-如果设置,将序列填充到提供的值的倍数。这对于启用具有计算能力>= 7.5
(Volta)的 NVIDIA 硬件上的张量核心特别有用。
定义快速标记器的截断和填充策略(由 HuggingFace 标记器库提供),并在恢复标记器设置后恢复标记器设置。
提供的标记器在受管理部分之前没有填充/截断策略。如果您的标记器在之前设置了填充/截断策略,则在退出受管理部分时将重置为无填充/截断。
train_new_from_iterator
( text_iterator vocab_size length = None new_special_tokens = None special_tokens_map = None **kwargs ) → export const metadata = 'undefined';PreTrainedTokenizerFast
参数
text_iterator
(List[str]
的生成器)-训练语料库。应该是文本批次的生成器,例如,如果您将所有内容存储在内存中,则应该是文本列表的列表。vocab_size
(int
)-您要为标记器设置的词汇表大小。length
(int
,可选)-迭代器中序列的总数。这用于提供有意义的进度跟踪new_special_tokens
(str
或AddedToken
的列表,可选)-要添加到正在训练的标记器的新特殊标记列表。special_tokens_map
(Dict[str, str]
, 可选) — 如果您想要重命名此分词器使用的一些特殊标记,请在此参数中传递一个旧特殊标记名称到新特殊标记名称的映射。kwargs
(Dict[str, Any]
, 可选) — 从 🤗 Tokenizers 库传递给训练器的额外关键字参数。
返回
PreTrainedTokenizerFast
一个与原始分词器相同类型的新分词器,训练于 text_iterator
。
使用与当前相同的默认值(特殊标记或标记化流水线方面)在新语料库上训练一个分词器。
BatchEncoding
class transformers.BatchEncoding
( data: Optional = None encoding: Union = None tensor_type: Union = None prepend_batch_axis: bool = False n_sequences: Optional = None )
参数
data
(dict
, 可选) — 由__call__
/encode_plus
/batch_encode_plus
方法返回的列表/数组/张量的字典(‘input_ids’,'attention_mask’等)。encoding
(tokenizers.Encoding
或Sequence[tokenizers.Encoding]
, 可选) — 如果分词器是一个快速分词器,输出额外信息如从单词/字符空间到标记空间的映射,则tokenizers.Encoding
实例或实例列表(用于批次)保存此信息。tensor_type
(Union[None, str, TensorType]
, 可选) — 您可以在此处提供一个 tensor_type,以在初始化时将整数列表转换为 PyTorch/TensorFlow/Numpy 张量。prepend_batch_axis
(bool
, 可选, 默认为False
) — 在转换为张量时是否添加批次轴(参见上面的tensor_type
)。n_sequences
(Optional[int]
, 可选) — 您可以在此处提供一个 tensor_type,以在初始化时将整数列表转换为 PyTorch/TensorFlow/Numpy 张量。
保存了 call(), encode_plus() 和 batch_encode_plus() 方法的输出(tokens, attention_masks 等)。
此类派生自 Python 字典,可用作字典。此外,此类公开了实用方法,用于将单词/字符空间映射到标记空间。
char_to_token
( batch_or_char_index: int char_index: Optional = None sequence_index: int = 0 ) → export const metadata = 'undefined';int
参数
batch_or_char_index
(int
) — 批次中序列的索引。如果批次仅包含一个序列,则这可以是序列中单词的索引char_index
(int
, 可选) — 如果在 batch_or_token_index 中提供了批次索引,则这可以是序列中单词的索引。sequence_index
(int
, 可选, 默认为 0) — 如果批次中编码了一对序列,则可以用于指定提供的字符索引属于一对序列中的哪个序列(0 或 1)。
返回
int
标记的索引。
获取编码输出中包含原始字符串中字符的序列的标记索引。
可以调用为:
self.char_to_token(char_index)
如果批次大小为 1self.char_to_token(batch_index, char_index)
如果批次大小大于或等于 1
当输入序列以预分词序列(即用户定义的单词)提供时,此方法特别适用。在这种情况下,它允许轻松将编码的标记与提供的分词单词关联起来。
char_to_word
( batch_or_char_index: int char_index: Optional = None sequence_index: int = 0 ) → export const metadata = 'undefined';int or List[int]
参数
batch_or_char_index
(int
) — 批次中序列的索引。如果批次仅包含一个序列,则这可以是原始字符串中字符的索引。char_index
(int
,可选)— 如果在batch_or_token_index中提供了批次索引,则可以是原始字符串中字符的索引。sequence_index
(int
,可选,默认为 0)— 如果批次中编码了一对序列,则可以用来指定提供的字符索引属于该对序列中的哪个序列(0 或 1)。
返回
int
或List[int]
关联编码标记的索引或索引。
获取批次中序列的原始字符串中与标记的字符对应的单词。
可以调用为:
- 如果批次大小为 1,则为
self.char_to_word(char_index)
- 如果批次大小大于 1,则为
self.char_to_word(batch_index, char_index)
当输入序列以预分词序列(即用户定义的单词)提供时,此方法特别适用。在这种情况下,它允许轻松将编码的标记与提供的分词单词关联起来。
convert_to_tensors
( tensor_type: Union = None prepend_batch_axis: bool = False )
参数
tensor_type
(str
或 TensorType,可选)— 要使用的张量类型。如果是str
,应该是枚举 TensorType 值之一。如果为None
,则不进行修改。prepend_batch_axis
(int
,可选,默认为False
)— 在转换过程中是否添加批次维度。
将内部内容转换为张量。
sequence_ids
( batch_index: int = 0 ) → export const metadata = 'undefined';List[Optional[int]]
参数
batch_index
(int
,可选,默认为 0)— 要访问的批次中的索引。
返回
List[Optional[int]]
一个指示每个标记对应的序列 id 的列表。由分词器添加的特殊标记映射到None
,其他标记映射到其对应序列的索引。
返回将标记映射到其原始句子的 id 的列表:
- 对于添加在序列周围或之间的特殊标记,为
None
, 0
表示对应于第一个序列中的单词的标记,- 当一对序列被联合编码时,对于第二个序列中的单词对应的标记,为
1
。
to
( device: Union ) → export const metadata = 'undefined';BatchEncoding
参数
device
(str
或torch.device
)— 要放置张量的设备。
返回
BatchEncoding
修改后的相同实例。
通过调用v.to(device)
将所有值发送到设备(仅适用于 PyTorch)。
token_to_chars
( batch_or_token_index: int token_index: Optional = None ) → export const metadata = 'undefined';CharSpan
参数
batch_or_token_index
(int
)— 批次中序列的索引。如果批次只包含一个序列,则可以是序列中标记的索引。token_index
(int
,可选)— 如果在batch_or_token_index中提供了批次索引,则可以是序列中标记或标记的索引。
返回
CharSpan
原始字符串中字符的范围,如果标记(例如~~,~~)不对应于原始字符串中的任何字符,则为 None。
获取批次中序列中编码标记对应的字符跨度。
字符跨度以 CharSpan 形式返回,具有:
start
— 与标记关联的原始字符串中第一个字符的索引。end
— 跟随与标记关联的原始字符串中最后一个字符的索引。
可以调用为:
- 如果批次大小为 1,则为
self.token_to_chars(token_index)
- 如果批次大小大于或等于 1,则为
self.token_to_chars(batch_index, token_index)
token_to_sequence
( batch_or_token_index: int token_index: Optional = None ) → export const metadata = 'undefined';int
参数
batch_or_token_index
(int
)—批次中序列的索引。如果批次只包含一个序列,这可以是序列中标记的索引。token_index
(int
,可选)—如果在batch_or_token_index中提供了批次索引,则这可以是序列中标记的索引。
返回
int
输入序列中的单词索引。
获取给定标记表示的序列的索引。在一般用例中,此方法对于单个序列或一对序列的第一个序列返回0
,对于一对序列的第二个序列返回1
可以调用为:
- 如果批次大小为 1,则为
self.token_to_sequence(token_index)
- 如果批次大小大于 1,则为
self.token_to_sequence(batch_index, token_index)
当输入序列以预标记序列(即,单词由用户定义)提供时,此方法特别适用。在这种情况下,它允许轻松将编码标记与提供的标记化单词关联起来。
token_to_word
( batch_or_token_index: int token_index: Optional = None ) → export const metadata = 'undefined';int
参数
batch_or_token_index
(int
)—批次中序列的索引。如果批次只包含一个序列,这可以是序列中标记的索引。token_index
(int
,可选)—如果在batch_or_token_index中提供了批次索引,则这可以是序列中标记的索引。
返回
int
输入序列中的单词索引。
获取与批次序列中编码标记对应的单词的索引。
可以调用为:
- 如果批次大小为 1,则为
self.token_to_word(token_index)
- 如果批次大小大于 1,则为
self.token_to_word(batch_index, token_index)
当输入序列以预标记序列(即,单词由用户定义)提供时,此方法特别适用。在这种情况下,它允许轻松将编码标记与提供的标记化单词关联起来。
tokens
( batch_index: int = 0 ) → export const metadata = 'undefined';List[str]
参数
batch_index
(int
,可选,默认为 0)—要访问的批次索引。
返回
List[str]
该索引处的标记列表。
返回给定批次索引处的标记列表(在单词/子词拆分后和转换为整数索引之前的输入字符串的子部分)(仅适用于快速标记器的输出)。
word_ids
( batch_index: int = 0 ) → export const metadata = 'undefined';List[Optional[int]]
参数
batch_index
(int
,可选,默认为 0)—要访问的批次索引。
返回
List[Optional[int]]
一个列表,指示每个标记对应的单词。标记器添加的特殊标记映射到None
,其他标记映射到其对应单词的索引(如果它们是该单词的一部分,则几个标记将映射到相同的单词索引)。
返回一个将标记映射到初始句子中实际单词的列表,用于快速标记器。
word_to_chars
( batch_or_word_index: int word_index: Optional = None sequence_index: int = 0 ) → export const metadata = 'undefined';CharSpan or List[CharSpan]
参数
batch_or_word_index
(int
)—批次中序列的索引。如果批次只包含一个序列,这可以是序列中单词的索引word_index
(int
,可选)—如果在batch_or_token_index中提供了批次索引,则这可以是序列中单词的索引。sequence_index
(int
,可选,默认为 0)—如果批次中编码了一对序列,则可以用于指定提供的单词索引属于该对中的哪个序列(0 或 1)。
返回
CharSpan
或List[CharSpan]
与字符串中相关字符或字符的范围。CharSpan 是 NamedTuple,具有:
- start: 原始字符串中与标记关联的第一个字符的索引
- end: 原始字符串中与标记关联的最后一个字符后面的字符的索引
获取批处理序列中给定单词对应的原始字符串中的字符范围。
字符范围以 CharSpan NamedTuple 形式返回:
- start: 原始字符串中的第一个字符的索引
- end: 原始字符串中最后一个字符后面的字符的索引
可以调用为:
- 如果批处理大小为 1,则为
self.word_to_chars(word_index)
- 如果批处理大小大于或等于 1,则为
self.word_to_chars(batch_index, word_index)
word_to_tokens
( batch_or_word_index: int word_index: Optional = None sequence_index: int = 0 ) → export const metadata = 'undefined';(TokenSpan, optional)
参数
batch_or_word_index
(int
)— 批处理中序列的索引。如果批处理仅包括一个序列,则可以是序列中单词的索引。word_index
(int
,可选)— 如果在batch_or_token_index中提供了批处理索引,则可以是序列中单词的索引。sequence_index
(int
,可选,默认为 0)— 如果批处理中编码了一对序列,则可以用于指定提供的单词索引属于一对序列中的哪个序列(0 或 1)。
返回
(TokenSpan,可选)
编码序列中的标记范围。如果没有标记与该单词对应,则返回None
。这可能会发生,特别是当标记是用于格式化标记化的特殊标记时。例如,当我们在标记化的开头添加一个类标记时。
获取与批处理序列中的单词对应的编码标记范围。
标记范围以 TokenSpan 形式返回:
start
— 第一个标记的索引。end
— 最后一个标记后面的标记的索引。
可以调用为:
- 如果批处理大小为 1,则为
self.word_to_tokens(word_index, sequence_index: int = 0)
- 如果批处理大小大于或等于 1,则为
self.word_to_tokens(batch_index, word_index, sequence_index: int = 0)
当输入序列以预分词序列(即用户定义的单词)提供时,此方法特别适用。在这种情况下,它允许轻松将编码标记与提供的分词单词关联起来。
words
( batch_index: int = 0 ) → export const metadata = 'undefined';List[Optional[int]]
参数
batch_index
(int
,可选,默认为 0)— 要访问的批处理中的索引。
返回
List[Optional[int]]
指示每个标记对应的单词的列表。标记器添加的特殊标记映射到None
,其他标记映射到其对应单词的索引(如果它们是该单词的一部分,则几个标记将映射到相同的单词索引)。
返回一个列表,将标记映射到初始句子中的实际单词,以便快速标记化器使用。