Grands modèles de langageRAG et recherche d'informationIngénierie IAGrands modèles de langageRAG et recherche d'informationIngénierie IAVision par ordinateur
Grands modèles de langageVision par ordinateur8 min de lecture

Améliorer votre pipeline RAG avec des modèles d’embeddings ajustés

Améliorez un pipeline RAG avec des embeddings ajustés, de meilleures vérifications de la recherche d’information et une vision plus claire des situations où le travail supplémentaire en vaut la peine.

Mis à jour le 29 nov. 2024
Améliorer votre pipeline RAG avec des modèles d’embeddings ajustés
Sommaire

À retenir

  • Le modèle d’embeddings crée des représentations numériques de vos données. La base de données vectorielle stocke et récupère ces représentations.
  • Le fine-tuning remodèle l’espace des embeddings pour augmenter la probabilité que les requêtes et les documents propres au domaine se trouvent près les uns des autres.
  • Évaluez d’abord un solide modèle général. Le fine-tuning mérite le travail supplémentaire seulement si le modèle de référence rate des distinctions importantes pour votre tâche de recherche.

Regardez la vidéo !

Plongeons dans une partie importante du pipeline de génération augmentée par récupération (RAG) : le modèle d’embeddings. Toutes vos données seront transformées en embeddings que nous utiliserons ensuite pour récupérer l’information. Il est donc très important de comprendre les modèles d’embeddings. Explorons cette partie essentielle du pipeline, la façon d’effectuer leur fine-tuning et les raisons pour lesquelles ce travail compte.

Qu’est-ce qu’un modèle d’embeddings ?

Alors, qu’est-ce qu’un modèle d’embeddings exactement ? Dans le RAG, notre première étape consiste à convertir tous les documents ou textes en représentations numériques. Ce processus s’appelle la création d’embeddings. Un modèle d’embeddings reçoit des données non structurées et les convertit dans ces représentations numériques.

L’élément intéressant des embeddings est qu’ils nous donnent des représentations de longueur fixe, donc des nombres, pour nos mots, peu importe le nombre de mots différents dans un texte donné. Et voici le point essentiel : lorsque le modèle convertit le texte, il garde les sens semblables près les uns des autres. Les modèles d’embeddings transforment le texte, et même les images ou l’audio comme avec GPT-4o, qui possèdent une grande dimension, en une représentation de plus faible dimension. Nous l’appelons embedding ou encore espace latent, où se trouvent les embeddings. Cet espace latent saisit les caractéristiques importantes et les similarités dans une forme simplifiée. Un modèle d’embeddings pourrait par exemple prendre un document de 2 000 mots et le représenter dans un espace de 300 dimensions, soit une simple liste de 300 nombres. Cet espace est beaucoup plus petit que l’original, mais préserve tout de même les relations pertinentes entre les mots.

Les modèles d’embeddings sont utiles parce qu’ils peuvent comprendre les relations entre les mots plutôt que d’examiner chacun d’eux de façon isolée. Ils deviennent donc essentiels aux moteurs de recherche de textes et d’images, aux systèmes de recommandation, aux chatbots, aux systèmes de détection de la fraude et à de nombreuses autres applications.

Modèles d’embeddings ou bases de données vectorielles

Exemple visuel tiré de « Améliorer votre pipeline RAG avec des modèles d’embeddings ajustés »

Maintenant, si vous avez suivi le cours ou lu les autres articles, vous pensez peut-être : « Cela ressemble un peu au travail des bases de données vectorielles. » Alors, quelle est la différence ?

Une base de données vectorielle sert à stocker et à récupérer efficacement ces embeddings. Elle travaille donc avec eux. Lorsque notre modèle d’embeddings a terminé son travail et converti le texte en embeddings, la base de données vectorielle prend le relais. Elle les organise et les indexe afin que, lorsqu’une nouvelle requête arrive, nous réutilisions notre modèle d’embeddings pour encoder celle-ci, puis notre base de données pour trouver et renvoyer rapidement l’information la plus pertinente. En bref, le modèle d’embeddings crée les représentations numériques, tandis que la base de données vectorielle les stocke et les récupère selon leur similarité contextuelle en comparant simplement leurs nombres.

Les embeddings Matryoshka

