AccueilContact

Guide pas à pas pour choisir le meilleur modèle d'incorporation pour votre application

Publié dans Développement Web
5 juillet 2024
5 min read
Guide pas à pas pour choisir le meilleur modèle d'incorporation pour votre application

Guide étape par étape pour choisir le meilleur modèle d’incorporation pour votre application

Les applications modernes de recherche et de génération augmentée par la recherche (RAG) nécessitent des incorporations de vecteurs pour capturer le sens sémantique des objets de données (par exemple, du texte) et les représenter sous forme d’array de nombres. Dans cet article, nous vous guiderons sur la sélection du bon modèle d’incorporation pour votre application de recherche ou de RAG, en fonction de votre cas d’utilisation et de vos besoins spécifiques.

Étape 1: Identifier votre cas d’utilisation

Déterminez si un modèle polyvalent serait suffisant pour atteindre vos objectifs, ou si vous avez des besoins spécifiques tels que la modalité (par exemple, texte uniquement ou multimodal), le domaine d’objet (par exemple, codage, droit, médical, multilingue, etc.) et le mode de déploiement. Dans la plupart des cas, commencer par un modèle polyvalent pour vos modalités souhaitées serait une ligne de base sensée.

Étape 2: Sélectionner un modèle de base

La tableau d’efficacité des modèles d’incorporation (MTEB) est un bon point de départ pour avoir un aperçu du paysage actuel de la large gamme de modèles d’incorporation de texte propriétaires et open source. Pour chaque modèle d’incorporation, le MTEB répertorie diverses métriques telles que la taille du modèle, l’utilisation de la mémoire, les dimensions d’incorporation, le nombre maximal de jetons et son score pour des tâches telles que la recherche, la résumé, etc.

Voici quelques considérations pour choisir le meilleur modèle pour votre application:

  • Tâche: Sur le haut du classement MTEB, vous verrez divers onglets. Vous devez d’abord décider si vous voulez un modèle polyvalent ou si vous pouvez trouver une tâche (classification, regroupement, recherche, résumé, etc.) qui correspond à votre cas d’utilisation spécifique. Par exemple, si vous construisez une application RAG, vous voudrez peut-être examiner de plus près la tâche de “Recherche”. Vous voudrez également affiner votre sélection si vous avez des besoins plus spécifiques, tels qu’une langue spécifique (par exemple, anglais, chinois, français, polonais) ou un domaine spécifique (par exemple, droit).
  • Score: Cela vous montrera à quel point le modèle se comporte sur un ensemble de données de référence spécifique ou sur plusieurs ensembles de données de référence. Selon la tâche, différents [métriques] sont utilisées. Généralement, ces métriques peuvent prendre des valeurs entre 0 et 1, où des valeurs plus élevées indiquent une meilleure performance.
  • Taille du modèle et utilisation de la mémoire: Cela vous donne une idée des ressources informatiques nécessaires pour exécuter le modèle. Alors que la performance de la recherche évolue avec la taille du modèle, il est important de noter que la taille du modèle impacte également directement la latence. De plus, il convient de mentionner que les modèles plus grands peuvent également surajuster et donc sous-performer en production. Ainsi, vous voudrez viser un bon compromis entre la latence et la performance pour une configuration de production. Idéalement, commencez avec un modèle petit et léger pour pouvoir construire une ligne de base sur laquelle vous pourrez itérer rapidement. Une fois votre pipeline fonctionne, vous pouvez remplacer le modèle par un plus grand et plus performant plus tard.
  • Dimensions d’incorporation: Il s’agit de la longueur du vecteur d’incorporation. Alors que des dimensions d’incorporation plus grandes peuvent capturer des détails et des relations plus nuancés dans les données, elles ne sont pas nécessairement toujours meilleures. Avez-vous vraiment besoin de 2048 dimensions pour discuter avec un PDF? Probablement pas. D’autre part, des dimensions d’incorporation plus petites offrent une inférence plus rapide et sont plus efficaces en termes de stockage et de mémoire. Ainsi, vous voudrez viser un bon compromis entre la capture de la complexité des données et l’efficacité opérationnelle.
  • Max tokens: Il s’agit du nombre maximal de jetons pouvant être convertis en un seul vecteur d’incorporation. Pour les applications RAG courantes, une bonne taille de bloc pour une incorporation est généralement d’environ un paragraphe de texte ou moins. Dans ce cas, les modèles avec un maximum de 512 jetons devraient être suffisants. Cependant, il y aura des cas spéciaux où vous devrez incorporer des textes sources plus longs nécessitant des modèles avec une fenêtre de contexte plus grande.

