Cómo entrenar y afinar modelos multi-vector con Sentence Transformers
Los modelos multi-vector (late-interaction) mantienen representaciones por token y suelen superar a los embeddings densos en búsquedas de dominio. Aquí explico por qué afinarlos importa y cómo hacerlo con Sentence Transformers, paso a paso.
Introducción
Los modelos Multi-Vector —también conocidos como late-interaction o estilo ColBERT— han ganado tracción para tareas de recuperación porque preservan señales a nivel de token en lugar de condensar un texto completo en un solo vector. Con la versión 6.0 de Sentence Transformers llegó el tipo MultiVectorEncoder y un flujo de entrenamiento completo para estos modelos. En esta guía adaptada encontrarán los componentes clave del entrenamiento, decisiones prácticas y recomendaciones para afinar modelos para datos especializados (salud, legal, finanzas o corpóreos internos), con foco en equipos y tomadores de decisión en América Latina.
Todo lo que se muestra aquí puede ejecutarse tras instalar: pip install -U “sentence-transformers[train]”.
¿Qué es un modelo Multi-Vector y por qué usarlo?
A diferencia de un embedding denso que representa un texto entero con un solo vector, un modelo multi-vector genera un vector por token y evalúa la similitud entre una consulta y un documento con una operación MaxSim: cada token de la consulta busca su mejor coincidencia entre los tokens del documento y las puntuaciones se suman.
Ventajas principales:
- Conserva señales finas que se pierden al promediar en un vector único.
- Suele mejorar la recuperación, especialmente en dominios donde pequeñas coincidencias léxicas o terminológicas importan.
Costo:
- Índices más grandes y requisitos de almacenamiento/latencia superiores. Eso se compensa con performance de recuperación en dominios críticos.
¿Por qué finetunear un modelo multi-vector?
Los modelos preentrenados son generalistas: fueron entrenados con datos web, MS MARCO u otros corpus que no representan necesariamente la terminología, el estilo de consulta o la noción de relevancia de su dominio. El finetuning adapta el modelo a su vocabulario, longitudes de documento y criterios de relevancia.
Ejemplos de impacto práctico:
- Muchos checkpoints clásicos truncan documentos a 180–512 tokens porque sus datos de entrenamiento eran cortos. Si su corpus contiene documentos largos —en mi evaluación médica los pasajes promediaban 941 tokens— esa truncación puede reducir el NDCG@10 hasta 0.24, una pérdida mayor que diferencias entre arquitecturas.
- Organizaciones con documentos legales, códigos o literatura científica suelen necesitar modelos que manejen longitudes y términos específicos.
En mi caso, un modelo finetuneado (mLateOn-medical) entrenado durante 14.5 horas en una sola RTX 3090 superó a todos los modelos de propósito general disponibles en mi evaluación médica: densos, dispersos, léxicos y multi-vector.
Componentes clave para entrenar
Entrenar MultiVectorEncoder implica coordinar varios bloques:
- Modelo: punto de partida (checkpoint multi-vector existente o arquitectura desde un transformer base).
- Dataset: datos de entrenamiento y evaluación (Hugging Face Hub o datos locales).
- Función de pérdida: guía la optimización.
- Argumentos de entrenamiento: batch size, lr, logging, etc.
- Evaluador: para medir desempeño durante/tras entrenamiento.
- Trainer: orquesta el proceso.
Punto de partida del modelo
Tiene dos opciones:
-
Finetunear un checkpoint multi-vector ya existente: mantiene tokens especiales, proyección y skiplist del checkpoint original, lo que facilita el ajuste fino. Por ejemplo, cargar con Sentence Transformers se realiza mediante la clase MultiVectorEncoder.
-
Construir a partir de un transformer base: útil cuando quiere un modelo desde cero con arquitectura personalizada (por ejemplo, controlar el tamaño de las proyecciones o la longitud máxima de entrada).
Para la mayoría de casos de adaptación de dominio, comenzar desde un checkpoint multi-vector preexistente ahorra tiempo y preserva componentes importantes del scoring.
Dataset y formato
Puede usar conjuntos de datos públicos en la Hub de Hugging Face o sus datos locales. Lo crítico es reflejar la distribución de consultas y documentos de su caso de uso: longitud de documentos, estilo de consulta y definiciones de relevancia.
Formato típico:
- Pares (query, positive document) y opcionalmente negativos duros o pasivos.
- Para entrenamiento más robusto, incluya negativos difíciles y ejemplos de distintas longitudes.
Funciones de pérdida y entrenamiento
Las pérdidas contrastivas y basadas en ranking son las más comunes en tareas de recuperación. El entrenamiento de multi-vector suele aprovechar los mismos principios que para embeddings densos, pero adaptados a la estructura token-level y al scoring MaxSim.
Parámetros a ajustar:
- Longitud máxima del tokenizer (configúrela acorde al tamaño de sus documentos).
- Tipo de precisión (fp32 preferido si la GPU lo soporta durante entrenamiento).
- Estrategias de muestreo de negativos y batch composition.
Evaluación y métricas
Use evaluadores que midan métricas de recuperación relevantes (NDCG, MRR, Recall@k). Valide con un conjunto de consultas reales de su dominio. La evaluación continua durante el entrenamiento ayuda a evitar sobreajuste y a encontrar el punto óptimo de iteraciones.
Buenas prácticas y recomendaciones para equipos en América Latina
- Prioricen un conjunto de validación que refleje la operativa regional: términos médicos locales, nomenclaturas legales nacionales o variaciones lingüísticas.
- Si sus documentos son largos (informes, expedientes, artículos científicos), aumenten la longitud máxima del tokenizer y ajuste la estrategia de indexación. Muchos modelos públicos están limitados a 256–512 tokens.
- Evalúen costos de almacenamiento y latencia: los índices multi-vector crecen. Planeen infraestructura (on-prem o nube) según sus requisitos de throughput.
- Empiecen finetuning en un solo GPU de consumo para prototipado; como demuestra el ejemplo, resultados significativos se obtienen en horas en hardware razonable.
Próximos pasos y recursos
- Si su objetivo es solo uso (codificar, indexar, buscar), revisen el post complementario sobre Multi-Vector (Late Interaction) Embedding Models que cubre carga, codificación e indexación en bases vectoriales.
- Si buscan comparar enfoques, existe material previo sobre finetuning de modelos densos, sparse embeddings y rerankers que completa la visión.
Conclusión
Los modelos multi-vector ofrecen una ventaja clara para búsquedas y recuperación en dominios donde las coincidencias finas importan. Finetunearlos con datos propios ajusta su vocabulario, longitud y noción de relevancia, y puede producir mejoras notables en pocas horas de entrenamiento en hardware accesible. Para equipos en América Latina, esto representa una oportunidad práctica para desarrollar soluciones de búsqueda más precisas en salud, legal, finanzas y documentos corporativos sin depender exclusivamente de modelos generalistas.
Agradecimientos
Este artículo adapta y sintetiza el contenido y ejemplos del blog de Sentence Transformers sobre entrenamiento y finetuning de modelos multi-vector, con foco práctico para implementaciones de dominio.
Fuente original: Hugging Face Blog