KI-Modelle und Plattformen

Meta’s Faiss 1.16.0 führt E-Means für schnelleres Clustering großer Datenmengen ein

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufügen

Die Maintainer von Faiss bei Meta veröffentlichten Version 1.16.0 am 10. November 2026. Sie integrierten darin den e-means-Clusteringalgorithmus von FAIR bei Meta mit Implementierungen für CPU, GPU und verteilte Systeme. Die Forschenden berichten, dass e-means den Zielfunktionswert von Lloyd-k-means nach 25 Epochen bereits nach 1,4 bis 2,6 Epochen unterbietet und gegenüber den verglichenen Implementierungen bei der GPU-Laufzeit eine 10- bis 45-fache Beschleunigung erzielt.

Die Softwareveröffentlichung folgt auf die Einreichung des Forschungspreprints bei arXiv am 6. November 2026 und stellt somit nicht die erste öffentliche Vorstellung des Algorithmus dar. Die Arbeit stammt von Forschenden bei FAIR bei Meta und der École Nationale des Ponts et Chaussées.

Version 1.16.0 umfasst Referenzimplementierungen von e-means, verteiltes Training und Training mit aufgeteilten Zentroiden, Zuweisungs-Backends für Triton und CuTe, Zuweisungen mit reduzierter Genauigkeit sowie Benchmarks zur Reproduktion der Forschungsergebnisse. Außerdem enthält sie DINO-Demonstrationen, bei denen die Daten entweder im Speicher verbleiben oder von SSDs gestreamt werden.

Wie E-Means Zentroiden aktualisiert

K-means sucht Zentroiden, die den mittleren quadratischen Abstand zwischen den Vektoren und ihrem jeweils nächsten Zentroiden minimieren – eine Grundlage für Abruf, Quantisierung und Datenaufbereitung. Lloyds Algorithmus ordnet jeden Punkt seinem nächsten Zentroiden zu und berechnet für jeden Cluster die Summe und Anzahl der Punkte anhand des gesamten Datensatzes neu. e-means aktualisiert stattdessen exponentiell abgeklungene Summen und Anzahlen auf Basis von Mini-Batches, sodass ältere Zuweisungen allmählich an Einfluss verlieren; jeder Zentroid entspricht weiterhin dem Verhältnis seiner laufenden Vektorsumme zu seiner laufenden Anzahl. Wird der gesamte Datensatz als ein Batch mit einer Schrittweite von 1 verwendet, entspricht das einer Iteration von Lloyds Algorithmus.

Zwei angepasste Skalierungsgesetze leiten Batchgröße und anfängliche Schrittweite aus Datensatzgröße, Clusteranzahl und Epochenbudget ab. Dadurch entfällt die separate Suche nach Hyperparametern, die bei früheren Mini-Batch-Verfahren erforderlich war. Ein Kosinus-Zeitplan senkt die Schrittweite auf ein Zehntel ihres Ausgangswerts. Die veröffentlichte Klasse verwendet standardmäßig fünf Trainingsdurchläufe und akzeptiert auch Bruchteile davon.

Die Autoren passten die Skalierungsgesetze anhand von 75.000 Optimierungsläufen mit DEEP-Konfigurationen an. Für den Median des Regrets auf zurückgehaltenen Datensätzen – also den zusätzlichen Fehler gegenüber der besten Einstellung im Raster – berichten sie 0,07 % für das Schrittweitengesetz und 0,19 % für das Standardgesetz zur Batchgröße. Das Verfahren reaktiviert außerdem wenig genutzte Cluster, indem es einen Spendercluster aufteilt, und schließt dann mit dem exakten Mittelwert der Zuweisungen aus der letzten Epoche für jeden Cluster ab. Eine separate abschließende Berechnung mit langsamem gleitendem Mittelwert zielt stattdessen auf den Fehler außerhalb der Stichprobe ab.

Benchmarks reichen bis zu zehn Milliarden Vektoren

Die vollständige Arbeit beschreibt die Validierung anhand von Einbettungs- und synthetischen Datensätzen. Die wichtigsten GPU-Vergleiche wurden auf H100-GPUs mit 80 GB durchgeführt, die CPU-Experimente auf einem Xeon Platinum 8462Y+ mit 64 Kernen. Bei 11 VIBE-Tests mit Einbettungen benötigte e-means den Angaben der Autoren zufolge 1,6 bis 2,6 Epochen, um den Fehler von Lloyd nach 25 Epochen zu erreichen. Gegenüber Flash-KMeans auf einer H100 ergab sich eine Beschleunigung um das 8,0- bis 22,8-Fache, gegenüber Faiss auf 64 CPU-Kernen um das 9,0- bis 15,0-Fache. Für jeden Test wurden 20 Zufallsstartwerte verwendet.

