Transformers 4.37 中文文档(四十一)(4)

简介: Transformers 4.37 中文文档(四十一)

Transformers 4.37 中文文档(四十一)(3)https://developer.aliyun.com/article/1565234


资源

LukeConfig

class transformers.LukeConfig

<来源>

( vocab_size = 50267 entity_vocab_size = 500000 hidden_size = 768 entity_emb_size = 256 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 use_entity_aware_attention = True classifier_dropout = None pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 **kwargs )

参数

  • vocab_size (int, 可选, 默认为 50267) — LUKE 模型的词汇表大小。定义了在调用 LukeModel 时可以表示的不同令牌数量。
  • entity_vocab_size (int, 可选, 默认为 500000) — LUKE 模型的实体词汇表大小。定义了在调用 LukeModel 时可以表示的不同实体数量。
  • hidden_size (int, 可选, 默认为 768) — 编码器层和池化层的维度。
  • entity_emb_size (int, 可选, 默认为 256) — 实体嵌入的维度数。
  • num_hidden_layers (int, 可选, 默认为 12) — Transformer 编码器中的隐藏层数量。
  • num_attention_heads (int, optional, 默认为 12) — Transformer 编码器中每个注意力层的注意力头数。
  • intermediate_size (int, optional, 默认为 3072) — Transformer 编码器中“中间”(通常称为前馈)层的维度。
  • hidden_act (strCallable, optional, 默认为"gelu") — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu""relu""silu""gelu_new"
  • hidden_dropout_prob (float, optional, 默认为 0.1) — 嵌入层、编码器和池化器中所有全连接层的 dropout 概率。
  • attention_probs_dropout_prob (float, optional, 默认为 0.1) — 注意力概率的 dropout 比率。
  • max_position_embeddings (int, optional, 默认为 512) — 该模型可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512、1024 或 2048)。
  • type_vocab_size (int, optional, 默认为 2) — 在调用 LukeModel 时传递的token_type_ids的词汇大小。
  • initializer_range (float, optional, 默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • layer_norm_eps (float, optional, 默认为 1e-12) — 层归一化层使用的 epsilon。
  • use_entity_aware_attention (bool, optional, 默认为True) — 模型是否应该使用LUKE: Deep Contextualized Entity Representations with Entity-aware Self-attention (Yamada et al.)中提出的实体感知自注意机制。
  • classifier_dropout (float, optional) — 分类头的 dropout 比率。
  • pad_token_id (int, optional, 默认为 1) — 填充标记 id。
  • bos_token_id (int, optional, 默认为 0) — 流的起始标记 id。
  • eos_token_id (int, optional, 默认为 2) — 流的结束标记 id。

这是用于存储 LukeModel 配置的配置类。根据指定的参数实例化 LUKE 模型,定义模型架构。使用默认值实例化配置将产生类似于 LUKE studio-ousia/luke-base架构的配置。

配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。

示例:

>>> from transformers import LukeConfig, LukeModel
>>> # Initializing a LUKE configuration
>>> configuration = LukeConfig()
>>> # Initializing a model from the configuration
>>> model = LukeModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

LukeTokenizer

class transformers.LukeTokenizer

<来源>

( vocab_file merges_file entity_vocab_file 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]' 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 **kwargs )

参数

  • vocab_file (str) — 词汇文件的路径。
  • merges_file (str) — 合并文件的路径。
  • entity_vocab_file (str) — 实体词汇文件的路径。
  • task (str, optional) — 您想要准备序列的任务。其中之一是"entity_classification""entity_pair_classification""entity_span_classification"。如果指定此参数,实体序列将根据给定的实体跨度自动创建。
  • max_entity_length (int, optional, 默认为 32) — entity_ids的最大长度。
  • max_mention_length (int, optional, 默认为 30) — 实体跨度内的最大标记数。
  • entity_token_1 (str, optional, 默认为) — 用于表示单词标记序列中实体跨度的特殊标记。仅当task设置为"entity_classification""entity_pair_classification"时才使用此标记。
  • entity_token_2str可选,默认为)— 用于表示单词标记序列中实体跨度的特殊标记。仅当task设置为"entity_pair_classification"时才使用此标记。
  • errorsstr可选,默认为"replace")— 解码字节为 UTF-8 时要遵循的范例。有关更多信息,请参阅bytes.decode
  • bos_tokenstr可选,默认为"")— 在预训练期间使用的序列开头标记。可用作序列分类器标记。
    在使用特殊标记构建序列时,这不是用于序列开头的标记。使用的标记是cls_token
  • eos_tokenstr可选,默认为"")— 序列结尾标记。
    在使用特殊标记构建序列时,这不是用于序列结尾的标记。使用的标记是sep_token
  • sep_tokenstr可选,默认为"")— 分隔符标记,在从多个序列构建序列时使用,例如,用于序列分类的两个序列或用于文本和问题的问题回答。它还用作使用特殊标记构建的序列的最后一个标记。
  • cls_tokenstr可选,默认为"")— 在进行序列分类(对整个序列而不是每个标记进行分类)时使用的分类器标记。在使用特殊标记构建时,它是序列的第一个标记。
  • unk_tokenstr可选,默认为"")— 未知标记。词汇表中没有的标记无法转换为 ID,而是设置为此标记。
  • pad_tokenstr可选,默认为"")— 用于填充的标记,例如,当批处理不同长度的序列时。
  • mask_tokenstr可选,默认为"")— 用于屏蔽值的标记。这是在使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。
  • add_prefix_spacebool可选,默认为False)— 是否在输入前添加一个初始空格。这允许将前导单词视为任何其他单词。(LUKE 分词器通过前面的空格检测单词的开头)。

