Transformers 文档

Doge

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

该模型于 2024-12-27 发布,并于 2025-07-08 添加到 Hugging Face Transformers。

Doge

概述

Doge 是一系列基于 Doge 架构的小型语言模型,旨在结合状态空间和自注意力算法的优点,使用零阶保持方法从缓存的值状态计算动态掩码,并解决现有主流语言模型在上下文中迷失的问题。它使用 wsd_scheduler 调度器在 smollm-corpus 上进行预训练,并且可以继续在新的数据集上进行训练,或从稳定阶段的检查点添加稀疏激活的前馈网络。

drawing

如图所示,Doge 架构的序列转换部分使用了 Dynamic Mask Attention,可以理解为在训练时使用与值状态相关的自注意力,在推理时使用没有历史状态衰减的状态空间,以解决现有 Transformer 或 SSM 在长文本中迷失的问题。Doge 的状态转换部分使用了 Cross Domain Mixture of Experts,它由密集线性层和稀疏嵌入层组成,还可以额外增加稀疏参数,以便从密集权重检查点继续训练,而无需重新训练整个模型,从而降低了模型持续迭代的成本。此外,Doge 还使用了带有可学习参数的 RMSNormResidual 来适应深度模型的梯度范围。

在此 查看所有 Doge 模型检查点。

用法

使用 Doge-Base 进行文本生成
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("SmallDoge/Doge-20M")
model = AutoModelForCausalLM.from_pretrained("SmallDoge/Doge-20M")
inputs = tokenizer("Hey how are you doing?", return_tensors="pt")

outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.batch_decode(outputs))
使用 Doge-Instruct 进行问题回答
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig, TextStreamer

tokenizer = AutoTokenizer.from_pretrained("SmallDoge/Doge-20M-Instruct")
model = AutoModelForCausalLM.from_pretrained("SmallDoge/Doge-20M-Instruct")

generation_config = GenerationConfig(
      max_new_tokens=100, 
      use_cache=True, 
      do_sample=True, 
      temperature=0.8, 
      top_p=0.9,
      repetition_penalty=1.0
)
steamer = TextStreamer(tokenizer=tokenizer, skip_prompt=True)

prompt = "Hi, how are you doing today?"
conversation = [
      {"role": "user", "content": prompt}
]
inputs = tokenizer.apply_chat_template(
    conversation=conversation,
    tokenize=True,
    return_tensors="pt",
)

outputs = model.generate(
    inputs, 
    tokenizer=tokenizer,
    generation_config=generation_config, 
    streamer=steamer
)

DogeConfig

class transformers.DogeConfig

< >

( vocab_size: int | None = 32768 hidden_size: int | None = 1024 intermediate_size: int | None = 2048 num_hidden_layers: int | None = 32 hidden_dropout: float | None = 0.0 hidden_act: str | None = 'silu' initializer_range: float | None = 0.02 rms_norm_eps: int | None = 1e-06 use_cache: bool | None = True tie_word_embeddings: bool | None = False max_position_embeddings: int | None = 2048 rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict[str, transformers.modeling_rope_utils.RopeParameters] | None = None num_attention_heads: int | None = 8 num_key_value_heads: int | None = None attention_bias: bool | None = False attention_dropout: float | None = 0.0 mlp_bias: bool | None = False sliding_window: int | None = None keep_window_size: int | None = 2048 is_moe: bool | None = False num_experts: int | None = 16384 num_experts_per_tok: int | None = 64 norm_topk_prob: bool | None = False output_router_logits: bool | None = False router_aux_loss_coef: float | None = 0.001 pad_token_id: int | None = None bos_token_id: int | None = None eos_token_id: int | None = None **kwargs )