Étape 3: Évaluer le modèle sur votre cas d’utilisation

Bien que le classement MTEB soit un excellent point de départ, vous devez prendre ses résultats avec prudence et scepticisme. Gardez à l’esprit que ces résultats sont auto-déclarés. Il est également possible que certains modèles produisent des scores de performance gonflés, car ils peuvent inclure les ensembles de données MTEB dans leurs données d’entraînement puisqu’ils sont publiquement disponibles. Enfin, les ensembles de données sur lesquels les modèles sont évalués pourraient ne pas représenter avec précision les données avec lesquelles vous travaillez. Ainsi, nous vous recommandons d’évaluer le modèle d’incorporation sur votre propre ensemble de données, comme nous vous le montrerons ci-dessous. Vous pouvez trouver le code associé dans notre [lien_vers_le_code].

Préparer l’ensemble de données

Pour cela, vous pourriez générer un petit ensemble de données étiqueté à la main avec 50 à 100 objets de données et voir quelle performance vous pouvez atteindre. Nous allons créer un ensemble de données minimal avec huit pâtisseries différentes pour suivre l’exemple utilisé dans [lien_vers_l’exemple] et notre [lien_vers_le_guide]. Vous pouvez trouver le fichier .csv dans le [lien_vers_le_fichier].

IDNom de la pâtisserieDescription de la pâtisserie
1BagelUn pain rond classique avec un intérieur moelleux et une croûte dorée, parfait pour griller ou garnir de fromage à la crème, de saumon fumé ou de vos tartinades préférées.
2RouleauMoelleux et moelleux, ces rouleaux sont des compagnons polyvalents pour n’importe quel repas. Dégustez-les frais sortis du four ou coupés pour des sandwichs, remplis de votre choix de viandes, fromages et légumes.
3BeignetLaissez-vous tenter par ces délices sucrés et frits. Glacés, saupoudrés ou garnis de crèmes décadentes et de confitures de fruits, chaque bouchée est une explosion de saveur et de nostalgie.
4MuffinMoelleux et tendre, ces muffins débordent de saveur. Que vous préfériez les myrtilles classiques, les pépites de chocolat indulgentes ou le son copieux, il y a un muffin pour chaque envie.
5CroissantDes couches beurrées de pâte feuilletée sont pliées à la perfection, créant une friandise délicate et irrésistible. Dégustez-les natures, farcis de garnitures salées ou accompagnés de votre café préféré.
6SconeFriable mais tendre, ces scones sont l’incarnation du confort. Dégustez-les natures ou parsemés de fruits, de noix ou de pépites de chocolat, accompagnés d’une cuillerée de crème caillée et de confiture.
7BretzelCroquants à l’extérieur, moelleux à l’intérieur, ces bretzels sont le rêve d’un amateur de collations salées. Dégustez-les torsadés dans des formes traditionnelles ou trempés dans des garnitures sucrées ou salées pour une touche délicieuse.
8SandwichLe pain fraîchement cuit est la base de ces sandwichs copieux. Empilez des couches de viandes, de fromages, de légumes croquants et de tartinades savoureuses pour un repas satisfaisant à emporter.

Créer des incorporations

Maintenant, générons et stockons les vecteurs d’incorporation correspondants dans notre base de données de vecteurs Weaviate. Pour cela, vous vous connecterez d’abord à un client Weaviate dans [lien_vers_le_client] pour la simplicité ().

Ensuite, vous configurerez une collection de données appelée [nom_de_la_collection] et configurerez les propriétés et le vectoriseur. Cet exemple utilise le modèle d’incorporation OpenAI [nom_du_modèle] pour vectoriser les données à l’importation et à la requête automatiquement. Notez que nous répéterons cette étape plus tard avec [nom_du_deuxième_modèle] pour comparer les deux modèles. Pour cela, vous voudrez peut-être jeter un œil à [lien_vers_la_documentation].

Enfin, vous pouvez importer vos données:

importer_vos_données

Récupérer

Maintenant, vous pouvez exécuter quelques requêtes:

quelques_requêtes

Évaluer la performance

