Modele și platforme AI
Faiss 1.16.0 de la Meta adaugă E-Means pentru o grupare mai rapidă la scară largă

Responsabilii de mentenanță ai Faiss de la Meta au lansat versiunea 1.16.0 pe 10 noiembrie 2026, incluzând algoritmul de grupare e-means al FAIR de la Meta, cu implementări pentru CPU, GPU și sisteme distribuite. Cercetătorii raportează că au obținut o pierdere mai mică decât k-means-ul lui Lloyd după 25 de epoci în 1,4–2,6 epoci, cu accelerări de 10–45× ale timpului efectiv de execuție pe GPU față de implementările comparate.
Lansarea software-ului urmează publicării preprintului cercetării pe arXiv din 6 noiembrie 2026, fără să marcheze prima dezvăluire publică a algoritmului. Lucrarea este realizată de cercetători de la FAIR, divizia de cercetare a Meta, și de la École Nationale des Ponts et Chaussées.
Versiunea 1.16.0 adaugă implementări de referință pentru e-means, antrenare distribuită și cu centroizi fragmentați, backenduri Triton și CuTe pentru atribuire, atribuire cu precizie redusă și teste de performanță pentru reproducerea rezultatelor cercetării. Include și demonstrații DINO în care datele sunt păstrate în memorie sau sunt citite în flux de pe SSD-uri.
Cum actualizează E-Means centroizii
K-means urmărește să găsească centroizi care minimizează distanța pătratică medie dintre vectori și cel mai apropiat centroid, sprijinind regăsirea informațiilor, cuantizarea și selecția datelor. Algoritmul lui Lloyd atribuie fiecare punct celui mai apropiat centroid și recalculează suma și numărul de puncte pentru fiecare grup folosind întregul set de date. În schimb, e-means actualizează sumele și numărătorile cu decădere exponențială pe baza unor mini-loturi, astfel încât atribuțiile mai vechi își pierd treptat influența; fiecare centroid rămâne raportul dintre suma vectorilor acumulată și numărătoarea acumulată. Folosirea întregului set de date ca un singur lot, cu un pas de 1, reproduce o iterație Lloyd.
Două legi de scalare ajustate determină dimensiunea lotului și dimensiunea inițială a pasului în funcție de dimensiunea setului de date, numărul de grupuri și bugetul de epoci, eliminând explorarea separată a hiperparametrilor necesară în abordările anterioare bazate pe mini-loturi. Un program cosinusoidal reduce pasul la o zecime din valoarea inițială. Clasa lansată are implicit cinci treceri de antrenare și acceptă și treceri fracționare.
Autorii au ajustat legile folosind 75.000 de rulări de optimizare pe configurații DEEP. Ei raportează o valoare mediană a regretului pe seturile de date de testare, adică eroarea în exces față de cea mai bună configurație din grilă, de 0,07% pentru legea pasului și de 0,19% pentru legea implicită a dimensiunii lotului. Metoda reactivează și grupurile insuficient utilizate, împărțind un grup donator, apoi încheie calculând media exactă pentru fiecare grup pe baza atribuirilor din ultima epocă. O etapă finală separată, bazată pe o medie mobilă lentă, urmărește în schimb reducerea erorii pe date din afara eșantionului.
Testele de performanță ajung la zece miliarde de vectori
Lucrarea integrală descrie validarea pe seturi de date cu reprezentări vectoriale și pe seturi sintetice; comparațiile principale pe GPU au fost realizate cu GPU-uri H100 de 80 GB, iar experimentele pe CPU, cu un Xeon Platinum 8462Y+ cu 64 de nuclee. În 11 teste VIBE cu reprezentări vectoriale, autorii raportează că e-means a avut nevoie de 1,6–2,6 epoci pentru a ajunge la eroarea obținută de Lloyd în 25 de epoci, cu accelerări de 8,0×–22,8× față de Flash-KMeans pe un H100 și de 9,0×–15,0× față de Faiss pe 64 de nuclee CPU, folosind 20 de semințe pentru fiecare test.
La cea mai mare scară, autorii raportează că au împărțit DINO10B, care conține 10 miliarde de reprezentări vectoriale ale fragmentelor DINO, fiecare cu 1.024 de dimensiuni, în aproximativ 16,7 milioane de grupuri, în 2,5 epoci, folosind atribuirea exactă; rezultatul a avut o eroare de testare ușor mai mică decât reperul Lloyd de 25 de epoci. Rularea a folosit 779 de ore-GPU pe 32 de mașini. O rulare separată, care a folosit căutarea aproximativă a celui mai apropiat centroid printr-un index cu fișier inversat (IVF), a depășit reperul după trei epoci, folosind 23,2 ore-GPU pe o singură mașină cu opt GPU-uri. Abordarea IVF caută în grupuri selectate de centroizi, în loc să compare fiecare punct cu fiecare centroid.
Lucrarea raportează că, la scara de zece miliarde de vectori, atribuirea IVF este de 34× mai ieftină decât atribuirea exactă, dar nu aduce niciun câștig la 100 de milioane de vectori. Această diferență arată de ce numărul de epoci, luat singur, nu determină cerințele de infrastructură: implementarea și metoda de atribuire stabilesc de cât hardware are nevoie o rulare.
Disponibilitate și limite documentate
Ghidul oficial de utilizare oferă NumpyEmeans pentru date NumPy și Emeans pentru tensorii PyTorch. Doar Faiss acceptă execuția pe CPU; execuția pe GPU folosește PyTorch cu suport CUDA, cu nuclee CuTe disponibile pe H100 și H200, iar Triton, pe alte GPU-uri NVIDIA recente și compatibile. Doar atribuirea celui mai apropiat centroid folosește precizie redusă pe GPU, în timp ce centroizii, sumele acumulate și distanțele returnate rămân în FP32. Clasele cu centroizi replicați și cu centroizi fragmentați acceptă antrenarea pe mai multe GPU-uri; lucrarea precizează că sumele FP32 pentru 16 milioane de centroizi ocupă 64 GiB, ceea ce justifică fragmentarea la această scară.
Legile de scalare au fost ajustate pentru date cu dimensionalitate relativ mare și nu sunt optime pentru seturi de date cu dimensionalitate foarte mică sau foarte mici. Prin urmare, valorile implicite din versiunea lansată aleg legea de calitate pentru dimensiunea lotului la 16 dimensiuni sau mai puțin și dezactivează reactivarea la două dimensiuni sau mai puțin. Ghidul avertizează, de asemenea, că etichetele de antrenare returnate provin din ultima trecere și nu corespund neapărat atribuirilor la centroizii finali și că procesarea pe GPU nu verifică dacă intrările conțin valori NaN sau infinite.
Pentru fluxurile de lucru AI care grupează colecții mari de reprezentări vectoriale, lansarea face concret compromisul: sunt disponibile mai puține treceri de antrenare într-o bibliotecă întreținută, în timp ce cele mai mari reduceri ale consumului de GPU depind de scară, hardware și de măsura în care atribuirea aproximativă se potrivește sarcinii.












