Transformers 文档

XGLM

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

该模型于 2021 年 12 月 20 日发布在 HF papers 上,并于 2022 年 1 月 28 日贡献给 Hugging Face Transformers。

XGLM

概述

XGLM 模型由 Xi Victoria Lin、Todor Mihaylov、Mikel Artetxe、Tianlu Wang、Shuohui Chen、Daniel Simig、Myle Ott、Naman Goyal、Shruti Bhosale、Jingfei Du、Ramakanth Pasunuru、Sam Shleifer、Punit Singh Koura、Vishrav Chaudhary、Brian O’Horo、Jeff Wang、Luke Zettlemoyer、Zornitsa Kozareva、Mona Diab、Veselin Stoyanov 和 Xian Li 在《Few-shot Learning with Multilingual Language Models》(基于多语言语言模型的少样本学习)一文中提出。

论文摘要如下:

像 GPT-3 这样的大规模自回归语言模型是少样本学习器,无需微调即可执行多种语言任务。虽然已知这些模型能够联合表示许多不同的语言,但其训练数据以英语为主,这可能限制了它们的跨语言泛化能力。在这项工作中,我们在涵盖多种语言的平衡语料库上训练多语言自回归语言模型,并研究它们在广泛任务中的少样本和零样本学习能力。我们最大的模型拥有 75 亿个参数,在 20 多种代表性语言的少样本学习中创下了新的最先进水平。在多语言常识推理任务中,它优于同等规模的 GPT-3(零样本设置下绝对准确率提升 7.4%,4-shot 设置下提升 9.4%),在自然语言推理任务中也表现优异(零样本和 4-shot 设置下均提升 5.4%)。在 FLORES-101 机器翻译基准测试中,我们的模型在 32 个训练示例的情况下,在 182 个翻译方向中的 171 个方向上表现优于 GPT-3,并在 45 个方向上超过了官方的监督学习基线。我们详细分析了该模型在哪些方面成功以及在哪些方面失败,特别是展示了它在某些任务上实现了跨语言的上下文学习,但表面形式的鲁棒性以及对没有自然完形填空形式的任务的适应性仍有改进空间。最后,我们在五种语言的仇恨言论检测等社会价值任务中评估了我们的模型,发现它具有与同等规模的 GPT-3 模型类似的局限性。

该模型由 Suraj 贡献。原始代码可以在这里找到。

资源

XGLMConfig

class transformers.XGLMConfig

< >

( transformers_version: str | None = None architectures: list[str] | None = None output_hidden_states: bool | None = False return_dict: bool | None = True dtype: typing.Union[str, ForwardRef('torch.dtype'), NoneType] = None chunk_size_feed_forward: int = 0 is_encoder_decoder: bool = False id2label: dict[int, str] | dict[str, str] | None = None label2id: dict[str, int] | dict[str, str] | None = None problem_type: typing.Optional[typing.Literal['regression', 'single_label_classification', 'multi_label_classification']] = None vocab_size: int = 256008 max_position_embeddings: int = 2048 d_model: int = 1024 ffn_dim: int = 4096 num_layers: int = 24 attention_heads: int = 16 activation_function: str = 'gelu' dropout: float | int = 0.1 attention_dropout: float | int = 0.1 activation_dropout: float | int = 0.0 layerdrop: float | int = 0.0 init_std: float = 0.02 scale_embedding: bool = True use_cache: bool = True decoder_start_token_id: int = 2 pad_token_id: int | None = 1 bos_token_id: int | None = 0 eos_token_id: int | list[int] | None = 2 add_cross_attention: bool = False tie_word_embeddings: bool = True )

