智客 ZICQ
EN 登录 / 注册
智客前沿 大模型 #e-means #K-Means #向量聚类 #EMA #GPU加速

e-means用指数移动平均重构K-Means,十倍GPU加速并降低聚类损失

Mr.Xu 的头像

文 / Mr.Xu 智客前沿编译 · 审校

发布时间:

中文阅读 (Chinese) English Version

摘要:论文提出 e-means,将指数移动平均更新与 mini-batch 训练机制引入 K-Means 聚类,并用规模定律指导衰减率和批大小设置,无需逐任务超参数搜索。在多组嵌入数据上,e-means 通常以 1.4 至 2.6 个 epoch 达到 Lloyd K-Means 运行 25 个 epoch 时的损失,对应约 10 至 45 倍 GPU 墙钟时间加速;在 DINO10B 数据集上,2.5 个 epoch 即完成 100 亿条 DINO 嵌入的 1600 万簇划分。其价值在于降低大规模向量聚类、检索索引构建、量化和数据清洗成本,但论文摘要仍需结合实现细节、硬件配置和独立复现进行验证。


核心思路:把聚类中心改造成指数滑动状态

传统 Lloyd K-Means 在每一轮都执行两步:先将所有样本分配到最近质心,再对每个簇内的样本求均值。该过程在 GPU 上看似简单,但面对数十亿级嵌入时,重复遍历数据、计算距离和更新质心会产生显著的显存带宽与同步开销。

e-means 的关键改动,是用指数移动平均(Exponential Moving Average, EMA)维护质心:

[ \mu_t = (1-\beta)\mu_{t-1} + \beta x, ]

其中,(x) 是当前 mini-batch 中被分配到对应簇的样本,(\beta) 为更新系数或衰减率。与 Lloyd 算法相比,EMA 不再等待整轮数据完成后才重算质心,而是让每个 mini-batch 立即推动质心更新。

这更像是把“批量重算质心”替换成“异步连续积分”:

[ \mu_t = (1-\beta)^t\mu_0 + \sum_{i=1}^{t}(1-\beta)^{t-i}\beta x_i. ]

因此,(t) 时刻的质心由历史 mini-batch 的加权组合构成。较大的 (\beta) 会更快跟踪新样本,但也会引入更高噪声;较小的 (\beta) 能平滑更新,却可能减慢对数据分布变化的响应。

论文进一步给出关于衰减率与批大小的规模关系,使这两个参数不必完全依赖人工网格搜索。对工程团队而言,这是该方法比单纯“换成 GPU 友好的写法”更有价值的地方:它试图将聚类超参数与数据规模、嵌入分布和批处理条件建立可预测联系。

为什么可以少跑十个 epoch

e-means 同时改变了三个成本环节:

  1. 样本分配不再绑定完整 epoch。 mini-batch 可以流水化处理,降低同步屏障和阶段性停顿。
  2. 质心更新不需要全量重算。 EMA 以局部样本持续修正中心,避免反复扫描整个簇。
  3. 更少迭代即可达到更低目标值。 论文报告,多组嵌入数据集上,e-means 在 1.4 至 2.6 个 epoch 内达到 Lloyd K-Means 第 25 个 epoch 的损失,有时甚至优于 k-means++。

以论文的 DINO10B 实验为例,算法在 2.5 个 epoch 内将 100 亿条 DINO 嵌入划分为 1600 万个簇,最终损失低于 Lloyd K-Means 训练 25 个 epoch 的结果。论文将这一差异换算为相对现代 GPU K-Means 实现的 10 至 45 倍墙钟时间加速。

不过,epoch 数量不能直接等同于实际吞吐。GPU 性能仍会受到以下因素影响:

  • 质心数量 (K) 决定距离计算和显存占用;
  • 向量维度 (d) 决定每条距离更新的计算量;
  • mini-batch 大小影响矩阵乘吞吐与样本分配质量;
  • 聚类初始化方式可能改变最终局部最优;
  • 数据读取、索引搬运和分布式同步可能占据显著时间。

若仅比较优化器的训练步数,而不披露端到端数据加载、初始化、收尾同步和内存分配成本,工程结论可能高估实际收益。

