已实现

v01_1_split_gqa

本版本引入什么

本版本保持与 v01_0_ragged_batch 相同的行为,但把 GQA 前向路径拆分为具名阶段。

在 KV 缓存引入第二种执行模式前,注意力代码变得更容易检查。

为什么引入

如果核心函数只是包含张量变形、RoPE、掩码和投影逻辑的一整块代码,优化会非常困难。这个检查点在下一版本改变行为前提供了更清晰的基线。

核心原则

分组查询注意力可以拆成相对独立的概念步骤:

  • 投影 Q、K 和 V。
  • 重排注意力头。
  • 对 Q 和 K 应用 RoPE。
  • 按 KV 头对查询头分组。
  • 对每个请求执行因果注意力。
  • 把上下文向量投影回模型宽度。

为这些步骤命名,可以降低阅读后续差异的成本。

建议对比的文件

  • layer/gqa.pyv01_0_ragged_batch/layer/gqa.py 对比。

保留的权衡

这是可读性检查点,不是性能检查点。有些版本的价值就在于让下一项变化容易理解。