Ir al contenido principal

Mejora de la recuperación y RAG con el ajuste fino de modelos de incrustación

Improving Retrieval and RAG with Embedding Model Finetuning

Summary

  • Cómo el ajuste fino de los modelos de incrustación aumenta la recuperación y la precisión de RAG
  • Ganancias clave de rendimiento en todos los puntos de referencia
  • Introducción al ajuste fino de incrustaciones en Databricks

Ajuste preciso de modelos de incrustación para una mejor recuperación y RAG

Resumen: El ajuste preciso de un modelo de incrustación en datos del dominio puede mejorar significativamente la búsqueda vectorial y la precisión de la generación aumentada de recuperación (RAG). Con Databricks, es fácil ajustar, implementar y evaluar modelos de incrustación para optimizar la recuperación para su caso de uso específico, aprovechando los datos sintéticos sin etiquetado manual.

Por qué es importante: Si su sistema de búsqueda vectorial o RAG no está recuperando los mejores resultados, el ajuste preciso de un modelo de incrustación es una forma sencilla pero eficaz de mejorar el rendimiento. Ya sea que esté tratando con documentos financieros, bases de conocimiento o documentación de código interno, el ajuste preciso puede brindarle resultados de búsqueda más relevantes y mejores respuestas de LLM posteriores.

Lo que encontramos: Ajustamos y probamos con precisión dos modelos de incrustación en tres conjuntos de datos empresariales y vimos mejoras importantes en las métricas de recuperación (Recall@10) y el rendimiento de RAG posterior. Esto significa que el ajuste preciso puede cambiar las reglas del juego para la precisión sin requerir el etiquetado manual, aprovechando solo sus datos existentes.

¿Quiere probar el ajuste preciso de la incrustación? Proporcionamos una solución de referencia para ayudarlo a comenzar. Databricks facilita la búsqueda vectorial, RAG, la reclasificación y el ajuste preciso de la incrustación. Póngase en contacto con su ejecutivo de cuenta o arquitecto de soluciones de Databricks para obtener más información.

El ajuste preciso en el dominio puede mejorar la precisión de la recuperación
Figura 1 El ajuste preciso en el dominio puede mejorar la precisión de la recuperación. Recall@10 para dos modelos de incrustación en tres conjuntos de datos. “FT” = mejor modelo ajustado con precisión después de un barrido de hiperparámetros. El modelo de OpenAI es text-embedding-3-large.

¿Por qué ajustar las incrustaciones con precisión?

Los modelos de incrustación impulsan los modernos sistemas de búsqueda vectorial y RAG. Un modelo de incrustación transforma el texto en vectores, lo que permite encontrar contenido relevante en función del significado en lugar de solo las palabras clave. Sin embargo, los modelos listos para usar no siempre están optimizados para su dominio específico, ahí es donde entra en juego el ajuste preciso.

El ajuste preciso de un modelo de incrustación en datos específicos del dominio ayuda de varias maneras:

  • Aumente la precisión de la recuperación: Las incrustaciones personalizadas mejoran los resultados de búsqueda al alinearse con sus datos.
  • Mejore el rendimiento de RAG: Una mejor recuperación reduce las alucinaciones y permite respuestas de IA generativa más fundamentadas.
  • Mejore el costo y la latencia: Un modelo ajustado con precisión más pequeño a veces puede superar a alternativas más grandes y costosas.

En esta entrada de blog, mostramos que el ajuste preciso de un modelo de incrustación es una forma eficaz de mejorar la recuperación y el rendimiento de RAG para casos de uso empresariales específicos de tareas.

Resultados: El ajuste preciso funciona

Ajustamos con precisión dos modelos de incrustación (gte-large-en-v1.5 y e5-mistral-7b-instruct) en datos sintéticos y los evaluamos en tres conjuntos de datos de nuestro Conjunto de pruebas comparativas de inteligencia de dominio (DIBS) (FinanceBench, ManufactQA y Databricks DocsQA). Luego los comparamos con text-embedding-3-large de OpenAI.

Conclusiones clave:

  • El ajuste preciso mejoró la precisión de la recuperación en todos los conjuntos de datos, a menudo superando significativamente los modelos de referencia.
  • Las incrustaciones ajustadas con precisión funcionaron tan bien o mejor que la reclasificación en muchos casos, lo que demuestra que pueden ser una solución independiente sólida.
  • Una mejor recuperación condujo a un mejor rendimiento de RAG en FinanceBench, lo que demuestra los beneficios de extremo a extremo.

Rendimiento de la recuperación

