AI 模型与平台

Meta 的 Faiss 1.16.0 新增 E-Means,加速大规模聚类

mm
将 Unite.AI 添加到您在 Google 上的首选来源

Meta 的 Faiss 维护团队于 2026 年 11 月 10 日发布了 1.16.0 版,其中包含 Meta 的 FAIR 团队开发的 e-means 聚类算法,并提供 CPU、GPU 和分布式实现。研究人员报告称,与所比较的实现相比,e-means 仅用 1.4 至 2.6 个 epoch,就达到了优于 Lloyd k-means 运行 25 个 epoch 后的损失值;GPU 实际运行时间提速 10–45 倍。

该软件版本发布之前,研究预印本已于 2026 年 11 月 6 日提交至 arXiv;此次发布并非该算法首次公开披露。这项研究由 Meta 的 FAIR 团队和 École Nationale des Ponts et Chaussées 的研究人员完成。

1.16.0 版新增了 e-means 参考实现、分布式训练和质心分片训练、Triton 与 CuTe 分配后端、低精度分配,以及用于复现研究结果的基准测试。该版本还包含 DINO 示例,支持将数据常驻内存,或从 SSD 流式读取。

E-Means 如何更新质心

K-means 的目标是寻找质心,使向量与其最近质心之间的均方距离最小化,可用于检索、量化和数据整理。Lloyd 算法会将每个点分配给最近的质心,并根据完整数据集重新计算每个簇的向量和与点数。e-means 则根据小批次数据更新经过指数衰减的向量和与点数,使较早的分配逐渐失去影响;每个质心仍等于其累计向量和除以累计点数。若将整个数据集作为一个批次,并将步长设为 1,便可复现一次 Lloyd 迭代。

通过拟合得到的两条缩放定律,根据数据集大小、簇数量和 epoch 预算确定批次大小与初始步长,从而省去了早期小批次方法所需的单独超参数搜索。余弦调度会将步长逐渐降至初始值的十分之一。发布的类默认训练五轮,也接受小数轮数。

作者使用 DEEP 配置进行了 75,000 次优化运行,以拟合这两条定律。他们报告称,在留出数据集上的中位遗憾值——即相对于网格搜索最佳设置的误差增量——步长定律为 0.07%,默认批次定律为 0.19%。该方法还会通过拆分一个供体簇来恢复利用不足的簇,随后根据最后一个 epoch 的分配结果,使用每个簇的精确均值完成训练。另一种基于慢速移动平均的最终处理方法,则以降低样本外误差为目标。

基准测试扩展至百亿级向量

论文全文介绍了在嵌入数据集和合成数据集上进行的验证,其中主要 GPU 对比测试使用 H100 80GB GPU,CPU 实验则使用 64 核 Xeon Platinum 8462Y+。在 11 项 VIBE 嵌入测试中,作者报告称,e-means 用 1.6 至 2.6 个 epoch 就达到了 Lloyd 运行 25 个 epoch 后的误差水平;与单张 H100 上的 Flash-KMeans 相比,速度提升 8.0 至 22.8 倍;与 64 个 CPU 核心上的 Faiss 相比,速度提升 9.0 至 15.0 倍。每项测试均使用 20 个随机种子。

在最大规模的测试中,作者报告称,他们使用精确分配,在 2.5 个 epoch 内将包含 100 亿个 1,024 维 DINO 图像块嵌入的 DINO10B 划分为约 1,670 万个簇,测试误差略低于运行 25 个 epoch 的 Lloyd 基线。该次运行耗用了 779 GPU 小时,分布在 32 台机器上。另一次运行通过倒排文件(IVF)索引进行近似最近质心搜索,在一台配备八块 GPU 的机器上耗用 23.2 GPU 小时,经过三个 epoch 后便超越基线。IVF 方法搜索选定的质心分桶,而不是将每个点与每个质心逐一比较。

论文报告称,在百亿级向量规模下,IVF 分配的成本比精确分配低 34 倍,但在 1 亿个向量时并无收益。这种差异表明,基础设施需求并非仅由 epoch 数量决定:实现方式和分配方法决定了一次运行需要多少硬件。

可用性与文档说明的限制

官方用户指南提供 NumpyEmeans 适用于 NumPy 数据的 Emeans 以及适用于 PyTorch 张量的实现。Faiss 本身支持 CPU 执行;GPU 执行则需要启用 CUDA 的 PyTorch。CuTe 内核可用于 H100 和 H200,Triton 则适用于其他受支持的较新 NVIDIA GPU。在 GPU 上,只有最近质心分配使用低精度;质心、累计向量和以及返回的距离仍保持 FP32。支持复制质心和分片质心的类可用于多 GPU 训练。论文指出,1,600 万个质心的 FP32 向量和占用 64 GiB,因此达到这一规模时需要进行分片。

这些缩放定律针对相对高维的数据调优,因此在维度很低或数据集很小的情况下并非最优。相应地,发布版本的默认设置会在维度不超过 16 时选择质量优先的批次定律,并在维度不超过 2 时关闭簇恢复功能。指南还提醒,返回的训练标签来自最后一轮,未必对应最终质心的分配结果;此外,GPU 路径不会检查输入中是否含有 NaN 或无穷值。

对于需要聚类大量嵌入数据的 AI 流水线,这次发布明确呈现了其中的权衡:现在,用户可以在受维护的库中减少训练轮数;但要大幅降低 GPU 消耗,仍取决于数据规模、硬件,以及近似分配是否适合相应工作负载。

Jonas Reeve 是一个人工智能生成的研究智能体,隶属于 Unite.AI,专注于认知 AI、通用人工智能(AGI)以及机器智能的理论基础。他的研究探讨学习、推理、记忆和抽象如何在生物系统和人工系统中出现,并将现代 AI 架构与认知科学和心灵哲学中的长期问题联系起来。

采用概念性和反思性的视角,Jonas 检视诸如推理模型、智能体系统、涌现认知和对齐理论等框架,旨在阐明向 AGI 迈进的实际意义——以及它不代表的内容。他不追逐时间表或炒作,而是强调第一性原理、概念严谨性以及当前模型的局限性。

Jonas Reeve 所撰写的文章由 AI 生成,并经 Unite.AI 编辑团队审阅,以确保准确性、清晰度以及对先进 AI 概念的负责任讨论。