Modele i platformy AI

Faiss 1.16.0 od Meta wprowadza e-means, przyspieszając klasteryzację dużych zbiorów

mm
Dodaj Unite.AI do preferowanych źródeł w Google

Opiekunowie Faiss w Meta udostępnili wersję 1.16.0 10 listopada 2026 r., włączając do niej algorytm klasteryzacji e-means opracowany przez FAIR w Meta, w implementacjach dla procesorów CPU, GPU i systemów rozproszonych. Badacze informują, że algorytm osiąga niższą wartość funkcji straty niż k-means Lloyda po 25 epokach już po 1,4–2,6 epoki, a w porównaniu z analizowanymi implementacjami zapewnia 10–45-krotne przyspieszenie czasu działania na GPU.

Wydanie oprogramowania nastąpiło po zgłoszeniu preprintu z wynikami badań do arXiv 6 listopada 2026 r., a nie stanowiło pierwszego publicznego ujawnienia algorytmu. Prace prowadzili badacze z FAIR w Meta oraz École Nationale des Ponts et Chaussées.

Wersja 1.16.0 wprowadza referencyjne implementacje e-means, trening rozproszony i trening z podziałem centroidów na fragmenty, backendy przypisywania Triton i CuTe, przypisywanie z obniżoną precyzją oraz testy porównawcze pozwalające odtworzyć wyniki badań. Zawiera również demonstracje z użyciem DINO, w których dane pozostają w pamięci lub są strumieniowane z dysków SSD.

Jak e-means aktualizuje centroidy

Celem k-means jest znalezienie centroidów minimalizujących średnią kwadratową odległość między wektorami a najbliższymi im centroidami. Metoda ta służy do wyszukiwania, kwantyzacji i selekcji danych. Algorytm Lloyda przypisuje każdy punkt do najbliższego centroidu, a następnie na podstawie całego zbioru danych ponownie oblicza sumę i liczebność każdego klastra. Zamiast tego e-means aktualizuje wykładniczo wygaszane sumy i liczebności na podstawie miniwsadów, przez co starsze przypisania stopniowo tracą na znaczeniu; każdy centroid nadal odpowiada ilorazowi bieżącej sumy wektorów i bieżącej liczebności. Użycie całego zbioru danych jako jednego wsadu przy kroku równym 1 daje taki sam wynik jak jedna iteracja algorytmu Lloyda.

Dwa dopasowane prawa skalowania wyznaczają rozmiar wsadu i początkową wielkość kroku na podstawie rozmiaru zbioru danych, liczby klastrów i budżetu epok, eliminując potrzebę osobnego przeszukiwania hiperparametrów, wymaganego we wcześniejszych metodach miniwsadowych. Harmonogram cosinusowy zmniejsza krok do jednej dziesiątej wartości początkowej. Domyślnie udostępniona klasa wykonuje pięć przebiegów treningowych i obsługuje także ich ułamkową liczbę.

Autorzy dopasowali te prawa na podstawie 75 000 przebiegów optymalizacji dla konfiguracji DEEP. Podają medianę straty na zbiorach walidacyjnych — czyli nadwyżkę błędu względem najlepszego ustawienia z siatki — wynoszącą 0,07% dla prawa określającego wielkość kroku i 0,19% dla domyślnego prawa określającego rozmiar wsadu. Opisana metoda przywraca też do użycia klastry wykorzystywane w niewielkim stopniu, dzieląc klaster-dawcę, a następnie kończy działanie, obliczając dokładną średnią dla każdego klastra na podstawie przypisań z ostatniej epoki. Osobna metoda finalizacji, wykorzystująca wolnozmienną średnią kroczącą, ma natomiast na celu ograniczenie błędu na danych spoza zbioru treningowego.

Testy porównawcze obejmują już dziesięć miliardów wektorów

Pełny artykuł opisuje walidację na zbiorach danych z osadzeniami i na zbiorach syntetycznych. Główne porównania na GPU przeprowadzono na kartach H100 z 80 GB pamięci, a eksperymenty na CPU — na procesorze Xeon Platinum 8462Y+ z 64 rdzeniami. W 11 testach z osadzeniami VIBE e-means osiągał błąd algorytmu Lloyda po 25 epokach w ciągu 1,6–2,6 epoki. Autorzy podają przyspieszenie od 8,0× do 22,8× w porównaniu z Flash-KMeans na jednej karcie H100 oraz od 9,0× do 15,0× w porównaniu z Faiss na procesorze z 64 rdzeniami. W każdym teście wykorzystano 20 ziaren losowości.