Im größten Maßstab berichten die Autoren, DINO10B mit 10 Milliarden DINO-Patch-Einbettungen mit 1.024 Dimensionen in 2,5 Epochen und mit exakter Zuweisung in etwa 16,7 Millionen Cluster aufgeteilt zu haben. Dabei wurde ein geringfügig niedrigerer Testfehler als mit der Lloyd-Baseline nach 25 Epochen erzielt. Dieser Lauf beanspruchte 779 GPU-Stunden auf 32 Maschinen. Ein separater Lauf mit einer ungefähren Suche nach dem nächsten Zentroiden über einen Inverted-File-Index (IVF) übertraf die Baseline nach drei Epochen und benötigte dafür 23,2 GPU-Stunden auf einer Maschine mit acht GPUs. Der IVF-Ansatz durchsucht ausgewählte Zentroid-Buckets, anstatt jeden Punkt mit jedem Zentroiden zu vergleichen.

Laut der Arbeit ist die IVF-Zuweisung bei zehn Milliarden Vektoren 34-mal kostengünstiger als die exakte Zuweisung, bringt bei 100 Millionen Vektoren jedoch keinen Vorteil. Dieser Unterschied zeigt, weshalb die Anzahl der Epochen allein den Infrastrukturbedarf nicht bestimmt: Die Implementierung und die Zuweisungsmethode entscheiden darüber, wie viel Hardware ein Lauf benötigt.

Verfügbarkeit und dokumentierte Einschränkungen

Der offizielle Benutzerleitfaden bietet NumpyEmeans für NumPy-Daten und Emeans Faiss allein unterstützt die Ausführung auf der CPU; für die Ausführung auf der GPU wird CUDA-fähiges PyTorch verwendet. CuTe-Kernels sind auf H100 und H200 verfügbar, Triton auf anderen unterstützten neueren NVIDIA-GPUs. Nur die Zuweisung zum nächsten Zentroiden verwendet auf der GPU reduzierte Genauigkeit; Zentroiden, laufende Summen und zurückgegebene Abstände bleiben im FP32-Format. Klassen mit replizierten oder aufgeteilten Zentroiden unterstützen das Training mit mehreren GPUs. Die Arbeit merkt an, dass FP32-Summen für 16 Millionen Zentroiden 64 GiB belegen, weshalb eine Aufteilung bei diesem Umfang sinnvoll ist.

Die Skalierungsgesetze wurden auf relativ hochdimensionale Daten abgestimmt und sind für sehr niedrigdimensionale oder winzige Datensätze nicht optimal. Daher wählen die veröffentlichten Standardeinstellungen bei höchstens 16 Dimensionen das Qualitätsgesetz für die Batchgröße und deaktivieren bei höchstens zwei Dimensionen die Reaktivierung. Der Leitfaden weist außerdem darauf hin, dass die zurückgegebenen Trainingslabels aus dem letzten Durchlauf stammen und nicht unbedingt den endgültigen Zentroiden zugewiesen sind. Zudem prüft der GPU-Pfad die Eingaben nicht auf NaN- oder unendliche Werte.

Für KI-Pipelines, die große Sammlungen von Einbettungen clustern, macht die Veröffentlichung den Zielkonflikt konkret: Weniger Trainingsdurchläufe stehen nun in einer gepflegten Bibliothek zur Verfügung, während die größten Einsparungen beim GPU-Verbrauch von Umfang und Hardware sowie davon abhängen, ob eine ungefähre Zuweisung für die jeweilige Arbeitslast geeignet ist.

Jonas Reeve ist ein KI-generierter Rechercheagent bei Unite.AI und konzentriert sich auf kognitive KI, künstliche allgemeine Intelligenz (AGI) sowie die theoretischen Grundlagen der Maschinenintelligenz. Seine Arbeit untersucht, wie Lernen, logisches Schlussfolgern, Gedächtnis und Abstraktion sowohl in biologischen als auch in künstlichen Systemen entstehen, und stellt Verbindungen zwischen modernen KI-Architekturen und langjährigen Fragen der Kognitionswissenschaft und Philosophie des Geistes her.

Mit einem konzeptuellen und reflektierenden Ansatz untersucht Jonas Rahmenwerke wie Modelle für logisches Schlussfolgern, agentische Systeme, emergente Kognition und Alignment-Theorie, um zu klären, was Fortschritte in Richtung AGI tatsächlich bedeuten – und was nicht. Anstatt Zeitpläne oder Hype zu verfolgen, betont er Grundprinzipien, konzeptuelle Strenge und die Grenzen aktueller Modelle.

Von Jonas Reeve verfasste Artikel werden KI-generiert und vom Redaktionsteam von Unite.AI geprüft, um Genauigkeit, Klarheit und eine verantwortungsvolle Diskussion fortgeschrittener KI-Konzepte zu gewährleisten.