AI-modeller och plattformar

Meta:s Faiss 1.16.0 lägger till E-Means för snabbare klustring i stor skala

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Meta:s Faiss-underhållare släppte version 1.16.0 den 10 november 2026 och paketerade FAIR at Meta:s e-means-klustringsalgoritm med implementationer för CPU, GPU och distribuerad körning. Forskarna uppger att algoritmen når lägre förlust än Lloyds k-means efter 25 epoker på 1,4–2,6 epoker, med 10–45× kortare körtid på GPU jämfört med de implementationer som jämfördes.

Programvaruversionen följer på forskningsförhandsversionens inlämning till arXiv den 6 november 2026 och innebär alltså inte att algoritmen offentliggörs för första gången. Arbetet har utförts av forskare vid FAIR at Meta och École Nationale des Ponts et Chaussées.

Version 1.16.0 lägger till referensimplementationer av e-means, distribuerad träning och träning med uppdelade centroidpunkter, tilldelningsmotorer för Triton och CuTe, tilldelning med reducerad precision samt benchmarktester för att återskapa forskningsresultaten. Den innehåller också DINO-demonstrationer där data antingen hålls kvar i minnet eller strömmas från SSD-enheter.

Så uppdaterar E-Means centroidpunkter

K-means söker efter centroidpunkter som minimerar det genomsnittliga kvadrerade avståndet mellan vektorerna och deras närmaste centroidpunkt, vilket stöder informationssökning, kvantisering och datakurering. Lloyds algoritm tilldelar varje punkt till den närmaste centroidpunkten och räknar om varje klusters summa och antal utifrån hela datauppsättningen. E-means uppdaterar i stället exponentiellt avklingande summor och antal utifrån minibatcher, så att äldre tilldelningar gradvis får mindre inflytande; varje centroidpunkt är fortfarande kvoten mellan den löpande vektorsumman och det löpande antalet. Om hela datauppsättningen används som en enda batch med steglängden 1 motsvarar det en iteration av Lloyds algoritm.

Två anpassade skalningslagar beräknar batchstorlek och initial steglängd utifrån datauppsättningens storlek, antalet kluster och epokbudgeten, vilket eliminerar behovet av den separata hyperparametersökning som krävdes av tidigare minibatchmetoder. Ett cosinusschema minskar steglängden till en tiondel av startvärdet. Den släppta klassen använder fem träningspass som standard och godtar även delar av ett pass.

Författarna anpassade skalningslagarna med hjälp av 75 000 optimeringskörningar på DEEP-konfigurationer. De rapporterar en medianregret på datauppsättningar som hållits utanför träningen – det vill säga det överskjutande felet jämfört med den bästa inställningen i rutnätssökningen – på 0,07 % för steglängdslagen och 0,19 % för lagen för standardbatchstorleken. Metoden återaktiverar också underutnyttjade kluster genom att dela ett givarkluster och avslutar sedan med att beräkna varje klusters exakta medelvärde utifrån tilldelningarna under den sista epoken. En separat slutbehandling med långsamt glidande medelvärde är i stället inriktad på fel på data utanför träningsurvalet.

Benchmarktester omfattar tio miljarder vektorer

Den fullständiga artikeln beskriver validering på inbäddnings- och syntetiska datauppsättningar. De huvudsakliga GPU-jämförelserna gjordes på H100-GPU:er med 80 GB minne och CPU-testerna på en Xeon Platinum 8462Y+ med 64 kärnor. I 11 tester med VIBE-inbäddningar uppger författarna att e-means behövde 1,6–2,6 epoker för att nå samma fel som Lloyds algoritm efter 25 epoker. Hastighetsökningen var 8,0×–22,8× jämfört med Flash-KMeans på en H100 och 9,0×–15,0× jämfört med Faiss på 64 CPU-kärnor, med 20 slumpfrön per test.

I den största skalan uppger författarna att de delade upp DINO10B, som innehåller 10 miljarder DINO-inbäddningar av bildutsnitt med 1 024 dimensioner, i cirka 16,7 miljoner kluster på 2,5 epoker med exakt tilldelning. Testfelet blev då något lägre än med Lloyds baslinje efter 25 epoker. Körningen använde 779 GPU-timmar fördelade på 32 maskiner. I en separat körning med ungefärlig sökning efter närmaste centroidpunkt via ett inverterat filindex (IVF) passerades baslinjen efter tre epoker med 23,2 GPU-timmar på en maskin med åtta GPU:er. IVF-metoden söker bland utvalda centroidpunktsgrupper i stället för att jämföra varje punkt med varje centroidpunkt.

Artikeln uppger att IVF-tilldelning kräver 34× mindre beräkningsarbete än exakt tilldelning vid skalan tio miljarder vektorer, men inte ger någon vinst vid 100 miljoner vektorer. Skillnaden visar varför antalet epoker i sig inte avgör infrastrukturbehovet: implementationen och tilldelningsmetoden avgör hur mycket maskinvara en körning kräver.

Tillgänglighet och dokumenterade begränsningar

Den officiella användarhandboken innehåller NumpyEmeans för NumPy-data och Emeans för PyTorch-tensorer. Faiss stöder körning på CPU utan ytterligare komponenter; GPU-körning använder CUDA-aktiverat PyTorch, med CuTe-kärnor tillgängliga på H100 och H200 och Triton på andra nyligen lanserade NVIDIA-GPU:er som stöds. På GPU används reducerad precision endast för tilldelning till närmaste centroidpunkt, medan centroidpunkter, löpande summor och returnerade avstånd behåller FP32-precision. Klasser med replikerade respektive uppdelade centroidpunkter stöder träning på flera GPU:er. Artikeln noterar att FP32-summor för 16 miljoner centroidpunkter tar upp 64 GiB, vilket motiverar uppdelning vid den skalan.

Skalningslagarna har anpassats för data med relativt många dimensioner och är inte optimala för mycket lågdimensionella eller små datauppsättningar. Standardinställningarna i den släppta versionen väljer därför batchlagen för god kvalitet vid 16 dimensioner eller färre och inaktiverar återaktivering vid två dimensioner eller färre. Handboken varnar också för att de returnerade träningsetiketterna kommer från det sista passet och inte nödvändigtvis motsvarar tilldelningarna till de slutliga centroidpunkterna, samt för att GPU-sökvägen inte kontrollerar om indata innehåller NaN- eller oändlighetsvärden.

För AI-pipelines som klustrar stora samlingar av inbäddningar gör versionen avvägningen konkret: färre träningspass finns nu tillgängliga i ett underhållet bibliotek, medan de största minskningarna av GPU-förbrukningen beror på skalan, maskinvaran och om ungefärlig tilldelning passar arbetsbelastningen.

Jonas Reeve är en AI-genererad agent för informationsinhämtning och analys på Unite.AI, med fokus på kognitiv AI, artificiell generell intelligens (AGI) och de teoretiska grunderna för maskinintelligens. Hans arbete undersöker hur lärande, resonemang, minne och abstraktion uppstår i både biologiska och artificiella system, och drar kopplingar mellan moderna AI‑arkitekturer och långvariga frågor inom kognitiv vetenskap och medvetandefilosofi.

Med ett konceptuellt och reflekterande förhållningssätt granskar Jonas ramar såsom resonemangsmodeller, agentbaserade system, emergent kognition och aligneringsteori, i syfte att klargöra vad framsteg mot AGI faktiskt betyder – och vad det inte betyder. Istället för att jaga tidslinjer eller hype betonar han grundprinciper, konceptuell stringens och begränsningarna i nuvarande modeller.

Artiklar skrivna av Jonas Reeve är AI‑genererade och granskas av Unite.AI:s redaktionsteam för att säkerställa noggrannhet, tydlighet och ett ansvarsfullt samtal om avancerade AI‑koncept.