Modelos y plataformas de IA
Faiss 1.16.0 de Meta incorpora E-Means para acelerar el agrupamiento a gran escala

Los responsables del mantenimiento de Faiss de Meta publicaron la versión 1.16.0 el 10 de noviembre de 2026, que incorpora el algoritmo de agrupamiento e-means de FAIR en Meta con implementaciones para CPU, GPU y sistemas distribuidos. Los investigadores informan que supera la pérdida de Lloyd k-means después de 25 épocas en entre 1,4 y 2,6 épocas, con aceleraciones de entre 10 y 45× en tiempo de ejecución de GPU frente a las implementaciones comparadas.
El lanzamiento del software se produce después de la presentación en arXiv del artículo de investigación preliminar, el 6 de noviembre de 2026, y no constituye la primera divulgación pública del algoritmo. El trabajo es obra de investigadores de FAIR en Meta y de la École Nationale des Ponts et Chaussées.
La versión 1.16.0 incorpora implementaciones de referencia de e-means, entrenamiento distribuido y con centroides fragmentados, backends de asignación Triton y CuTe, asignación de precisión reducida y pruebas de rendimiento para reproducir los resultados de la investigación. También incluye demostraciones con DINO que mantienen los datos en memoria o los transmiten desde unidades SSD.
Cómo actualiza E-Means los centroides
K-means busca centroides que minimicen la distancia cuadrática media entre los vectores y el centroide más cercano, lo que permite realizar tareas de recuperación, cuantización y curación de datos. El algoritmo de Lloyd asigna cada punto al centroide más cercano y vuelve a calcular la suma y el recuento de cada grupo a partir del conjunto de datos completo. En cambio, e-means actualiza sumas y recuentos con decaimiento exponencial a partir de minib lotes, de modo que las asignaciones anteriores pierden influencia gradualmente; cada centroide sigue siendo el cociente entre la suma acumulada de vectores y el recuento acumulado. Usar todo el conjunto de datos como un único lote con un paso de 1 reproduce una iteración de Lloyd.
Dos leyes de escalado ajustadas calculan el tamaño del lote y el tamaño inicial del paso a partir del tamaño del conjunto de datos, el número de grupos y el presupuesto de épocas, lo que elimina el barrido independiente de hiperparámetros que requerían los métodos anteriores basados en minib lotes. Un programa coseno reduce el paso hasta una décima parte de su valor inicial. La clase publicada usa cinco pasadas de entrenamiento por defecto y admite pasadas fraccionarias.
Los autores ajustaron las leyes mediante 75.000 ejecuciones de optimización con configuraciones DEEP. Informan de un regret mediano en conjuntos de datos de validación —es decir, el exceso de error con respecto a la mejor configuración de la cuadrícula— del 0,07 % para la ley del paso y del 0,19 % para la ley predeterminada del tamaño del lote. El método también reactiva los grupos infrautilizados al dividir un grupo donante y, a continuación, termina calculando la media exacta de cada grupo a partir de las asignaciones de la última época. Un procedimiento de finalización independiente, basado en un promedio móvil lento, busca en cambio reducir el error fuera de muestra.
Las pruebas de rendimiento llegan a los diez mil millones de vectores
El artículo completo describe la validación con conjuntos de datos de incrustaciones y sintéticos. Las principales comparaciones en GPU se realizaron con GPU H100 de 80 GB, y los experimentos en CPU, con un Xeon Platinum 8462Y+ de 64 núcleos. En 11 pruebas de incrustaciones VIBE, los autores informan que e-means necesitó entre 1,6 y 2,6 épocas para alcanzar el error de Lloyd tras 25 épocas, con aceleraciones de entre 8,0× y 22,8× frente a Flash-KMeans en una H100, y de entre 9,0× y 15,0× frente a Faiss en 64 núcleos de CPU, con 20 semillas por prueba.
A la mayor escala, los autores informan que particionaron DINO10B, que contiene 10.000 millones de incrustaciones de fragmentos de DINO de 1.024 dimensiones, en aproximadamente 16,7 millones de grupos en 2,5 épocas mediante asignación exacta, y obtuvieron un error de prueba ligeramente inferior al de la referencia de Lloyd de 25 épocas. Esa ejecución requirió 779 horas de GPU en 32 máquinas. En otra ejecución, que usó búsqueda aproximada del centroide más cercano mediante un índice de archivo invertido (IVF), se superó el resultado de referencia después de tres épocas, con 23,2 horas de GPU en una máquina con ocho GPU. El método IVF busca en grupos seleccionados de centroides, en lugar de comparar cada punto con todos los centroides.
El artículo indica que, a la escala de diez mil millones de vectores, la asignación IVF cuesta 34× menos que la asignación exacta, pero no ofrece ninguna ventaja con 100 millones de vectores. Esta diferencia muestra por qué el número de épocas por sí solo no determina los requisitos de infraestructura: la implementación y el método de asignación determinan cuánto hardware necesita una ejecución.
Disponibilidad y limitaciones documentadas
La guía oficial del usuario ofrece NumpyEmeans para datos de NumPy y Emeans para tensores de PyTorch. Faiss por sí solo admite la ejecución en CPU; la ejecución en GPU requiere PyTorch con CUDA habilitado. Hay kernels CuTe disponibles para H100 y H200, y Triton, para otras GPU NVIDIA recientes compatibles. Solo la asignación del centroide más cercano usa precisión reducida en GPU; los centroides, las sumas acumuladas y las distancias devueltas siguen siendo FP32. Las clases con centroides replicados y fragmentados admiten el entrenamiento con varias GPU; el artículo señala que las sumas FP32 de 16 millones de centroides ocupan 64 GiB, lo que justifica la fragmentación a esa escala.
Las leyes de escalado se ajustaron para datos de dimensiones relativamente altas y no son óptimas para conjuntos de datos muy pequeños o de dimensiones muy bajas. Por ello, los valores predeterminados publicados eligen la ley de calidad para el tamaño del lote cuando hay 16 dimensiones o menos y desactivan la reactivación cuando hay dos dimensiones o menos. La guía también advierte que las etiquetas de entrenamiento devueltas proceden de la última pasada y no necesariamente corresponden a asignaciones a los centroides finales, y que la ruta de GPU no comprueba si las entradas contienen valores NaN o infinitos.
Para las canalizaciones de IA que agrupan grandes colecciones de incrustaciones, el lanzamiento concreta la compensación: una biblioteca mantenida permite reducir el número de pasadas de entrenamiento, mientras que las mayores reducciones del consumo de GPU dependen de la escala, el hardware y de si la asignación aproximada se adapta a la carga de trabajo.












