CANN/cannbot-skills:GQA/MHA注意力层
Attention 层GQA / MHA 标准路径【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills参考模型cann-recipes-infer/models/qwen3_moe/MoE、cann-recipes-infer/models/gpt_oss/Dense核心特征标准多头 / 分组查询注意力KV Cache 存完整的 K/V。Prefill 和 Decode 走不同 FA 参数。Prefill 链路# ─── Pre-Norm ─── hidden_states, residual npu_add_rms_norm(residual, hidden_states, weight, eps) # 首层无 residual 时退化为 npu_rms_norm # ─── QKV 投影 ─── q, k, v qkv_proj(hidden_states).split(...) # ─── QK Head Norm部分模型有如 qwen3-moe─── q npu_rms_norm(q, ...) k npu_rms_norm(k, ...) # ─── RoPE ─── q, k npu_apply_rotary_pos_emb(q, k, cos, sin, layoutBSH) # ─── KV Cache 写入 ─── scatter_update_(past_key, kv_len, k, dim-2) scatter_update_(past_val, kv_len, v, dim-2) # ─── Flash Attention用当前 batch 的 k/v─── output npu_fused_infer_attention_score(q, k, v, sparse_mode3, ...) # ─── O 投影 ─── output o_proj(output)Decode 链路# ─── Pre-Norm ─── hidden_states, residual npu_add_rms_norm(residual, hidden_states, weight, eps) # ─── QKV 投影 ─── q, k, v qkv_proj(hidden_states).split(...) # ─── QK Head Norm ─── q npu_rms_norm(q, ...) k npu_rms_norm(k, ...) # ─── RoPE ─── q, k npu_apply_rotary_pos_emb(q, k, cos, sin, layoutBSH) # ─── KV Cache 写入 ─── scatter_update_(past_key, kv_len, k, dim-2) scatter_update_(past_val, kv_len, v, dim-2) # ─── Flash Attention用完整 cache─── output npu_fused_infer_attention_score(q, past_key, past_val, actual_seq_lengths_kv..., ...) # ─── O 投影 ─── output o_proj(output)Prefill vs Decode 关键差异环节PrefillDecodeFA 的 KV 输入当前 batch 的 k/v非 cache完整 past_key/past_valuecacheFA 参数sparse_mode3causal mask推荐无sparse_mode传actual_seq_lengths_kv【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考