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.
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:
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.
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:
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.
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.
Lo que encontramos fue:
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.
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.
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.
Ajustamos con precisión dos modelos de incrustación de código abierto:
Luego los comparamos con text-embedding-3-large de OpenAI.
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.
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).
Realizamos barridos en:
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.
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.
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:
¿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.
|
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 | ||