参数

  • vocab_size (int, 可选, 默认值为 256008) — 模型的词汇表大小。定义了 input_ids 可以表示的不同 token 的数量。
  • max_position_embeddings (int, 可选, 默认值为 2048) — 该模型可能使用的最大序列长度。
  • d_model (int, 可选, 默认值为 1024) — 编码器层和池化层的维度大小。
  • ffn_dim (int, 可选, 默认值为 4096) — MLP 表示的维度。
  • num_layers (int, 可选, 默认值为 24) — Transformer 解码器中的隐藏层数量。
  • attention_heads (int, 可选, 默认值为 16) — Transformer 解码器中每个注意力层的注意力头数量。
  • activation_function (str, 可选, 默认值为 gelu) — 解码器中的非线性激活函数(函数或字符串)。例如:"gelu", "relu", "silu" 等。
  • dropout (Union[float, int], 可选, 默认值为 0.1) — 所有 dropout 层的比率。
  • attention_dropout (Union[float, int], 可选, 默认值为 0.1) — 注意力概率的 dropout 比率。
  • activation_dropout (Union[float, int], 可选, 默认值为 0.0) — 全连接层内部激活的 dropout 比率。
  • layerdrop (Union[float, int], 可选, 默认值为 0.0) — LayerDrop 概率。详见 [LayerDrop 论文](参见 https://huggingface.co/papers/1909.11556)。
  • init_std (float, 可选, 默认值为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • scale_embedding (bool, 可选, 默认值为 True) — 是否通过除以 sqrt(d_model) 来缩放嵌入。
  • use_cache (bool, 可选, 默认值为 True) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。仅当 config.is_decoder=True 或模型是纯解码器生成模型时才相关。
  • decoder_start_token_id (int, 可选, 默认值为 2) — 如果编码器-解码器模型以不同于 bos 的 token 开始解码,则为该 token 的 id。
  • pad_token_id (int, 可选, 默认值为 1) — 词汇表中用于填充(padding)的 token id。
  • bos_token_id (int, 可选, 默认值为 0) — 词汇表中用于流开始(beginning-of-stream)的 token id。
  • eos_token_id (Union[int, list[int]], 可选, 默认值为 2) — 词汇表中用于流结束(end-of-stream)的 token id。
  • add_cross_attention (bool, 可选, 默认值为 False) — 是否应向模型添加交叉注意力层。
  • tie_word_embeddings (bool, 可选, 默认值为 True) — 是否根据模型的 tied_weights_keys 映射来绑定词嵌入。

这是用于存储 XGLMModel 配置的配置类。它根据指定的参数实例化 Xglm 模型,定义模型架构。使用默认值实例化配置将产生与 facebook/xglm-564M 相似的配置。

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

示例

>>> from transformers import XGLMModel, XGLMConfig

>>> # Initializing a XGLM facebook/xglm-564M style configuration
>>> configuration = XGLMConfig()

>>> # Initializing a model from the facebook/xglm-564M style configuration
>>> model = XGLMModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

XGLMTokenizer

class transformers.XGLMTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = None bos_token: str = '<s>' eos_token: str = '</s>' sep_token: str = '</s>' cls_token: str = '<s>' unk_token: str = '<unk>' pad_token: str = '<pad>' add_prefix_space: bool = True **kwargs )

参数

  • tokenizer_file (str, 可选) — 包含序列化分词器的 tokenizers JSON 文件路径。
  • bos_token (str, 可选, 默认值为 "<s>") — 预训练期间使用的序列开始标记(beginning of sequence token)。可用作序列分类标记。
  • eos_token (str, 可选, 默认值为 "</s>") — 序列结束标记(end of sequence token)。
  • sep_token (str, 可选, 默认值为 "</s>") — 分隔标记,用于从多个序列构建一个序列时使用。
  • cls_token (str, 可选, 默认值为 "<s>") — 执行序列分类时使用的分类标记(classifier token)。
  • unk_token (str, 可选, 默认值为 "<unk>") — 未知标记(unknown token)。
  • pad_token (str, 可选, 默认值为 "<pad>") — 用于填充(padding)的标记。
  • vocab (str, dictlist, 可选) — 自定义词汇表字典。如果不提供,将创建一个最小化的词汇表。
  • merges (list[tuple[str, str]], 可选) — BPE 的自定义合并规则。如果不提供,合并规则将根据词汇表生成。
  • add_prefix_space (bool, 可选, 默认值为 True) — 是否在编码前添加前缀空格。

构建 XGLM 分词器(由 HuggingFace 的 tokenizers 库支持)。基于 BPE。

该分词器继承自 TokenizersBackend,后者包含其大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。

get_special_tokens_mask

< >

( token_ids_0: list[int] token_ids_1: list[int] | None = None already_has_special_tokens: bool = False ) 一个介于 0 和 1 之间的整数列表

参数

  • token_ids_0 — (可能已经格式化的)序列的 ID 列表。
  • token_ids_1 — 当 already_has_special_tokens=True 时不使用。在这种情况下必须为 None。
  • already_has_special_tokens — 序列是否已经使用特殊标记格式化。

返回

一个范围在 [0, 1] 的整数列表

特殊令牌为 1,序列令牌为 0。

Retrieve sequence ids from a token list that has no special tokens added.

For fast tokenizers, data collators call this with already_has_special_tokens=True to build a mask over an already-formatted sequence. In that case, we compute the mask by checking membership in all_special_ids.

save_vocabulary

< >

( save_directory: str filename_prefix: str | None = None )

XGLMTokenizerFast

class transformers.XGLMTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = None bos_token: str = '<s>' eos_token: str = '</s>' sep_token: str = '</s>' cls_token: str = '<s>' unk_token: str = '<unk>' pad_token: str = '<pad>' add_prefix_space: bool = True **kwargs )

