Transformers 文档
LongCatFlash
并获得增强的文档体验
开始使用
此模型于 2025-09-01 发布,并于 2025-09-17 添加到 Hugging Face Transformers。
LongCatFlash
概述
Meituan LongCat Team 在 LongCat-Flash 技术报告中提出了 LongCat-Flash 模型。LongCat-Flash 是一个 560B 参数的混合专家(MoE)模型,动态激活 18.6B-31.3B 参数(平均约 27B)。该模型采用带有快捷连接的架构,可实现高推理速度(>100 tokens/秒)和先进的推理能力。
论文摘要如下:
我们提出了 LongCat-Flash,一个 5600 亿参数的混合专家(MoE)语言模型,其特点是动态计算机制,根据上下文激活 18.6B-31.3B 参数(平均约 27B)。该模型采用了带有快捷连接的架构,可实现高推理速度(>100 tokens/秒),并在多个基准测试中展现出强大的性能,包括在 MMLU 上达到 89.71% 的准确率,以及卓越的代理工具使用能力。
技巧
- LongCat-Flash 使用独特的快捷连接 MoE 架构,与传统的 MoE 模型相比,可实现更快的推理速度。
- 该模型支持高达 128k 的上下文长度,适用于长文本任务。
- 动态参数激活使其在保持高性能的同时具有计算效率。
- 最适合需要强大推理、编码和工具调用能力的应用程序。
- MoE 架构包含零个专家(nn.Identity 模块),它们充当跳跃连接,允许 token 在适当的时候绕过专家计算。
使用示例
模型很大:您将需要 2x8 个 H100 来运行推理。
# launch_longcat.py
from transformers import LongcatFlashForCausalLM, AutoTokenizer
import torch
model_id = "meituan-longcat/LongCat-Flash-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_id)
chat = [
{"role": "user", "content": "Hello! What is the capital of France? What can you tell me about it?"},
]
model = LongcatFlashForCausalLM.from_pretrained(
model_id,
tp_plan="auto",
dtype=torch.bfloat16,
)
inputs = tokenizer.apply_chat_template(
chat, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_new_tokens=30)
print(tokenizer.batch_decode(outputs))要使用 TP 运行,您将需要 torchrun。
torchrun --nproc_per_node=8 --nnodes=2 --node_rank=0 | 1 --rdzv-id <an_id> --rdzv-backend c10d --rdzv-endpoint $NODE_ID:$NODE_PORT --log-dir ./logs_longcat launch_longcat.py您将获得不错的生成结果。
[Round 0] USER:Hello! What is the capital of France? What can you tell me about it? ASSISTANT:Hello! 😊 The capital of France is Paris, one of the most famous and beloved cities in the world. Here’s a quick overview of what makes Paris special:
1. Iconic Landmarks
Eiffel Tower – The global symbol of France, built in 1889 for the World's Fair.
Notre-Dame Cathedral – A masterpiece of Gothic architecture (currently under restoration after the 2019 fire).
Louvre Museum – The world’s largest art museum, home to the Mona Lisa and Venus de Milo.
Sacré-Cœur Basilica – A stunning white church atop Montmartre with panoramic views.
Arc de Triomphe – Honors French military victories, with the Tomb of the Unknown Soldier beneath it.
Champs-Élysées – A glamorous avenue leading to the Arc de Triomphe, lined with shops and cafés.
2. Culture & Arts
Paris is the "City of Light" (La Ville Lumière), a nickname from its early adoption of street lighting and its role as a center of enlightenment.
It’s a global hub for fashion (haute couture, Paris Fashion Week) and art (Impressionism, Picasso, Dali).
Famous literary figures like Hemingway, Fitzgerald, and Sartre lived and wrote here.
3. Food & Cuisine
Croissants, baguettes, macarons, and crème brûlée are just a few of its culinary delights.
Paris has over 100 Michelin-starred restaurants and countless cozy bistros.
The Marché d’Aligre and Rue Mouffetard are great for fresh produce and local flavors.
4. History & Politics
Founded in the 3rd century BC by the Parisii tribe, it became a major European city under the Romans.
The French Revolution (1789–1799) began here, leading to the fall of the monarchy.
Today, it’s the political and economic heart of France, housing the French President’s residence (Élysée Palace) and the National Assembly.
**LongcatFlashConfig
class transformers.LongcatFlashConfig
< source >( vocab_size: int | None = 131072 hidden_size: int | None = 6144 num_hidden_layers: int | None = 56 num_layers: int | None = 28 num_attention_heads: int | None = 64 num_key_value_heads: int | None = None hidden_act: str | None = 'silu' max_position_embeddings: int | None = 131072 initializer_range: float | None = 0.02 rms_norm_eps: float | None = 1e-05 use_cache: bool | None = True pad_token_id: int | None = None bos_token_id: int | None = 1 eos_token_id: int | None = 2 tie_word_embeddings: bool | None = False rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict[str, transformers.modeling_rope_utils.RopeParameters] | None = None attention_bias: bool | None = False attention_dropout: float | None = 0.0 ffn_hidden_size: int | None = 12288 q_lora_rank: int | None = 1536 kv_lora_rank: int | None = 512 qk_nope_head_dim: int | None = 128 qk_rope_head_dim: int | None = 64 head_dim: int | None = 64 v_head_dim: int | None = 128 qk_head_dim: int | None = None moe_topk: int | None = 12 n_routed_experts: int | None = 512 zero_expert_num: int | None = 256 expert_ffn_hidden_size: int | None = 2048 routed_scaling_factor: float | None = 6.0 **kwargs )
参数
- vocab_size (
int, optional, defaults to 131072) — LongCat Flash 模型词汇量。定义通过 `input_ids` 传递时可以表示的不同 token 的数量,这些 `input_ids` 在调用 LongcatFlashModel 时传入。 - hidden_size (
int, optional, defaults to 6144) — 隐藏表示的维度。 - num_hidden_layers (
int, optional, defaults to 56) — Transformer 解码器中的隐藏层数。 - num_layers (
int, optional, defaults to 28) — 每个包含 2 个子层的层数。 - num_attention_heads (
int, optional, defaults to 64) — Transformer 解码器中每个注意力层的注意力头数。 - num_key_value_heads (
int, optional) — 这是实现分组查询注意力(Grouped Query Attention)所需的 key_value 头数。如果 `num_key_value_heads=num_attention_heads`,则模型将使用多头注意力(MHA);如果 `num_key_value_heads=1`,则模型将使用多查询注意力(MQA);否则使用 GQA。从多头检查点转换为 GQA 检查点时,每个组的键和值头应通过对该组内的所有原始头进行平均池化来构建。有关更多详细信息,请参阅 此论文。如果未指定,则默认为 `num_attention_heads`。 - hidden_act (
strorfunction, optional, defaults to"silu") — 解码器中的非线性激活函数(函数或字符串)。 - max_position_embeddings (
int, optional, defaults to 131072) — 此模型可能使用的最大序列长度。通常将其设置得足够大以防万一(例如,512 或 1024 或 2048)。 - initializer_range (
float, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。 - rms_norm_eps (
float, optional, defaults to 1e-05) — RMS 归一化层使用的 epsilon 值。 - use_cache (
bool, optional, defaults toTrue) — 模型是否应返回最后一个键/值注意力(并非所有模型都使用)。仅当 `config.is_decoder=True` 时相关。 - pad_token_id (
int, optional) — 填充 token ID。 - bos_token_id (
int, optional, defaults to 1) — 流开始 token ID。 - eos_token_id (
int, optional, defaults to 2) — 流结束 token ID。 - tie_word_embeddings (
bool, optional, defaults toFalse) — 是否绑定输入和输出嵌入。 - rope_parameters (
RopeParameters, optional) — 包含 RoPE 嵌入缩放配置的字典。目前支持两种缩放策略:线性(linear)和动态(dynamic)。它们的缩放因子必须大于 1 的浮点数。预期的格式是 `{"type": strategy name, "factor": scaling factor}`。使用此标志时,请勿将 `max_position_embeddings` 更新为预期的最大值。 - attention_bias (
bool, optional, defaults toFalse) — 在自注意力过程中,查询、键、值和输出投影层是否使用偏置。 - attention_dropout (
float, optional, defaults to 0.0) — 注意力概率的 dropout 比率。 - ffn_hidden_size (
int, optional, defaults to 12288) — MLP 表示的维度。 - q_lora_rank (
int, optional, defaults to 1536) — MLA(多头潜在注意力)中查询 LoRA 投影的秩。 - kv_lora_rank (
int, optional, defaults to 512) — MLA 中键值 LoRA 投影的秩。 - qk_nope_head_dim (
int, 可选, 默认 128) — 查询/键头的非位置编码部分维度。 - qk_rope_head_dim (
int, 可选, 默认 64) — 查询/键头的 RoPE 部分维度。 - head_dim (
int, 可选, 默认 64) — qk 头部的标准维度,除了 CI 外未使用。 - v_head_dim (
int, 可选, 默认 128) — 值头的维度。 - qk_head_dim (
int, 可选) — 查询/键头部的总维度。如果未指定,则设置为qk_nope_head_dim + qk_rope_head_dim。 - moe_topk (
int, 可选, 默认 12) — MoE 层中每个 token 的路由数量。 - n_routed_experts (
int, 可选, 默认 512) — MoE 层中的路由专家数量。 - zero_expert_num (
int, 可选, 默认 256) — 添加到专家池中的零专家(恒等函数)数量。 - expert_ffn_hidden_size (
int, 可选, 默认 2048) — 单个专家 FFN 层的隐藏大小。 - routed_scaling_factor (
float, 可选, 默认 6.0) — 应用于路由权重的缩放因子。
这是用于存储 LongcatFlashModel 配置的类。它用于根据指定的参数实例化 LongCat Flash 模型,定义模型架构。使用默认值实例化配置将得到与 LongCat Flash 架构相似的配置。例如 meituan-longcat/LongCat-Flash-Chat。配置类继承自 PreTrainedConfig,并可用于控制模型输出。有关更多信息,请阅读 PreTrainedConfig 的文档。
>>> from transformers import LongcatFlashModel, LongcatFlashConfig
>>> # Initializing a LongCat Flash style configuration
>>> configuration = LongcatFlashConfig()
>>> # Initializing a model from the configuration
>>> model = LongcatFlashModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configLongcatFlashPreTrainedModel
class transformers.LongcatFlashPreTrainedModel
< source >( config: PreTrainedConfig *inputs **kwargs )
参数
- config (
PreTrainedConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化仅加载配置,不加载与模型相关的权重。有关更多信息,请查看 from_pretrained() 方法来加载模型权重。
此模型继承自 PreTrainedModel。查看其父类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、修剪头等)。
此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。
定义每次调用时执行的计算。
应由所有子类覆盖。
尽管前向传播的配方需要在该函数中定义,但之后应该调用
Module实例而不是它,因为前者负责运行注册的钩子,而后者则默默地忽略它们。
LongcatFlashModel
class transformers.LongcatFlashModel
< source >( 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 (
LongcatFlashModel) — 模型配置类,包含模型的所有参数。使用配置文件初始化仅加载配置,不加载与模型相关的权重。有关更多信息,请查看 from_pretrained() 方法来加载模型权重。
输出原始隐藏状态的裸 Longcat Flash 模型,顶部没有任何特定头部。
此模型继承自 PreTrainedModel。查看其父类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、修剪头等)。
此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。
forward
< source >( 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 cache_position: torch.LongTensor | None = None use_cache: bool | None = None **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) → transformers.modeling_outputs.BaseModelOutputWithPast 或 tuple(torch.FloatTensor)
参数
- input_ids (
torch.LongTensor,形状为(batch_size, sequence_length), 可选) — 词汇表中输入序列 token 的索引。默认情况下会忽略填充。可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- attention_mask (
torch.Tensor,形状为(batch_size, sequence_length), 可选) — 用于避免对填充 token 索引执行注意力计算的掩码。掩码值选择在[0, 1]中:- 1 表示未掩码的 token,
- 0 表示已掩码的 token。
- position_ids (
torch.LongTensor,形状为(batch_size, sequence_length), 可选) — 每个输入序列 token 在位置嵌入中的索引。选择范围为[0, config.n_positions - 1]。 - past_key_values (
~cache_utils.Cache, 可选) — 预计算的隐藏状态(自注意力块和交叉注意力块中的键值),可用于加速顺序解码。这通常包括在use_cache=True或config.use_cache=True时,模型在先前解码阶段返回的past_key_values。只允许
Cache实例作为输入,请参阅我们的 kv cache 指南。如果未传递past_key_values,则默认将初始化DynamicCache。模型将输出与输入相同的缓存格式。
如果使用
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索引转换为相关的向量,这将非常有用。 - cache_position (
torch.LongTensorof shape(sequence_length), optional) — 描述序列中输入序列 token 位置的索引。与position_ids相反,此张量不受 padding 的影响。它用于在正确的位置更新缓存并推断完整的序列长度。 - use_cache (
bool, optional) — 如果设置为True,将返回past_key_values键值状态,并可用于加速解码(参见past_key_values)。
返回
transformers.modeling_outputs.BaseModelOutputWithPast or tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.BaseModelOutputWithPast 或 torch.FloatTensor 的元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置(LongcatFlashConfig)和输入。
-
last_hidden_state (
torch.FloatTensor, 形状为(batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。如果使用了
past_key_values,则只输出形状为(batch_size, 1, 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=Truein the cross-attention blocks) that can be used (seepast_key_valuesinput) 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 后的注意力权重,用于计算自注意力头中的加权平均值。
LongcatFlashModel 的 forward 方法,覆盖了 __call__ 特殊方法。
虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用
Module实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。
LongcatFlashForCausalLM
class transformers.LongcatFlashForCausalLM
< source >( 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 (LongcatFlashForCausalLM) — 模型的配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。请查看 from_pretrained() 方法以加载模型权重。
Longcat Flash 模型用于因果语言建模。
此模型继承自 PreTrainedModel。查看其父类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、修剪头等)。
此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。
forward
< source >( 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 **kwargs: typing_extensions.Unpack[transformers.utils.generic.TransformersKwargs] ) → transformers.modeling_outputs.CausalLMOutputWithPast 或 tuple(torch.FloatTensor)
参数
- input_ids (
torch.LongTensorof shape(batch_size, sequence_length), optional) — 词汇表中输入序列 token 的索引。默认情况下将忽略 padding。可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
- attention_mask (
torch.Tensorof shape(batch_size, sequence_length), optional) — 用于避免对 padding token 索引执行 attention 的掩码。掩码值选择在[0, 1]中:- 1 表示未掩码的 token,
- 0 表示已掩码的 token。
- position_ids (
torch.LongTensorof shape(batch_size, sequence_length), optional) — 每个输入序列 token 在位置嵌入中的索引。选择范围为[0, config.n_positions - 1]。 - past_key_values (
~cache_utils.Cache, optional) — 可以用于加速顺序解码的预计算隐藏状态(自注意力块和交叉注意力块中的键和值)。这通常包括在use_cache=True或config.use_cache=True时模型在先前解码阶段返回的past_key_values。只允许 Cache 实例作为输入,请参阅我们的 kv cache 指南。如果未传递
past_key_values,将默认初始化 DynamicCache。模型将输出与输入相同的缓存格式。
如果使用
past_key_values,则用户应只输入未处理的input_ids(那些没有将其 past key value 状态传递给此模型的),形状为(batch_size, unprocessed_length),而不是形状为(batch_size, sequence_length)的所有input_ids。 - inputs_embeds (
torch.FloatTensorof shape(batch_size, sequence_length, hidden_size), optional) — 可选地,在传入input_ids时,可以直接传入嵌入表示。如果您想比模型内部的嵌入查找矩阵对input_ids索引转换为相关向量的控制更精细,则此选项很有用。 - labels (
torch.LongTensorof shape(batch_size, sequence_length), optional) — 用于计算掩码语言建模损失的标签。索引应在[0, ..., config.vocab_size]或 -100 范围内(参见input_ids文档字符串)。索引设置为-100的 token 被忽略(掩码),损失仅为标签在[0, ..., config.vocab_size]范围内的 token 计算。 - use_cache (
bool, optional) — 如果设置为True,将返回past_key_values键值状态,并可用于加速解码(参见past_key_values)。 - cache_position (
torch.LongTensorof shape(sequence_length), optional) — 描述序列中输入序列 token 位置的索引。与position_ids相反,此张量不受 padding 的影响。它用于在正确的位置更新缓存并推断完整的序列长度。 - logits_to_keep (
Union[int, torch.Tensor], optional, defaults to0) — 如果是int,则计算最后logits_to_keep个 token 的 logits。如果为0,则计算所有input_ids的 logits(特殊情况)。生成只需要最后一个 token 的 logits,并且只为该 token 计算 logits 可以节省内存,这对于长序列或大词汇量来说非常可观。如果是一个torch.Tensor,则必须是 1D 的,对应于序列长度维度上要保留的索引。这在使用打包张量格式(批次和序列长度的单个维度)时很有用。
返回
transformers.modeling_outputs.CausalLMOutputWithPast or tuple(torch.FloatTensor)
一个 transformers.modeling_outputs.CausalLMOutputWithPast 或 torch.FloatTensor 的元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置(LongcatFlashConfig)和输入。
-
loss (
torch.FloatTensor形状为(1,),可选,当提供labels时返回) — 语言建模损失(用于下一个 token 预测)。 -
logits (形状为
(batch_size, sequence_length, config.vocab_size)的torch.FloatTensor) — 语言建模头部的预测分数(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 后的注意力权重,用于计算自注意力头中的加权平均值。
LongcatFlashForCausalLM 的 forward 方法,覆盖了 __call__ 特殊方法。
虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用
Module实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。
示例
>>> from transformers import AutoTokenizer, LongcatFlashForCausalLM
>>> model = LongcatFlashForCausalLM.from_pretrained("meta-longcat_flash/LongcatFlash-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-longcat_flash/LongcatFlash-2-7b-hf")
>>> 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."