Después de comparar en tres conjuntos de datos, descubrimos que el ajuste preciso de la incrustación mejora la precisión en dos de estos conjuntos de datos. La figura 1 muestra que para FinanceBench y ManufactQA, las incrustaciones ajustadas con precisión superaron a sus versiones base, incluso superando a veces el modelo de API de OpenAI (gris claro). Sin embargo, para Databricks DocsQA, la precisión de text-embedding-3-large de OpenAI supera a todos los modelos ajustados con precisión. Es posible que esto se deba a que el modelo se ha entrenado en la documentación pública de Databricks. Esto demuestra que, si bien el ajuste preciso puede ser eficaz, depende en gran medida del conjunto de datos de entrenamiento y de la tarea de evaluación.

Ajuste preciso frente a reclasificación

Luego comparamos los resultados anteriores con la reclasificación basada en API mediante voyageai/rerank-1 (Figura 2). Un reclasificador normalmente toma los k resultados principales recuperados por un modelo de incrustación, reclasifica estos resultados por relevancia para la consulta de búsqueda y luego devuelve los k principales reclasificados (en nuestro caso, k=30 seguido de k=10). Esto funciona porque los reclasificadores suelen ser modelos más grandes y potentes que los modelos de incrustación y también modelan la interacción entre la consulta y el documento de una manera más expresiva.

El ajuste preciso en el dominio puede ser competitivo con la reclasificación
Figura 2 El ajuste preciso en el dominio puede ser competitivo con la reclasificación. Recall@10 en tres conjuntos de datos. “FT” = mejor modelo ajustado con precisión después de un barrido de hiperparámetros. El reclasificador utilizado en todos estos experimentos es voyageai/rerank-1 sin ajuste preciso. El recuperador ‘openai’ aquí es text-embedding-3-large.

Lo que encontramos fue:

  • El ajuste preciso de gte-large-en-v1.5 superó la reclasificación en FinanceBench y ManufactQA.
  • text-embedding-3-large de OpenAI se benefició de la reclasificación, pero las mejoras fueron marginales en algunos conjuntos de datos.
  • Para Databricks DocsQA, la reclasificación tuvo un impacto menor, pero el ajuste preciso aún aportó mejoras, lo que demuestra la naturaleza dependiente del conjunto de datos de estos métodos.

Los reclasificadores suelen incurrir en una latencia y un costo de inferencia por consulta adicionales en relación con los modelos de incrustación. Sin embargo, se pueden usar con bases de datos vectoriales existentes y, en algunos casos, pueden ser más rentables que volver a incrustar datos con un modelo de incrustación más reciente. La elección de si se debe usar un reclasificador depende de su dominio y de sus requisitos de latencia/costo.

El ajuste preciso ayuda al rendimiento de RAG

Para FinanceBench, una mejor recuperación se tradujo directamente en una mejor precisión de RAG cuando se combinó con GPT-4o (consulte el Apéndice). Sin embargo, en los dominios donde la recuperación ya era sólida, como Databricks DocsQA, el ajuste preciso no agregó mucho, lo que destaca que el ajuste preciso funciona mejor cuando la recuperación es un cuello de botella claro.

LÍDER 5X

Gartner®: Databricks, líder en bases de datos en la nube

Cómo ajustamos y evaluamos con precisión los modelos de incrustación

Estos son algunos de los detalles más técnicos de nuestra generación de datos sintéticos, el ajuste preciso y la evaluación.

Modelos de incrustación

Ajustamos con precisión dos modelos de incrustación de código abierto:

  • gte-large-en-v1.5 es un modelo de incrustación popular basado en BERT Large (434 millones de parámetros, 1,75 GB). Elegimos ejecutar experimentos en este modelo debido a su tamaño modesto y licencia abierta. Este modelo de incrustación también es compatible actualmente con la API de modelo de base de Databricks.
  • e5-mistral-7b-instruct pertenece a una clase más nueva de modelos de incrustación construidos sobre LLM sólidos (en este caso, Mistral-7b-instruct-v0.1). Aunque e5-mistral-7b-instruct es mejor en los puntos de referencia de incrustación estándar, como MTEB, y puede manejar indicaciones más largas y matizadas, es mucho más grande que gte-large-en-v1.5 (ya que tiene 7 mil millones de parámetros) y es un poco más lento y costoso de servir.

Luego los comparamos con text-embedding-3-large de OpenAI.

Conjuntos de datos de evaluación

Evaluamos todos los modelos en los siguientes conjuntos de datos de nuestro Conjunto de pruebas comparativas de inteligencia de dominio (DIBS): FinanceBench, ManufactQA y Databricks DocsQA.