参数

  • vocab_size (int, optional, defaults to 32768) — Vocabulary size of the Doge2 model. Defines the number of different tokens that can be represented by the inputs_ids passed when calling DogeModel
  • hidden_size (int, optional, defaults to 1024) — Dimension of the hidden representations.
  • intermediate_size (int, optional, defaults to 2048) — Dimension of the MLP representations.
  • num_hidden_layers (int, optional, defaults to 32) — Number of hidden layers in the Transformer decoder.
  • hidden_dropout (float, optional, defaults to 0.0) — Dropout probability for each sequence transformation and state transformation module.
  • hidden_act (str or function, optional, defaults to "silu") — The non-linear activation function (function or string) in the decoder.
  • initializer_range (float, optional, defaults to 0.02) — The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
  • rms_norm_eps (float, optional, defaults to 1e-06) — The epsilon used by the rms normalization layers.
  • use_cache (bool, optional, defaults to True) — Whether or not the model should return the last key/values attentions (not used by all models). Only relevant if config.is_decoder=True.
  • tie_word_embeddings (bool, optional, defaults to False) — Whether the model’s input and output word embeddings should be tied.
  • max_position_embeddings (int, optional, defaults to 2048) — The maximum sequence length that this model might ever be used with.
  • rope_parameters (RopeParameters, optional) — Dictionary containing the configuration parameters for the RoPE embeddings. The dictionary should contain a value for rope_theta and optionally parameters used for scaling in case you want to use RoPE with longer max_position_embeddings.
  • num_attention_heads (int, optional, defaults to 8) — Number of attention heads for each attention layer in the Transformer decoder.
  • num_key_value_heads (int, optional) — This is the number of key_value heads that should be used to implement Grouped Query Attention. If num_key_value_heads=num_attention_heads, the model will use Multi Head Attention (MHA), if num_key_value_heads=1 the model will use Multi Query Attention (MQA) otherwise GQA is used. When converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed by meanpooling all the original heads within that group. For more details checkout this paper. If it is not specified, will default to num_attention_heads.
  • attention_bias (bool, defaults to False, optional, defaults to False) — Whether to use a bias in the query, key, value and output projection layers during self-attention.
  • attention_dropout (float, optional, defaults to 0.0) — The dropout ratio for the attention probabilities.
  • mlp_bias (bool, optional, defaults to False) — Whether to use a bias in up_proj, down_proj and gate_proj layers in the MLP layers.
  • sliding_window (int, optional) — Sliding window attention window size. If not specified, will default to None.
  • keep_window_size (int, optional, defaults to 2048) — The window size of tokens that are not dynamically masked, and dynamic masking is only performed when the sequence length exceeds this value.
  • is_moe (bool, optional, defaults to False) — Whether to use the Cross Domain Mixture of Experts, if True, the MoE will inherit the MLP to initialize.
  • num_experts (int, optional, defaults to 16384) — 模型中路由的专家数量。仅当 is_moe=True 时使用。
  • num_experts_per_tok (int, optional, defaults to 64) — 每个 token 选择的专家数量。
  • norm_topk_prob (bool, optional, defaults to False) — 是否对 topk 概率进行归一化。
  • output_router_logits (bool, optional, defaults to False) — 是否返回路由器的 logits。启用此项还将使模型能够输出辅助损失,包括负载均衡损失和路由器 z-loss。
  • router_aux_loss_coef (float, optional, defaults to 0.001) — 总损失的辅助损失因子。
  • pad_token_id (int, optional) — 填充 token ID。
  • bos_token_id (int, optional) — 开始流 token ID。
  • eos_token_id (int, optional) — 结束流 token ID。

这是用于存储 DogeModel 配置的配置类。它用于根据指定的参数实例化一个 Doge 模型,定义了模型架构,例如 SmallDoge/Doge-320M

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

>>> from transformers import DogeConfig, DogeModel

>>> # Initializing a Doge-320M style configuration
>>> configuration = DogeConfig()

>>> # Initializing a model from the Doge-320M style configuration
>>> model = DogeModel(configuration)

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

DogeModel

class transformers.DogeModel

< >

( config: DogeConfig )

参数

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

该裸 Doge 模型输出原始的 hidden-states,没有任何特定的顶部头。

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

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

forward

< >

( input_ids: torch.LongTensor | None = None attention_mask: torch.Tensor | None = None position_ids: torch.LongTensor | None = None past_key_values: transformers.cache_utils.Cache | None = None inputs_embeds: torch.FloatTensor | None = None use_cache: bool | None = None cache_position: torch.LongTensor | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) transformers.modeling_outputs.MoeModelOutputWithPast or tuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 词汇表中输入序列 token 的索引。默认情况下将忽略填充。

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

    什么是输入 ID?

  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), optional) — 用于避免在填充 token 索引上执行 attention 的掩码。掩码值选择在 [0, 1] 中:

    • 1 表示未掩码的 token,
    • 0 表示已掩码的 token。

    什么是 attention masks?

  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 序列中每个输入 token 的位置 ID,用于位置嵌入。选择范围为 [0, config.n_positions - 1]

    什么是 position IDs?

  • past_key_values (~cache_utils.Cache, optional) — 可用于加速顺序解码的预计算 hidden-states(自 attention 块和 cross-attention 块中的 key 和 value)。这通常由上一个解码阶段返回的 past_key_values 组成,当 use_cache=Trueconfig.use_cache=True 时。

    仅允许 Cache 实例作为输入,请参阅我们的 kv cache 指南。如果未传入 past_key_values,则默认会初始化 DynamicCache

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

    如果使用 past_key_values,用户应仅输入未处理的 input_ids(即尚未将其 past key value 状态传递给此模型的那些),其形状为 (batch_size, unprocessed_length),而不是所有 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 key value 状态,并可用于加速解码(请参阅 past_key_values)。
  • cache_position (torch.LongTensor of shape (sequence_length), optional) — 指示输入序列 token 在序列中位置的索引。与 position_ids 不同,此张量不受填充影响。它用于在正确的位置更新 cache 并推断完整的序列长度。