Exemple visuel tiré de « Améliorer votre pipeline RAG avec des modèles d’embeddings ajustés »

Puisque nous avons fait un petit détour pour parler des bases de données vectorielles, examinons rapidement le stockage. Les embeddings de haute dimension peuvent coûter cher à stocker. Ils peuvent contenir des milliers de valeurs, et nous pouvons en posséder des millions. C’est ici que les embeddings Matryoshka deviennent utiles. Imaginez des poupées russes : elles commencent grandes, puis deviennent de plus en plus petites à mesure que vous les ouvrez. Les embeddings Matryoshka fonctionnent de façon semblable. Ils commencent avec une grande taille, par exemple 1 024 dimensions, puis diminuent progressivement pendant l’entraînement pour atteindre un format plus petit, comme 64 dimensions. À la fin de l’entraînement, même ces embeddings plus petits peuvent saisir le sens essentiel du texte aussi bien que les plus grands. Nous pouvons alors comparer les petits embeddings, en commençant avec 64 dimensions pour trouver les plus similaires, puis relancer une recherche sur une représentation plus grande, comme 128 dimensions, afin de trouver les plus similaires dans le sous-groupe. Nous répétons ce processus jusqu’à atteindre les plus grandes dimensions, comme les 1 024 du départ. Cette approche utile rend le stockage et les calculs pendant l’entraînement et le fine-tuning beaucoup plus efficaces sans perte de qualité.

Le fine-tuning d’un modèle d’embeddings

Revenons à nos modèles d’embeddings. Nous avons vu ce qu’ils sont, comment ils fonctionnent, comment nous les utilisons et comment nous stockons les embeddings qu’ils produisent. Parlons maintenant de leur fine-tuning. Les modèles d’embeddings généraux sont excellents, mais pourraient ne pas convenir parfaitement à certaines tâches dès leur sortie de la boîte.

Imaginez un modèle d’embeddings entraîné sur une grande diversité de textes. Si vous voulez qu’il excelle dans une tâche précise, comme la compréhension des billets de soutien à la clientèle de votre entreprise, vous devrez peut-être faire son fine-tuning. Ce processus adapte le modèle afin qu’il saisisse mieux les nuances et les particularités de votre tâche. Un chatbot ajusté sur vos billets de soutien comprendra par exemple mieux les problèmes typiques de vos clients et pourra leur répondre plus efficacement.

Que se passe-t-il pendant le fine-tuning ?

Exemple visuel tiré de « Améliorer votre pipeline RAG avec des modèles d’embeddings ajustés »

Alors, que se passe-t-il réellement lorsque vous faites le fine-tuning de votre modèle d’embeddings ? Au départ, un modèle préentraîné possède une compréhension générale du langage, avec des données distribuées uniformément dans ses couches. Le fine-tuning ajuste cette distribution pour mettre davantage l’accent sur votre tâche précise. L’espace latent du modèle, soit la représentation numérique plus simple dont nous avons parlé, s’adapte donc afin de former des groupes plus pertinents et propres à la tâche. Le modèle apprendra à mieux séparer les données, même dans un domaine précis, alors qu’un modèle plus général les aurait toutes considérées comme très similaires.

Exemple visuel tiré de « Améliorer votre pipeline RAG avec des modèles d’embeddings ajustés »

En général, les couches inférieures d’un modèle préentraîné saisissent les caractéristiques fondamentales du langage, tandis que les couches supérieures développent une compréhension propre à la tâche pendant le fine-tuning. Dans notre exemple des billets des clients, les couches inférieures saisissent les caractéristiques fondamentales du langage, comme la grammaire, le sens des mots et les structures de phrases de base. Elles reconnaissent par exemple des termes comme « remboursement » et « commande ». Sans fine-tuning, les couches supérieures du modèle possèdent toutefois seulement une compréhension générale du contexte du service à la clientèle. Lorsqu’elles sont ajustées sur votre propre dataset de billets de soutien, elles s’adaptent pour comprendre les nuances et les problèmes courants propres à votre entreprise. Le modèle peut alors reconnaître des problèmes précis et fournir des réponses selon le contexte donné. Il peut traiter efficacement un billet comme « J’ai besoin d’aide avec ma commande récente. Elle n’est toujours pas arrivée » en reconnaissant un problème de livraison à partir de billets semblables, puis trouver la bonne information dans la base de données pour fournir la réponse appropriée au client. Il évite ainsi de sortir toute l’information liée au mot « commande », par exemple. Un modèle d’embeddings ajusté gère donc mieux les tâches propres au contexte qu’un modèle général.