显存与工程权衡

K-Means 的主要计算可以写成:

[ \arg\min_C \sum_{x \in X} |x-\mu_{c(x)}|_2^2. ]

在稠密向量、簇数 (K) 较大时,最基础的实现需要保存 (K) 个质心,空间复杂度约为 (O(Kd))。同时,完整距离矩阵的规模为 (O(BK));若逐样本计算距离并进行原子归约,则还需要处理高吞吐归约带来的并发开销。

e-means 借助 mini-batch 与深度学习计算设施,可以将距离计算改写为矩阵乘法或分块矩阵乘法,并用分块标签与归约策略减少中间结果。不过,它的内存复杂度并没有从根本上消失:

  • 1600 万个质心若采用 FP32 质心,仅质心存储就可能达到数百 GB;
  • 使用 BF16 或 FP16 可降低带宽和容量需求,但会改变距离与边界样本的判定;
  • 分块质心可以控制显存,却可能增加跨设备同步;
  • 嵌入压缩或量化可以进一步降低成本,却需要重新验证聚类质量。

因此,e-means 解决的主要是“收敛路径更短、GPU 利用率更高”,而不是自动解决超大 (K) 下的容量问题。

如何理解评测结果

论文在多种嵌入数据集上比较 Lloyd K-Means、k-means++ 与 e-means,核心指标是达到同等或更低聚类损失所需的 epoch 和 GPU 墙钟时间。这种比较比只报告最终损失更有工程意义,因为它直接检验“更快到达同一目标”的主张。

但仍需关注评测细节:

  1. 是否使用完全相同的初始化。 随机初始化会显著影响 K-Means 的最终局部最优。
  2. 是否报告多次运行的方差。 大规模聚类对数据顺序、批采样和浮点归约顺序可能敏感。
  3. 是否计入预处理时间。 嵌入归一化、维度压缩、数据搬运和索引构建都可能影响端到端成本。
  4. 簇质量指标是否完整。 较低的目标损失并不自动等价于更好的检索召回率、量化误差或下游分类效果。
  5. 加速比是否跨硬件可复现。 在不同 GPU、通信拓扑和内核实现下,mini-batch 的实际利用率可能显著变化。

特别是 k-means++ 主要用于改善初始化,而 e-means 改变的是优化过程,两者比较时应明确初始化是否一致。

开发者落地建议

对检索系统、向量数据库构建、训练数据去重、嵌入量化和数据清洗流水线,e-means 值得纳入 K-Means 的基线集合。实际部署可按以下步骤验证:

  1. 选择小规模代表性嵌入集,对齐 Lloyd K-Means 与 k-means++ 的初始化和距离计算方式。
  2. 同时记录最终损失、到达目标损失所需 epoch、端到端墙钟时间、峰值显存和吞吐。
  3. 扫描少量 (\beta) 与 batch size,检查论文给出的规模规律是否能迁移到当前数据分布。
  4. 对 FP32、BF16 或量化嵌入分别测试,因为数值精度可能影响边界样本分配。
  5. 在检索场景中补充 Recall@K、NDCG 或 mAP,在量化和清洗场景中补充下游效用指标。
  6. 对超大规模 (K) 测试分块、分布式和多 GPU 通信开销,避免只比较单卡局部速度。

e-means 的关键贡献不是重新定义聚类目标,而是用 EMA 把 Lloyd K-Means 改造成可 mini-batch、可 GPU 化且较少依赖超参数搜索的优化过程。若论文实现和数据管线可复现,它有望成为大规模嵌入聚类的重要候选方案。


消息来源:Hugging Face Trending Papers (2026-11-06)

—— 完 ——

主题标签: #e-means #K-Means #向量聚类 #EMA #GPU加速

编辑部与事实核查说明:本篇专刊由智客前沿资讯管线根据官方技术公告、学术论文及开源工程文档整理编译,经算法实体核验与人工编辑审校后发布。若发现技术事实纰漏,欢迎依据勘误方针或一键向编辑部发送勘误反馈。

社区整体评论区

正在加载实时智能评论与划词标注…