Transformers 4.37 中文文档(四十五)(2)https://developer.aliyun.com/article/1565213
MixtralForCausalLM
class transformers.MixtralForCausalLM
( config )
forward
( input_ids: LongTensor = None attention_mask: Optional = None position_ids: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None output_router_logits: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.modeling_outputs.MoeCausalLMOutputWithPast or tuple(torch.FloatTensor)
参数
input_ids
(形状为(batch_size, sequence_length)
的torch.LongTensor
)— 词汇表中输入序列标记的索引。默认情况下,如果提供,将忽略填充。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?attention_mask
(形状为(batch_size, sequence_length)
的torch.Tensor
,可选)— 用于避免在填充标记索引上执行注意力的蒙版。蒙版值选择在[0, 1]
中:
- 对于被“masked”的标记为 1,
- 对于被
masked
掩盖的标记。
- 什么是注意力蒙版?
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
如果使用了past_key_values
,则可选择仅输入最后的decoder_input_ids
(参见past_key_values
)。
如果要更改填充行为,您应该阅读modeling_opt._prepare_decoder_attention_mask
并根据需要进行修改。有关默认策略的更多信息,请参阅论文中的图表 1。
- 1 表示头部未被“masked”,
- 0 表示头部被
masked
。
position_ids
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)— 每个输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.n_positions - 1]
。
什么是位置 ID?past_key_values
(tuple(tuple(torch.FloatTensor))
,可选,当传递use_cache=True
或config.use_cache=True
时返回)— 长度为config.n_layers
的tuple(torch.FloatTensor)
元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量)和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值)可用于(参见past_key_values
输入)加速顺序解码。
如果使用了past_key_values
,用户可以选择仅输入最后的decoder_input_ids
(即那些没有将其过去键值状态提供给此模型的输入)的形状为(batch_size, 1)
,而不是所有形状为(batch_size, sequence_length)
的decoder_input_ids
。inputs_embeds
(形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids
。如果您想要更多控制权来将input_ids
索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,则这很有用。use_cache
(bool
,可选)— 如果设置为True
,将返回past_key_values
键值状态,并可用于加速解码(请参阅past_key_values
)。output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。output_router_logits
(bool
, optional) — 是否返回所有路由器的 logits。它们对计算路由器损失很有用,在推理过程中不应返回。return_dict
(bool
, optional) — 是否返回一个 ModelOutput 而不是一个普通的元组。
参数 — labels (torch.LongTensor
,形状为(batch_size, sequence_length)
,optional):用于计算掩码语言建模损失的标签。索引应该在[0, ..., config.vocab_size]
范围内,或者为-100(参见input_ids
文档字符串)。索引设置为-100
的标记将被忽略(掩码),损失仅计算具有标签在[0, ..., config.vocab_size]
范围内的标记。
返回
transformers.modeling_outputs.MoeCausalLMOutputWithPast
或tuple(torch.FloatTensor)
一个transformers.modeling_outputs.MoeCausalLMOutputWithPast
或一个torch.FloatTensor
元组(如果传入return_dict=False
或者当config.return_dict=False
时),包括根据配置(MixtralConfig)和输入不同元素。
loss
(torch.FloatTensor
,形状为(1,)
,optional,当提供labels
时返回) — 语言建模损失(用于下一个标记预测)。logits
(torch.FloatTensor
,形状为(batch_size, sequence_length, config.vocab_size)
) — 语言建模头的预测分数(SoftMax 之前每个词汇标记的分数)。aux_loss
(torch.FloatTensor
,optional,当提供labels
时返回) — 稀疏模块的辅助损失。router_logits
(tuple(torch.FloatTensor)
,optional,当传入output_router_probs=True
和config.add_router_probs=True
或者当config.output_router_probs=True
时返回) — 形状为(batch_size, sequence_length, num_experts)
的torch.FloatTensor
元组(每层一个)。
由 MoE 路由器计算的原始路由器 logtis(经过 softmax),这些术语用于计算专家混合模型的辅助损失。past_key_values
(tuple(tuple(torch.FloatTensor))
, optional, 当传入use_cache=True
或者当config.use_cache=True
时返回) — 长度为config.n_layers
的tuple(torch.FloatTensor)
元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块中的键和值),可用于加速顺序解码(参见past_key_values
输入)。hidden_states
(tuple(torch.FloatTensor)
, optional, 当传入output_hidden_states=True
或者当config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
元组(一个用于嵌入的输出,如果模型有嵌入层,+ 一个用于每一层的输出)。
模型在每一层输出的隐藏状态以及可选的初始嵌入输出。attentions
(tuple(torch.FloatTensor)
,optional,当传入output_attentions=True
或者当config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的torch.FloatTensor
元组(每层一个)。
注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
混合因子因果 LM 的前向方法,覆盖__call__
特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例而不是这个,因为前者负责运行前后处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoTokenizer, MixtralForCausalLM >>> model = MixtralForCausalLM.from_pretrained("mistralai/Mixtral-8x7B-v0.1") >>> tokenizer = AutoTokenizer.from_pretrained("mistralai/Mixtral-8x7B-v0.1") >>> prompt = "Hey, are you conscious? Can you talk to me?" >>> inputs = tokenizer(prompt, return_tensors="pt") >>> # Generate >>> generate_ids = model.generate(inputs.input_ids, max_length=30) >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0] "Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."
MixtralForSequenceClassification
类 transformers.MixtralForSequenceClassification
( config )
参数
config
(MixtralConfig)- 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
在顶部有一个序列分类头的 Mixtral 模型变压器(线性层)。
MixtralForSequenceClassification 使用最后一个标记进行分类,就像其他因果模型(例如 GPT-2)一样。
由于它在最后一个标记上进行分类,因此需要知道最后一个标记的位置。如果在配置中定义了pad_token_id
,则会找到每行中不是填充标记的最后一个标记。如果未定义pad_token_id
,则会简单地获取批次中每行的最后一个值。当传递inputs_embeds
而不是input_ids
时,它无法猜测填充标记,因此会执行相同操作(获取批次中每行的最后一个值)。
此模型继承自 PreTrainedModel。查看超类文档以了解库实现的通用方法,例如下载或保存模型,调整输入嵌入大小,修剪头等。
此模型还是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
前向
( input_ids: LongTensor = None attention_mask: Optional = None position_ids: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )
参数
input_ids
(形状为(batch_size, sequence_length)
的torch.LongTensor
)- 词汇表中输入序列标记的索引。默认情况下,如果提供填充,则将忽略填充。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?attention_mask
(形状为(batch_size, sequence_length)
的torch.Tensor
,可选)- 避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]
中:
- 对于
未屏蔽
的标记, - 对于
被屏蔽
的标记为 0。
- 什么是注意力掩码?
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
如果使用了past_key_values
,则只需输入最后的decoder_input_ids
(请参阅past_key_values
)。
如果要更改填充行为,您应该阅读modeling_opt._prepare_decoder_attention_mask
并根据需要进行修改。有关默认策略的更多信息,请参阅论文中的图表 1。
- 1 表示头部未
屏蔽
, - 0 表示头部被
屏蔽
。
position_ids
(torch.LongTensor
of shape(batch_size, sequence_length)
, optional) — 每个输入序列标记在位置嵌入中的位置索引。选择范围在[0, config.n_positions - 1]
之间。
什么是位置 ID?past_key_values
(tuple(tuple(torch.FloatTensor))
, optional, 当传递use_cache=True
或config.use_cache=True
时返回) — 长度为config.n_layers
的tuple(torch.FloatTensor)
元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。
如果使用了past_key_values
,用户可以选择仅输入最后的decoder_input_ids
(即那些没有将它们的过去键值状态提供给此模型的输入)的形状为(batch_size, 1)
,而不是所有decoder_input_ids
的形状为(batch_size, sequence_length)
。inputs_embeds
(torch.FloatTensor
of shape(batch_size, sequence_length, hidden_size)
, optional) — 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids
。如果您想要更多控制权来将input_ids
索引转换为相关向量,这将非常有用,而不是使用模型的内部嵌入查找矩阵。use_cache
(bool
, optional) — 如果设置为True
,则返回past_key_values
键值状态,并可用于加速解码(参见past_key_values
)。output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回的张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回的张量下的hidden_states
。output_router_logits
(bool
, optional) — 是否返回所有路由器的逻辑。它们对于计算路由器损失很有用,在推断期间不应返回。return_dict
(bool
, optional) — 是否返回 ModelOutput 而不是普通元组。labels
(torch.LongTensor
of shape(batch_size,)
, optional) — 用于计算序列分类/回归损失的标签。索引应在[0, ..., config.num_labels - 1]
范围内。如果config.num_labels == 1
,则计算回归损失(均方损失),如果config.num_labels > 1
,则计算分类损失(交叉熵)。
MixtralForSequenceClassification 的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。
mLUKE
原始文本:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/mluke
概述
mLUKE 模型是由 Ryokan Ri、Ikuya Yamada 和 Yoshimasa Tsuruoka 在《mLUKE: 多语言预训练语言模型中实体表示的力量》中提出的。它是基于 XLM-RoBERTa 训练的LUKE 模型的多语言扩展。
它基于 XLM-RoBERTa 并添加了实体嵌入,有助于提高在涉及实体推理的各种下游任务上的性能,如命名实体识别、抽取式问答、关系分类、填空式知识补全。
论文摘要如下:
最近的研究表明,多语言预训练语言模型可以通过来自维基百科实体的跨语言对齐信息有效改进。然而,现有方法仅在预训练中利用实体信息,并未明确在下游任务中使用实体。在这项研究中,我们探讨了利用实体表示进行下游跨语言任务的有效性。我们使用包含实体表示的 24 种语言训练了一个多语言语言模型,并展示该模型在各种跨语言转移任务中始终优于基于单词的预训练模型。我们还分析了模型,关键见解是将实体表示合并到输入中使我们能够提取更多与语言无关的特征。我们还使用 mLAMA 数据集对模型进行了多语言填空提示任务的评估。我们展示基于实体的提示比仅使用单词表示更有可能引出正确的事实知识。
使用提示
可以直接将 mLUKE 的权重插入 LUKE 模型中,如下所示:
from transformers import LukeModel model = LukeModel.from_pretrained("studio-ousia/mluke-base")
请注意,mLUKE 有自己的分词器,MLukeTokenizer。您可以按以下方式初始化它:
from transformers import MLukeTokenizer tokenizer = MLukeTokenizer.from_pretrained("studio-ousia/mluke-base")
由于 mLUKE 的架构等同于 LUKE,因此可以参考 LUKE 的文档页面获取所有提示、代码示例和笔记本。
MLukeTokenizer
class transformers.MLukeTokenizer
( vocab_file entity_vocab_file bos_token = '<s>' eos_token = '</s>' sep_token = '</s>' cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' mask_token = '<mask>' task = None max_entity_length = 32 max_mention_length = 30 entity_token_1 = '<ent>' entity_token_2 = '<ent2>' entity_unk_token = '[UNK]' entity_pad_token = '[PAD]' entity_mask_token = '[MASK]' entity_mask2_token = '[MASK2]' sp_model_kwargs: Optional = None **kwargs )
参数
vocab_file
(str
) — 词汇文件的路径。entity_vocab_file
(str
) — 实体词汇文件的路径。bos_token
(str
, optional, defaults to""
) — 在预训练期间使用的序列开头标记。可以用作序列分类器标记。
在使用特殊标记构建序列时,这不是用于序列开头的标记。用于开头的标记是cls_token
。eos_token
(str
, optional, defaults to"
"
) — 序列结束标记。
在使用特殊标记构建序列时,这不是用于序列结尾的标记。用于结尾的标记是sep_token
。sep_token
(str
, optional, defaults to""
) — 分隔符标记,用于从多个序列构建序列,例如用于序列分类的两个序列或用于文本和问题的问答。它也用作使用特殊标记构建的序列的最后一个标记。cls_token
(str
, optional, defaults to""
) — 用于进行序列分类(对整个序列进行分类而不是每个标记的分类)时使用的分类器标记。当使用特殊标记构建序列时,它是序列的第一个标记。unk_token
(str
, optional, defaults to""
) — 未知标记。词汇表中不存在的标记无法转换为 ID,而是设置为此标记。pad_token
(str
, 可选, 默认为""
) — 用于填充的标记,例如在批处理不同长度的序列时。mask_token
(str
, 可选, 默认为""
) — 用于屏蔽值的标记。这是在使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。task
(str
, 可选) — 您要准备序列的任务。其中之一是"entity_classification"
、"entity_pair_classification"
或"entity_span_classification"
。如果指定此参数,则将根据给定的实体跨度自动创建实体序列。max_entity_length
(int
, 可选, 默认为 32) —entity_ids
的最大长度。max_mention_length
(int
, 可选, 默认为 30) — 实体跨度内的标记的最大数量。entity_token_1
(str
, 可选, 默认为) — 用于表示单词标记序列中实体跨度的特殊标记。仅当
task
设置为"entity_classification"
或"entity_pair_classification"
时才使用此标记。entity_token_2
(str
, 可选, 默认为) — 用于表示单词标记序列中实体跨度的特殊标记。仅当
task
设置为"entity_pair_classification"
时才使用此标记。additional_special_tokens
(List[str]
, 可选, 默认为["NOTUSED", "NOTUSED"]
) — 标记器使用的其他特殊标记。sp_model_kwargs
(dict
, 可选) — 将传递给SentencePieceProcessor.__init__()
方法。SentencePiece 的 Python 包装器可用于设置:
enable_sampling
: 启用子词正则化。nbest_size
: 用于 unigram 的抽样参数。对于 BPE-Dropout 无效。
nbest_size = {0,1}
: 不执行抽样。nbest_size > 1
: 从 nbest_size 结果中进行抽样。nbest_size < 0
: 假设 nbest_size 为无限,并使用前向过滤和后向抽样算法从所有假设(格)中进行抽样。
alpha
: unigram 抽样的平滑参数,以及 BPE-dropout 合并操作的丢失概率。
sp_model
(SentencePieceProcessor
) — 用于每次转换(字符串、标记和 ID)的SentencePiece处理器。
改编自 XLMRobertaTokenizer 和 LukeTokenizer。基于SentencePiece。
此标记器继承自 PreTrainedTokenizer,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
__call__
( text: Union text_pair: Union = None entity_spans: Union = None entity_spans_pair: Union = None entities: Union = None entities_pair: Union = None add_special_tokens: bool = True padding: Union = False truncation: Union = None max_length: Optional = None max_entity_length: Optional = None stride: int = 0 is_split_into_words: Optional = 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]]
) — 要编码的序列或批次序列。每个序列必须是一个字符串。请注意,此标记器不支持基于预标记字符串的标记化。text_pair
(str
,List[str]
,List[List[str]]
) — 要编码的序列或批次序列。每个序列必须是一个字符串。请注意,此标记器不支持基于预标记字符串的标记化。entity_spans
(List[Tuple[int, int]]
,List[List[Tuple[int, int]]]
, optional) — 要编码的实体跨度序列或批次。每个序列由元组组成,每个元组包含两个整数,表示实体的基于字符的起始和结束位置。如果在构造函数中将task
参数指定为"entity_classification"
或"entity_pair_classification"
,则每个序列的长度必须分别为 1 或 2。如果指定了entities
,则每个序列的长度必须等于entities
的每个序列的长度。entity_spans_pair
(List[Tuple[int, int]]
,List[List[Tuple[int, int]]]
, optional) — 要编码的实体跨度序列或批次。每个序列由元组组成,每个元组包含两个整数,表示实体的基于字符的起始和结束位置。如果在构造函数中指定了task
参数,则忽略此参数。如果指定了entities_pair
,则每个序列的长度必须等于entities_pair
的每个序列的长度。entities
(List[str]
,List[List[str]]
, optional) — 要编码的实体序列或批次。每个序列由表示实体的字符串组成,即特殊实体(例如[MASK])或维基百科的实体标题(例如洛杉矶)。如果在构造函数中指定了task
参数,则忽略此参数。每个序列的长度必须等于entity_spans
的每个序列的长度。如果未指定此参数而指定了entity_spans
,则实体序列或实体序列批次将通过填充[MASK]实体自动构建。entities_pair
(List[str]
,List[List[str]]
, optional) — 要编码的实体序列或批次。每个序列由表示实体的字符串组成,即特殊实体(例如[MASK])或维基百科的实体标题(例如洛杉矶)。如果在构造函数中指定了task
参数,则忽略此参数。每个序列的长度必须等于entity_spans_pair
的每个序列的长度。如果未指定此参数而指定了entity_spans_pair
,则实体序列或实体序列批次将通过填充[MASK]实体自动构建。max_entity_length
(int
, optional) —entity_ids
的最大长度。add_special_tokens
(bool
, optional, defaults toTrue
) — 在编码序列时是否添加特殊标记。这将使用底层的PretrainedTokenizerBase.build_inputs_with_special_tokens
函数,该函数定义了自动添加到输入 id 的标记。如果要自动添加bos
或eos
标记,则这很有用。padding
(bool
,str
or PaddingStrategy, optional, defaults toFalse
) — 激活和控制填充。接受以下值:
True
或'longest'
:填充到批次中最长的序列(如果只提供了单个序列,则不填充)。'max_length'
:填充到指定的最大长度,该长度由参数max_length
指定,或者如果未提供该参数,则填充到模型的最大可接受输入长度。False
或'do_not_pad'
(默认):无填充(即可以输出长度不同的序列批次)。
truncation
(bool
,str
or TruncationStrategy, optional, defaults toFalse
) — 激活和控制截断。接受以下值:
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, 默认为 0) — 如果与max_length
一起设置为一个数字,则当return_overflowing_tokens=True
时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。此参数的值定义重叠标记的数量。is_split_into_words
(bool
, optional, 默认为False
) — 输入是否已经预分词(例如,分成单词)。如果设置为True
,分词器会假定输入已经分成单词(例如,通过在空格上分割),然后对其进行分词。这对于 NER 或标记分类很有用。pad_to_multiple_of
(int
, optional) — 如果设置,将填充序列到提供的值的倍数。需要激活padding
。这对于启用 NVIDIA 硬件上的 Tensor Cores 特别有用,计算能力>= 7.5
(Volta)。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, 默认为False
) — 是否返回溢出的标记序列。如果提供一对输入 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
, 可选, 默认为True
) — 是否打印更多信息和警告。**kwargs — 传递给self.tokenize()
方法
返回
BatchEncoding
一个包含以下字段的 BatchEncoding:
input_ids
— 模型要输入的标记 id 列表。
什么是输入 id?token_type_ids
— 要输入模型的标记类型 id 列表(当return_token_type_ids=True
或者self.model_input_names
中包含token_type_ids
时)。
什么是标记类型 id?attention_mask
— 指定哪些标记应该被模型关注的索引列表(当return_attention_mask=True
或者self.model_input_names
中包含attention_mask
时)。
什么是注意力掩码?entity_ids
— 要输入模型的实体 id 列表。
什么是输入 id?entity_position_ids
— 输入序列中实体的位置列表,要输入模型。entity_token_type_ids
— 要输入模型的实体标记类型 id 列表(当return_token_type_ids=True
或者self.model_input_names
中包含entity_token_type_ids
时)。
什么是标记类型 id?entity_attention_mask
— 指定模型应该关注哪些实体的索引列表(当return_attention_mask=True
或者self.model_input_names
中包含entity_attention_mask
时)。
什么是注意力掩码?entity_start_positions
— 单词标记序列中实体的开始位置列表(当task="entity_span_classification"
时)。entity_end_positions
— 单词标记序列中实体的结束位置列表(当task="entity_span_classification"
时)。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
时)
用于对一个或多个序列或一个或多个序列对进行标记化和准备模型的主要方法,具体取决于您要为其准备的任务。
save_vocabulary
( save_directory: str filename_prefix: Optional = None )
Transformers 4.37 中文文档(四十五)(4)https://developer.aliyun.com/article/1565216