Transformers 文档

赞巴

Zamba

Zamba 是由 Zyphra 训练的大型语言模型 (LLM),并在 Apache 2.0 许可下提供。请查看 Zyphra Hugging Face 仓库以获取模型权重。

该模型由pglo贡献。

模型详情

Zamba-7B-v1 是状态空间模型(特别是 Mamba)和 transformer 的混合体,并使用下一个词预测进行训练。Zamba 在每 6 个 mamba 块之后使用一个共享的 transformer 层。它使用了 Mistral v0.1 分词器。我们在小规模上进行了一系列消融实验后得出了这种架构。Zamba-7B-v1 在 1T 个文本和代码数据上进行了预训练。

快速开始

预权益

Zamba 要求您使用 transformers 版本 4.46.0 或更高版本:

pip install transformers>=4.45.0

为了运行优化的Mamba实现,首先需要安装 mamba-ssmcausal-conv1d

pip install mamba-ssm causal-conv1d>=1.2.0

您还需要将模型放在CUDA设备上。

你可以不使用优化的Mamba内核来运行模型,但建议这样做,因为它会导致显著更高的延迟。为了做到这一点,你需要在加载模型时指定use_mamba_kernels=False

推理

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("Zyphra/Zamba-7B-v1")
model = AutoModelForCausalLM.from_pretrained("Zyphra/Zamba-7B-v1", device_map="auto", torch_dtype=torch.bfloat16)

input_text = "A funny prompt would be "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")

outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))

模型卡片

模型卡片可以在以下位置找到:

问题

对于模型输出的问题或社区讨论,请使用Hugging Face社区的论坛

许可证

模型权重通过Apache 2.0许可证开源。

ZambaConfig

transformers.ZambaConfig

< >

( vocab_size = 32000 tie_word_embeddings = True hidden_size = 3712 attention_hidden_size = None intermediate_size = 14848 num_hidden_layers = 76 num_attention_heads = 16 attention_head_dim = None num_key_value_heads = 16 n_mamba_heads = 2 hidden_act = 'gelu' hidden_mamba_act = 'silu' initializer_range = 0.02 rms_norm_eps = 1e-05 use_cache = True num_logits_to_keep = 1 pad_token_id = 0 bos_token_id = 1 eos_token_id = 2 max_position_embeddings = 4096 attention_dropout = 0.0 attn_layer_period = 6 attn_layer_offset = 4 use_mamba_kernels = True mamba_d_state = 16 mamba_d_conv = 4 mamba_expand = 2 mamba_dt_rank = 'auto' time_step_min = 0.001 time_step_max = 0.1 time_step_floor = 0.0001 mamba_conv_bias = True mamba_proj_bias = False **kwargs )

