TL;DR : Le finetuning d’un modèle d’incorporation sur des données du domaine peut améliorer considérablement la recherche vectorielle et la précision de la génération augmentée par récupération (RAG). Avec Databricks, il est facile d’effectuer le finetuning, de déployer et d’évaluer les modèles d’incorporation afin d’optimiser la récupération pour votre cas d’utilisation spécifique, en tirant parti des données synthétiques sans étiquetage manuel.
Pourquoi c’est important : Si votre système de recherche vectorielle ou RAG ne récupère pas les meilleurs résultats, le finetuning d’un modèle d’incorporation est un moyen simple mais puissant d’améliorer les performances. Que vous traitiez des documents financiers, des bases de connaissances ou de la documentation de code interne, le finetuning peut vous donner des résultats de recherche plus pertinents et de meilleures réponses LLM en aval.
Ce que nous avons constaté : Nous avons affiné et testé deux modèles d’incorporation sur trois jeux de données d’entreprise et nous avons constaté des améliorations majeures dans les métriques de récupération (Rappel@10) et les performances RAG en aval. Cela signifie que le finetuning peut changer la donne en matière de précision sans nécessiter d’étiquetage manuel, en tirant parti uniquement de vos données existantes.
Vous voulez essayer le finetuning d’incorporation ? Nous fournissons une solution de référence pour vous aider à démarrer. Databricks facilite la recherche vectorielle, le RAG, le reclassement et le finetuning d’incorporation. Contactez votre responsable de compte Databricks ou votre architecte de solutions pour plus d’informations.
Les modèles d’incorporation alimentent les systèmes modernes de recherche vectorielle et RAG. Un modèle d’incorporation transforme le texte en vecteurs, ce qui permet de trouver du contenu pertinent en fonction du sens plutôt que des simples mots clés. Toutefois, les modèles prêts à l’emploi ne sont pas toujours optimisés pour votre domaine spécifique, c’est là qu’intervient le finetuning.
Le finetuning d’un modèle d’incorporation sur des données spécifiques au domaine est utile de plusieurs façons :
Dans ce billet de blog, nous montrons que le finetuning d’un modèle d’incorporation est un moyen efficace d’améliorer la récupération et les performances RAG pour les cas d’utilisation d’entreprise spécifiques aux tâches.
Nous avons affiné deux modèles d’incorporation (gte-large-en-v1.5 et e5-mistral-7b-instruct) sur des données synthétiques et les avons évalués sur trois jeux de données de notre Domain Intelligence Benchmark Suite (DIBS) (FinanceBench, ManufactQA et Databricks DocsQA). Nous les avons ensuite comparés au text-embedding-3-large d’OpenAI.
Principaux points à retenir :
Après avoir comparé trois jeux de données, nous avons constaté que le finetuning de l’incorporation améliore la précision sur deux de ces jeux de données. La figure 1 montre que pour FinanceBench et ManufactQA, les incorporations affinées ont surpassé leurs versions de base, battant parfois même le modèle API d’OpenAI (gris clair). Pour Databricks DocsQA, toutefois, la précision de text-embedding-3-large d’OpenAI surpasse tous les modèles affinés. Il est possible que cela soit dû au fait que le modèle a été entraîné sur la documentation publique de Databricks. Cela montre que si le finetuning peut être efficace, il dépend fortement du jeu de données d’entraînement et de la tâche d’évaluation.
Nous avons ensuite comparé les résultats ci-dessus avec le reclassement basé sur l’API à l’aide de voyageai/rerank-1 (figure 2). Un reclasseur prend généralement les k meilleurs résultats récupérés par un modèle d’incorporation, reclasse ces résultats par pertinence par rapport à la requête de recherche, puis renvoie les k meilleurs résultats reclassés (dans notre cas, k=30 suivi de k=10). Cela fonctionne parce que les reclasseurs sont généralement des modèles plus grands et plus puissants que les modèles d’incorporation et modélisent également l’interaction entre la requête et le document d’une manière plus expressive.
Voici ce que nous avons constaté :
Les reclasseurs entraînent généralement une latence et un coût d’inférence supplémentaires par requête par rapport aux modèles d’incorporation. Toutefois, ils peuvent être utilisés avec des bases de données vectorielles existantes et peuvent, dans certains cas, être plus rentables que la réincorporation des données avec un modèle d’incorporation plus récent. Le choix d’utiliser ou non un reclasseur dépend de votre domaine et de vos exigences en matière de latence/coût.
Pour FinanceBench, une meilleure récupération s’est traduite directement par une meilleure précision RAG lorsqu’elle est combinée à GPT-4o (voir l’annexe). Toutefois, dans les domaines où la récupération était déjà forte, comme Databricks DocsQA, le finetuning n’a pas beaucoup ajouté, ce qui souligne que le finetuning fonctionne mieux lorsque la récupération est un goulot d’étranglement clair.
Voici quelques-uns des détails les plus techniques de notre génération de données synthétiques, de notre finetuning et de notre évaluation.
Nous avons affiné deux modèles d’incorporation open source :
Nous les avons ensuite comparés au text-embedding-3-large d’OpenAI.
Nous avons évalué tous les modèles sur les jeux de données suivants de notre Domain Intelligence Benchmark Suite (DIBS) : FinanceBench, ManufactQA et Databricks DocsQA.
| Jeu de données | Description | Nombre de requêtes | Nombre de corpus |
|---|---|---|---|
| FinanceBench | Questions sur les documents SEC 10-K générés par des experts humains. La récupération se fait sur des pages individuelles d’un sur-ensemble de 360 dépôts SEC 10-K. | 150 | 53 399 |
| ManufactQA | Questions et réponses échantillonnées à partir des forums publics d’un fabricant d’appareils électroniques. | 6 787 | 6 787 |
| Databricks DocsQA | Questions basées sur la documentation Databricks disponible publiquement générée par des experts Databricks. | 139 | 7 561 |
Nous signalons recall@10 comme notre principale métrique de récupération ; cela mesure si le document correct se trouve dans les 10 premiers documents récupérés.
La référence absolue pour la qualité du modèle d’incorporation est le banc d’essai MTEB, qui intègre des tâches de récupération telles que BEIR ainsi que de nombreuses autres tâches de non-récupération. Bien que des modèles tels que gte-large-en-v1.5 et e5-mistral-7b-instruct fonctionnent bien sur MTEB, nous étions curieux de voir comment ils fonctionnaient sur nos tâches d’entreprise internes.
Nous avons entraîné des modèles distincts sur des données synthétiques adaptées à chacun des bancs d’essai ci-dessus :
| Jeu d’entraînement | Description | Nombre d’échantillons uniques |
| FinanceBench synthétique | Requêtes générées à partir de 2 400 documents SEC 10-K | ~6 000 |
| Databricks Docs QA synthétique | Requêtes générées à partir de la documentation publique de Databricks. | 8 727 |
| ManufactQA | Requêtes générées à partir de PDF de fabrication électronique | 14 220 |
Afin de générer le jeu d’entraînement pour chaque domaine, nous avons pris les documents existants et généré des requêtes d’échantillon basées sur le contenu de chaque document à l’aide de LLM tels que Llama 3 405B. Les requêtes synthétiques ont ensuite été filtrées pour la qualité par un LLM en tant que juge (GPT4o). Les requêtes filtrées et leurs documents associés ont ensuite été utilisés comme paires contrastives pour le finetuning. Nous avons utilisé des négatifs en lots pour l’entraînement contrastif, mais l’ajout de négatifs durs pourrait encore améliorer les performances (voir l’annexe).
Nous avons effectué des balayages sur :
Tout le finetuning a été effectué à l’aide des bibliothèques open source mosaicml/composer, mosaicml/llm-foundry et mosaicml/streaming sur la plateforme Databricks.
Le finetuning n’est qu’une approche pour améliorer la recherche vectorielle et les performances RAG ; nous énumérons quelques approches supplémentaires ci-dessous.
Le finetuning des incorporations peut être une victoire facile pour améliorer la récupération et le RAG dans vos systèmes d’IA. Sur Databricks, vous pouvez :
Prêt à l’essayer ? Nous avons créé une solution de référence pour faciliter le finetuning : contactez votre responsable de compte Databricks ou votre architecte de solutions pour y accéder.
|
Taille |
FinanceBench Rappel@10 |
ManufactQA Rappel@10 |
DocsQA Rappel@10 |
||||
|
Base |
Affiné |
Base |
Article original | ||||