Saltar al contenido
ReviewRamble

El boletín semanal

La IA, analizada, en tu bandeja de entrada.

  • Nuevas reseñas de herramientas, modelos, servidores MCP y repos, con el veredicto por delante
  • Precios y valoraciones revisados cuando algo cambia
  • Nuevos análisis en cuanto se publican

Modelos, agentes, servidores MCP y las herramientas que de verdad merecen tu tiempo.

Un correo a la semana. Date de baja con el enlace de cualquier boletín. Cómo usamos tu correo

Noticias e investigación de IA

Noticias ·

Sentence Transformers añade entrenamiento consciente del pooling para reducir índices multivector

Tom Aarsen ha añadido a Sentence Transformers una función de pérdida que entrena recuperadores multivector con embeddings de documentos completos y agrupados. Reducir los documentos de un modelo ModernBERT de unos 193 vectores a 49 conservó el 97.8% de su calidad de recuperación sin agrupar, frente al 94.6% del entrenamiento normal. Con un tope de cuatro vectores, la mejora fue de 5.78 puntos de nDCG@10.

Si haces búsquedas sobre tus propios documentos con un modelo de estilo ColBERT, el índice probablemente sea más grande de lo que querrías. Estos modelos multivector guardan un vector por cada token en lugar de uno por documento, lo que los hace precisos y caros de almacenar. Una nueva entrada en el blog de Hugging Face muestra cómo Sentence Transformers puede ya entrenar un modelo para que siga siendo preciso después de comprimir esos vectores, y recuperar así la mayor parte de la calidad que suele perderse con la compresión.

El problema de almacenamiento es concreto. Con 4 bits por coordenada, 200 vectores de 128 dimensiones ocupan 12,8 KB por documento, o 12,8 GB para un millón de documentos. Reducir cada documento a 50 vectores lo deja en 3,2 GB. HierarchicalTokenPooling, de la biblioteca, fusiona vectores de tokens parecidos mediante agrupamiento de Ward, ya sea por un factor fijo o por un umbral de distancia que puede calibrarse para una media objetivo, y no toca los vectores de la consulta. El agrupamiento funciona con cualquier modelo multivector, pero uno que nunca se entrenó así puede perder distinciones importantes.

La novedad es un envoltorio de la función de pérdida, MultiVectorTokenPoolingLoss, que entrena con dos versiones de cada lote: los vectores completos del documento y una versión reducida a aproximadamente una cuarta parte. La idea recuerda a los embeddings Matryoshka, que entrenan prefijos más pequeños para que sigan siendo útiles. En el experimento del autor, dos modelos ModernBERT-base se entrenaron una época con las mismas 120.000 tripletas de MS MARCO y solo se diferenciaban en la pérdida. Con un factor de agrupamiento de 4, el modelo normal conservó el 94,6% de su puntuación NanoBEIR sin agrupar; el entrenado para ello, el 97,8%, con un nDCG@10 que subió de 49,03 a 51,23 y un 74,8% menos de vectores de documento. La calidad sin agrupar también mejoró algo. Un kernel de GPU para el agrupamiento sería 30-150x más rápido que SciPy.

Para los equipos que usan PyLate, la biblioteca de LightOn para recuperación de estilo ColBERT construida sobre Sentence Transformers, esto es directamente relevante: el trabajo parte del estudio de la propia LightOn sobre regularización del agrupamiento, y la receta de entrenamiento cabe en una sola A10G mediante Hugging Face Jobs en menos de cuatro horas. El consejo práctico es combinar cuantización, agrupamiento y truncado Matryoshka, y medir tamaño de índice y calidad con tu propio corpus.

Las salvedades son del propio autor. Es un solo experimento con un solo modelo base y sin búsqueda de hiperparámetros, evaluado en NanoBEIR, un conjunto de pruebas pequeño. La mejora es más clara con el factor de agrupamiento para el que se entrenó el modelo, aunque se traslada a otros ajustes. Los resultados con documentos largos o de un dominio concreto pueden ser distintos.

Nuestra opinión: El almacenamiento es la principal razón por la que los equipos evitan la recuperación tipo ColBERT, y recortar tres cuartas partes de los vectores con poca pérdida cambia esa cuenta. Las pruebas usan modelos pequeños entrenados una sola época, así que conviene confirmarlo con tus datos antes de reindexar.

Nuestras reseñas:PyLate

Fuente: Hugging Face

Más historias