Comment Configurer Facilement des Évaluations de LLM (Tutoriel)
Introduction aux évaluations de modèles d’IA
Si vous ne pouvez pas le mesurer, vous ne pouvez pas l’améliorer. Aujourd’hui, je vais vous montrer comment réaliser des évaluations de modèles, spécifiquement des évaluations RAG (Retrieval Augmented Generation). Par exemple, si vous dirigez une entreprise et que vous disposez d’un chatbot qui communique avec vos clients, vous voulez vous assurer que les informations qu’il fournit sont précises. Des informations inexactes peuvent causer de sérieux problèmes. De plus, lorsque vous itérez sur votre infrastructure d’IA, vous voulez vous assurer que vous progressez dans la bonne direction et que vous vous améliorez réellement. Avoir ces benchmarks en place et pouvoir constater l’amélioration des métriques au fil des itérations est essentiel.
Je vais vous montrer tout cela étape par étape sur Amazon Bedrock. Amazon Bedrock est un service entièrement géré où vous pouvez choisir parmi les meilleurs modèles du marché, y compris ceux d’Amazon, mais aussi de Meta, Anthropic et d’autres. Il est accompagné d’une multitude de fonctionnalités vraiment utiles, particulièrement lorsque vous développez une implémentation d’IA pour la production. Ils proposent des agents, des garde-fous pour la sécurité, le routage de prompts, des bases de connaissances RAG, la gestion des prompts, et bien plus encore.
Amazon s’est associé à moi pour cette vidéo. Ils souhaitaient que je vous présente un tutoriel étape par étape sur la façon de réaliser des évaluations sophistiquées de modèles et de RAG.
Notre cas d’utilisation : un chatbot pour un hôtel
Laissez-moi vous présenter le cas d’utilisation que nous allons traiter aujourd’hui. Nous sommes propriétaires d’un hôtel et nous disposons d’un document de politique hôtelière. Nous allons créer un chatbot qui permettra à nos utilisateurs, tous les visiteurs potentiels de notre hôtel, de poser des questions et d’en apprendre davantage. Il s’agit d’un document de propriété très complexe. Il fait 26 pages et contient des informations juridiques, des conditions d’utilisation et différentes politiques. C’est donc très complexe. Ce que nous voulons faire, c’est donner toutes ces informations à un chatbot pour qu’il réponde aux questions des utilisateurs.
Configuration initiale sur AWS
La première chose à faire est de pouvoir donner cette base de connaissances à l’un de nos modèles. Si vous n’avez pas encore de compte AWS, inscrivez-vous. C’est super simple.
Lorsque vous vous inscrivez pour la première fois à AWS, vous êtes connecté en tant qu’utilisateur root, mais vous devez créer ce qu’on appelle un utilisateur IAM pour exécuter ces évaluations. Si vous avez déjà configuré AWS et que vous avez déjà configuré tous vos utilisateurs, vous pouvez sauter cette étape.
Création d’un utilisateur IAM
- Accédez à la barre de recherche en haut, tapez « IAM » et cliquez dessus
- Sur le côté gauche, cliquez sur « Utilisateurs »
- Cliquez sur le bouton orange « Créer un utilisateur »
- Donnez un nom d’utilisateur (par exemple, « Alex »)
- Cliquez sur « Suivant »
- Laissez l’option « Ajouter l’utilisateur au groupe » sélectionnée
- Cliquez sur « Suivant » puis sur « Créer un utilisateur »
Une fois cela fait, cliquez sur le nouvel utilisateur et nous devons ajouter un nouveau groupe. Cliquez sur « Ajouter des utilisateurs aux groupes ». Si vous avez déjà un groupe admin, sélectionnez-le. Sinon, cliquez sur « Ajouter un groupe », sélectionnez « Accès administrateur » ou la politique de groupe souhaitée, puis créez le groupe d’utilisateurs. Sélectionnez « admin », puis « Ajouter des utilisateurs au groupe ».
Ensuite, cliquez sur « Informations d’identification de sécurité » et activez l’accès à la console. Vous pouvez définir un mot de passe personnalisé ou un mot de passe généré automatiquement, puis cliquez sur « Activer ». Le mot de passe est affiché ici. Vous pouvez simplement cliquer sur « Copier ». L’URL de connexion à la console est également disponible. Une fois terminé, accédez à cette URL, saisissez votre nom d’utilisateur, votre mot de passe, et vous êtes connecté en tant que cet utilisateur.
Les trois composants principaux du processus d’évaluation
L’ensemble du processus nécessite trois composants principaux :
- Le contexte – Dans notre cas, nous serons un hôtel et nous parlerons des conditions de service. Nous avons donc besoin de ce document et d’un endroit où le stocker.
- Les prompts – Nous avons besoin d’un ensemble de test, le benchmark pour tester les différents modèles. Les prompts sont des questions et des exemples de réponses, également appelés « vérité terrain », que nous allons utiliser pour tester les différents modèles.
- Un emplacement pour stocker les évaluations – Une fois les évaluations terminées, nous voulons les stocker quelque part pour pouvoir les consulter.
Nous allons maintenant configurer ces trois éléments dans S3.
Configuration des buckets S3
Création du bucket pour la politique de l’hôtel
Nous devons d’abord prendre ce document de politique hôtelière et le télécharger dans un bucket S3. Cela le rend disponible pour d’autres services.
- Recherchez « S3 » en haut et cliquez dessus
- Cliquez sur « Créer un bucket »
- Ce sera un bucket à usage général, et nous l’appellerons « hotel-policy »
- Conservez les paramètres de propriété des objets par défaut
- Conservez tous ces paramètres exactement comme ils sont
- En bas, cliquez sur « Créer un bucket »
Cliquez sur le bucket nouvellement créé. Prenez ce document de politique hôtelière et faites-le simplement glisser. Cela nous donnera ce petit formulaire de téléchargement. Cliquez sur « Télécharger ». Ce sera très rapide car c’est un document très petit.
Nous n’avons pas tout à fait terminé. Les buckets sont par défaut fermés. Ils ne sont pas exposés à d’autres services et certainement pas au web public. Mais bien sûr, vous pouvez modifier ces paramètres.
Une fois terminé, cliquez sur « Fermer » et allez dans « Autorisations ». Depuis l’onglet Autorisations de ce bucket, faites défiler jusqu’à la partie qui dit « Cross Origin Resource Sharing » (CORS). Cliquez sur « Modifier » et collez-y les paramètres CORS appropriés. Cela permet au bucket d’être exposé à d’autres services. Une fois que vous avez configuré cela, cliquez sur « Enregistrer les modifications ».
Création des buckets pour les prompts et les évaluations
Nous avons créé le bucket pour la politique de l’hôtel. Créons maintenant le bucket qui contiendra tous nos prompts :
- Cliquez à nouveau sur « Créer un bucket »
- Nommez-le « hotel-prompts-YT »
- Faites défiler jusqu’en bas et cliquez sur « Créer un bucket »
Enfin, nous avons besoin d’un endroit pour stocker les évaluations :
- Cliquez sur « Créer un bucket »
- Nommez-le « eval-store-YT »
- Faites défiler jusqu’en bas et cliquez sur « Créer un bucket »
Comme précédemment, nous devons configurer le CORS pour ces deux autres buckets. Allez dans « hotel-prompts-YT » > « Autorisations », faites défiler jusqu’en bas, cliquez sur « Modifier », collez les mêmes paramètres et enregistrez les modifications. Faites de même pour « eval-store-YT ».
Une fois que vous avez créé le bucket « eval-store-YT », cliquez dessus et créez un dossier. C’est le dossier dans lequel l’évaluation sera stockée. Cliquez sur « Créer un dossier » et nommez-le « eval-store ». Puis cliquez sur « Créer un dossier ».
Préparation des prompts pour l’évaluation
Laissez-moi vous montrer les prompts. Ce sont les prompts que nous allons utiliser pour tester les modèles. Ils incluent également un exemple de réponse correcte, également appelée « vérité terrain ».
Voici le format (que je vais partager dans la description ci-dessous) :
Exemple : « J’arriverai tard demain soir vers 23h. Quel est votre processus d’enregistrement ? Y aura-t-il encore quelqu’un à la réception pour m’aider ? »
Sous « Réponses de référence », nous avons : « Oui, notre réception est ouverte 24 heures sur 24 pour vous aider à vous enregistrer, quelle que soit votre heure d’arrivée. » Et ainsi de suite. Tout cela est tiré du document de conditions de service que je vous ai montré.
Retournons au bucket S3, cliquons sur « hotel-prompts-YT » et prenons simplement ce document, qui est au format JSONL, et déposons-le. Cliquez sur « Télécharger » et c’est terminé.
Nous avons maintenant ces trois nouveaux buckets. L’un contient nos prompts, l’autre contient notre source de connaissances, et le dernier attend simplement de recevoir les évaluations.
Création de la base de connaissances
Passons à la partie amusante. Créons notre base de connaissances :
- Cliquez sur « Créer une base de connaissances avec magasin vectoriel »
- Laissez tout par défaut et cliquez sur « Suivant »
- Où il est indiqué « Source S3 », cliquez sur « Parcourir S3 »
- Recherchez le bucket que nous venons de créer, « hotel-policy »
- Cliquez dessus, puis sélectionnez notre document de politique hôtelière
- Cliquez pour le sélectionner, puis cliquez sur « Choisir »
Tout le reste peut rester par défaut, mais si vous le souhaitez, vous pouvez définir certains de ces paramètres comme la stratégie de découpage, etc. Cliquez sur « Suivant ».
Nous allons sélectionner un modèle d’embeddings. Cliquez sur « Sélectionner un modèle » et nous allons utiliser les embeddings de texte Titan v2 d’Amazon. Cliquez dessus, sélectionnez « À la demande », puis « Appliquer ». Tout le reste peut rester identique. Cliquez sur « Suivant », puis sur « Réviser ». Faites défiler jusqu’en bas et cliquez sur « Créer une base de connaissances ».
Cela peut prendre quelques instants. À ce stade, le système prend ce PDF brut, les connaissances, le contexte que nous voulons que notre modèle puisse lire, et le convertit en un magasin vectoriel. Nous pourrons alors l’interroger beaucoup plus facilement à l’aide de notre grand modèle de langage.
Une fois la base de connaissances créée, vous devez la synchroniser. Si vous ne le faites pas, les évaluations ne fonctionneront pas. Assurez-vous donc de la synchroniser. La synchronisation la préparera au format vectoriel et la rendra prête à être interrogée par vos modèles. Cliquez dessus, mettez en surbrillance la source de données et cliquez sur « Synchroniser ».
Une fois synchronisée, vous pouvez cliquer sur le bouton « Tester la base de connaissances » et poser des questions directement à partir d’ici.
Création de l’évaluation
Nous sommes maintenant prêts à créer notre évaluation :
- Accédez à la barre de recherche, commencez à taper « évaluations » et cliquez sur « Évaluations des fonctionnalités Amazon Bedrock »
- Puisque nous testons des évaluations RAG, nous voulons sélectionner l’onglet RAG
- Cliquez sur « Créer »
Une fois que vous avez sélectionné l’évaluation RAG, vous pouvez lui donner un nom et une description. Je vais laisser le nom par défaut et ne pas mettre de description, mais vous devriez probablement écrire une description, surtout si vous prévoyez d’en faire plusieurs.
Pour le modèle évaluateur, cliquez sur « Sélectionner » et choisissez Sonnet 3.7v1 comme modèle évaluateur. Gardez à l’esprit que plus le modèle est grand, plus le modèle que vous choisissez est lent, plus ces évaluations prendront du temps. Chaque prompt que nous lui donnons devra être exécuté une fois pour chaque métrique que nous évaluons. Cliquez sur « Appliquer ».
Faites défiler vers le bas et nous avons deux options. Nous pouvons utiliser notre base de connaissances Bedrock ou apporter nos propres réponses d’inférence. Je vais simplement vous montrer comment utiliser les modèles Bedrock et la base de connaissances Bedrock, mais vous pouvez apporter les vôtres. Vous pouvez utiliser des modèles qui ne sont pas disponibles dans AWS et simplement les intégrer. Vous pouvez utiliser des sources de données externes qui ne sont pas disponibles dans AWS et les intégrer directement.
Maintenant, nous allons choisir une base de connaissances. Cliquez sur la liste déroulante et sélectionnez celle que nous avons créée. Nous voulons tester à la fois la récupération et la génération de réponses. La sélection par défaut est « récupération uniquement », qui teste uniquement la capacité à extraire les bonnes données du document de conditions de service. Mais nous voulons non seulement tester cela, mais aussi la capacité du modèle à prendre ce contexte, ces connaissances, et à fournir une réponse à nos utilisateurs. Cliquez donc sur « Récupération et génération de réponses ».
Nous devons donc sélectionner un modèle. Cliquez sur « Sélectionner un modèle » et nous avons une liste des principaux fournisseurs de modèles d’IA comme Amazon, Anthropic, Meta, etc. Vous pouvez sélectionner celui que vous préférez en fonction de vos besoins. Aujourd’hui, nous allons utiliser Nova Premiere 1.0, le tout nouveau modèle de contexte d’un million de tokens d’Amazon. Sélectionnez-le et cliquez sur « Appliquer ».
Sélection des métriques d’évaluation
C’est ici que ça devient intéressant. Nous allons choisir les métriques sur lesquelles nous allons évaluer notre modèle :
- Utilité (helpfulness)
- Exactitude (correctness)
- Fidélité (faithfulness)
- Style professionnel (professional style)
- Cohérence (coherence)
- Exhaustivité (completeness)
- Pertinence (relevance)
Nous avons également des métriques d’IA responsable : nocivité (harmfulness), refus (refusal), stéréotypes (stereotyping), et vous pouvez sélectionner n’importe lesquelles d’entre elles et n’importe quelle combinaison.
Voici la partie vraiment intéressante, que je vais juste mentionner aujourd’hui sans approfondir : vous pouvez avoir des métriques personnalisées. Vous pouvez définir vos propres métriques. Si vous cliquez sur « Ajouter des métriques personnalisées », vous pouvez décrire ce que vous voulez tester. Par exemple, si vous voulez que votre modèle parle toujours comme un pirate, vous pouvez décrire cela comme une métrique pour votre évaluation. Vous pouvez avoir une métrique de « piratitude » et avoir un score associé à la façon dont votre modèle parle comme un pirate.
Configuration finale et lancement de l’évaluation
Maintenant, nous devons sélectionner notre ensemble de données et l’endroit où nous voulons que nos évaluations soient stockées une fois terminées. C’est pourquoi nous avons configuré ces buckets plus tôt.
Pour l’ensemble de données d’évaluation, cliquez sur « Parcourir S3 » et sélectionnez « hotel-prompts-YT », puis le fichier JSONL, et cliquez sur « Choisir ».
Pour les résultats, où les résultats de l’évaluation iront, parcourez S3, allez à « eval-store-YT », puis sélectionnez ce dossier « eval-store » et cliquez sur « Choisir ».
En bas, sous Autorisations, si vous avez une autorisation existante, vous pouvez sélectionner celle que vous voulez, mais je clique simplement sur « Créer et utiliser un nouveau rôle de service ». Puis cliquez sur « Créer ».
Une fois cela fait, il commence à créer la tâche d’évaluation. Voici l’état. Il indique « En cours ». Parfois, cela peut prendre quelques minutes, mais cela peut prendre jusqu’à une heure.
Analyse des résultats d’évaluation
Notre évaluation est terminée. Je vais cliquer dessus et nous obtenons toutes nos données. J’ai exécuté deux métriques, l’exactitude et l’utilité.
Regardons d’abord l’utilité. Nous avons une distribution par score d’utilité. Deux d’entre eux se situent dans la plage de score moyen de 67 à 77. Le reste se situe entre 77 et 83. Donc assez bon.
Si je fais défiler vers le bas, nous avons également l’exactitude. Nous avons cinq exemples qui se situent dans la plage de 0,5 à 0,6 et 26 exemples dans la plage de 0,9 à 1, 1 étant parfait.
À partir de là, si nous cliquons sur ce petit bouton d’expansion, nous pouvons voir tous les résultats d’évaluation en détail. Voici la question : « J’arriverai tard demain soir vers 23h. Quel est votre processus d’enregistrement ? Y aura-t-il encore quelqu’un à la réception pour m’aider ? »
La sortie générée : « L’enregistrement est obligatoire et doit être effectué à la réception de l’hôtel », etc. C’est la génération complétée par le modèle d’inférence que nous avons choisi.
Il fournit également des références. Si je clique sur la référence, nous pouvons voir dans le document de politique de l’hôtel le langage spécifique qui a été utilisé pour générer cette réponse. Vraiment cool.
Et voici la vérité terrain. C’est ce que nous avons donné comme réponse potentiellement correcte, et le score est de 83. Si je clique sur 83, il me donne une description de la raison pour laquelle il a obtenu ce score : « La réponse du candidat est sensée, cohérente et claire. Elle fournit une explication détaillée du processus d’enregistrement, y compris la documentation nécessaire et les informations requises. Elle répond également aux préoccupations de l’utilisateur concernant l’enregistrement tardif en suggérant que le processus devrait être possible, mais en recommandant une confirmation directe auprès de l’hôtel. »
Comparaison des modèles et conclusion
Vous avez maintenant entièrement testé votre modèle avec votre contexte et vous avez un benchmark. Vous pouvez maintenant apporter des modifications, faire un nouveau benchmark et voir si vous vous améliorez. Je peux également utiliser tous les mêmes paramètres et simplement tester avec un modèle d’inférence différent pour voir quel modèle d’inférence est le meilleur pour ma base de connaissances. Je peux tester différents modèles les uns contre les autres. Il y a beaucoup de choses différentes à tester ici.
C’est un outil très puissant et les évaluations en général sont essentielles si vous voulez déployer votre IA à grande échelle.
Une fois que vous avez effectué plusieurs évaluations, vous pouvez faire des comparaisons vraiment intéressantes entre les modèles que vous évaluez. Regardez ceci. Je vais sélectionner deux de ces évaluations, puis je vais cliquer sur ce bouton « Comparer » ici. Pour ces deux évaluations, je teste Nova Pro par rapport à Nova Premiere.
Comme vous pouvez le voir, Nova Pro a obtenu un score légèrement plus élevé pour l’exactitude : 0,94 contre 0,92. Et si je survole le score d’utilité, Nova Premiere a obtenu un score légèrement plus élevé : 0,82 contre 0,81.
Et ici, nous pouvons voir encore plus de détails de comparaison. Voici pour l’exactitude, c’est pour Nova Pro. Et nous pouvons voir la distribution. Et voici Nova Premiere. Nous pouvons voir la distribution là. Et il y a eu une amélioration de 1,7 % pour Nova Pro. Ici, pour l’utilité, nous pouvons voir une diminution de 1,3 % des performances pour Nova Pro.
C’est tout pour aujourd’hui. Je tiens à remercier Amazon de s’être associé à moi pour cette vidéo. J’étais super enthousiaste à l’idée de faire un tutoriel approfondi sur un sujet si important et souvent négligé car il est utilisé pour des cas d’utilisation en production.
Je vais déposer tous les liens dont vous avez besoin ci-dessous, y compris comment accéder à tout cela. Je vous donnerai toutes les données d’exemple que j’ai utilisées, les paramètres CORS, tout ce qu’il faut dans la description. Laissez-moi un commentaire. Faites-moi savoir si vous avez apprécié ce tutoriel. N’hésitez pas à laisser un like et à vous abonner, et je vous retrouve dans la prochaine vidéo.
Featured image by Shutter Speed on Unsplash

