HypeReca: 面向推荐模型训练的分布式嵌入向量数据库

闲话 - 前 这是一篇 ATC'25 论文 的中文简要版本. 然而这篇文章在学术创新上实在乏善可陈,正好多说一点闲话了。这也是为什么没有在文章发表前就把博客写出来,不然万一被撤稿了可就搞笑了。 写这篇博客是 laekov 一直以来坚持要把自己发表的每篇文章都翻译成中文,因为曾经的 laekov 觉得凭什么论文都要用英文写呀,而且八股文读起来好麻烦呀,用中文简洁明了地把文章讲清楚不是更好吗。 然后天真的 laekov 读博五年一共也就中了两篇文章。这是第二篇,中稿时间是毕业前三个月。 HypeReca 这个名字是 Hybridly Partitioned Embeddings for Recommendation Model Training Acceleration 的各种胡乱拼凑里找了个听起来好听一点的。 背景 基于深度学习的推荐模型是现在主流的推荐算法,它分为学习元素特征的稀疏部分和学习元素间关系的稠密部分。 稀疏部分主要是非常稀疏的嵌入表 embedding tables,它们可能会有 TB 级别甚至更大,所以得要很好地分布式地存下来,并且支持高吞吐地读取和更新。 稠密部分通常由传统的 DNN 构成,属于计算密集型任务(比如 CNN / MLP),所以得用 GPU 来加速。 在做分布式训练的时候,这两部分由于特性不同所以采用了不同的并行方式:稀疏部分用模型并行(切分存储),稠密部分用数据并行(小模型,大 batch size)。 这两部分之间通过 all-to-all 集合通信来传输所需的数据和用于更新的梯度。 然后就会发现在 scale up 的时候两部分之间的通信是瓶颈,可能会占到迭代时间的 90% 以上。 解决方案 这篇文章的核心想法其实很直白:embedding data 有冷有热。 把频繁访问的热数据找出来,也用数据并行的方法来存,重复地放到所有 GPU 上。 接下来要解决两个问题: 首先,挑多少热数据比较合适? 热数据越多,可以省掉的 all-to-all 通信就越多,但同步热数据所需的 all-reduce 量就越大。 这里正好是一个在单峰函数上找最优的 trade-off。结合实际数据建模观察一下即可。...

August 20, 2025 · 1 min · laekov

FastMoE 系统指南

FastMoE 是世界上首个开源的在 PyTorch 上支持 MoE 模型分布式训练的框架. 经过持续不断的更新与优化, 其在性能上相比各类竞品持续保持了一定的优势. 从 2021 年 3 月开源至今, 已经历了若干个发行版本, 亦有一些相关学术工作发表在各大会议和平台上. 此处对官方提供的公开资料进行汇总整理. FastMoE 代码仓库 FastMoE 框架的开源版本开源在 GitHub 上. 链接 该开源版本支持 cuda 平台. 开源版本中也包含来自社区贡献的对 rocm 平台的支持, 但对新版本 FastMoE 的支持可能并不完善. 此外, 对于申威和一些其它国产加速平台, FastMoE 也有相应的私有版本. 如有兴趣, 请联系清程极智. FastMoE 使用方式 FastMoE 作为 PyTorch 的插件存在, 推荐的使用方式是和 Megatron-LM 框架一起使用. 开源版本代码仓库中提供了修改不同版本 Megatron-LM 并与 FastMoE 一起使用的教程和参考补丁. 在FastMoE 官网(暂停维护)和代码仓库的中有更多文档可供参考. FastMoE 及系列学术文章 FastMoE 支持专家并行的工作原理在一篇 arxiv 文章中进行了讲解. arxiv原文 中文博客版本. FasterMoE 是一个发表在 PPoPP 学术会议上的工作. 其对于专家并行中负载均衡和通信计算重叠进行了研究. 该论文中所述的优化均已集成到 FastMoE v1.0.0 以后的版本中....

July 2, 2024 · 1 min · laekov

FastDecode: 一种很大胆的分布式 LLM 推理系统架构

这是一篇 arxiv 文章 的中文简要版本. 摘要 这篇文章主要介绍了一种大语言模型的推理系统. 在自回归生成过程中, 序列中的元素 (token) 被挨个生成, 因此模型推理的序列长度 (sequence length) 为 1. 因此, 增大 batch size 对于 GPU 利用率的提升十分重要. 然而 KV-Cache 体积很大, 且与 batch size 成正比. 其大小阻止了 batch size 和 GPU 利用率的提升. 相比 vLLM 提出的 page attention 技术, FastDecode 对于 CPU 的利用进行了更加大胆的尝试. 其不仅利用了 CPU 的内存容量, 还利用了其计算能力和多机扩展能力, 从而达到了提升 batch size, 提升 GPU 利用率的目的, 并实现了端到端的推理吞吐量提升. 背景 在自回归生成过程中做 attention 时, 一个 token i 的特征向量 (feature vector) 会线性映射拆成 Qi, Ki, Vi 三个特征向量....

March 21, 2024 · 3 min · laekov