Comment faire le fine-tuning d’un modèle d’embeddings

Le fine-tuning d’un modèle d’embeddings comprend quelques étapes :

  1. Choisissez un modèle préentraîné : commencez avec un modèle qui offre déjà de bonnes performances dans les tâches générales.
  2. Préparez vos données : rassemblez et prétraitez les données propres à votre tâche.
  3. Ajustez le modèle : réentraînez le modèle, ou faites son fine-tuning, sur votre dataset, souvent avec des techniques d’apprentissage par transfert.
  4. Évaluez et optimisez : testez les performances du modèle et ajustez-le pour améliorer son exactitude.
  5. Intégrez-le au système RAG : une fois le modèle ajusté, intégrez-le à votre système RAG. Assurez-vous qu’il convertit efficacement les requêtes et les documents entrants en embeddings que la base de données vectorielle peut récupérer et associer avec efficacité.

Avez-vous réellement besoin du fine-tuning ?

Mais devez-vous toujours faire le fine-tuning d’un modèle d’embeddings ? Pas nécessairement. Si un modèle général préentraîné répond à vos besoins, vous n’avez peut-être pas besoin de l’ajuster. C’est pourquoi il est essentiel d’évaluer correctement votre pipeline, même dès le début du projet. Mais si votre tâche exige une compréhension plus profonde de certains contextes ou de certaines nuances, le fine-tuning devient essentiel. Il aide le modèle à produire des embeddings plus pertinents et plus exacts, adaptés à vos besoins précis, et à mieux comprendre les différences propres au domaine afin de trouver l’information pertinente.

Le fine-tuning peut donc améliorer considérablement les performances du modèle en l’alignant mieux sur votre tâche, ce qui produit des résultats supérieurs et plus précis. Il devient extrêmement utile lorsque votre tâche exige beaucoup de connaissances expertes absentes du système d’embeddings ou du LLM général que vous utilisez.

Découvrez notre cours, qui couvre les techniques avancées de RAG et bien plus encore pour construire un système fondé sur les LLMs. Utilisez le code « BLACKFRIDAY_2024 » pour obtenir un rabais de 15 % !

Merci d’avoir lu. On se retrouve dans le prochain !

Ressources :

  1. https://cloud.google.com/vertex-ai/generative-ai/docs/models/tune-embeddings#:~:text=Tuning d’un modèle d’embeddings textuels, adapté à vos besoins précis.
  2. https://www.datarobot.com/blog/choosing-the-right-vector-embedding-model-for-your-generative-ai-use-case/#:~:text=Vector les bases de données vectorielles ne sont souvent pas nécessaires, ce qui rend le système plus rapide et plus léger.
  3. https://ar5iv.labs.arxiv.org/html/2210.12696v1
  4. https://huggingface.co/blog/matryoshka
  5. https://www.ibm.com/topics/embedding

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Que fait un modèle d’embeddings dans le RAG ?

Il convertit les requêtes et les documents en vecteurs dont les distances représentent approximativement leur pertinence sémantique.

Quand le fine-tuning des embeddings peut-il améliorer la recherche ?

Il aide lorsque les embeddings généraux ratent le sens, la terminologie ou les distinctions propres au domaine dont vos requêtes ont besoin.

Tous les systèmes RAG ont-ils besoin d’embeddings ajustés ?

Non. Commencez par évaluer la recherche d’information, puisqu’un modèle général peut déjà atteindre l’exactitude nécessaire.

En quoi les modèles d’embeddings diffèrent-ils des bases de données vectorielles ?

Le modèle crée les vecteurs. La base de données les stocke, les indexe, les filtre et les récupère efficacement.

Qu’est-ce qu’un embedding Matryoshka ?

Il est entraîné pour que les préfixes plus courts du vecteur restent utiles, ce qui réduit le stockage et les calculs avec une perte de qualité limitée.