Perfeccionamiento de la correspondencia entre consultas y contexto para la respuesta a preguntas de dominio abierto
¿Alguna vez te has sorprendido por la habilidad de tu bot para tener todas las respuestas? En este blog, analizaremos a fondo los modelos recuperadores: las contrapartes digitales de tu amigable bibliotecario, que identifican rápidamente los documentos o pasajes perfectos para ayudar a tu bot a responder tus consultas. Imagina que estás chateando con tu bot y le preguntas: "¿Cuál es la montaña más alta del mundo?". Tras bambalinas, tu bot transforma silenciosamente tu consulta en vectores y envía a su confiable modelo recuperador en una búsqueda a través de un vasto repositorio de conocimiento, como un bibliotecario que recorre los estantes en busca del libro perfecto. Estos modelos recuperadores son fundamentales para garantizar que tu bot proporcione respuestas precisas y relevantes. Analicemos ahora con más detalle los modelos recuperadores para comprender qué son y cómo funcionan.
Modelos de retriever: conceptos básicos
En la respuesta a preguntas de dominio abierto, el desafío radica en acceder y recuperar información relevante del vasto océano de datos no estructurados disponibles en internet y otros medios. Imagine que siente curiosidad por la montaña más alta del mundo, el Monte Everest. Sin un conocimiento específico de dónde buscar, buscar esta información en innumerables páginas web y documentos puede ser una tarea lenta e ineficiente. Aquí es donde entran en juego los modelos de recuperación. Estos modelos actúan como filtros inteligentes, filtrando rápidamente conjuntos de datos masivos para identificar los pasajes relevantes en los documentos que contienen la información deseada. Mediante técnicas como la incrustación de texto y la búsqueda por vecino más cercano aproximado, los modelos de recuperación pueden vincular las consultas del usuario con los pasajes pertinentes, reduciendo eficazmente el espacio de búsqueda y presentando al usuario la información más relevante. Por ejemplo, cuando le pregunta a su asistente virtual "¿Cuál es la montaña más alta?", el modelo de recuperación puede identificar y recuperar rápidamente pasajes relevantes sobre el Monte Everest a partir de una amplia base de conocimiento.
Ahora bien, ¿cómo logran esto los modelos de recuperación? Los modelos de recuperación funcionan transformando tanto la consulta del usuario como los fragmentos de la base de conocimiento en representaciones numéricas, a menudo denominadas incrustaciones. Estas incrustaciones capturan las similitudes semánticas entre palabras y frases, lo que permite al modelo comparar eficazmente la consulta con los fragmentos de la base de conocimiento. En otras palabras, las incrustaciones pueden considerarse un código especial para cada palabra que captura su esencia numéricamente. Sin embargo, estos códigos no son simplemente números aleatorios; están cuidadosamente diseñados para que palabras similares tengan códigos similares.
Por ejemplo, tomemos las palabras "gato" y "perro". En nuestra biblioteca, estas palabras podrían aparecer juntas con frecuencia en libros sobre mascotas. Por lo tanto, sus incrustaciones estarían diseñadas para estar próximas en el espacio numérico, lo que indica su similitud. Ahora, consideremos las palabras "gato" y "coche". Si bien suenan similares, pertenecen a categorías semánticas diferentes. Por lo tanto, sus incrustaciones estarían más separadas en el espacio numérico, lo que refleja sus significados distintos.