参数

  • tokenizer_file (str, 可选) — 包含序列化分词器的 tokenizers JSON 文件路径。
  • bos_token (str, 可选, 默认值为 "<s>") — 预训练期间使用的序列开始标记(beginning of sequence token)。可用作序列分类标记。
  • eos_token (str, 可选, 默认值为 "</s>") — 序列结束标记(end of sequence token)。
  • sep_token (str, 可选, 默认值为 "</s>") — 分隔标记,用于从多个序列构建一个序列时使用。
  • cls_token (str, 可选, 默认值为 "<s>") — 执行序列分类时使用的分类标记(classifier token)。
  • unk_token (str, 可选, 默认值为 "<unk>") — 未知标记(unknown token)。
  • pad_token (str, 可选, 默认值为 "<pad>") — 用于填充(padding)的标记。
  • vocab (str, dictlist, 可选) — 自定义词汇表字典。如果不提供,将创建一个最小化的词汇表。
  • merges (list[tuple[str, str]], 可选) — BPE 的自定义合并规则。如果不提供,合并规则将根据词汇表生成。
  • add_prefix_space (bool, 可选, 默认值为 True) — 是否在编码前添加前缀空格。

构建 XGLM 分词器(由 HuggingFace 的 tokenizers 库支持)。基于 BPE。

该分词器继承自 TokenizersBackend,后者包含其大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。

XGLMModel

class transformers.XGLMModel

< >

( config: XGLMConfig )

参数

  • config (XGLMConfig) — 模型配置类,包含模型的所有参数。使用配置文件进行初始化不会加载与模型相关的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

裸 Xglm 模型,输出原始隐藏状态,顶部没有任何特定的头部(head)。

该模型继承自 PreTrainedModel。请查看超类文档以了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头部等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( input_ids: torch.Tensor | None = None attention_mask: torch.Tensor | None = None position_ids: torch.Tensor | None = None encoder_hidden_states: torch.Tensor | None = None encoder_attention_mask: torch.Tensor | None = None past_key_values: transformers.cache_utils.Cache | None = None inputs_embeds: torch.Tensor | None = None use_cache: bool | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) BaseModelOutputWithPastAndCrossAttentionstuple(torch.FloatTensor)

参数

  • input_ids (torch.Tensor, 形状为 (batch_size, sequence_length), 可选) — 词汇表中输入序列标记的索引。默认情况下填充(padding)将被忽略。

    索引可以使用 AutoTokenizer 获取。详情请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.__call__()

    什么是输入 ID?

  • attention_mask (torch.Tensor, 形状为 (batch_size, sequence_length), 可选) — 用于避免对填充标记索引执行注意力机制的掩码。掩码值选自 [0, 1]

    • 1 表示未被遮蔽的标记,
    • 0 表示被遮蔽的标记。

    什么是注意力掩码?

  • position_ids (torch.Tensor, 形状为 (batch_size, sequence_length), 可选) — 每个输入序列标记在位置嵌入中的位置索引。选自范围 [0, config.n_positions - 1]

    什么是位置 ID?

  • encoder_hidden_states (torch.FloatTensor, 形状为 (batch_size, encoder_sequence_length, hidden_size), 可选) — 编码器最后一层输出的隐藏状态序列。用于解码器的交叉注意力机制。
  • encoder_attention_mask (torch.LongTensor, 形状为 (batch_size, encoder_sequence_length), 可选) — 用于避免对编码器 input_ids 的填充标记索引执行交叉注意力机制的掩码。掩码值选自 [0, 1]

    • 1 表示未被遮蔽的标记,
    • 0 表示被遮蔽的标记。

    什么是注意力掩码?

  • past_key_values (~cache_utils.Cache, 可选) — 预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。这通常包含当 use_cache=Trueconfig.use_cache=True 时,模型在解码的前一个阶段返回的 past_key_values

    仅允许输入 Cache 实例,请参阅我们的 KV 缓存指南。如果不传递 past_key_values,默认将初始化 DynamicCache

    模型将输出与输入时相同格式的缓存。

    如果使用 past_key_values,用户应仅输入未经处理的 input_ids(那些没有向此模型提供其过去键值状态的 ID),形状为 (batch_size, unprocessed_length),而不是形状为 (batch_size, sequence_length) 的所有 input_ids

  • inputs_embeds (torch.Tensor, 形状为 (batch_size, sequence_length, hidden_size), 可选) — (可选)您可以选择直接传入嵌入式表示,而不是传入 input_ids。如果您想比使用模型内部的嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为向量,这将非常有用。
  • use_cache (bool, optional) — 如果设置为 True,则会返回 past_key_values 键值状态,并可用于加速解码(参见 past_key_values)。

返回

BaseModelOutputWithPastAndCrossAttentionstuple(torch.FloatTensor)

一个 BaseModelOutputWithPastAndCrossAttentions 或一个 torch.FloatTensor 元组(如果传入 return_dict=False 或当 config.return_dict=False 时),根据配置 (XGLMConfig) 和输入包含不同的元素。

XGLMModel 的前向传播方法,覆盖了 __call__ 特殊方法。

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

  • last_hidden_state (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。

    如果使用了 past_key_values,则只输出形状为 (batch_size, 1, hidden_size) 的序列的最后一个隐藏状态。

  • past_key_values (Cache,*可选*,当传入 use_cache=Trueconfig.use_cache=True 时返回) — 这是一个 Cache 实例。欲了解更多细节,请参阅我们的 KV 缓存指南

    Contains pre-computed hidden-states (key and values in the self-attention blocks and optionally if config.is_encoder_decoder=True in the cross-attention blocks) that can be used (see past_key_values input) to speed up sequential decoding.

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(torch.FloatTensor), optional, returned when output_attentions=True and config.add_cross_attention=True is passed or when config.output_attentions=True) — Tuple of torch.FloatTensor (one for each layer) of shape (batch_size, num_heads, sequence_length, sequence_length).

    解码器交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均。

XGLMForCausalLM

class transformers.XGLMForCausalLM

< >

( config model_args: ~utils.generic.ModelArgs | None = None adapter_args: ~utils.generic.AdapterArgs | None = None lora_args: ~utils.generic.LoRAArgs | None = None tokenizer_args: ~utils.generic.TokenizerArgs | None = None dataset_args: ~utils.generic.DatasetArgs | None = None data_args: ~utils.generic.DataArgs | None = None training_args: ~utils.generic.TrainingArgs | None = None generation_args: ~utils.generic.GenerationArgs | None = None vision_tower_args: ~utils.generic.VisionTowerArgs | None = None qlora_args: ~utils.generic.QLoRAArgs | None = None vision_tower_template_args: ~utils.generic.VisionTowerTemplateArgs | None = None video_tower_args: ~utils.generic.VideoTowerArgs | None = None vision_config: ~utils.generic.VisionConfig | None = None video_config: ~utils.generic.VideoConfig | None = None load_dataset: bool | None = None load_data_collator: bool | None = None load_processor: bool | None = None load_lora_adapter: bool | None = None load_adapter: bool | None = None load_qlora_adapter: bool | None = None **kwargs: typing_extensions.Unpack[transformers.modeling_utils.PreTrainedModelKwargs] )

参数

  • config (XGLMForCausalLM) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained() 方法以加载模型权重。

带有语言建模头(权重与输入嵌入绑定的线性层)的 XGLM 模型转换器。

