All About Retriever Models

Todo sobre los modelos Retriever

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:


Fuente de la imagen

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 de incrustación BAAI (Autocodificador Atento Bidireccional para Inducción Semántica): Estos modelos aprovechan la codificación bidireccional, los mecanismos de atención y las técnicas de autocodificación para generar incrustaciones de texto de alta precisión. Los modelos BAAI destacan por su capacidad para generar incrustaciones de texto altamente significativas, alcanzando las mejores puntuaciones en pruebas de referencia como el Massive Text Embedding Benchmark (MTEB) . Estos modelos han demostrado su utilidad para optimizar los motores de búsqueda semántica y la recuperación de RAG.

  • Familia de modelos de incrustación Arctic de Snowflake: Snowflake publicó recientemente sus modelos de incrustación Arctic en código abierto bajo una licencia Apache 2.0. Estos proporcionan capacidades avanzadas de recuperación a las organizaciones al integrar conjuntos de datos propietarios con LLM para servicios de generación aumentada de recuperación (RAG) o búsqueda semántica. A partir de abril de 2024, los modelos de Snowflake ocupaban el primer puesto entre los modelos de incrustación de tamaño similar, y su modelo más grande solo era superado por modelos de código abierto con más de 20 veces (y cuatro veces para los modelos cerrados) el número de parámetros, o por modelos de código cerrado que no revelan ninguna característica del modelo.

  • Fuente de la imagen


    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.

    Comparación de características: bibliotecas vectoriales vs. bases de datos ( fuente de la imagen )

    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!



    Regresar al blog