Transformers 4.37 中文文档(四十二)(3)https://developer.aliyun.com/article/1565018
FlaxMarianMTModel
class transformers.FlaxMarianMTModel
( config: MarianConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True **kwargs )
参数
config
(MarianConfig)- 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。dtype
(jax.numpy.dtype
,可选,默认为jax.numpy.float32
)- 计算的数据类型。可以是jax.numpy.float32
、jax.numpy.float16
(在 GPU 上)和jax.numpy.bfloat16
(在 TPU 上)之一。
这可用于在 GPU 或 TPU 上启用混合精度训练或半精度推断。如果指定,所有计算将使用给定的dtype
执行。请注意,这仅指定计算的数据类型,不会影响模型参数的数据类型。
如果您希望更改模型参数的数据类型,请参阅 to_fp16()和 to_bf16()。
带有语言建模头的 MARIAN 模型。可用于翻译。该模型继承自 FlaxPreTrainedModel。查看超类文档以了解库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。
该模型还是 Flax 亚麻flax.nn.Module子类。将其用作常规 Flax 模块,并参考 Flax 文档以获取有关一般用法和行为的所有相关信息。
最后,该模型支持 JAX 的固有功能,例如:
__call__
( input_ids: Array attention_mask: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None position_ids: Optional = None decoder_position_ids: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None train: bool = False params: dict = None dropout_rng: PRNGKey = None ) → export const metadata = 'undefined';transformers.modeling_flax_outputs.FlaxSeq2SeqLMOutput or tuple(torch.FloatTensor)
参数
input_ids
(形状为(batch_size, sequence_length)
的jnp.ndarray
)- 词汇表中输入序列标记的索引。默认情况下将忽略填充。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?attention_mask
(形状为(batch_size, sequence_length)
的jnp.ndarray
,可选)- 避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]
中:
- 1 表示
未被掩码
的标记, - 0 表示
被掩码
的标记。
- 什么是注意力掩码?
decoder_input_ids
(形状为(batch_size, target_sequence_length)
的jnp.ndarray
,可选)- 词汇表中解码器输入序列标记的索引。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参见 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是解码器输入 ID?
对于翻译和摘要训练,应提供decoder_input_ids
。如果未提供decoder_input_ids
,模型将通过将input_ids
向右移动来创建此张量,以进行去噪预训练,遵循论文。decoder_attention_mask
(形状为(batch_size, target_sequence_length)
的jnp.ndarray
,可选)— 默认行为:生成一个张量,忽略decoder_input_ids
中的填充标记。因果掩码也将默认使用。
如果您想要更改填充行为,您应该根据自己的需求进行修改。有关默认策略的更多信息,请参见论文中的图表 1。position_ids
(形状为(batch_size, sequence_length)
的numpy.ndarray
,可选)— 每个输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.max_position_embeddings - 1]
。decoder_position_ids
(形状为(batch_size, sequence_length)
的numpy.ndarray
,可选)— 每个解码器输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.max_position_embeddings - 1]
。output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
。output_hidden_states
(bool
,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
。return_dict
(bool
,可选)— 是否返回 ModelOutput 而不是普通元组。
返回
transformers.modeling_flax_outputs.FlaxSeq2SeqLMOutput 或tuple(torch.FloatTensor)
一个 transformers.modeling_flax_outputs.FlaxSeq2SeqLMOutput 或一个torch.FloatTensor
元组(如果传递了return_dict=False
或config.return_dict=False
时)包含根据配置(MarianConfig)和输入的各种元素。
logits
(形状为(batch_size, sequence_length, config.vocab_size)
的jnp.ndarray
)— 语言建模头的预测分数(SoftMax 之前每个词汇标记的分数)。past_key_values
(tuple(tuple(jnp.ndarray))
,可选,当传递use_cache=True
或config.use_cache=True
时返回)— 长度为config.n_layers
的tuple(jnp.ndarray)
元组,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。decoder_hidden_states
(tuple(jnp.ndarray)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回)— 形状为(batch_size, sequence_length, hidden_size)
的jnp.ndarray
元组(一个用于嵌入的输出 + 一个用于每个层的输出)。
每个层输出的解码器的隐藏状态加上初始嵌入输出。decoder_attentions
(tuple(jnp.ndarray)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的jnp.ndarray
元组(每层一个)。
解码器的注意力权重,在注意力 softmax 之后,用于计算自注意力头中的加权平均值。cross_attentions
(tuple(jnp.ndarray)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的jnp.ndarray
元组(每层一个)。
解码器交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。encoder_last_hidden_state
(jnp.ndarray
,形状为(batch_size, sequence_length, hidden_size)
,可选) — 模型编码器最后一层的隐藏状态序列。encoder_hidden_states
(tuple(jnp.ndarray)
,可选,当传递output_hidden_states=True
或config.output_hidden_states=True
时返回) — 形状为(batch_size, sequence_length, hidden_size)
的jnp.ndarray
元组(一个用于嵌入输出,一个用于每一层的输出)。
编码器每一层输出的隐藏状态以及初始嵌入输出。encoder_attentions
(tuple(jnp.ndarray)
,可选,当传递output_attentions=True
或config.output_attentions=True
时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)
的jnp.ndarray
元组(每层一个)。
编码器的注意力权重,在注意力 softmax 之后,用于计算自注意力头中的加权平均值。
FlaxMarianPreTrainedModel
的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的步骤需要在这个函数内定义,但应该在之后调用Module
实例,而不是这个函数,因为前者会处理运行前后的处理步骤,而后者会默默地忽略它们。
示例:
>>> from transformers import AutoTokenizer, FlaxMarianMTModel >>> model = FlaxMarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-de") >>> tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-de") >>> text = "My friends are cool but they eat too many carbs." >>> input_ids = tokenizer(text, max_length=64, return_tensors="jax").input_ids >>> sequences = model.generate(input_ids, max_length=64, num_beams=2).sequences >>> outputs = tokenizer.batch_decode(sequences, skip_special_tokens=True) >>> # should give *Meine Freunde sind cool, aber sie essen zu viele Kohlenhydrate.*
MarkupLM
原始文本:
huggingface.co/docs/transformers/v4.37.2/en/model_doc/markuplm
概述
MarkupLM 模型是由 Junlong Li、Yiheng Xu、Lei Cui、Furu Wei 在MarkupLM: Pre-training of Text and Markup Language for Visually-rich Document Understanding中提出的。MarkupLM 是 BERT,但应用于 HTML 页面而不是原始文本文档。该模型包含额外的嵌入层以提高性能,类似于 LayoutLM。
该模型可用于在网页上进行问答或从网页中提取信息等任务。它在 2 个重要基准测试上取得了最先进的结果:
论文摘要如下:
多模态文本、布局和图像的预训练在视觉丰富的文档理解(VrDU)方面取得了显著进展,特别是固定布局文档,如扫描文档图像。然而,仍然有大量数字文档,其中布局信息不固定,需要进行交互和动态呈现以进行可视化,使得现有基于布局的预训练方法不易应用。在本文中,我们提出了 MarkupLM,用于具有标记语言作为骨干的文档理解任务,例如基于 HTML/XML 的文档,其中文本和标记信息是联合预训练的。实验结果表明,预训练的 MarkupLM 在几个文档理解任务上明显优于现有的强基线模型。预训练模型和代码将公开提供。
使用提示
- 除了
input_ids
,forward()还需要 2 个额外的输入,即xpath_tags_seq
和xpath_subs_seq
。这些分别是输入序列中每个标记的 XPATH 标记和下标。 - 可以使用 MarkupLMProcessor 来为模型准备所有数据。有关更多信息,请参考使用指南。
MarkupLM 架构。取自原始论文。
用法:MarkupLMProcessor
为模型准备数据的最简单方法是使用 MarkupLMProcessor,它内部结合了特征提取器(MarkupLMFeatureExtractor)和标记器(MarkupLMTokenizer 或 MarkupLMTokenizerFast)。特征提取器用于从 HTML 字符串中提取所有节点和 XPATH,然后提供给标记器,将它们转换为模型的标记级输入(input_ids
等)。请注意,如果您只想处理其中一个任务,仍然可以分别使用特征提取器和标记器。
from transformers import MarkupLMFeatureExtractor, MarkupLMTokenizerFast, MarkupLMProcessor feature_extractor = MarkupLMFeatureExtractor() tokenizer = MarkupLMTokenizerFast.from_pretrained("microsoft/markuplm-base") processor = MarkupLMProcessor(feature_extractor, tokenizer)
简而言之,可以将 HTML 字符串(以及可能的其他数据)提供给 MarkupLMProcessor,它将创建模型所需的输入。在内部,处理器首先使用 MarkupLMFeatureExtractor 获取节点和对应的 xpath 列表。然后将节点和 xpath 提供给 MarkupLMTokenizer 或 MarkupLMTokenizerFast,将它们转换为标记级别的input_ids
、attention_mask
、token_type_ids
、xpath_subs_seq
、xpath_tags_seq
。可选地,可以向处理器提供节点标签,这些标签将转换为标记级别的labels
。
MarkupLMFeatureExtractor 使用 Beautiful Soup,这是一个用于从 HTML 和 XML 文件中提取数据的 Python 库。请注意,您仍然可以使用自己选择的解析解决方案,并将节点和 xpath 自己提供给 MarkupLMTokenizer 或 MarkupLMTokenizerFast。
总共有 5 个由处理器支持的用例。下面我们列出它们。请注意,这些用例适用于批处理和非批处理输入(我们为非批处理输入进行说明)。
用例 1:网页分类(训练,推理)+ 标记分类(推理),parse_html=True
这是最简单的情况,处理器将使用特征提取器从 HTML 中获取所有节点和 xpath。
>>> from transformers import MarkupLMProcessor >>> processor = MarkupLMProcessor.from_pretrained("microsoft/markuplm-base") >>> html_string = """ ... <!DOCTYPE html> ... <html> ... <head> ... <title>Hello world</title> ... </head> ... <body> ... <h1>Welcome</h1> ... <p>Here is my website.</p> ... </body> ... </html>""" >>> # note that you can also add provide all tokenizer parameters here such as padding, truncation >>> encoding = processor(html_string, return_tensors="pt") >>> print(encoding.keys()) dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'xpath_tags_seq', 'xpath_subs_seq'])
用例 2:网页分类(训练,推理)+ 标记分类(推理),parse_html=False
如果已经获取了所有节点和 xpath,就不需要特征提取器。在这种情况下,应该将节点和对应的 xpath 自己提供给处理器,并确保将parse_html
设置为False
。
>>> from transformers import MarkupLMProcessor >>> processor = MarkupLMProcessor.from_pretrained("microsoft/markuplm-base") >>> processor.parse_html = False >>> nodes = ["hello", "world", "how", "are"] >>> xpaths = ["/html/body/div/li[1]/div/span", "/html/body/div/li[1]/div/span", "html/body", "html/body/div"] >>> encoding = processor(nodes=nodes, xpaths=xpaths, return_tensors="pt") >>> print(encoding.keys()) dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'xpath_tags_seq', 'xpath_subs_seq'])
用例 3:标记分类(训练),parse_html=False
对于标记分类任务(例如SWDE),还可以提供相应的节点标签以训练模型。处理器将把这些转换为标记级别的labels
。默认情况下,它只会标记一个单词的第一个 wordpiece,并用-100 标记剩余的 wordpieces,这是 PyTorch 的 CrossEntropyLoss 的ignore_index
。如果您希望标记一个单词的所有 wordpieces,可以将分词器初始化为only_label_first_subword
设置为False
。
>>> from transformers import MarkupLMProcessor >>> processor = MarkupLMProcessor.from_pretrained("microsoft/markuplm-base") >>> processor.parse_html = False >>> nodes = ["hello", "world", "how", "are"] >>> xpaths = ["/html/body/div/li[1]/div/span", "/html/body/div/li[1]/div/span", "html/body", "html/body/div"] >>> node_labels = [1, 2, 2, 1] >>> encoding = processor(nodes=nodes, xpaths=xpaths, node_labels=node_labels, return_tensors="pt") >>> print(encoding.keys()) dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'xpath_tags_seq', 'xpath_subs_seq', 'labels'])
用例 4:网页问答(推理),parse_html=True
对于网页问答任务,您可以向处理器提供一个问题。默认情况下,处理器将使用特征提取器获取所有节点和 xpath,并创建[CLS]问题标记[SEP]单词标记[SEP]。
>>> from transformers import MarkupLMProcessor >>> processor = MarkupLMProcessor.from_pretrained("microsoft/markuplm-base") >>> html_string = """ ... <!DOCTYPE html> ... <html> ... <head> ... <title>Hello world</title> ... </head> ... <body> ... <h1>Welcome</h1> ... <p>My name is Niels.</p> ... </body> ... </html>""" >>> question = "What's his name?" >>> encoding = processor(html_string, questions=question, return_tensors="pt") >>> print(encoding.keys()) dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'xpath_tags_seq', 'xpath_subs_seq'])
用例 5:网页问答(推理),parse_html=False
对于问答任务(例如 WebSRC),您可以向处理器提供一个问题。如果您已经自己提取了所有节点和 xpath,可以直接提供给处理器。请确保将parse_html
设置为False
。
>>> from transformers import MarkupLMProcessor >>> processor = MarkupLMProcessor.from_pretrained("microsoft/markuplm-base") >>> processor.parse_html = False >>> nodes = ["hello", "world", "how", "are"] >>> xpaths = ["/html/body/div/li[1]/div/span", "/html/body/div/li[1]/div/span", "html/body", "html/body/div"] >>> question = "What's his name?" >>> encoding = processor(nodes=nodes, xpaths=xpaths, questions=question, return_tensors="pt") >>> print(encoding.keys()) dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'xpath_tags_seq', 'xpath_subs_seq'])
资源
- 演示笔记本
- 文本分类任务指南
- 标记分类任务指南
- 问答任务指南
MarkupLMConfig
class transformers.MarkupLMConfig
( vocab_size = 30522 hidden_size = 768 num_hidden_layers = 12 num_attention_heads = 12 intermediate_size = 3072 hidden_act = 'gelu' hidden_dropout_prob = 0.1 attention_probs_dropout_prob = 0.1 max_position_embeddings = 512 type_vocab_size = 2 initializer_range = 0.02 layer_norm_eps = 1e-12 pad_token_id = 0 bos_token_id = 0 eos_token_id = 2 max_xpath_tag_unit_embeddings = 256 max_xpath_subs_unit_embeddings = 1024 tag_pad_id = 216 subs_pad_id = 1001 xpath_unit_hidden_size = 32 max_depth = 50 position_embedding_type = 'absolute' use_cache = True classifier_dropout = None **kwargs )
参数
vocab_size
(int
, optional, defaults to 30522) — MarkupLM 模型的词汇表大小。定义了可以由传递给 MarkupLMModel 的 inputs_ids 表示的不同标记。hidden_size
(int
, optional, defaults to 768) — 编码器层和池化器层的维度。num_hidden_layers
(int
, optional, defaults to 12) — Transformer 编码器中的隐藏层数。num_attention_heads
(int
, optional, defaults to 12) — Transformer 编码器中每个注意力层的注意力头数。intermediate_size
(int
, optional, defaults to 3072) — Transformer 编码器中“中间”(即前馈)层的维度。hidden_act
(str
orfunction
, optional, defaults to"gelu"
) — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu"
,"relu"
,"silu"
和"gelu_new"
。hidden_dropout_prob
(float
, optional, defaults to 0.1) — 嵌入层、编码器和池化器中所有全连接层的 dropout 概率。attention_probs_dropout_prob
(float
, optional, defaults to 0.1) — 注意力概率的 dropout 比率。max_position_embeddings
(int
, optional, defaults to 512) — 模型可能使用的最大序列长度。通常将其设置为一个较大的值以防万一(例如 512 或 1024 或 2048)。type_vocab_size
(int
, optional, defaults to 2) — 传递给 MarkupLMModel 的token_type_ids
的词汇表大小。initializer_range
(float
, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。layer_norm_eps
(float
, optional, defaults to 1e-12) — 层归一化层使用的 epsilon 值。max_tree_id_unit_embeddings
(int
, optional, defaults to 1024) — 树 id 单元嵌入可能使用的最大值。通常将其设置为一个较大的值以防万一(例如 1024)。max_xpath_tag_unit_embeddings
(int
, optional, defaults to 256) — xpath 标签单元嵌入可能使用的最大值。通常将其设置为一个较大的值以防万一(例如 256)。max_xpath_subs_unit_embeddings
(int
, optional, defaults to 1024) — xpath 下标单元嵌入可能使用的最大值。通常将其设置为一个较大的值以防万一(例如 1024)。tag_pad_id
(int
, optional, defaults to 216) — xpath 标签中填充标记的 id。subs_pad_id
(int
, optional, defaults to 1001) — xpath 下标中填充标记的 id。xpath_tag_unit_hidden_size
(int
, optional, defaults to 32) — 每个树 id 单元的隐藏大小。一个完整的树索引将具有 (50*xpath_tag_unit_hidden_size) 维度。max_depth
(int
, optional, defaults to 50) — xpath 中的最大深度。
这是用于存储 MarkupLMModel 配置的配置类。根据指定的参数实例化一个 MarkupLM 模型,定义模型架构。使用默认值实例化配置将产生类似于 MarkupLM microsoft/markuplm-base 架构的配置。
配置对象继承自 BertConfig,可用于控制模型输出。阅读 BertConfig 的文档以获取更多信息。
示例:
>>> from transformers import MarkupLMModel, MarkupLMConfig >>> # Initializing a MarkupLM microsoft/markuplm-base style configuration >>> configuration = MarkupLMConfig() >>> # Initializing a model from the microsoft/markuplm-base style configuration >>> model = MarkupLMModel(configuration) >>> # Accessing the model configuration >>> configuration = model.config
MarkupLMFeatureExtractor
class transformers.MarkupLMFeatureExtractor
( **kwargs )
构造一个 MarkupLM 特征提取器。这可用于从 HTML 字符串获取节点列表和相应的 XPath。
此特征提取器继承自 PreTrainedFeatureExtractor()
,其中包含大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。
__call__
( html_strings ) → export const metadata = 'undefined';BatchFeature
参数
html_strings
(str
,List[str]
) — 要提取节点和相应 XPath 的 HTML 字符串或 HTML 字符串批处理。
返回
BatchFeature
一个带有以下字段的 BatchFeature:
nodes
— 节点。xpaths
— 相应的 XPath。
为模型准备一个或多个 HTML 字符串的主要方法。
示例:
>>> from transformers import MarkupLMFeatureExtractor >>> page_name_1 = "page1.html" >>> page_name_2 = "page2.html" >>> page_name_3 = "page3.html" >>> with open(page_name_1) as f: ... single_html_string = f.read() >>> feature_extractor = MarkupLMFeatureExtractor() >>> # single example >>> encoding = feature_extractor(single_html_string) >>> print(encoding.keys()) >>> # dict_keys(['nodes', 'xpaths']) >>> # batched example >>> multi_html_strings = [] >>> with open(page_name_2) as f: ... multi_html_strings.append(f.read()) >>> with open(page_name_3) as f: ... multi_html_strings.append(f.read()) >>> encoding = feature_extractor(multi_html_strings) >>> print(encoding.keys()) >>> # dict_keys(['nodes', 'xpaths'])
MarkupLMTokenizer
class transformers.MarkupLMTokenizer
( vocab_file merges_file tags_dict errors = 'replace' bos_token = '<s>' eos_token = '</s>' sep_token = '</s>' cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' mask_token = '<mask>' add_prefix_space = False max_depth = 50 max_width = 1000 pad_width = 1001 pad_token_label = -100 only_label_first_subword = True **kwargs )
参数
vocab_file
(str
) — 词汇表文件的路径。merges_file
(str
) — 合并文件的路径。errors
(str
, optional, defaults to"replace"
) — 解码字节为 UTF-8 时要遵循的范例。有关更多信息,请参阅 bytes.decode。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
, optional, defaults to""
) — 用于填充的标记,例如在批处理不同长度的序列时使用。mask_token
(str
, optional, defaults to""
) — 用于屏蔽值的标记。在使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。add_prefix_space
(bool
, optional, defaults toFalse
) — 是否将初始空格添加到输入中。这允许将前导单词视为任何其他单词。(RoBERTa 分词器通过前面的空格检测单词的开头)。
构建一个 MarkupLM 分词器。基于字节级字节对编码(BPE)。MarkupLMTokenizer 可用于将 HTML 字符串转换为标记级input_ids
、attention_mask
、token_type_ids
、xpath_tags_seq
和xpath_tags_seq
。此分词器继承自 PreTrainedTokenizer,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
build_inputs_with_special_tokens
build_inputs_with_special_tokens
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — 将添加特殊标记的 ID 列表。token_ids_1
(List[int]
, 可选) — 序列对的可选第二个 ID 列表。
返回
List[int]
具有适当特殊标记的 input IDs 列表。
通过连接和添加特殊标记从序列或序列对构建用于序列分类任务的模型输入。RoBERTa 序列具有以下格式:
单个序列:X序列对:AB
get_special_tokens_mask
( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]
参数
- 从没有添加特殊标记的标记列表中检索序列 ID。在添加时调用此方法 —
- 使用分词器
prepare_for_model
方法的special
标记。— token_ids_0 (List[int]
): ID 列表。token_ids_1 (List[int]
, 可选): 序列对的可选第二个 ID 列表。already_has_special_tokens (bool
, 可选, 默认为False
): 标记列表是否已经为模型格式化了特殊标记。
返回
List[int]
一个整数列表,范围为[0, 1]:1 表示特殊标记,0 表示序列标记。
create_token_type_ids_from_sequences
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — ID 列表。token_ids_1
(List[int]
, 可选) — 序列对的可选第二个 ID 列表。
返回
List[int]
零列表。
从传递的两个序列创建一个用于序列对分类任务的掩码。RoBERTa 不使用标记类型 ID,因此返回一个零列表。
save_vocabulary
( save_directory: str filename_prefix: Optional = None )
Transformers 4.37 中文文档(四十二)(5)https://developer.aliyun.com/article/1565021