该模型继承自 PreTrainedModel。请查看超类文档以了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头部等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( input_ids: torch.Tensor | None = None attention_mask: torch.Tensor | None = None position_ids: torch.Tensor | None = None encoder_hidden_states: torch.Tensor | None = None encoder_attention_mask: torch.Tensor | None = None past_key_values: transformers.cache_utils.Cache | None = None inputs_embeds: torch.Tensor | None = None labels: torch.Tensor | None = None use_cache: bool | None = None logits_to_keep: int | torch.Tensor = 0 **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) CausalLMOutputWithCrossAttentionstuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)torch.Tensor可选) — 词表中输入序列标记的索引。默认情况下,填充(padding)将被忽略。

    索引可以通过 AutoTokenizer 获取。详细信息请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.__call__()

    什么是输入 ID?

  • attention_mask (形状为 (batch_size, sequence_length)torch.Tensor可选) — 用于避免对填充标记索引执行注意力计算的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 未掩码 的标记,
    • 0 表示 被掩码 的标记。

    什么是注意力掩码?

  • position_ids (形状为 (batch_size, sequence_length)torch.Tensor可选) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [0, config.n_positions - 1] 内选择。

    什么是位置 ID?

  • encoder_hidden_states (形状为 (batch_size, encoder_sequence_length, hidden_size)torch.FloatTensor可选) — 编码器最后一层输出的隐藏状态序列。用于解码器的交叉注意力机制。
  • encoder_attention_mask (形状为 (batch_size, encoder_sequence_length)torch.LongTensor可选) — 用于避免对编码器 input_ids 的填充标记索引执行交叉注意力计算的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 未掩码 的标记,
    • 0 表示 被掩码 的标记。

    什么是注意力掩码?

  • past_key_values (~cache_utils.Cache可选) — 预计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。这通常包含模型在之前解码阶段返回的 past_key_values(当 use_cache=Trueconfig.use_cache=True 时)。

    输入仅允许使用 Cache 实例,请参阅我们的 kv cache 指南。如果没有传入 past_key_values,将默认初始化 DynamicCache

    模型将输出与输入相同格式的缓存。

    如果使用了 past_key_values,用户只需输入未处理的 input_ids(那些尚未向模型提供其过去键值状态的标记),其形状应为 (batch_size, unprocessed_length),而不是所有形状为 (batch_size, sequence_length)input_ids

  • inputs_embeds (形状为 (batch_size, sequence_length, hidden_size)torch.Tensor可选) — 作为一个选项,您可以选择直接传入嵌入表示,而不是传入 input_ids。这在您希望比模型内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联向量时非常有用。
  • labels (形状为 (batch_size, sequence_length)torch.LongTensor可选) — 用于计算掩码语言建模损失的标签。索引应位于 [0, ..., config.vocab_size] 或 -100(参见 input_ids 文档字符串)。索引设置为 -100 的标记将被忽略(掩码),损失仅针对标签位于 [0, ..., config.vocab_size] 中的标记计算。
  • use_cache (bool可选) — 如果设置为 True,则会返回 past_key_values 键值状态,并可用于加速解码(参见 past_key_values)。
  • logits_to_keep (Union[int, torch.Tensor]可选,默认为 0) — 如果是 int,则计算最后 logits_to_keep 个标记的 Logits。如果为 0,则计算所有 input_ids 的 Logits(特殊情况)。生成时仅需要最后一个标记的 Logits,仅针对该标记进行计算可以节省内存,这在长序列或大词表时非常显著。如果是 torch.Tensor,则必须是对应于序列长度维度中要保留的索引的一维张量。这在使用打包张量格式(batch 和序列长度的单一维度)时非常有用。

返回

CausalLMOutputWithCrossAttentions or tuple(torch.FloatTensor)

一个 CausalLMOutputWithCrossAttentions 或一个 torch.FloatTensor 元组(如果传入 return_dict=False 或当 config.return_dict=False 时),根据配置 (XGLMConfig) 和输入包含不同的元素。

XGLMForCausalLM 的前向传播方法,覆盖了 __call__ 特殊方法。

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

  • loss (torch.FloatTensor 形状为 (1,)可选,当提供 labels 时返回) — 语言建模损失(用于下一个 token 预测)。

  • logits (形状为 (batch_size, sequence_length, config.vocab_size)torch.FloatTensor) — 语言建模头部的预测分数(SoftMax 之前的每个词汇标记的分数)。

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(torch.FloatTensor), optional, returned when output_attentions=True is passed or when config.output_attentions=True) — Tuple of torch.FloatTensor (one for each layer) of shape (batch_size, num_heads, sequence_length, sequence_length).

    注意力 softmax 后的交叉注意力权重,用于计算交叉注意力头中的加权平均。

  • past_key_values (Cache,*可选*,当传入 use_cache=Trueconfig.use_cache=True 时返回) — 这是一个 Cache 实例。欲了解更多细节,请参阅我们的 KV 缓存指南

    包含预先计算的隐藏状态(注意力块中的键和值),可用于(参见 past_key_values 输入)加速顺序解码。

示例

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.