APIUp to 28% cheaper than official pricesTry the API →
Hermes
Back to News

Meta's e-means Beats 25-Pass Clustering in Just 3 Passes at 45x Speedup

Meta FAIR released e-means , an EMA-based mini-batch replacement for Lloyd's k-means. Matches Lloyd's 25-epoch loss in 1.2-3 epochs, giving 10-45x GPU wall-clock speedups. Clustered DINO10B (10B embeddings) into 16M clusters in just 2.5 epochs.

Meta's e-means Beats 25-Pass Clustering in Just 3 Passes at 45x Speedup
Source
AlphaSignal
Published
Author
AlphaSignal
Read
2 min read

Takeaways

  • Meta FAIR released e-means , an EMA-based mini-batch replacement for Lloyd's k-means.
  • Matches Lloyd's 25-epoch loss in 1.2-3 epochs, giving 10-45x GPU wall-clock speedups.
  • Clustered DINO10B (10B embeddings) into 16M clusters in just 2.5 epochs.
  • Scaling laws auto-set batch and step from (n, k, T), no hyperparameter sweeps needed.
  • Proportional-split revival cuts dead clusters from 26% to 0.3% of the codebook.
  • Code shipped in faiss/contrib/e_means with fused GPU kernels.

Meta FAIR researchers have released e-means , a mini-batch clustering method that combines exponential moving average updates, dead-cluster revival, fitted hyperparameter rules, and fused GPU kernels. Across the paper’s benchmarks , it matches or beats the test loss of Lloyd’s algorithm after 25 epochs using 1.2 to 3 epochs. One epoch represents a full pass over the dataset, although e-means updates centroids from mini-batches.

The implementation is available in the Faiss repository . Reported wall-clock gains range from 10–45× on GPUs and 8–15× on CPUs when measured against the Lloyd baseline at the target loss.

MeasureResult
Epochs to beat 25-epoch Lloyd loss1.2–3
GPU wall-clock speedup10–45×
CPU wall-clock speedup8–15×
Largest reported run10 billion vectors, 16 million clusters

The cost hides in repeated assignments

K-means partitions vectors into k groups by minimizing the average squared distance between each vector and its assigned centroid. Lloyd’s algorithm, circulated at Bell Labs in 1957, performs two operations per iteration: it assigns every vector to its nearest centroid, then recomputes each centroid as the exact mean of its assigned vectors. Lower loss indicates tighter clusters.

Every Lloyd iteration processes all n vectors, so repeated nearest-centroid assignments dominate runtime on large embedding sets. Mini-batch methods reduce the work per update by processing subsets of the data, but widely used implementations still rely on MacQueen’s 1967 running-average rule, which gives early assignments a lasting influence.

Mini-batch clustering can also produce dead clusters. A centroid that receives no assignments cannot update from the current batch and may remain unused, reducing the effective codebook size. That loss of capacity becomes costly when a quantizer contains millions of centroids.

Reporting is indexed from AlphaSignal. Rights remain with the original publisher and cited sources.

Read original report

Sources

  1. 01arxiv.org
  2. 02e-means.github.io
  3. 03github.com