Conjunto de datos Descripción # Consultas # Corpus
FinanceBench Preguntas sobre documentos SEC 10-K generados por expertos humanos. La recuperación se realiza sobre páginas individuales de un superconjunto de 360 presentaciones SEC 10-K. 150 53,399
ManufactQA Preguntas y respuestas muestreadas de foros públicos de un fabricante de dispositivos electrónicos. 6,787 6,787
Databricks DocsQA Preguntas basadas en la documentación de Databricks disponible públicamente generada por expertos de Databricks. 139 7,561

Informamos recall@10 como nuestra principal métrica de recuperación; esto mide si el documento correcto está entre los 10 documentos recuperados principales.

El estándar de oro para la calidad del modelo de incrustación es el punto de referencia MTEB, que incorpora tareas de recuperación como BEIR, así como muchas otras tareas que no son de recuperación. Si bien a los modelos como gte-large-en-v1.5 y e5-mistral-7b-instruct les va bien en MTEB, teníamos curiosidad por ver cómo se desempeñaban en nuestras tareas empresariales internas.

Datos de entrenamiento

Entrenamos modelos separados en datos sintéticos adaptados para cada uno de los puntos de referencia anteriores:

Conjunto de entrenamiento Descripción # Muestras únicas
FinanceBench sintético Consultas generadas a partir de 2400 documentos SEC 10-K ~6,000
Databricks Docs QA sintético Consultas generadas a partir de la documentación pública de Databricks. 8,727
ManufactQA Consultas generadas a partir de archivos PDF de fabricación de productos electrónicos 14,220

Para generar el conjunto de entrenamiento para cada dominio, tomamos los documentos existentes y generamos consultas de muestra basadas en el contenido de cada documento utilizando LLM como Llama 3 405B. Las consultas sintéticas fueron luego filtradas por calidad por un LLM como juez (GPT4o). Las consultas filtradas y sus documentos asociados se utilizaron luego como pares contrastivos para el ajuste preciso. Utilizamos negativos en lote para el entrenamiento contrastivo, pero agregar negativos duros podría mejorar aún más el rendimiento (consulte el Apéndice).

Ajuste de hiperparámetros

Realizamos barridos en:

  • Tasa de aprendizaje, tamaño del lote, temperatura softmax
  • Recuento de épocas (se probaron de 1 a 3 épocas)
  • Variaciones de indicaciones de consulta (por ejemplo, "Consulta:" frente a indicaciones basadas en instrucciones)
  • Estrategia de agrupación (agrupación media frente a agrupación del último token)

Todo el ajuste preciso se realizó utilizando las bibliotecas de código abierto mosaicml/composer, mosaicml/llm-foundry y mosaicml/streaming en la plataforma Databricks.

Cómo mejorar la búsqueda vectorial y RAG en Databricks

El ajuste preciso es solo un enfoque para mejorar la búsqueda vectorial y el rendimiento de RAG; enumeramos algunos enfoques adicionales a continuación.

Para una mejor recuperación:

  • Use un mejor modelo de incrustación: Muchos usuarios trabajan sin saberlo con incrustaciones obsoletas. Simplemente cambiar a un modelo de mayor rendimiento puede generar ganancias inmediatas. Consulte la tabla de clasificación MTEB para ver los modelos principales.
  • Pruebe la búsqueda híbrida: Combine incrustaciones densas con la búsqueda basada en palabras clave para mejorar la precisión. Databricks Vector Search lo facilita con una solución de un solo clic.
  • Use un reclasificador: Un reclasificador puede refinar los resultados reordenándolos según la relevancia. Databricks proporciona esto como una función integrada (actualmente en versión preliminar privada). Póngase en contacto con su ejecutivo de cuenta para probarlo.

Para un mejor RAG:

Comience con el ajuste preciso en Databricks

El ajuste preciso de las incrustaciones puede ser una victoria fácil para mejorar la recuperación y RAG en sus sistemas de IA. En Databricks, puede:

  • Ajuste con precisión y sirva modelos de incrustación en una infraestructura escalable.
  • Use herramientas integradas para la búsqueda vectorial, la reclasificación y RAG.
  • Pruebe rápidamente diferentes modelos para encontrar lo que mejor funcione para su caso de uso.

¿Listo para probarlo? Hemos creado una solución de referencia para facilitar el ajuste preciso: póngase en contacto con su ejecutivo de cuenta o arquitecto de soluciones de Databricks para obtener acceso.

Apéndice

 

Tamaño

FinanceBench Recall@10

ManufactQA Recall@10

DocsQA Recall@10

Línea de base

Ajustado con precisión

Línea de base

Ajustado con precisión

Línea de base

Publicación original

No te pierdas ninguna publicación de Databricks.

Suscríbete a nuestro blog y recibe las últimas publicaciones en tu bandeja de entrada.