Évaluation Automatisée des Modèles de Langage (LLMs) sur AWS: Une Solution Complète pour l’IA Générative
## Introduction
Les modèles de langage de grande taille (LLMs) sont devenus des composants essentiels dans de nombreuses applications industrielles, allant de l’amélioration des interactions clients à l’automatisation des processus métiers. Cependant, leur déploiement dans des scénarios réels présente des défis significatifs, notamment en matière de précision, d’équité, de pertinence et de gestion des hallucinations. Pour maintenir la confiance et la sécurité, il est crucial d’évaluer rigoureusement les performances et les sorties de ces modèles.
L’évaluation joue un rôle central dans le cycle de vie des applications d’IA générative, tout comme dans l’apprentissage automatique traditionnel. Des méthodologies d’évaluation robustes permettent de prendre des décisions éclairées concernant le choix des modèles et des invites (prompts). Toutefois, l’évaluation des LLMs est un processus complexe et coûteux en ressources en raison de la nature de leurs sorties en texte libre. Bien que les évaluations humaines fournissent des insights précieux, elles sont difficiles à mettre à l’échelle. Par conséquent, il existe une demande croissante pour des cadres d’évaluation automatisés, évolutifs et intégrables dans le développement des applications, similaires aux tests unitaires et d’intégration en développement logiciel.
Dans cet article, nous présentons un cadre d’évaluation automatisé déployable sur AWS. Cette solution permet d’intégrer plusieurs LLMs, d’utiliser des métriques d’évaluation personnalisées et d’aider les entreprises à surveiller en continu les performances des modèles. Nous introduisons également des métriques d’évaluation basées sur le jugement des LLMs (LLM-as-a-judge) en utilisant les nouveaux modèles Amazon Nova, qui permettent des évaluations évolutives grâce à leurs capacités avancées et leur faible latence. De plus, nous offrons une interface conviviale pour faciliter l’utilisation.
## Méthodes d’Évaluation
Avant de mettre en œuvre des processus d’évaluation pour les solutions d’IA générative, il est essentiel d’établir des métriques et des critères clairs pour l’évaluation et de constituer un ensemble de données d’évaluation. Cet ensemble doit être représentatif de l’usage réel et comprendre des échantillons diversifiés, idéalement avec des valeurs de vérité terrain générées par des experts. La taille de l’ensemble de données dépendra de l’application spécifique et du coût d’acquisition des données. Le développement de cet ensemble peut être un processus itératif, enrichi progressivement par l’ajout de nouveaux échantillons et l’amélioration des performances du modèle.
### Critères d’Évaluation
Les critères d’évaluation peuvent être répartis en trois catégories principales :
1. **Métriques basées sur la latence** : Incluent des mesures telles que le temps de génération de réponse ou le temps jusqu’au premier token. L’importance de chaque métrique peut varier en fonction de l’application spécifique.
2. **Coût** : Réfère aux dépenses associées à la génération de réponses.
3. **Performance** : Les métriques de performance sont fortement dépendantes du cas d’utilisation. Elles peuvent inclure des mesures de précision, de cohérence factuelle des réponses ou la capacité à générer des réponses structurées.
Il existe généralement une relation inverse entre latence, coût et performance. Selon le cas d’utilisation, un facteur peut être plus critique que les autres. Disposer de métriques pour ces catégories à travers différents modèles aide à prendre des décisions basées sur les données pour déterminer le choix optimal pour un cas d’utilisation spécifique.
### Métriques d’Évaluation Intégrées
Pour soutenir ces scénarios diversifiés, notre solution intègre plusieurs métriques d’évaluation :
– **FMEval** : La bibliothèque Foundation Model Evaluation (FMEval) d’AWS offre des modèles d’évaluation spécialisés pour fournir des métriques telles que la toxicité dans les sorties des LLMs, la précision et la similarité sémantique entre le texte généré et le texte de référence.
– **Ragas** : Un cadre open source qui fournit des métriques pour l’évaluation des systèmes de Génération Augmentée par Récupération (RAG), qui génèrent des réponses basées sur un contexte fourni.
– **LLMeter** : Une solution simple pour les tests de latence et de débit des LLMs, tels que ceux fournis par Amazon Bedrock et OpenAI.
– **Métriques LLM-as-a-judge** : Utilisent un LLM juge pour noter la sortie d’un LLM en fonction de critères prédéfinis. Nous utilisons le modèle Amazon Nova en raison de sa précision et de ses performances avancées.
## Workflow d’Évaluation
Une fois les métriques définies, comment procéder à l’évaluation de la solution ? Un processus typique de développement d’application d’IA générative (preuve de concept) peut être abstrait comme suit :
1. Les développeurs utilisent quelques exemples de test et essaient différentes invites pour évaluer les performances et obtenir une idée approximative du modèle d’invite et du modèle de départ (évaluation en ligne).
2. Les développeurs testent la première version du modèle d’invite avec un LLM sélectionné contre un ensemble de données de test avec des valeurs de vérité terrain pour une liste de métriques d’évaluation afin de vérifier les performances (évaluation hors ligne). En fonction des résultats, ils peuvent devoir modifier le modèle d’invite, affiner le modèle ou implémenter le RAG pour ajouter un contexte supplémentaire afin d’améliorer les performances.
3. Les développeurs mettent en œuvre les modifications et évaluent la solution mise à jour contre l’ensemble de données pour valider les améliorations. Ils répètent ensuite les étapes précédentes jusqu’à ce que les performances de la solution développée répondent aux exigences de l’entreprise.
### Évaluation en Ligne vs. Évaluation Hors Ligne
Le processus d’évaluation comprend deux étapes clés :
– **Évaluation en ligne** : Évaluation manuelle des invites basées sur quelques exemples pour des vérifications qualitatives.
– **Évaluation hors ligne** : Évaluation automatisée quantitative sur un ensemble de données d’évaluation.
Ce processus peut ajouter des complications opérationnelles et des efforts supplémentaires pour l’équipe de développement et l’équipe opérationnelle. Pour atteindre ce workflow, vous avez besoin des éléments suivants :
– Un outil de comparaison côte à côte pour divers LLMs.
– Un service de gestion des invites permettant de sauvegarder et de contrôler les versions des invites.
– Un service d’inférence par lots capable d’invoquer le LLM sélectionné sur un grand nombre d’exemples.
– Un service d’évaluation par lots pour évaluer les réponses générées par le LLM.
## Aperçu de la Solution
Nous présentons une solution d’évaluation automatisée de l’IA générative qui simplifie le processus d’évaluation. L’architecture de la solution est conçue pour offrir à la fois des options d’évaluation en ligne (comparaison en temps réel) et hors ligne (évaluation par lots), répondant ainsi à différents besoins tout au long du cycle de vie de développement des solutions d’IA générative. Chaque composant de cette infrastructure d’évaluation peut être développé à l’aide d’outils open source existants ou de services natifs AWS.
### Composants de la Solution
– **UI** : Fournit une interface conviviale pour interagir avec le cadre d’évaluation. Les utilisateurs peuvent comparer différents LLMs côte à côte, avec des métriques telles que la latence, les sorties des modèles et le coût pour chaque requête d’entrée. L’UI aide également à stocker et gérer différents modèles d’invites via la fonctionnalité de gestion des invites d’Amazon Bedrock.
– **Gestion des Invites** : Un composant clé pour sauvegarder et récupérer les invites via l’UI.
– **Pipeline d’Invocation LLM** : Utilise AWS Step Functions pour automatiser la génération de sorties à partir du LLM pour un ensemble de données de test. Il récupère les entrées depuis Amazon S3, les traite et stocke les réponses de nouveau dans Amazon S3.
– **Pipeline d’Évaluation LLM** : Ce workflow, également géré par Step Functions, évalue les sorties générées par le LLM. Il prend en charge les métriques fournies par les bibliothèques FMEval, Ragas et les métriques personnalisées LLM-as-a-judge.
– **Eval Factory** : Un service central pour effectuer des évaluations, prenant en charge plusieurs techniques d’évaluation, y compris celles utilisant d’autres LLMs pour un score sans référence. Il offre une flexibilité pour utiliser des scripts personnalisés pour l’évaluation.
– **Post-traitement et Stockage des Résultats** : Après la génération des résultats du pipeline, le post-traitement peut concaténer les résultats et les afficher dans un magasin de résultats offrant une vue graphique. Cette partie gère également les mises à jour du système de gestion des invites.
## Prérequis
Pour configurer la solution, consultez le dépôt GitHub. Une fois le backend et le frontend opérationnels, vous pouvez commencer le processus d’évaluation. Ouvrez l’UI dans votre navigateur pour accéder aux options d’évaluation en ligne et hors ligne.
## Évaluation en Ligne
Pour affiner itérativement les invites, suivez ces étapes :
1. Choisissez le menu des options (trois lignes) en haut à gauche de la page pour définir la région AWS.
2. Sélectionnez deux modèles pour une comparaison côte à côte.
3. Sélectionnez une invite déjà stockée dans la gestion des invites d’Amazon Bedrock ou créez une nouvelle invite.
4. Choisissez les configurations de génération (température, top P, etc.).
5. Cliquez sur Entrée pour démarrer la génération.
6. Les sorties des deux modèles seront affichées, ainsi que la latence et le coût pour chaque modèle.
7. Pour sauvegarder l’invite dans Amazon Bedrock, cliquez sur Sauvegarder.
## Génération et Évaluation Hors Ligne
Après avoir choisi le modèle et l’invite, vous pouvez exécuter une génération et une évaluation par lots sur un ensemble de données plus large.
1. Sélectionnez le modèle dans la liste déroulante.
2. Fournissez un ID de base de connaissances Amazon Bedrock si un contexte supplémentaire est nécessaire.
3. Fournissez un ID de modèle d’invite.
4. Téléchargez un fichier de dataset. Ce fichier sera téléchargé dans le bucket S3 configuré dans la barre latérale.
5. Cliquez sur Démarrer la Génération pour lancer le job.
## Nettoyage
Pour supprimer le déploiement local, exécutez `run.sh delete_local`. Pour supprimer le déploiement cloud, exécutez `run.sh delete_cloud`. Pour le backend, vous pouvez supprimer la pile AWS CloudFormation, `llm-evaluation-stack`. Pour les ressources non supprimables automatiquement, supprimez-les manuellement sur la console AWS Management Console.
## Avantages et Inconvénients
### Avantages
– Automatisation du processus d’évaluation des LLMs.
– Intégration de métriques personnalisées pour une évaluation précise.
– Utilisation de modèles avancés comme Amazon Nova pour des évaluations évolutives.
– Interface conviviale pour une utilisation facile.
– Flexibilité et évolutivité grâce à l’utilisation de services AWS.
### Inconvénients
– Complexité initiale de mise en place.
– Coût potentiellement élevé en fonction des besoins d’évaluation.
– Nécessité de compétences techniques pour la configuration et la gestion.
## Conclusion
Dans cet article, nous avons exploré l’importance de l’évaluation des LLMs dans le contexte des applications d’IA générative, en mettant en lumière les défis posés par des problèmes tels que les hallucinations et les biais. Nous avons introduit une solution complète utilisant les services AWS pour automatiser le processus d’évaluation, permettant une surveillance et une évaluation continues des performances des LLMs. En utilisant des outils tels que la bibliothèque FMEval, Ragas, LLMeter et Step Functions, la solution offre flexibilité et évolutivité, répondant ainsi aux besoins évolutifs des consommateurs de LLMs.
Avec cette solution, les entreprises peuvent déployer en toute confiance des LLMs, sachant qu’ils respectent les normes nécessaires en matière de précision, d’équité et de pertinence. Nous vous encourageons à explorer le dépôt GitHub et à commencer à construire votre propre pipeline d’évaluation automatisé de LLMs sur AWS dès aujourd’hui. Cette mise en place peut non seulement rationaliser vos workflows d’IA, mais aussi garantir que vos modèles produisent des sorties de la plus haute qualité pour vos applications spécifiques.
N’hésitez pas à laisser un commentaire ou à partager cet article si vous l’avez trouvé utile !
## À Propos des Auteurs
### Deepak Dalakoti
**Deepak Dalakoti**, PhD, est un architecte en apprentissage profond au Centre d’Innovation pour l’IA Générative à Sydney, Australie. Avec une expertise en intelligence artificielle, il collabore avec les clients pour accélérer leur adoption de l’IA générative grâce à des solutions innovantes et personnalisées. En dehors du monde de l’IA, il aime explorer de nouvelles activités et expériences, se concentrant actuellement sur l’entraînement en force.
### Rafa XU
**Rafa XU** est un architecte cloud senior chez Amazon Web Services (AWS) spécialisé dans l’aide aux clients du secteur public pour concevoir, construire et exécuter des infrastructures, des applications et des services sur AWS. Avec plus de 10 ans d’expérience dans divers domaines de l’informatique, Rafa s’est récemment concentré sur l’infrastructure cloud AWS, les applications sans serveur et l’automatisation, ainsi que l’IA générative, l’apprentissage automatique, le big data et l’Internet des objets (IoT).
### Dr. Melanie Li
**Dr. Melanie Li**, PhD, est une architecte de solutions spécialisée en IA générative senior chez AWS, basée à Sydney, Australie. Elle se concentre sur la collaboration avec les clients pour créer des solutions en utilisant des outils d’IA et d’apprentissage automatique de pointe. Elle a été activement impliquée dans plusieurs initiatives d’IA générative à travers la région APJ, exploitant la puissance des modèles de langage de grande taille (LLMs). Avant de rejoindre AWS, le Dr. Li a occupé des postes de data scientist dans les industries financière et de la vente au détail.
### Sam Edwards
**Sam Edwards** est un architecte de solutions chez AWS basé à Sydney, spécialisé dans les médias et le divertissement. Il est un expert en matière de services Amazon Bedrock et Amazon SageMaker AI. Passionné par l’aide aux clients pour résoudre les problèmes liés aux workflows d’apprentissage automatique et la création de nouvelles solutions, il aime voyager et passer du temps avec sa famille dans ses moments libres.
### Dr. Kai Zhu
**Dr. Kai Zhu** travaille actuellement en tant qu’ingénieur de support cloud chez AWS, aidant les clients avec des problèmes liés aux services d’IA/ML tels que SageMaker, Bedrock, etc. Il est un expert en matière de SageMaker et Bedrock. Expérimenté en science des données et en ingénierie des données, il s’intéresse à la création de projets alimentés par l’IA générative.