Concepts & modèle de données
MLflow pour GenAI fournit un modèle de données complet conçu spécifiquement pour le développement, l'évaluation et le monitoring des applications d'IA générative. Cette page explique les concepts fondamentaux et comment ils fonctionnent ensemble.
Présentation
MLflow organise toutes les données d'application GenAI au sein des expérimentations. Une expérimentation est un dossier de projet qui contient chaque trace, exécution d'évaluation, version d'application, prompt et évaluation de la qualité tout au long du cycle de vie d'une application.
La structure du modèle de données est décrite ci-dessous. Pour plus de détails, consultez le modèle de données.
- Experimentation: Conteneur pour les données d'une seule application
-
Données d'observabilité
- Traces: Logs d'exécution d'application
- Évaluations: mesures de qualité associées à une trace
- Traces: Logs d'exécution d'application
-
Données d'évaluation
- Jeux de données d'évaluation: entrées pour l'évaluation de la qualité
- Exécutions d'évaluation: résultats d'évaluation de la qualité
-
Étiquetage humain des données
- Sessions d’étiquetage: Files d'attente de traces pour l'étiquetage humain
- Schémas d’étiquetage: questions structurées à poser aux étiqueteurs
-
Données de gestion de version des applications
- Modèles enregistrés: Aperçus de la version de l'application
- Invites: Template de messages de guidage LLM
-
MLflow exige uniquement que vous utilisiez des traces. Tous les autres aspects du modèle de données sont facultatifs, mais fortement recommandés.
MLflow fournit les SDK suivants pour interagir avec les données d'une application afin d'évaluer et d'améliorer la qualité. Pour plus de détails, consultez les SDK MLflow pour l'évaluation de la qualité.
mlflow.genai.scorers.*: fonctions qui analysent la qualité d'une trace, créant des évaluations de commentaires.mlflow.genai.evaluate(): SDK pour l'évaluation de la version d'une application à l'aide de datasets d'évaluation et de scoreurs afin d'identifier et d'améliorer les problèmes de qualité.mlflow.genai.add_scheduled_scorer(): SDK pour l'exécution de scorers sur des traces de production afin de monitorer la qualité.
MLflow fournit les interfaces utilisateur suivantes pour visualiser et gérer les données de votre application :
- Application d'examen: interface utilisateur web pour collecter les évaluations d'experts du domaine.
- Interface utilisateur d'expérimentation MLflow: Interfaces utilisateur pour visualiser et interagir avec des traces, des résultats d'évaluation, des sessions d'étiquetage, des versions d'application et des prompts.
Modèle de données
Cette section décrit brièvement chaque entité du modèle de données MLflow.
Experimentation
Une Experimentation dans MLflow est un conteneur nommé qui organise et regroupe tous les artefacts liés à une seule application GenAI. Si vous êtes familier avec MLflow pour le ML classique, le conteneur d’expérimentation est le même pour le ML classique et GenAI.
Données d'observabilité
Traces
Les Traces capturent l'exécution complète de votre application GenAI, y compris les entrées, les sorties et chaque étape intermédiaire (appels LLM, récupérations, utilisation d'outils). Traces :
- Sont créés automatiquement pour chaque exécution de votre application en développement et en production.
- Sont (facultativement) liés aux versions d'application spécifiques qui les ont générées.
- Évaluations jointes contenant :
- Retours qualité des évaluateurs, des utilisateurs finaux et des experts du domaine.
- Attentes de vérité de terrain des experts du domaine.
Les traces sont utilisées pour :
- Observer et déboguer le comportement et les performances des applications (tels que la latence et les coûts).
- Créez des datasets d'évaluation basés sur les logs de production à utiliser dans l'évaluation de la qualité.
En savoir plus dans les concepts de traçage, suivez le guide de démarrage rapide pour enregistrer votre première trace, ou suivez le guide instrumenter votre application pour implémenter le traçage dans votre application.
Évaluations
Les évaluations sont des mesures de qualité et des libellés de vérité terrain attachés à une trace. Il existe deux types d'évaluations : les retours d'information et les attentes .
Le feedback fait référence aux jugements concernant la qualité des résultats de votre application. Il est ajouté par les utilisateurs finaux, les experts du domaine ou les évaluateurs automatisés et est utilisé pour identifier les problèmes de qualité. Quelques exemples sont les évaluations positives ou négatives des utilisateurs finaux et l'évaluation par le juge LLM de la justesse d'une réponse.
Les attentes sont des étiquettes de vérité terrain qui définissent la sortie correcte pour une entrée donnée. Il est ajouté par des experts du domaine et est utilisé comme « Gold standard » pour évaluer si votre application a produit la bonne réponse. Certains exemples sont la réponse attendue à une question et les faits requis qui doivent être présents dans une réponse.
Les étiquettes de vérité terrain (attentes) ne sont pas requises pour mesurer la qualité avec MLflow. La plupart des applications n'auront pas d'étiquettes de vérité terrain ou n'en auront qu'un petit ensemble.
En savoir plus sur l'enregistrement des évaluations, découvrez comment recueillir les commentaires des utilisateurs ou explorez l'utilisation des évaluateurs pour créer des évaluations automatisées.
Données d'évaluation
Jeux de données d'évaluation
Les jeux de données d'évaluation sont des collections organisées de cas de test pour tester systématiquement votre application. Evaluation dataset :
- Sont généralement créées en sélectionnant des traces représentatives issues de la production ou du développement.
- Incluez les entrées et, le cas échéant, les attentes (vérité de terrain).
- Sont versionnés au fil du temps pour suivre l'évolution de votre suite de tests.
Les datasets d'évaluation sont utilisés pour :
- Évaluez et améliorez de manière itérative la qualité de votre application.
- Valider les changements afin de prévenir les régressions de qualité.
Apprenez-en davantage dans la référence des datasets d'évaluation, ou suivez le guide pour créer des datasets d'évaluation qui inclut des techniques de sélection et d'utilisation des traces de production.
Exécutions d'évaluation
Les exécutions d'évaluation sont les résultats du test d'une version d'application par rapport à un dataset d'évaluation à l'aide d'un ensemble de scorers. Exécutions d'évaluation :
- Contient les traces (et leurs évaluations) générées par l'évaluation.
- Contenir les métriques agrégées basées sur les évaluations.
Les exécutions d'évaluation sont utilisées pour :
- Déterminez si les modifications de l'application ont amélioré (ou régressé) la qualité.
- Comparez les versions de votre application côte à côte.
- Suivez les évaluations de la qualité au fil du temps.
Les exécutions d’évaluation sont un type spécial d’exécution MLflow et peuvent être interrogées via mlflow.search_runs().
En savoir plus sur le faisceau d’évaluation, suivez le guide pour utiliser l’évaluation pour améliorer votre application.
Étiquetage humain des données
Sessions d’étiquetage
Les sessions d'étiquetage organisent les traces pour un examen humain par des experts du domaine. Sessions d'étiquetage :
- Mettez en file d'attente les traces sélectionnées qui nécessitent une évaluation par des experts et contiennent les évaluations issues de cet examen.
- Utilisez des schémas d'étiquetage pour structurer les évaluations que les experts doivent étiqueter.
Les sessions d’étiquetage sont utilisées pour :
- Recueillir l'avis d'experts sur les cas complexes ou ambigus.
- Créer des données de vérité terrain pour les jeux de données d’évaluation.
Les sessions d'étiquetage sont un type spécial d'exécution MLflow et peuvent être interrogées via mlflow.search_runs().
En savoir plus sur les sessions d'étiquetage, suivez le guide pour recueillir les commentaires des experts du domaine, ou découvrez comment étiqueter pendant le développement.
Schémas d'étiquetage
Les schémas d'étiquetage définissent les évaluations qui sont collectées lors d'une session d'étiquetage, assurant une collecte d'étiquettes cohérente entre les experts du domaine. Schémas d’étiquetage :
- Spécifiez les questions à poser aux évaluateurs (par exemple, « Cette réponse est-elle exacte ? »).
- Définissez les réponses valides à une question (par exemple, pouces levés/baissés, échelles de 1 à 5 ou commentaires en texte libre).
En savoir plus dans la référence des schémas d'étiquetage.
Contrôle de versions des données de l'application
Invites
Les Prompts sont des Templates sous contrôle de version pour les invites LLM. Invites :
- Sont suivis avec un historique des versions de type Git.
- Inclure
{{variables}}pour la génération dynamique. - Sont liés aux exécutions d'évaluation pour suivre leur qualité au fil du temps.
- Prend en charge les alias tels que « production » pour la gestion des déploiements.
Modèles journalisés
Les modèles journalisés représentent des instantanés de votre application à des moments précis. Modèles enregistrés :
- Link aux traces qu'elles génèrent et aux invites qu'elles utilisent.
- Link vers les exécutions d'évaluation pour suivre leur qualité.
- Suivez les paramètres d'application tels que la température du LLM.
Les modèles journalisés peuvent servir de hub de métadonnées, reliant une version d’application conceptuelle à son code externe spécifique (par exemple, un pointeur vers le commit Git). Vous pouvez également utiliser un modèle enregistré pour empaqueter le code et la configuration de votre application en tant qu'artefact entièrement déployable.
SDK MLflow pour l'évaluation de la qualité
Ce sont les processus clés qui évaluent la qualité des traces, en associant des évaluations à la trace contenant les résultats de l'évaluation.
Évaluateurs
Les fonctions mlflow.genai.scorers.* évaluent la qualité d'une trace. Évaluateurs :
- Analysez une trace pour les champs de données pertinents à évaluer.
- Utilisez ces données pour évaluer la qualité à l'aide d'un code déterministe ou de critères d'évaluation basés sur un juge LLM.
- Retourner les entités de commentaires avec les résultats de cette évaluation.
Le même évaluateur peut être utilisé pour l'évaluation en développement et en production.
**Évaluateurs ou juges** : Si vous êtes familier avec les juges LLM, vous pourriez vous demander comment ils sont liés aux évaluateurs. Dans MLflow, un *juge* est un SDK invocable (comme) qui évalue le texte en fonction de critères mlflow.genai.judges.is_correct spécifiques. Cependant, les juges ne peuvent pas traiter directement les traces ; ils ne comprennent que les entrées de texte. Les évaluateurs extraient les données pertinentes d'une trace (telles que la requête, la réponse et le contexte récupéré) et les transmettent au juge pour évaluation. Considérez les évaluateurs comme l'« adaptateur » qui connecte vos traces à la logique d'évaluation, qu'il s'agisse d'un juge LLM ou de code personnalisé.
En savoir plus sur les scorers intégrés et personnalisés.
Évaluation en développement
mlflow.genai.evaluate() est le SDK de MLflow pour évaluer systématiquement la qualité de votre application. Le cadre d'évaluation prend un dataset d'évaluation, un ensemble de scoreurs et la fonction de prédiction de votre application en entrée, et crée une exécution d'évaluation qui contient des traces avec des évaluations de feedback par :
- Exécution de votre application pour chaque enregistrement du dataset d'évaluation, produisant des traces.
- Exécuter chaque évaluateur sur les traces résultantes pour évaluer la qualité et produire un retour d’information.
- Associer chaque feedback à la trace appropriée.
L'outil d'évaluation est utilisé pour évaluer itérativement les améliorations potentielles de votre application, vous aidant à :
- Validez si la qualité a été améliorée (ou a régressé).
- Identifier des améliorations supplémentaires pour améliorer davantage la qualité.
En savoir plus sur le faisceau d’évaluation, suivez le guide pour évaluer votre application.
Évaluation en production
mlflow.genai.Scorer.start() vous permet de programmer des évaluateurs pour évaluer automatiquement les traces de votre application déployée. Lorsqu'un évaluateur est programmé, le service de monitoring de production :
- Exécute les évaluateurs sur les traces de production, produisant des commentaires.
- Associe chaque feedback à la trace source.
Le monitoring de production est utilisé pour détecter rapidement les problèmes de qualité et identifier les requêtes ou cas d’usage problématiques à améliorer en développement.
- En savoir plus sur les concepts de monitoring de la production.
- Consultez le guide sur la surveillance des applications GenAI en production.
Interfaces utilisateur MLflow
Examiner l'application
L'application Review est une interface utilisateur web où les experts du domaine étiquettent les traces avec des évaluations. Elle présente les traces des sessions d'étiquetage et recueille les évaluations basées sur les schémas d'étiquetage.
Interface utilisateur de l'Experimentation MLflow
L'interface utilisateur d'expérimentation MLflow offre un accès visuel à de nombreux éléments du modèle de données. À l'aide de l'interface utilisateur, vous pouvez effectuer les opérations suivantes :
- Recherchez et affichez des traces.
- Passez en revue les commentaires et les attentes.
- Afficher et analyser les résultats de l'évaluation.
- Gérer les jeux de données d'évaluation.
- Gérer les versions et les invites.
Étapes suivantes
- Démarrer : Suivez le guide de démarrage rapide pour tracer votre première application.
- Approfondissement : explorez les guides détaillés sur le traçage, l' évaluation ou le retour d'information humain.