构建一个 LUKE 分词器,从 GPT-2 分词器派生,使用字节级字节对编码。

这个分词器已经训练成将空格视为标记的一部分(有点像 sentencepiece),因此一个单词将

在句子开头(无空格)或不是时,将以不同方式编码:

>>> from transformers import LukeTokenizer
>>> tokenizer = LukeTokenizer.from_pretrained("studio-ousia/luke-base")
>>> tokenizer("Hello world")["input_ids"]
[0, 31414, 232, 2]
>>> tokenizer(" Hello world")["input_ids"]
[0, 20920, 232, 2]

您可以通过在实例化此分词器时或在对某些文本调用它时传递add_prefix_space=True来避免这种行为,但由于该模型不是以这种方式进行预训练的,因此可能会导致性能下降。

当与is_split_into_words=True一起使用时,此分词器将在每个单词之前添加一个空格(即使是第一个单词)。

这个分词器继承自 PreTrainedTokenizer,其中包含大多数主要方法。用户应参考这个超类以获取有关这些方法的更多信息。它还创建实体序列,即entity_idsentity_attention_maskentity_token_type_idsentity_position_ids,供 LUKE 模型使用。

__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

参数

  • textstrList[str]List[List[str]])— 要编码的序列或序列批次。每个序列必须是一个字符串。请注意,此分词器不支持基于预分词字符串的分词。
  • text_pairstrList[str]List[List[str]])— 要编码的序列或批次。每个序列必须是一个字符串。请注意,此分词器不支持基于预分词字符串的分词。
  • entity_spansList[Tuple[int, int]]List[List[Tuple[int, int]]]可选)— 要编码的实体跨度序列或批次。每个序列由元组组成,每个元组包含两个整数,表示实体的基于字符的起始和结束位置。如果在构造函数中将 task 参数指定为 "entity_classification""entity_pair_classification",则每个序列的长度必须分别为 1 或 2。如果指定了 entities,则每个序列的长度必须等于 entities 的每个序列的长度。
  • entity_spans_pairList[Tuple[int, int]]List[List[Tuple[int, int]]]可选)— 要编码的实体跨度序列或批次。每个序列由元组组成,每个元组包含两个整数,表示实体的基于字符的起始和结束位置。如果在构造函数中指定了 task 参数,则将忽略此参数。如果指定了 entities_pair,则每个序列的长度必须等于 entities_pair 的每个序列的长度。
  • entitiesList[str]List[List[str]]可选)— 要编码的实体序列或批次。每个序列由表示实体的字符串组成,即特殊实体(例如 [MASK])或维基百科的实体标题(例如洛杉矶)。如果在构造函数中指定了 task 参数,则将忽略此参数。每个序列的长度必须等于 entity_spans 的每个序列的长度。如果指定了 entity_spans 而没有指定此参数,则实体序列或实体序列批次将通过填充 [MASK] 实体来自动构建。
  • entities_pairList[str]List[List[str]]可选)— 要编码的实体序列或批次。每个序列由表示实体的字符串组成,即特殊实体(例如 [MASK])或维基百科的实体标题(例如洛杉矶)。如果在构造函数中指定了 task 参数,则将忽略此参数。每个序列的长度必须等于 entity_spans_pair 的每个序列的长度。如果指定了 entity_spans_pair 而没有指定此参数,则实体序列或实体序列批次将通过填充 [MASK] 实体来自动构建。
  • max_entity_lengthint可选)— entity_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_length (int, 可选) — 控制截断/填充参数使用的最大长度。
    如果未设置或设置为 None,则将使用预定义的模型最大长度,如果截断/填充参数需要最大长度。如果模型没有特定的最大输入长度(如 XLNet),则将禁用截断/填充到最大长度。
  • stride (int, 可选, 默认为 0) — 如果与 max_length 一起设置为一个数字,当 return_overflowing_tokens=True 时返回的溢出标记将包含截断序列末尾的一些标记,以提供截断和溢出序列之间的一些重叠。该参数的值定义重叠标记的数量。
  • is_split_into_words (bool, 可选, 默认为 False) — 输入是否已经预分词(例如,已经分成单词)。如果设置为 True,分词器会假定输入已经分成单词(例如,通过空格分割),然后进行分词。这对于命名实体识别或标记分类很有用。
  • 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 类型 ID。如果保持默认设置,将根据特定分词器的默认设置返回 token 类型 ID,由 return_outputs 属性定义。
    什么是 token 类型 ID?
  • return_attention_mask (bool, 可选) — 是否返回注意力掩码。如果保持默认设置,将根据特定分词器的默认设置返回注意力掩码,由 return_outputs 属性定义。
    什么是注意力掩码?
  • return_overflowing_tokens (bool, 可选, 默认为 False) — 是否返回溢出的标记序列。如果提供一对输入 ID 序列(或一批序列),并且 truncation_strategy = longest_firstTrue,则会引发错误,而不是返回溢出的标记。
  • return_special_tokens_mask (bool, 可选, 默认为 False) — 是否返回特殊标记掩码信息。
  • return_offsets_mapping (bool, 可选, 默认为 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中时)。
    什么是标记类型 ID?
  • attention_mask — 指定模型应该关注哪些标记的索引列表(当return_attention_mask=True或者*attention_mask*在self.model_input_names中时)。
    什么是注意力掩码?
  • entity_ids — 要馈送到模型的实体 ID 列表。
    什么是输入 ID?
  • entity_position_ids — 输入序列中实体位置的列表,将被馈送到模型中。
  • entity_token_type_ids — 要馈送到模型的实体标记类型 ID 列表(当return_token_type_ids=True或者*entity_token_type_ids*在self.model_input_names中时)。
    什么是标记类型 ID?
  • entity_attention_mask — 指定模型应该关注哪些实体的索引列表(当return_attention_mask=True或者*entity_attention_mask*在self.model_input_names中时)。
    什么是注意力掩码?
  • 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=Truereturn_special_tokens_mask=True时)。
  • length — 输入的长度(当return_length=True时)