Cette section compare deux modèles d’incorporation OpenAI, [nom_du_premier_modèle] et [nom_du_deuxième_modèle], pour trois requêtes d’exemple. Notez que les résultats souhaités pour chaque requête sont très subjectifs. Mais c’est exactement le point: vous devez décider du résultat que vous souhaitez pour votre cas d’utilisation.

Divers [métriques] sont disponibles, tels que la précision, le rappel, MRR, MAP et NDCG. Dans cette section, nous utiliserons la précision et le rappel comme métriques d’évaluation.

Requête 1: “Pâtisserie sucrée”

Articles pertinents: Beignet, Muffin, Scone (Notez que cette liste est subjective car nous avons décidé de ce qui sera pertinent pour cette requête)

Résultats:

Rangtext-embedding-3-smalltext-embedding-3-large
1✅ Beignet❌ Croissant
2❌ Croissant✅ Beignet
3❌ Rouleau✅ Scone
4❌ Bagel❌ Sandwich

Précision: 0.25 Rappel: 0.33

Requête 2: “Convient pour le déjeuner”

Articles pertinents: Sandwich, Bagel, Rouleau, Bretzel (Notez que cette liste est subjective car nous avons décidé de ce qui sera pertinent pour cette requête)

Résultats:

Rangtext-embedding-3-smalltext-embedding-3-large
1✅ Sandwich✅ Sandwich
2✅ Rouleau✅ Rouleau
3✅ Bagel✅ Bagel
4❌ Scone❌ Croissant

Précision: 0.75 Rappel: 0.75

Requête 3: “Se marie bien avec de la confiture”

Articles pertinents: Bagel, Croissant, Rouleau (Notez que cette liste est subjective car nous avons décidé de ce qui sera pertinent pour cette requête)

Résultats:

Rangtext-embedding-3-smalltext-embedding-3-large
1❌ Sandwich❌ Scone
2✅ Bagel✅ Bagel
3❌ Scone❌ Beignet
4✅ Rouleau❌ Sandwich

Précision: 0.5 Rappel: 0.67

À travers les trois requêtes d’exemple, à la fois [nom_du_premier_modèle] et [nom_du_deuxième_modèle] donnent une précision moyenne de 0.5 et un rappel moyen de 0.58, bien qu’ils renvoient des résultats différents pour les requêtes. Comme vous pouvez le voir, vous devrez augmenter à la fois le nombre d’objets de données dans l’ensemble de données et le nombre de requêtes pour évaluer les modèles d’incorporation. Cependant, cet petit exemple devrait vous donner un bon point de départ pour construire votre propre pipeline d’évaluation.

Étape 4: Itérer

Après avoir construit un pipeline initial pour votre cas d’utilisation avec un petit modèle de base, vous pouvez expérimenter avec quelques modèles d’incorporation différents et voir si vous pouvez faire mieux que votre choix de base.

Étape facultative: Ajustement fin

L’ajustement fin d’un modèle d’incorporation n’est qu’une étape facultative. Idéalement, vous pouvez trouver un modèle adapté tel quel, et l’ajustement fin ne serait peut-être nécessaire que pour obtenir les dernières performances.

Résumé

Cet article est inspiré d’une récente discussion entre [nom_de_la_personne] et [nom_de_la_personne]. Il a discuté des étapes que vous pouvez suivre pour sélectionner le bon modèle d’incorporation pour votre application de recherche ou d’IA générative. Vous pouvez écouter la discussion complète sur YouTube et trouver le code associé dans notre [lien_vers_le_code].

Prêt à commencer à construire?

Consultez [lien_vers_la_ressource], et commencez à construire des applications incroyables avec l’essai gratuit de [nom_du_produit].

Ne voulez pas manquer un autre article de blog?

Inscrivez-vous à notre newsletter bihebdomadaire pour rester informé!

By submitting, I agree to the terms and conditions and privacy policy.

[iframe_vers_la_newsletter]

Source de l’article


Share

Article précédent
Jensen Huang de Nvidia aborde la concurrence croissante lors de la réunion des actionnaires après la hausse historique des actions

Articles similaires

Choses étranges apprises en écrivant un émulateur x86
12 juillet 2024
1 min
© 2024, All Rights Reserved.

Liens Rapides

Partenariats et opportunités publicitairesContactez nous

Réseaux Sociaux