Licencia YOLO
Volver al glosario de Ultralytics

ColBERT

ColBERT codifica consultas y documentos como embeddings BERT por token y los puntúa mediante interacción tardía (MaxSim) para ofrecer búsquedas rápidas y precisas y RAG.

ColBERT (interacción tardía contextualizada sobre BERT) es un modelo neuronal de recuperación que representa una consulta y cada documento con un embedding por token y puntúa un documento mediante interacción tardía: cada token de la consulta busca su token de documento más parecido y esas similitudes máximas, denominadas MaxSim, se suman para obtener la puntuación de relevancia. Omar Khattab y Matei Zaharia, de la Universidad de Stanford, lo presentaron en el artículo de SIGIR de 2020 ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT. Los embeddings de los tokens de los documentos se calculan una sola vez, sin conexión, por lo que en el momento de la consulta basta con un cálculo de similitud barato en lugar de ejecutar BERT por completo para cada documento candidato BERT.

Dónde encaja la interacción tardía#

Los recuperadores neuronales se diferencian en el momento en que se encuentran la consulta y el documento. Los bi-encoders comprimen cada texto en un único vector, el método habitual para la búsqueda vectorial: los vectores de los documentos se precalculan y la búsqueda es rápida, pero un solo vector difumina las diferencias entre términos concretos. Los cross-encoders procesan juntos la consulta y el documento mediante un Transformer, de modo que la atención compara todos los pares de tokens. Son los más precisos y deben ejecutarse una vez por cada pareja de consulta y documento, lo que los limita al reranking de listas cortas de candidatos.

ColBERT codifica la consulta y el documento por separado, como hace un bi-encoder, pero conserva un vector de 128 dimensiones por token y permite que ambas partes interactúen solo en el paso MaxSim final. Las consultas se rellenan con el token de máscara de BERT hasta alcanzar una longitud fija de 32, lo que da al modelo posiciones adicionales para ampliar la consulta con términos relacionados. En los benchmarks de búsqueda de pasajes MS MARCO y TREC CAR, ColBERT fue competitivo con los rankers basados en BERT, a la vez que era cien veces más rápido y usaba diez mil veces menos FLOPs por consulta.

Cálculo de una puntuación MaxSim#

El operador MaxSim se implementa en unas pocas líneas de PyTorch. Este ejemplo lo aplica a embeddings contextuales de tokens procedentes de un codificador pequeño de la familia BERT:

import torch.nn.functional as F
from sentence_transformers import SentenceTransformer

encoder = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
query = "who wrote the novel Dune"
docs = [
    "Frank Herbert published the science fiction novel Dune in 1965.",
    "A dune is a hill of sand shaped by the wind.",
]

# One L2-normalized contextual embedding per query token
q = F.normalize(encoder.encode(query, output_value="token_embeddings"), dim=-1)
for doc in docs:
    d = F.normalize(encoder.encode(doc, output_value="token_embeddings"), dim=-1)

    # MaxSim: each query token keeps its best-matching document token, and the maxima are summed
    score = (q @ d.T).max(dim=1).values.sum()
    print(f"{score.item():.2f}  {doc}")

El pasaje sobre la novela obtiene una puntuación de 5,90 y el pasaje sobre la duna de arena, de 4,33. Ambos contienen «duna», que encaja muy bien en los dos casos, pero en el primer pasaje el token de consulta «escribió» encuentra «publicó» con una similitud coseno de 0,72 y «novela» se encuentra a sí mismo, mientras que en el segundo pasaje la mejor coincidencia para «escribió» solo llega a 0,29.

  • BERT en sí: el codificador preentrenado que ColBERT ajusta para la recuperación, al que añade una capa lineal que proyecta cada token a 128 dimensiones.
  • Fragmentación tardía: también codifica el texto en contexto antes de dividirlo y, después, promedia los tokens en un vector por fragmento, mientras que ColBERT conserva todos los vectores de tokens.
  • Búsqueda semántica: la tarea que realiza ColBERT, que ordena los pasajes por significado en lugar de por palabras clave compartidas.
  • Búsqueda híbrida: combina resultados por palabras clave y por vector único para reunir la coincidencia exacta de términos y el significado. La coincidencia a nivel de token de ColBERT captura parte de esa exactitud en un único modelo neuronal.

Interacción tardía para imágenes#

La interacción tardía también funciona con imágenes. ColPali (2024) representa la captura de pantalla de cada página de un documento como una cuadrícula de vectores de parches mediante un modelo de visión y lenguaje y las puntúa frente a los tokens de la consulta con MaxSim, llevando la interacción tardía a la generación aumentada por recuperación multimodal sobre archivos PDF. La detección de vocabulario abierto mantiene las características de imagen en un nivel detallado por un motivo relacionado: Ultralytics YOLOE almacena un embedding de texto por cada clase indicada en la instrucción, como «autobús de dos pisos», y lo compara con las características de región en cada ubicación de sus mapas de características, de modo que una instrucción breve puede coincidir con un objeto pequeño en lugar de con un único vector que resume toda la imagen.

ColBERTv2 y PLAID#

Almacenar un vector por cada token hace que un índice ColBERT sea aproximadamente diez veces mayor que un índice de vector único, un coste importante cuando ColBERT actúa como recuperador de primera etapa o reranker en un flujo de generación aumentada por recuperación (RAG). El repositorio ColBERT de Stanford implementa dos soluciones. PLAID es un motor de búsqueda que puntúa los candidatos frente a centroides de clústeres antes de ejecutar MaxSim completo. ColBERTv2 (NAACL 2022) almacena cada vector de token como el ID de su centroide más cercano, junto con un residuo cuantizado a 1 o 2 bits por dimensión, y entrena con supervisión depurada destilada de un cross-encoder; su compresión de residuos redujo entre 6 y 10 veces el espacio ocupado por la interacción tardía.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático