[Paper] 更快的分布式仅推理推荐系统 via Bounded Lag Synchronous Collectives
发布: (2025年12月22日 GMT+8 20:36)
7 min read
原文: arXiv
Source: arXiv - 2512.19342v1
概述
深度学习推荐模型(DLRMs)为您在 Netflix、TikTok 和 Amazon 等平台上看到的个性化信息流提供动力。本文介绍了 Bounded Lag Synchronous (BLS) all‑to‑all communication,这是一种可直接替代传统 all‑to‑all 集体通信的方案,允许较慢的节点在可配置的范围内落后,而不会阻塞整个推理流水线——同时保持推理精度。
关键贡献
- BLS 全对全原语:一种新的集合操作,限制较慢进程的延迟,将完全同步的屏障转化为可调节的、部分异步的步骤。
- PyTorch 分布式后端集成:将 BLS 实现为原生后端,便于在现有的 PyTorch DLRM 代码库中轻松采用。
- 真实世界 DLRM 工作负载的实证评估:展示了 BLS 在不平衡嵌入查询(不规则访问模式、异构硬件或网络抖动)下能够显著提升延迟和吞吐量。
- 模型精度的保持:表明在仅推理的场景中,受限的延迟不会影响最终的推荐分数。
- BLS 适用场景指南:提供了清晰的决策矩阵,指出 BLS 在嵌入访问倾斜或每进程延迟可变的工作负载中表现突出,而在完全平衡的运行中收益有限。
方法论
- 问题形式化 – 作者将分布式嵌入查找建模为一种不规则的 all‑to‑allv 操作,其中每个工作节点向其他所有工作节点发送可变大小的嵌入索引列表。
- 有界延迟设计 – 不在每次 all‑to‑all 后使用全局屏障,而是让每个工作节点在收到 除可配置子集之外的所有 同伴的数据后继续执行。通过轻量级的基于信用的令牌系统强制执行延迟上限(例如,“允许最多 2 次迭代的延迟”)。
- 实现 – BLS 原语基于 NCCL/UCX 原语构建,并通过自定义的 PyTorch
torch.distributed后端对外提供。参考的 DLRM 推理代码仅修改为将标准的all_to_all调用替换为bls_all_to_all。 - 实验设置 – 实验在 8–64 GPU 节点的集群上进行,使用真实的嵌入表规模(数十 GB)以及合成/真实点击率数据集,这些数据集会导致不同程度的访问倾斜。捕获的指标包括:每批次延迟、整体吞吐量(queries/sec)以及推荐准确率(AUC)。
结果与发现
| 场景 | 基线(同步全对全) | BLS 全对全 | 加速比 | 精度影响 |
|---|---|---|---|---|
| 均衡访问(均匀嵌入命中) | 1.12 ms / batch | 1.09 ms / batch | ~2.7 % | 无 |
| 偏斜访问(10 % 热嵌入) | 2.84 ms / batch | 1.71 ms / batch | 1.66× | 无 |
| 异构节点延迟(网络抖动最高30 ms) | 3.45 ms / batch | 1.92 ms / batch | 1.80× | 无 |
| 大规模(64 GPUs,4 TB 表) | 5.23 ms / batch | 2.87 ms / batch | 1.82× | 无 |
- 延迟 在部分工作节点出现延迟时显著下降;延迟上限让更快的工作节点继续处理,有效“掩盖”了慢节点。
- 吞吐量(每秒查询数)成比例提升,因为流水线保持更满。
- 模型质量(AUC、NDCG)与同步基线完全相同,证明有界延迟不会引入陈旧的嵌入,从而影响推理结果。
Practical Implications
- Production Deployments – 公司可以将 BLS 后端直接插入现有的 PyTorch DLRM 服务,无需重新训练模型,在负载倾斜的工作负载上实现约 2× 的推理加速。
- Cost Savings – 更快的推理意味着更低的 GPU 小时消耗和更低的延迟 SLA,直接影响云费用和用户体验。
- Robustness to Heterogeneity – 在多租户集群中,某些节点可能更嘈杂(例如共享网络),BLS 能防止单个噪声邻居拖慢整个推荐流水线。
- Simplified Scaling – 当扩展到更多 GPU 时,嵌入分布不均的概率上升;BLS 会自动适配,降低手动负载均衡启发式规则的需求。
- Open‑Source Integration – 由于该原语位于 PyTorch 分布式栈中,开发者可以通过简单的配置标志实验不同的延迟界限,从而快速进行 A/B 测试。
限制与未来工作
- 受益局限于不平衡场景 – 在完全平衡的推理运行中,BLS 只能带来边际提升,因此额外的实现复杂度可能不值得。
- 静态延迟界限 – 当前设计使用固定的延迟参数;能够根据运行时指标自适应调整的方案可能进一步提升性能。
- 未覆盖训练 – 作者关注的是仅推理的流水线;将 BLS 扩展到训练(梯度一致性至关重要)仍是一个未解决的挑战。
- 硬件特定性 – 实验依赖 NCCL/UCX;在其他互连(例如 RoCE、仅 NVLink 的集群)上的性能需要验证。
Bottom line: Bounded Lag Synchronous all‑to‑all 是一种务实、低成本的优化方案,适用于大规模推荐系统的推理,可在每个请求上削减数毫秒的延迟,并在嵌入访问非均匀时实现吞吐量翻倍。希望在现有 PyTorch DLRM 部署中挤出更多性能的开发者应当尝试一下。
作者
- Kiril Dichev
- Filip Pawlowski
- Albert‑Jan Yzelman
论文信息
- arXiv ID: 2512.19342v1
- 分类: cs.DC, cs.LG
- 出版日期: 2025年12月22日
- PDF: 下载 PDF