Modelos multimodales con Sentence Transformers: embebidos y rerankers para texto, imagen, audio y video
Sentence Transformers v5.4 añade soporte multimodal: texto, imágenes, audio y video comparten un mismo espacio de embeddings. En este artículo explico cómo instalar, cargar modelos, calcular similitudes cruzadas y usar rerankers multimodales con ejemplos y consideraciones prácticas para equipos en Latinoamérica.
Introducción
La versión 5.4 de Sentence Transformers incorpora soporte multimodal: ahora es posible convertir textos, imágenes, audio y video a vectores en un espacio compartido y usar los mismos métodos para comparar y recuperar contenido. Esto habilita búsquedas cross-modal, recuperación de documentos visuales y pipelines RAG que combinan distintas modalidades, todo con la API ya conocida de la librería.
En esta nota reviso qué son estos modelos, cómo instalarlos y usarlos (embeddings y rerankers), y cuáles son las consideraciones prácticas para implementarlos en proyectos, especialmente en el contexto de organizaciones y equipos en Latinoamérica.
¿Qué son los modelos multimodales?
Los embeddings tradicionales mapean texto a vectores de tamaño fijo. Los modelos multimodales extienden ese concepto: mapean entradas de diferentes modalidades (texto, imagen, audio, video) a un mismo espacio vectorial. Gracias a eso, una consulta en texto puede compararse con documentos en imagen o video usando la misma métrica de similitud.
De forma similar, los rerankers (o Cross Encoders) tradicionales asignan una puntuación de relevancia a pares de textos. Los rerankers multimodales pueden puntuar pares donde uno o ambos elementos son imágenes, o donde hay documentos combinados (texto + imagen), permitiendo evaluar la relevancia en escenarios mixtos.
Casos de uso típicos: recuperación de documentos visuales (por ejemplo, facturas escaneadas), búsqueda cross-modal (describir una imagen en texto) o pipelines RAG (Retrieval-Augmented Generation) multimodales.
Instalación y requisitos
Los modelos multimodales necesitan dependencias adicionales según la modalidad que quieran manejar. En general deben instalar los extras correspondientes:
# Soporte de imagen
pip install -U 'sentence-transformers[image]'
# Soporte de audio
pip install -U 'sentence-transformers[audio]'
# Soporte de video
pip install -U 'sentence-transformers[video]'
# Mezclar según necesiten
pip install -U 'sentence-transformers[image,video,train]'
Algunos modelos basados en VLMs (Vision-Language Models) como Qwen3-VL-2B requieren GPU con alrededor de 8 GB de VRAM; las variantes de 8B pueden requerir ~20 GB. Si no cuentan con GPU local, consideren usar servicios en la nube o Google Colab. En CPU, la inferencia de estos modelos suele ser muy lenta; para despliegues en CPU conviene preferir modelos solo de texto o CLIP si la carga lo permite.
Modelos de embedding multimodal: cargar y codificar
Cargar un modelo multimodal con Sentence Transformers se hace igual que con un modelo solo de texto. Ejemplo:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('Qwen/Qwen3-VL-Embedding-2B', revision='refs/pr/23')
(El argumento revision puede ser necesario temporalmente para modelos cuya integración está en revisión.) El modelo detecta automáticamente las modalidades que soporta; no es necesario configurar nada adicional a menos que quieran controlar parámetros como resolución de imagen o precisión.
Con el modelo cargado, el método encode() acepta imágenes además de texto. Las imágenes pueden pasarse como URLs, rutas locales o objetos PIL. Ejemplo sencillo:
img_embeddings = model.encode([
'https://huggingface.co/datasets/.../car.jpg',
'https://huggingface.co/datasets/.../bee.jpg'
])
print(img_embeddings.shape) # p. ej. (2, 2048)
Similitud cruzada (cross-modal)
Dado que texto e imagen se proyectan al mismo espacio, pueden calcularse similitudes entre embeddings de distinto tipo. Por ejemplo, codificar consultas en texto y calcular su similitud con embeddings de imagen:
text_embeddings = model.encode([
'A green car parked in front of a yellow building',
'A bee on a pink flower'
])
similarities = model.similarity(text_embeddings, img_embeddings)
print(similarities)
Es común observar que las puntuaciones cross-modal son más bajas que las de within-modal debido a la “modalidad gap”: los embeddings de distintas modalidades tienden a agruparse en regiones separadas del espacio. Sin embargo, el orden relativo de similitud suele mantenerse, por lo que la recuperación funciona correctamente.
encode_query() y encode_document()
Para tareas de recuperación se recomiendan los métodos encode_query() y encode_document(). Muchos modelos preparan prompts distintos para queries y documentos —similar a cómo se usan prompts del sistema en modelos conversacionales— y esas funciones aplican automáticamente las instrucciones apropiadas definidas por el autor del modelo.
Rerankers multimodales
Los rerankers multimodales puntúan la relevancia entre pares heterogéneos: texto vs imagen, texto+imagen vs texto, o incluso combinaciones más complejas. En un flujo típico de recuperación multimodal se puede:
- Recuperar un conjunto de candidatos con un método rápido de embeddings (approximate nearest neighbors).
- Re-rankear esos candidatos con un reranker multimodal que evalúe la pertinencia fina del par.
Esto mejora la calidad de resultados en escenarios donde la correspondencia semántica requiere interpretar elementos visuales o auditivos junto con texto.
Formatos de entrada y configuración
Sentence Transformers acepta formatos comunes (URLs, paths, objetos PIL, arreglos de audio, etc.). Además, pueden pasar argumentos de procesador y modelo (processor kwargs, model kwargs) para ajustar aspecto como resolución de imagen o precisión numérica cuando el modelo lo permite.
Si están planificando un despliegue en producción, revisen las opciones de batch size, cuantización y la posible necesidad de un servidor de inferencia con GPU para mantener latencias aceptables.
Consideraciones prácticas para equipos en Latinoamérica
- Infraestructura: muchas organizaciones en la región prefieren soluciones en la nube por la falta de GPUs locales potentes. Evaluar costos de cómputo vs. beneficios del modelo multimodal es clave.
- Casos de uso regionales: búsquedas en catálogos de retail con fotos y descripciones, indexación de documentos escaneados en organismos públicos, y recuperación multimedia para medios y marketing son escenarios donde el multimodal aporta valor.
- Versatilidad: si la carga es moderada y no hay GPU disponible, modelos CLIP o soluciones text-only pueden ser una alternativa intermedia hasta poder desplegar VLMs.
Buenas prácticas
- Evaluar primero con conjuntos pequeños y luego escalar: prueben la similitud cross-modal para verificar que el ordenamiento tenga sentido antes de producir una solución a gran escala.
- Pipeline híbrido: usar embeddings para filtro inicial y reranker multimodal para la clasificación fina reduce costos y mejora precisión.
- Monitoreo: registren métricas de latencia y tasa de aciertos en escenarios reales para ajustar modelos y tamaño de infraestructura.
Conclusión
La llegada del soporte multimodal a Sentence Transformers amplía las posibilidades de construcción de sistemas de búsqueda y RAG que integren texto, imagen, audio y video. Para equipos en Latinoamérica representa una oportunidad de mejorar experiencias de usuario en portales, productos y servicios que manejan contenidos mixtos, siempre considerando las limitaciones de infraestructura y los costos de inferencia.
Si desean experimentar, comiencen instalando los extras necesarios, prueben modelos como Qwen3-VL-Embedding-2B para embeddings y combinen recuperación rápida con rerankers multimodales para obtener resultados robustos.
Recursos adicionales
- Repositorio y documentación de Sentence Transformers (revisar sección multimodal en la versión 5.4).
- Considerar Google Colab o proveedores cloud para pruebas con GPU si no disponen de hardware local.
Fuente original: Hugging Face Blog