Skip to content

A/F 分离 ​

更细的一刀:​把 Attention 和 FFN 拆到不同的卡上。 DeepSeek-V3、RServe 这类大 MoE 模型服务的进阶架构。

为什么要拆 ​

Attention 与 FFN 的负载画像在 MoE 时代进一步分化:

  • Attention(A)​:小矩阵乘 + softmax,带宽敏感;MoE 模型里它是 dense 的(每 token 都要算),且是 KV 的家;
  • FFN/MoE(F)​:专家是大矩阵乘,算力敏感;但专家是稀疏激活的,需要 all-to-all dispatch/combine(专家并行篇)。

两者的显存需求也解耦:A 占 KV(随并发长),F 占专家权重(固定但巨大)。塞在一起时,"KV 多的卡"和"专家多的卡"被迫同配——​A/F 分离让两种资源各自按需扩展​。

机制 ​

在 TP/EP 之上再切一刀:A 组卡持有注意力 + KV,F 组卡持有专家;层间以 all-to-all(或 P2P)连接两组成员:

flowchart LR
    subgraph A["Attention 组(EP 内)"]
        A1["A 卡:注意力 + KV Cache"]
    end
    subgraph F["FFN/MoE 组(EP)"]
        F1["F 卡:专家 1"] & F2["F 卡:专家 2"] & F3["..."]
    end
    A1 -- "dispatch(隐藏态)" --> F1 & F2 & F3
    F1 & F2 & F3 -- "combine(专家输出)" --> A1

注意与 P/D 分离的区别:P/D 沿时间轴​(prefill 阶段 vs decode 阶段)拆,A/F 沿模型结构​(层内的两种子层)拆,两者正交可叠加。

收益与代价 ​

收益​:

  1. 资源按需配比:KV 池(A 组)与专家池(F 组)独立扩缩,MoE 模型权重巨大时尤其重要;
  2. 通信与计算重叠的空间更大:A 组做下一个 token 的注意力时,F 组仍在算上一个 token 的专家(微流水),all-to-all 延迟被藏;
  3. 故障域分离:专家热/坏只影响 F 组。

代价​:每 token 每层多两跳跨卡通信(隐藏态往返),对互联带宽的胃口比 P/D 更大——​A/F 分离几乎只在超节点内部署​(DeepSeek-V3 的 prefill/decode 节点内部即 A/F 分离式组织,UB 全互联 384 卡)。

深入推导:A/F 分离的流水收益与通信账

微流水(RServe/DeepSeek 风格)​。decode 中第 i token 的 FFN 与第 i+1 token 的 attention 可重叠:A 组算 ti+1 的 attention 的同时,F 组算 ti 的专家。设 ta、tf 为两段耗时,稳定态周期 T=max(ta,tf)+tcomm,理想下吞吐由较长段决定——​把两段塞同卡时周期是 ta+tf,分离后压到 max​,这是收益的理论来源。

通信账​。每 token 每层:dispatch 传输隐藏态 2h 字节 × 每 token 平均激活专家数 k、combine 同量级。70B×MoE 场景(h=4096、k=8、FP8):每层 2×4096×8×1B×2≈131 KB/token;80 层累计 10 MB/token。NVLink 域(900 GB/s)0.01 ms 级——免费;跨 IB 则 0.2 ms/token/层级别,80 层 16 ms——吃掉大半个 TPOT。​结论与 P/D 分离一致:A/F 分离的部署半径由互联带宽决定​。

与 EP 的关系​。A/F 分离不排斥 EP:F 组内部仍是 EP+TP 切专家。可以把 A/F 看作"EP 的外层再分类"——按子层角色把卡分成资源池,池内再细化并行。

(据 DeepSeek-AI 2024 V3、Griggs et al. 2024 RServe。)

思考题 ​

  1. A/F 分离与 P/D 分离是竞争还是互补?画出一个两层分离的生产拓扑。
  2. 为什么 A/F 分离比 P/D 分离对互联带宽更敏感?
  3. 什么样的模型让 A/F 分离的收益最大?
参考答案
  1. 互补且正交:P/D 分时间轴、A/F 分模型结构。生产拓扑示例:prefill 池(内含 A/F 两组)→ KV 传输 → decode 池(内含 A/F 两组);F 组可跨池共享(专家池化),A 组按阶段分。
  2. P/D 的 KV 传输每请求只发生一次(prefill 完);A/F 的隐藏态往返每 token 每层都发生(O(L) 次),频次高两个数量级,带宽不足时直接乘进 TPOT。
  3. 大 MoE(专家权重巨大、激活稀疏、all-to-all 频繁)+ 长上下文(KV 显存占比高)——两头都极端时,A/F 的资源解耦价值最大;小 dense 模型分离反而摊薄算力、得不偿失。

小结 ​

  • A/F 分离沿模型结构切:注意力+KV 一组、专家一组,资源按需扩缩。
  • 微流水让 attention 与 FFN 的执行重叠,周期从 ta+tf 压到 max(ta,tf)+tcomm。
  • 通信频次 O(L)/token 决定它对互联带宽最挑剔,几乎只在超节点内部署。
  • 与 P/D 分离(时间轴)、EP(专家切分)正交互补,构成分离式 serving 的完整谱系。

参考资料 ​

最近更新