返回

transformers.modeling_outputs.MoeModelOutputWithPasttuple(torch.FloatTensor)

一个 transformers.modeling_outputs.MoeModelOutputWithPast 或一个 torch.FloatTensor 的元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),具体取决于配置(DogeConfig)和输入。

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

  • past_key_values (Cache, optional, 当传递 use_cache=True 或当 config.use_cache=True 时返回) — 它是 Cache 实例。更多详情,请参阅我们的 kv cache 指南

    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 后的注意力权重,用于计算自注意力头中的加权平均值。

  • router_logits (tuple(torch.FloatTensor), 可选, 当传递 output_router_probs=Trueconfig.add_router_probs=True 时,或 config.output_router_probs=True 时返回) — 形状为 (batch_size, sequence_length, num_experts)torch.FloatTensor 元组(每一层一个)。

    由 MoE 路由器计算的原始路由器对数(softmax 后),这些术语用于计算专家混合模型的辅助损失。

DogeModel 的 forward 方法,覆盖了 __call__ 特殊方法。

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

DogeForCausalLM

class transformers.DogeForCausalLM

< >

( 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 (DogeForCausalLM) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。请查看 from_pretrained() 方法来加载模型权重。

Doge 模型用于因果语言建模。

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

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

forward

< >

( input_ids: torch.LongTensor | None = None attention_mask: torch.Tensor | None = None position_ids: torch.LongTensor | None = None past_key_values: transformers.cache_utils.Cache | None = None inputs_embeds: torch.FloatTensor | None = None labels: torch.LongTensor | None = None use_cache: bool | None = None cache_position: torch.LongTensor | None = None logits_to_keep: int | torch.Tensor = 0 output_router_logits: bool | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) transformers.modeling_outputs.MoeCausalLMOutputWithPast or tuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 词汇表中输入序列 token 的索引。默认情况下将忽略填充。

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

    什么是输入 ID?

  • attention_mask (torch.Tensor, 形状为 (batch_size, sequence_length), 可选) — 用于避免在填充 token 索引上执行 attention 的掩码。Mask 值选择范围为 [0, 1]

    • 1 表示未被掩盖的 token,
    • 0 表示被掩盖的 token。

    什么是 attention mask?

  • position_ids (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 词元在位置嵌入中的位置索引。选择范围为 [0, config.n_positions - 1]

    什么是位置 ID?

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

    仅允许 Cache 实例作为输入,请参阅我们的 kv cache 指南。如果未传递 past_key_values,则默认初始化 DynamicCache

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

    如果使用 past_key_values,用户应仅输入未处理的 input_ids(即未将其 past key value 状态提供给此模型的那些),形状为 (batch_size, unprocessed_length),而不是全部 input_ids,其形状为 (batch_size, sequence_length)

  • inputs_embeds (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型内部的嵌入查找矩阵对如何将 input_ids 索引转换为相关向量有更多的控制,这将非常有用。
  • labels (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 用于计算掩码语言模型损失的标签。索引应在 [0, ..., config.vocab_size] 或 -100 之间(请参阅 input_ids 文档字符串)。索引设置为 -100 的 token 将被忽略(掩码),损失仅为标签在 [0, ..., config.vocab_size] 范围内的 token 计算。
  • use_cache (bool, 可选) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码(请参阅 past_key_values)。
  • cache_position (torch.LongTensor, 形状为 (sequence_length), 可选) — 描绘输入序列 token 在序列中位置的索引。与 position_ids 不同,此张量不受填充影响。它用于在正确的位置更新 cache 并推断完整的序列长度。
  • logits_to_keep (Union[int, torch.Tensor], 可选, 默认为 0) — 如果是 int,则计算最后 logits_to_keep 个 token 的 logits。如果为 0,则计算所有 input_ids 的 logits(特殊情况)。仅最后 token 的 logits 对生成是必需的,并且仅为该 token 计算它们可以节省内存,这对于长序列或大词汇量非常显著。如果是 torch.Tensor,则必须是 1D 张量,对应于序列长度维度中要保留的索引。当使用 packed tensor 格式(批处理和序列长度的单个维度)时,这很有用。
  • output_router_logits (bool, 可选) — 是否返回所有路由器的 logits。它们对于计算路由器损失很有用,在推理期间不应返回。

返回

transformers.modeling_outputs.MoeCausalLMOutputWithPasttuple(torch.FloatTensor)

一个 transformers.modeling_outputs.MoeCausalLMOutputWithPast 对象,或者一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置(DogeConfig)和输入。

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

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

  • aux_loss (torch.FloatTensor可选,当提供 labels 时返回) — 稀疏模块的辅助损失。

  • router_logits (tuple(torch.FloatTensor), 可选, 当传递 output_router_probs=Trueconfig.add_router_probs=True 时,或 config.output_router_probs=True 时返回) — 形状为 (batch_size, sequence_length, num_experts)torch.FloatTensor 元组(每一层一个)。

    由 MoE 路由器计算的原始路由器对数(softmax 后),这些术语用于计算专家混合模型的辅助损失。

  • past_key_values (Cache, optional, 当传递 use_cache=True 或当 config.use_cache=True 时返回) — 它是 Cache 实例。更多详情,请参阅我们的 kv cache 指南

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

  • 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 后的注意力权重,用于计算自注意力头中的加权平均值。

transformers.DogeForCausalLM 的 forward 方法,重写了 __call__ 特殊方法。

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

示例

>>> from transformers import AutoTokenizer, DogeForCausalLM

>>> model = DogeForCausalLM.from_pretrained("SmallDoge/Doge-320M")
>>> tokenizer = AutoTokenizer.from_pretrained("SmallDoge/Doge-320M")

>>> 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."

DogeForSequenceClassification

class transformers.DogeForSequenceClassification

< >

( config )

forward

< >

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

参数

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

    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是 input IDs?

  • attention_mask (torch.Tensor, 形状为 (batch_size, sequence_length), 可选) — 用于避免在填充 token 索引上执行 attention 的掩码。Mask 值选择范围为 [0, 1]

    • 1 表示未被掩盖的 token,
    • 0 表示被掩盖的 token。

    什么是 attention mask?

  • position_ids (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 词元在位置嵌入中的位置索引。选择范围为 [0, config.n_positions - 1]

    什么是位置 ID?

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

    仅允许 Cache 实例作为输入,请参阅我们的 kv cache 指南。如果未传递 past_key_values,则默认初始化 DynamicCache

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

    如果使用 past_key_values,用户应仅输入未处理的 input_ids(即未将其 past key value 状态提供给此模型的那些),形状为 (batch_size, unprocessed_length),而不是全部 input_ids,其形状为 (batch_size, sequence_length)

  • inputs_embeds (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型内部的嵌入查找矩阵对如何将 input_ids 索引转换为相关向量有更多的控制,这将非常有用。
  • labels (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 用于计算掩码语言模型损失的标签。索引应在 [0, ..., config.vocab_size] 或 -100 之间(请参阅 input_ids 文档字符串)。索引设置为 -100 的 token 将被忽略(掩码),损失仅为标签在 [0, ..., config.vocab_size] 范围内的 token 计算。
  • use_cache (bool, 可选) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码(请参阅 past_key_values)。

返回

transformers.modeling_outputs.SequenceClassifierOutputWithPasttuple(torch.FloatTensor)

A transformers.modeling_outputs.SequenceClassifierOutputWithPast or a tuple of torch.FloatTensor (if return_dict=False is passed or when config.return_dict=False) comprising various elements depending on the configuration (None) and inputs.

  • loss (形状为 (1,)torch.FloatTensor可选,当提供 labels 时返回) — 分类损失(如果 config.num_labels==1,则为回归损失)。

  • logits (形状为 (batch_size, config.num_labels)torch.FloatTensor) — 分类(如果 config.num_labels==1,则为回归)分数(SoftMax 之前)。

  • past_key_values (Cache, optional, 当传递 use_cache=True 或当 config.use_cache=True 时返回) — 它是 Cache 实例。更多详情,请参阅我们的 kv cache 指南

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

  • 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 后的注意力权重,用于计算自注意力头中的加权平均值。

The GenericForSequenceClassification forward method, overrides the __call__ special method.

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

在 GitHub 上更新

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