¿Cómo se calculan las incrustaciones?
Determinar la representación numérica o vector adecuado para una palabra, oración o pasaje no es un proceso sencillo. No existe una fórmula ni técnica sencilla para calcular estos vectores. En cambio, estos son aprendidos por modelos de redes neuronales profundas entrenados con grandes cantidades de datos de texto. Estos modelos se someten a un entrenamiento exhaustivo para codificar palabras o frases como vectores numéricos en un espacio de alta dimensión, capturando similitudes semánticas entre ellas según sus contextos en los datos de entrenamiento.
Por ejemplo, considere BERT (Representaciones de Codificador Bidireccional a partir de Transformadores), un ejemplo destacado de este tipo de modelo. Durante su fase de entrenamiento, BERT aprende a predecir palabras enmascaradas en una oración, dado su contexto. Este proceso genera incrustaciones que contienen información semántica rica, ya que encapsulan las relaciones sutiles entre las palabras dentro de las oraciones. En esencia, estas incrustaciones aprendidas permiten al modelo comprender los significados y las conexiones intrincadas inherentes al lenguaje natural.
Más sobre el mundo de las incrustaciones
Existen varios tipos de incrustaciones, como las de palabras y palabras contextuales, las de oraciones, las de entidades y las de grafos de conocimiento. Cada tipo de incrustación tiene sus propias ventajas y es adecuado para diferentes tareas y aplicaciones, como la similitud de palabras, la clasificación de documentos, la búsqueda semántica y la finalización de grafos de conocimiento. La elección de la técnica de incrustación depende de los requisitos específicos de la tarea y de las características de los datos analizados.
Al igual que cualquier software, los modelos de incrustación están disponibles tanto en código cerrado como en código abierto. Los modelos de incrustación de código cerrado son modelos propietarios desarrollados y mantenidos por empresas u organizaciones. El acceso a estos modelos puede estar restringido, y los usuarios suelen necesitar obtener licencias o pagar cuotas de suscripción para usarlos. Algunos ejemplos de modelos de incrustación de código cerrado incluyen:
- Modelos de incrustación de Open AI: Open AI ofrece modelos de incrustación de texto que pueden usarse mediante API (interfaces de programación de aplicaciones) de pago. Estos modelos permiten equilibrar el rendimiento con el coste.
- Integración de Cohere: Cohere también ofrece modelos de incrustación de texto a través de API pagas, poniendo gran énfasis en la precisión y la eficiencia.
Los modelos de incrustación de código abierto son modelos de libre acceso a los que cualquier persona puede acceder, usar y modificar sin restricciones. Algunos ejemplos de modelos de incrustación de código abierto incluyen:

- Modelos optimizados para la Clasificación de Pasajes MSMARCO:La Clasificación de Pasajes MSMARCO es un conjunto de datos de referencia y una tarea de evaluación diseñada para evaluar modelos de recuperación de pasajes, cuyo objetivo es clasificar con precisión los pasajes de un corpus extenso según su relevancia para las consultas de los usuarios. Entre los modelos optimizados para esta tarea se incluyen BERT (Representaciones de Codificador Bidireccional a partir de Transformadores) y T5 (Transformador de Transferencia de Texto a Texto), que suelen ajustarse en el conjunto de datos MSMARCO para aprender a generar incrustaciones de pasajes y clasificarlos según su relevancia para la consulta.
- Modelos de incrustación de Jina: Jina, empresa de IA multimodal, lanzó su modelo de incrustación de oraciones de código abierto, compatible con longitudes de contexto de hasta 8K . Este año también lanzó modelos de incrustación bilingües para alemán-inglés y chino-inglés.
Evaluación de la eficacia de los modelos de incrustación: puntos de referencia y métricas
Evaluar el rendimiento de los modelos de incrustación es esencial para comprender su eficacia a la hora de capturar información semántica y facilitar las tareas posteriores de procesamiento del lenguaje natural. Los puntos de referencia y las métricas desempeñan un papel crucial en esta evaluación, ya que proporcionan parámetros de evaluación estandarizados y medidas cuantitativas del rendimiento del modelo.
- MTEB (Massive Text Embedding Benchmark) : MTEB, un reconocido conjunto de datos de referencia y plataforma de evaluación, evalúa la eficacia de las incrustaciones de texto en tareas como la similitud semántica, la clasificación de documentos y la recuperación de información. Desarrollado en colaboración con la comunidad investigadora, MTEB ofrece un punto de referencia estandarizado que facilita la comparación directa entre modelos de incrustación en diversos dominios y aplicaciones.
- Clasificación de Pasajes MS MARCO (Comprensión Lectora de Microsoft Machine Learning): La Clasificación de Pasajes MS MARCO es un conjunto de datos de referencia y una tarea de evaluación dedicada a modelos de recuperación de pasajes. Incluye consultas de usuario auténticas y juicios de relevancia anotados por personas para pasajes web. Los modelos se evalúan según su capacidad para clasificar pasajes con precisión según su relevancia para la consulta, lo que ofrece un marco de evaluación estandarizado para integrar modelos en escenarios de recuperación de información.
- Métricas de evaluación: Además de los conjuntos de datos de referencia, se utilizan diversas métricas de evaluación para cuantificar el rendimiento de los modelos de incrustación. Entre las métricas más comunes se incluyen la Precisión Media Promedio (MAP), el Rango Recíproco Medio (MRR) y la Exactitud. MAP mide la precisión promedio en múltiples consultas, mientras que MRR mide el rango del primer pasaje relevante recuperado para cada consulta. Estas métricas proporcionan información sobre la eficacia general de los modelos de incrustación para capturar similitudes semánticas y facilitar las tareas posteriores.
En resumen, parámetros como MTEB y MS MARCO Passage Ranking, junto con métricas de evaluación como MAP y MRR, son herramientas invaluables para evaluar la efectividad de los modelos de incrustación. Al proporcionar entornos de evaluación estandarizados y medidas cuantitativas de rendimiento, estos parámetros y métricas permiten a los investigadores comparar diferentes modelos, identificar áreas de mejora y avanzar en el estado del arte.
Bibliotecas y bases de datos vectoriales: almacenamiento y recuperación de incrustaciones
La siguiente pregunta crucial se refiere al almacenamiento y recuperación de estas incrustaciones: ¿dónde se almacenan y cómo se accede a ellas cuando se inicia una consulta?
Las incrustaciones, que son vectores de alta dimensión, se almacenan en bibliotecas y bases de datos especializadas llamadas bibliotecas/bases de datos de vectores. Estas bibliotecas están optimizadas para tareas de búsqueda por similitud, cuyo objetivo es encontrar los vectores más similares a un vector de consulta determinado. Mediante estructuras y algoritmos de indexación avanzados, estas bibliotecas y bases de datos pueden recuperar rápidamente los vectores más cercanos a un vector de consulta.
Las bibliotecas vectoriales, como Facebook Faiss , Spotify Annoy , Google ScaNN , NMSLIB y HNSWLIB , utilizan índices en memoria para permitir la búsqueda de similitud con incrustaciones vectoriales. Estas bibliotecas se centran en almacenar incrustaciones en lugar de los objetos o pasajes asociados, que normalmente se almacenan en un almacenamiento secundario como bases de datos, lo que requiere un proceso de recuperación de dos pasos. Los índices en las bibliotecas vectoriales son inmutables y no se pueden ejecutar consultas durante la importación de datos. Las bibliotecas aprovechan el algoritmo del vecino más cercano aproximado (ANN) para la búsqueda de similitud, con diferentes implementaciones entre bibliotecas: Faiss utiliza agrupamiento, Annoy emplea métodos basados en árboles y ScaNN emplea compresión vectorial. Cada implementación ofrece ventajas competitivas en términos de rendimiento, lo que permite a los usuarios seleccionar según los requisitos de la aplicación.
Las bases de datos vectoriales, por otro lado, ofrecen compatibilidad completa con CRUD (Crear, Leer, Actualizar, Eliminar), lo que soluciona las limitaciones de las bibliotecas vectoriales. Diseñadas para implementaciones de producción a nivel empresarial, las bases de datos ofrecen una solución más integral al admitir tanto objetos de datos como vectores. Esta integración permite combinar la búsqueda vectorial con filtros estructurados, garantizando que los vecinos más cercanos se alineen con los filtros de metadatos. A diferencia de las bibliotecas vectoriales, las bases de datos permiten consultar y modificar datos durante el proceso de importación. A medida que se cargan millones de objetos, los datos permanecen completamente accesibles y operativos, eliminando la necesidad de esperar a que se complete la importación para acceder a los datos existentes.

Existen bases de datos vectoriales comerciales y de código abierto para satisfacer diversas necesidades y preferencias. La imagen a continuación muestra algunas de las bases de datos vectoriales más utilizadas.

El panorama de las bases de datos vectoriales ( Fuente de la imagen )
Con esto concluimos este blog sobre los modelos de recuperación y su papel en el control de calidad de dominio abierto. Dado un vector de consulta, estos modelos lo transforman en incrustaciones e identifican vectores de contexto relevantes en las bases de datos de vectores contextuales. En el próximo blog, veremos cómo podemos mejorar la precisión y la relevancia del control de calidad mediante técnicas como la reclasificación y la búsqueda híbrida, además de los resultados de los modelos de recuperación. ¡No se lo pierdan!