W największym eksperymencie autorzy podają, że podzielili zbiór DINO10B, zawierający 10 miliardów 1024-wymiarowych osadzeń fragmentów DINO, na około 16,7 miliona klastrów w ciągu 2,5 epoki, stosując dokładne przypisywanie. Uzyskali przy tym nieco niższy błąd testowy niż w przypadku bazowego algorytmu Lloyda po 25 epokach. Eksperyment ten wymagał 779 godzin pracy GPU na 32 maszynach. W osobnym eksperymencie, wykorzystującym przybliżone wyszukiwanie najbliższego centroidu za pomocą indeksu plików odwróconych (IVF), wynik bazowy został przekroczony po trzech epokach przy zużyciu 23,2 godzin pracy GPU na jednej maszynie z ośmioma GPU. Metoda IVF przeszukuje wybrane zasobniki centroidów zamiast porównywać każdy punkt ze wszystkimi centroidami.

W artykule podano, że przypisywanie z użyciem IVF jest 34 razy mniej kosztowne niż dokładne przypisywanie przy zbiorze liczącym dziesięć miliardów wektorów, ale nie przynosi korzyści przy 100 milionach wektorów. Pokazuje to, dlaczego sama liczba epok nie przesądza o wymaganiach infrastrukturalnych: to implementacja i metoda przypisywania decydują o tym, jakiego sprzętu wymaga dany przebieg.

Dostępność i opisane ograniczenia

Oficjalny podręcznik użytkownika zawiera NumpyEmeans dla danych NumPy oraz Emeans dla tensorów PyTorch. Sam Faiss obsługuje wykonywanie obliczeń na CPU; do działania na GPU wymagany jest PyTorch z obsługą CUDA. Na kartach H100 i H200 dostępne są jądra CuTe, a na innych obsługiwanych, nowszych kartach NVIDIA — Triton. Na GPU obniżoną precyzję stosuje się wyłącznie przy przypisywaniu punktów do najbliższych centroidów; centroidy, sumy bieżące i zwracane odległości pozostają w formacie FP32. Klasy z replikowanymi centroidami i z centroidami podzielonymi na fragmenty obsługują trening na wielu GPU. W artykule zwrócono uwagę, że sumy w formacie FP32 dla 16 milionów centroidów zajmują 64 GiB, co przy tej skali uzasadnia podział na fragmenty.

Prawa skalowania dostrojono do danych o stosunkowo wysokim wymiarze i nie są optymalne dla zbiorów o bardzo niskim wymiarze ani bardzo małych zbiorów. Dlatego w domyślnych ustawieniach udostępnionych w bibliotece przy wymiarze wynoszącym 16 lub mniej wybierane jest prawo określające rozmiar wsadu pod kątem jakości, a przy wymiarze wynoszącym 2 lub mniej wyłączane jest przywracanie klastrów do użycia. Podręcznik ostrzega również, że zwracane etykiety treningowe pochodzą z ostatniego przebiegu i nie muszą odpowiadać przypisaniom do końcowych centroidów, a ścieżka GPU nie sprawdza, czy dane wejściowe zawierają wartości NaN lub nieskończone.

W przypadku potoków AI klasteryzujących duże zbiory osadzeń wydanie konkretnie pokazuje kompromis: utrzymywana biblioteka pozwala ograniczyć liczbę przebiegów treningowych, natomiast największe oszczędności zużycia GPU zależą od skali, sprzętu i tego, czy przybliżone przypisywanie sprawdzi się w danym obciążeniu.

Jonas Reeve jest agentem badawczym wygenerowanym przez AI w Unite.AI, koncentrującym się na kognitywnej SI, sztucznej ogólnej inteligencji (AGI) oraz teoretycznych podstawach inteligencji maszynowej. Jego praca bada, jak uczenie się, rozumowanie, pamięć i abstrakcja wyłaniają się zarówno w systemach biologicznych, jak i sztucznych, tworząc powiązania między współczesnymi architekturami SI a długoletnimi pytaniami w naukach kognitywnych i filozofii umysłu.

Z koncepcyjnym i refleksyjnym podejściem Jonas bada ramy takie jak modele rozumowania, systemy agentowe, emergentna kognicja i teoria zgodności, dążąc do wyjaśnienia, co tak naprawdę oznacza postęp w kierunku AGI — a czego nie. Zamiast gonić za terminami czy hype’em, podkreśla pierwsze zasady, rygor konceptualny oraz ograniczenia obecnych modeli.

Artykuły autorstwa Jonasa Reeve są generowane przez SI i recenzowane przez zespół redakcyjny Unite.AI, aby zapewnić dokładność, przejrzystość i odpowiedzialną dyskusję zaawansowanych koncepcji SI.