为模型准备一个或多个序列或一个或多个序列对的主要方法,具体取决于您要为其准备的任务。

save_vocabulary

< source >

( save_directory: str filename_prefix: Optional = None )


Transformers 4.37 中文文档(四十一)(5)https://developer.aliyun.com/article/1565237

相关文章
|
7月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(四十一)(8)
Transformers 4.37 中文文档(四十一)
42 2
|
7月前
|
PyTorch 算法框架/工具 索引
Transformers 4.37 中文文档(四十一)(7)
Transformers 4.37 中文文档(四十一)
38 2
|
7月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(四十九)(4)
Transformers 4.37 中文文档(四十九)
26 2
|
7月前
|
PyTorch 算法框架/工具 索引
Transformers 4.37 中文文档(四十一)(5)
Transformers 4.37 中文文档(四十一)
30 0
|
7月前
|
人工智能 自然语言处理 NoSQL
Transformers 4.37 中文文档(四十九)(1)
Transformers 4.37 中文文档(四十九)
130 2
|
7月前
|
机器学习/深度学习 存储 PyTorch
Transformers 4.37 中文文档(四十九)(3)
Transformers 4.37 中文文档(四十九)
31 2
|
7月前
|
缓存 异构计算 索引
Transformers 4.37 中文文档(四十三)(6)
Transformers 4.37 中文文档(四十三)
53 1
|
7月前
|
存储 自然语言处理 算法
Transformers 4.37 中文文档(四十三)(1)
Transformers 4.37 中文文档(四十三)
45 1
|
7月前
|
PyTorch 测试技术 区块链
Transformers 4.37 中文文档(四十三)(2)
Transformers 4.37 中文文档(四十三)
40 1
|
7月前
|
PyTorch 算法框架/工具 异构计算
Transformers 4.37 中文文档(四十三)(5)
Transformers 4.37 中文文档(四十三)
40 1