参数

  • vocab_size (int, 可选, 默认为 32000) — Zamba 模型的词汇量大小。定义了可以通过调用 ZambaModel 时传递的 inputs_ids 表示的不同标记的数量
  • tie_word_embeddings (bool, optional, defaults to True) — 模型是否应该绑定输入和输出的词嵌入。请注意,这仅在模型具有输出词嵌入层时相关。
  • hidden_size (int, optional, 默认为 3712) — 隐藏表示的维度。
  • attention_hidden_size (int, optional) — Attention层输入隐藏表示的维度。
  • intermediate_size (int, optional, 默认为 14848) — MLP 表示的维度。
  • num_hidden_layers (int, optional, defaults to 76) — 模型中的隐藏层数量。
  • num_attention_heads (int, optional, defaults to 16) — Transformer解码器中每个注意力层的注意力头数量。
  • attention_head_dim (int, optional) — Transformer解码器中注意力头的维度。
  • num_key_value_heads (int, 可选, 默认为 16) — 这是用于实现分组查询注意力(Grouped Query Attention)的键值头数量。如果 num_key_value_heads=None,模型将使用多头注意力(MHA),如果 `num_key_value_heads=1`,模型将使用多查询注意力(MQA),否则将使用GQA。当 将多头检查点转换为GQA检查点时,每个组的键和值头应通过平均池化该组中的所有原始头来构建。 更多详细信息请查看 这篇论文.
  • n_mamba_heads (int, 可选, 默认为 2) — 每个 mamba 层的 mamba 头数量。
  • hidden_act (strfunction, 可选, 默认为 "gelu") — 解码器中的非线性激活函数(函数或字符串)。
  • hidden_mamba_act (strfunction, 可选, 默认为 "silu") — Mamba层中的非线性激活函数(函数或字符串)。
  • initializer_range (float, 可选, 默认值为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • rms_norm_eps (float, optional, defaults to 1e-05) — rms归一化层使用的epsilon值。
  • use_cache (bool, 可选, 默认为 True) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。仅在 config.is_decoder=True 时相关。
  • num_logits_to_keep (intNone, 可选, 默认为 1) — 在生成过程中要计算的提示 logits 的数量。如果为 None,将计算所有 logits。如果为整数值,则仅计算最后 num_logits_to_keep 个 logits。默认值为 1,因为生成只需要最后一个提示 token 的 logits。对于长序列,整个序列的 logits 可能会占用大量内存,因此设置 num_logits_to_keep=1 将显著减少内存占用。
  • pad_token_id (int, optional, 默认为 0) — 填充令牌的ID。
  • bos_token_id (int, optional, 默认为 1) — “序列开始”标记的ID。
  • eos_token_id (int, optional, defaults to 2) — “序列结束”标记的ID。
  • max_position_embeddings (int, optional, 默认为 4096) — 这个值没有实际效果。这是模型预期使用的最大序列长度。它可以用于更长的序列,但性能可能会下降。
  • attention_dropout (float, optional, 默认为 0.0) — 注意力概率的丢弃比率。
  • attn_layer_period (int, optional, 默认为 6) — 在这些层中,每隔这么多层,我们将有一个共享的注意力层
  • attn_layer_offset (int, optional, defaults to 4) — 共享注意力层的偏移量
  • use_mamba_kernels (bool, 可选, 默认为 True) — 标志,指示是否使用快速的mamba内核。这些仅在安装了mamba-ssmcausal-conv1d并且mamba模块在CUDA设备上运行时可用。如果 True且内核不可用,则引发ValueError
  • mamba_d_state (int, optional, defaults to 16) — mamba状态空间潜变量的维度
  • mamba_d_conv (int, optional, defaults to 4) — mamba卷积核的大小
  • mamba_expand (int, 可选, 默认为 2) — 扩展因子(相对于 hidden_size)用于确定 mamba 中间大小
  • mamba_dt_rank (Union[int,str], 可选, 默认为 "auto") — Mamba离散化投影矩阵的秩。"auto" 表示它将默认为 math.ceil(self.hidden_size / 16)
  • time_step_min (float, 可选, 默认值为 0.001) — 用于限制 dt_proj_bias 的最小 time_step.
  • time_step_max (float, 可选, 默认为 0.1) — 用于限制 dt_proj_bias 的最大 time_step.
  • time_step_floor (float, 可选, 默认值为 0.0001) — dt_proj.bias 层初始化的最小钳位值。
  • mamba_conv_bias (bool, 可选, 默认为 True) — 标志,指示是否在mamba混合器块的卷积层中使用偏置。
  • mamba_proj_bias (bool, 可选, 默认为 False) — 标志,指示是否在mamba混合器块的输入和输出投影([“in_proj”, “out_proj”])中使用偏置

这是用于存储ZambaModel配置的配置类。它用于根据指定的参数实例化一个Zamba模型,定义模型架构。使用默认值实例化配置将产生与Zamba-v0.1模型类似的配置。

Zyphra/Zamba-7B-v1

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

ZambaModel

transformers.ZambaModel

< >

( config: ZambaConfig )

参数

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

裸Zamba模型输出原始隐藏状态,没有任何特定的头部。 该模型继承自PreTrainedModel。请查看超类文档以了解库为其所有模型实现的通用方法(如下载或保存、调整输入嵌入大小、修剪头部等)。

该模型也是一个PyTorch torch.nn.Module 子类。 将其作为常规的PyTorch模块使用,并参考PyTorch文档以获取与一般使用和行为相关的所有信息。

Transformer解码器由config.num_hidden_layers层组成。每一层都是一个ZambaDecoderLayer

前进

< >

( input_ids: LongTensor = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.LongTensor] = None past_key_values: typing.Optional[transformers.models.zamba.modeling_zamba.HybridMambaAttentionDynamicCache] = None inputs_embeds: typing.Optional[torch.FloatTensor] = None use_cache: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None cache_position: typing.Optional[torch.LongTensor] = None )

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length)) — Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide it.

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

    什么是输入ID?

  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), optional) — Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]:
    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    什么是注意力掩码?

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

    如果使用了past_key_values,可以选择只输入最后的input_ids(参见past_key_values)。

    如果你想改变填充行为,你应该阅读modeling_opt._prepare_decoder_attention_mask 并根据你的需求进行修改。有关默认策略的更多信息,请参见论文中的图1。

    • 1 indicates the head is not masked,
    • 0 indicates the head is masked.
  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — Indices of positions of each input sequence tokens in the position embeddings. Selected in the range [0, config.n_positions - 1].

    什么是位置ID?

  • past_key_values (HybridMambaAttentionDynamicCache, optional, returned when use_cache=True is passed or when config.use_cache=True) — A HybridMambaAttentionDynamicCache object containing pre-computed hidden-states (keys and values in the self-attention blocks and convolution and ssm states in the mamba blocks) that can be used (see past_key_values input) to speed up sequential decoding. Key and value cache tensors have shape (batch_size, num_heads, seq_len, head_dim). Convolution and ssm states tensors have shape (batch_size, d_inner, d_conv) and (batch_size, d_inner, d_state) respectively. See the HybridMambaAttentionDynamicCache class for more details.

    如果使用了past_key_values,用户可以选择只输入形状为(batch_size, 1)的最后input_ids(那些没有将其过去键值状态提供给此模型的),而不是形状为(batch_size, sequence_length)的所有input_ids

  • inputs_embeds (torch.FloatTensor 形状为 (batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望对如何将 input_ids 索引转换为相关向量有更多控制,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • use_cache (bool, 可选) — 如果设置为 Truepast_key_values 键值状态将被返回,并可用于加速解码(参见 past_key_values)。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dict (bool, optional) — 是否返回一个ModelOutput而不是一个普通的元组。
  • cache_position (torch.LongTensor of shape (sequence_length), optional) — 表示输入序列标记在序列中的位置的索引。与position_ids相反, 这个张量不受填充的影响。它用于在正确的位置更新缓存并推断 完整的序列长度。

ZambaModel 的前向方法,重写了 __call__ 特殊方法。

尽管前向传递的配方需要在此函数内定义,但之后应该调用Module实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

ZambaForCausalLM

transformers.ZambaForCausalLM

< >

( config: ZambaConfig )

前进

< >

( input_ids: LongTensor = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.LongTensor] = None past_key_values: typing.Optional[transformers.models.zamba.modeling_zamba.HybridMambaAttentionDynamicCache] = None inputs_embeds: typing.Optional[torch.FloatTensor] = None labels: typing.Optional[torch.LongTensor] = None use_cache: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None cache_position: typing.Optional[torch.LongTensor] = None num_logits_to_keep: int = 0 **loss_kwargs ) transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length)) — Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide it.

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

    什么是输入ID?

  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), optional) — Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]:
    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    什么是注意力掩码?

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

    如果使用了past_key_values,可以选择只输入最后的input_ids(参见past_key_values)。

    如果你想改变填充行为,你应该阅读modeling_opt._prepare_decoder_attention_mask 并根据你的需求进行修改。有关默认策略的更多信息,请参见论文中的图1。

    • 1 indicates the head is not masked,
    • 0 indicates the head is masked.
  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — Indices of positions of each input sequence tokens in the position embeddings. Selected in the range [0, config.n_positions - 1].

    什么是位置ID?

  • past_key_values (HybridMambaAttentionDynamicCache, optional, returned when use_cache=True is passed or when config.use_cache=True) — A HybridMambaAttentionDynamicCache object containing pre-computed hidden-states (keys and values in the self-attention blocks and convolution and ssm states in the mamba blocks) that can be used (see past_key_values input) to speed up sequential decoding. Key and value cache tensors have shape (batch_size, num_heads, seq_len, head_dim). Convolution and ssm states tensors have shape (batch_size, d_inner, d_conv) and (batch_size, d_inner, d_state) respectively. See the HybridMambaAttentionDynamicCache class for more details.

    如果使用了past_key_values,用户可以选择只输入形状为(batch_size, 1)的最后input_ids(那些没有将其过去键值状态提供给此模型的),而不是形状为(batch_size, sequence_length)的所有input_ids

  • inputs_embeds (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望对如何将 input_ids 索引转换为相关向量有更多控制,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • use_cache (bool, 可选) — 如果设置为 Truepast_key_values 键值状态将被返回,并可用于加速解码(参见 past_key_values)。
  • output_attentions (bool, 可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dict (bool, 可选) — 是否返回一个ModelOutput而不是一个普通的元组。
  • cache_position (torch.LongTensor of shape (sequence_length), optional) — 表示输入序列标记在序列中的位置的索引。与position_ids不同, 这个张量不受填充的影响。它用于在正确的位置更新缓存并推断 完整的序列长度。
  • Args — labels (torch.LongTensor of shape (batch_size, sequence_length), optional): Labels for computing the masked language modeling loss. Indices should either be in [0, ..., config.vocab_size] or -100 (see input_ids docstring). Tokens with indices set to -100 are ignored (masked), the loss is only computed for the tokens with labels in [0, ..., config.vocab_size].

    num_logits_to_keep (intNone, 可选): 计算最后 num_logits_to_keep 个 token 的 logits。如果为 None,则计算所有 input_ids 的 logits。生成时只需要最后一个 token 的 logits,仅计算该 token 的 logits 可以节省内存,这对于长序列来说非常重要。

返回

transformers.modeling_outputs.CausalLMOutputWithPasttuple(torch.FloatTensor)

一个 transformers.modeling_outputs.CausalLMOutputWithPast 或一个由 torch.FloatTensor 组成的元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种 元素,具体取决于配置(ZambaConfig)和输入。

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

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

  • past_key_values (tuple(tuple(torch.FloatTensor))可选,当传递 use_cache=True 或当 config.use_cache=True 时返回) — 长度为 config.n_layerstuple(torch.FloatTensor) 元组,每个元组包含 2 个形状为 (batch_size, num_heads, sequence_length, embed_size_per_head) 的张量)

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

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

    模型在每层输出处的隐藏状态加上可选的初始嵌入输出。

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

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

ZambaForCausalLM 的前向方法,重写了 __call__ 特殊方法。

尽管前向传递的配方需要在此函数内定义,但之后应该调用Module实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import AutoTokenizer, ZambaForCausalLM

>>> model = ZambaForCausalLM.from_pretrained("Zyphra/Zamba-7B-v1")
>>> tokenizer = AutoTokenizer.from_pretrained("Zyphra/Zamba-7B-v1")

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

ZambaForSequenceClassification

transformers.ZambaForSequenceClassification

< >

( config )

参数

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

Zamba 模型顶部带有序列分类头(线性层)。

ZambaForSequenceClassification 使用最后一个标记进行分类,就像其他因果模型(例如 GPT-2)所做的那样。

由于它对最后一个标记进行分类,因此需要知道最后一个标记的位置。如果在配置中定义了pad_token_id,它会在每一行中找到不是填充标记的最后一个标记。如果没有定义pad_token_id,它只需取批次中每一行的最后一个值。由于在传递inputs_embeds而不是input_ids时无法猜测填充标记,它会执行相同的操作(取批次中每一行的最后一个值)。

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

该模型也是一个PyTorch torch.nn.Module 子类。 将其作为常规的PyTorch模块使用,并参考PyTorch文档以获取与一般使用和行为相关的所有信息。

前进

< >

( input_ids: typing.Optional[torch.LongTensor] = None attention_mask: typing.Optional[torch.Tensor] = None position_ids: typing.Optional[torch.LongTensor] = None past_key_values: typing.Union[transformers.cache_utils.Cache, typing.List[torch.FloatTensor], NoneType] = None inputs_embeds: typing.Optional[torch.FloatTensor] = None labels: typing.Optional[torch.LongTensor] = None use_cache: typing.Optional[bool] = None output_attentions: typing.Optional[bool] = None output_hidden_states: typing.Optional[bool] = None return_dict: typing.Optional[bool] = None )

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length)) — Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide it.

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

    什么是输入ID?

  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), optional) — Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]:
    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    什么是注意力掩码?

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

    如果使用了past_key_values,可以选择只输入最后的input_ids(参见past_key_values)。

    如果你想改变填充行为,你应该阅读modeling_opt._prepare_decoder_attention_mask 并根据你的需求进行修改。有关默认策略的更多信息,请参见论文中的图1。

    • 1 indicates the head is not masked,
    • 0 indicates the head is masked.
  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — Indices of positions of each input sequence tokens in the position embeddings. Selected in the range [0, config.n_positions - 1].

    什么是位置ID?

  • past_key_values (HybridMambaAttentionDynamicCache, optional, returned when use_cache=True is passed or when config.use_cache=True) — A HybridMambaAttentionDynamicCache object containing pre-computed hidden-states (keys and values in the self-attention blocks and convolution and ssm states in the mamba blocks) that can be used (see past_key_values input) to speed up sequential decoding. Key and value cache tensors have shape (batch_size, num_heads, seq_len, head_dim). Convolution and ssm states tensors have shape (batch_size, d_inner, d_conv) and (batch_size, d_inner, d_state) respectively. See the HybridMambaAttentionDynamicCache class for more details.

    如果使用了past_key_values,用户可以选择只输入形状为(batch_size, 1)的最后input_ids(那些没有将其过去键值状态提供给此模型的),而不是形状为(batch_size, sequence_length)的所有input_ids

  • inputs_embeds (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) — 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids。如果您希望对如何将input_ids索引转换为相关向量有更多控制,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • use_cache (bool, 可选) — 如果设置为 Truepast_key_values 键值状态将被返回,并可用于加速解码(参见 past_key_values)。
  • output_attentions (bool, 可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dict (bool, 可选) — 是否返回一个ModelOutput而不是一个普通的元组。
  • cache_position (torch.LongTensor of shape (sequence_length), optional) — 表示输入序列标记在序列中的位置的索引。与position_ids相反, 这个张量不受填充的影响。它用于在正确的位置更新缓存并推断 完整的序列长度。
  • labels (torch.LongTensor of shape (batch_size,), optional) — 用于计算序列分类/回归损失的标签。索引应在 [0, ..., config.num_labels - 1] 范围内。如果 config.num_labels == 1,则计算回归损失(均方损失),如果 config.num_labels > 1,则计算分类损失(交叉熵)。

ZambaForSequenceClassification 的前向方法,重写了 __call__ 特殊方法。

尽管前向传递的配方需要在此函数内定义,但之后应该调用Module实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会默默地忽略它们。

< > Update on GitHub