AI-modeller og plattformer
Meta’s Faiss 1.16.0 introduserer E-Means for raskere storskala klyngedannelse

Vedlikeholderne av Faiss hos Meta lanserte versjon 1.16.0 10. november 2026. Utgivelsen inkluderer FAIR hos Metas e-means-algoritme for klyngedannelse, med implementasjoner for CPU, GPU og distribuert kjøring. Forskerne rapporterer at algoritmen oppnår lavere tapsverdi enn Lloyds k-means etter 25 epoker allerede etter 1,4–2,6 epoker, med 10–45× høyere hastighet målt i faktisk kjøretid på GPU enn de sammenlignede implementasjonene.
Programvareutgivelsen kom etter at forskningsfortrykket ble sendt inn til arXiv 6. november 2026, og er altså ikke algoritmens første offentlige omtale. Arbeidet er utført av forskere ved FAIR hos Meta og École Nationale des Ponts et Chaussées.
Versjon 1.16.0 inneholder referanseimplementasjoner av e-means, distribuert trening og trening med oppdelte sentroider, Triton- og CuTe-bakender for tilordning, tilordning med redusert presisjon og referansetester for å gjenskape forskningsresultatene. Den omfatter også DINO-demonstrasjoner der dataene enten holdes i minnet eller strømmes fra SSD-er.
Slik oppdaterer E-Means sentroidene
K-means søker etter sentroider som minimerer den gjennomsnittlige kvadrerte avstanden mellom vektorene og den nærmeste sentroiden. Dette støtter gjenfinning, kvantisering og datakuratering. Lloyds algoritme tilordner hvert punkt til den nærmeste sentroiden og beregner summen og antallet for hver klynge på nytt ut fra hele datasettet. E-means oppdaterer i stedet eksponentielt avtagende summer og antall basert på minibatcher, slik at eldre tilordninger gradvis får mindre innflytelse. Hver sentroide er fortsatt forholdet mellom den løpende vektorsummen og det løpende antallet. Bruk av hele datasettet som én batch med et steg på 1 gjenskaper én iterasjon av Lloyds algoritme.
To tilpassede skaleringslover beregner batchstørrelse og innledende stegstørrelse ut fra datasettets størrelse, antallet klynger og epokebudsjettet. Dermed slipper man det separate søket etter hyperparametere som tidligere minibatchmetoder krevde. En cosinusplan reduserer steget til en tidel av startverdien. Klassen i utgivelsen bruker fem treningsgjennomløp som standard og godtar brøkdeler av gjennomløp.
Forfatterne tilpasset skaleringslovene ved hjelp av 75 000 optimaliseringskjøringer med DEEP-konfigurasjoner. De rapporterer en median regret på holdout-datasett – det vil si den overskytende feilen sammenlignet med den beste innstillingen i rutenettet – på 0,07 % for stegloven og 0,19 % for standardloven for batchstørrelse. Metoden gjenoppliver også underbrukte klynger ved å dele en donorklynge, og avslutter deretter med å beregne det eksakte gjennomsnittet for hver klynge ut fra tilordningene i den siste epoken. En separat sluttføring med glidende gjennomsnitt som endres langsomt, retter seg i stedet mot feil på nye data.
Referansetester skalerer opp til ti milliarder vektorer
Hele artikkelen beskriver validering på innebyggingsdatasett og syntetiske datasett. De viktigste GPU-sammenligningene ble utført på H100-GPU-er med 80 GB, mens CPU-eksperimentene brukte en Xeon Platinum 8462Y+ med 64 kjerner. I 11 tester med VIBE-innebygginger rapporterer forfatterne at e-means trengte 1,6–2,6 epoker for å nå feilnivået til Lloyds 25-epokerskjøring. Hastighetsøkningen var 8,0×–22,8× sammenlignet med Flash-KMeans på én H100 og 9,0×–15,0× sammenlignet med Faiss på 64 CPU-kjerner, med 20 tilfeldige frø per test.
I den største skalaen rapporterer forfatterne at de fordelte DINO10B – som inneholder 10 milliarder DINO-innebygginger av bildekartlapper med 1 024 dimensjoner – på omtrent 16,7 millioner klynger på 2,5 epoker med eksakt tilordning. Testfeilen ble dermed litt lavere enn med Lloyds referansemetode på 25 epoker. Kjøringen brukte 779 GPU-timer fordelt på 32 maskiner. I en separat kjøring med omtrentlig søk etter nærmeste sentroide via en invertert filindeks (IVF) ble referansemetoden slått etter tre epoker, med et forbruk på 23,2 GPU-timer på én maskin med åtte GPU-er. IVF-metoden søker i utvalgte bøtter med sentroider i stedet for å sammenligne hvert punkt med hver sentroide.
Artikkelen rapporterer at IVF-tilordning er 34× mindre ressurskrevende enn eksakt tilordning når datasettet har ti milliarder vektorer, men ikke gir noen gevinst ved 100 millioner vektorer. Denne forskjellen viser hvorfor antallet epoker alene ikke avgjør infrastrukturbehovet: Implementasjonen og tilordningsmetoden bestemmer hvor mye maskinvare en kjøring trenger.
Tilgjengelighet og dokumenterte begrensninger
Den offisielle brukerveiledningen inneholder NumpyEmeans for NumPy-data og Emeans for PyTorch-tensorer. Faiss alene støtter kjøring på CPU; kjøring på GPU krever CUDA-aktivert PyTorch. CuTe-kjerner er tilgjengelige på H100 og H200, mens Triton støttes på andre nyere NVIDIA-GPU-er. Bare tilordning til nærmeste sentroide bruker redusert presisjon på GPU, mens sentroidene, de løpende summene og de returnerte avstandene fortsatt er i FP32. Klasser med replikerte og oppdelte sentroider støtter trening på flere GPU-er. Artikkelen påpeker at FP32-summer for 16 millioner sentroider opptar 64 GiB, noe som gjør oppdeling nødvendig i denne skalaen.
Skaleringslovene er tilpasset relativt høy-dimensjonale data og er ikke optimale for svært lav-dimensjonale eller små datasett. Standardinnstillingene i utgivelsen velger derfor kvalitetsloven for batchstørrelse ved 16 dimensjoner eller færre og deaktiverer gjenoppliving ved to dimensjoner eller færre. Veiledningen advarer også om at de returnerte treningsetikettene stammer fra det siste gjennomløpet og ikke nødvendigvis tilsvarer tilordninger til de endelige sentroidene, og at GPU-banen ikke kontrollerer om inndata inneholder NaN- eller uendelige verdier.
For KI-pipelines som grupperer store samlinger av innebygginger konkretiserer utgivelsen avveiningen: Et vedlikeholdt bibliotek gjør det mulig å bruke færre treningsgjennomløp, mens de største reduksjonene i GPU-forbruk avhenger av skalaen, maskinvaren og om omtrentlig tilordning passer til arbeidsmengden.












