Évaluer le modèle Phi-3 / Phi-3.5 affiné dans Azure AI Foundry en se concentrant sur les principes d'IA responsable de Microsoft
Cet exemple de bout en bout (E2E) est basé sur le guide "Evaluate Fine-tuned Phi-3 / 3.5 Models in Azure AI Foundry Focusing on Microsoft's Responsible AI" de la communauté technique de Microsoft.
Comment évaluer la sécurité et la performance d'un modèle Phi-3 / Phi-3.5 affiné dans Azure AI Foundry ?
L'affinage d'un modèle peut parfois entraîner des réponses inattendues ou indésirables. Pour garantir que le modèle reste sûr et efficace, il est important d'évaluer son potentiel à générer du contenu nuisible ainsi que sa capacité à produire des réponses précises, pertinentes et cohérentes. Dans ce tutoriel, vous apprendrez comment évaluer la sécurité et la performance d'un modèle Phi-3 / Phi-3.5 affiné intégré avec Prompt flow dans Azure AI Foundry.
Voici le processus d'évaluation d'Azure AI Foundry.
Source de l'image : Évaluation des applications d'IA générative
Note
Pour plus d'informations détaillées et pour explorer des ressources supplémentaires sur Phi-3 / Phi-3.5, veuillez visiter le Phi-3CookBook.
- Python
- Abonnement Azure
- Visual Studio Code
- Modèle Phi-3 / Phi-3.5 affiné
-
Scénario 1 : Introduction à l'évaluation de Prompt flow d'Azure AI Foundry
-
Scénario 2 : Évaluation du modèle Phi-3 / Phi-3.5 dans Azure AI Foundry
Pour garantir que votre modèle d'IA est éthique et sûr, il est crucial de l'évaluer par rapport aux principes d'IA responsable de Microsoft. Dans Azure AI Foundry, les évaluations de sécurité vous permettent d'évaluer la vulnérabilité de votre modèle aux attaques de jailbreak et son potentiel à générer du contenu nuisible, ce qui est directement aligné avec ces principes.
Source de l'image : Évaluation des applications d'IA générative
Avant de commencer les étapes techniques, il est essentiel de comprendre les principes d'IA responsable de Microsoft, un cadre éthique conçu pour guider le développement, le déploiement et l'exploitation responsable des systèmes d'IA. Ces principes guident la conception, le développement et le déploiement responsables des systèmes d'IA, garantissant que les technologies d'IA sont conçues de manière équitable, transparente et inclusive. Ces principes sont la base pour évaluer la sécurité des modèles d'IA.
Les principes d'IA responsable de Microsoft incluent :
-
Équité et inclusivité : Les systèmes d'IA doivent traiter tout le monde de manière équitable et éviter d'affecter différemment des groupes de personnes dans des situations similaires. Par exemple, lorsque les systèmes d'IA fournissent des conseils sur les traitements médicaux, les demandes de prêt ou l'emploi, ils doivent faire les mêmes recommandations à tous ceux qui ont des symptômes, des circonstances financières ou des qualifications professionnelles similaires.
-
Fiabilité et sécurité : Pour instaurer la confiance, il est crucial que les systèmes d'IA fonctionnent de manière fiable, sûre et cohérente. Ces systèmes doivent pouvoir fonctionner comme ils ont été conçus à l'origine, réagir de manière sûre à des conditions imprévues et résister à la manipulation nuisible. Leur comportement et la variété des conditions qu'ils peuvent gérer reflètent la gamme de situations et de circonstances que les développeurs ont anticipées lors de la conception et des tests.
-
Transparence : Lorsque les systèmes d'IA aident à informer des décisions qui ont un impact énorme sur la vie des gens, il est crucial que les gens comprennent comment ces décisions ont été prises. Par exemple, une banque pourrait utiliser un système d'IA pour décider si une personne est solvable. Une entreprise pourrait utiliser un système d'IA pour déterminer les candidats les plus qualifiés à embaucher.
-
Confidentialité et sécurité : À mesure que l'IA devient plus répandue, la protection de la vie privée et la sécurisation des informations personnelles et professionnelles deviennent plus importantes et complexes. Avec l'IA, la confidentialité et la sécurité des données nécessitent une attention particulière car l'accès aux données est essentiel pour que les systèmes d'IA fassent des prédictions et des décisions précises et informées sur les personnes.
-
Responsabilité : Les personnes qui conçoivent et déploient des systèmes d'IA doivent être responsables de la manière dont leurs systèmes fonctionnent. Les organisations devraient s'appuyer sur les normes de l'industrie pour développer des normes de responsabilité. Ces normes peuvent garantir que les systèmes d'IA ne sont pas l'autorité finale sur toute décision qui affecte la vie des gens. Elles peuvent également garantir que les humains maintiennent un contrôle significatif sur des systèmes d'IA autrement hautement autonomes.
Source de l'image : Qu'est-ce que l'IA responsable ?
Note
Pour en savoir plus sur les principes d'IA responsable de Microsoft, visitez Qu'est-ce que l'IA responsable ?.
Dans ce tutoriel, vous évaluerez la sécurité du modèle Phi-3 affiné en utilisant les mesures de sécurité d'Azure AI Foundry. Ces mesures vous aident à évaluer le potentiel du modèle à générer du contenu nuisible et sa vulnérabilité aux attaques de jailbreak. Les mesures de sécurité incluent :
- Contenu lié à l'automutilation : Évalue si le modèle a tendance à produire du contenu lié à l'automutilation.
- Contenu haineux et injuste : Évalue si le modèle a tendance à produire du contenu haineux ou injuste.
- Contenu violent : Évalue si le modèle a tendance à produire du contenu violent.
- Contenu sexuel : Évalue si le modèle a tendance à produire du contenu sexuel inapproprié.
Évaluer ces aspects garantit que le modèle d'IA ne produit pas de contenu nuisible ou offensant, l'alignant ainsi avec les valeurs sociétales et les normes réglementaires.
Pour garantir que votre modèle d'IA fonctionne comme prévu, il est important d'évaluer sa performance par rapport à des mesures de performance. Dans Azure AI Foundry, les évaluations de performance vous permettent d'évaluer l'efficacité de votre modèle à générer des réponses précises, pertinentes et cohérentes.
Source de l'image : Évaluation des applications d'IA générative
Dans ce tutoriel, vous évaluerez la performance du modèle Phi-3 / Phi-3.5 affiné en utilisant les mesures de performance d'Azure AI Foundry. Ces mesures vous aident à évaluer l'efficacité du modèle à générer des réponses précises, pertinentes et cohérentes. Les mesures de performance incluent :
- Alignement : Évalue dans quelle mesure les réponses générées sont alignées avec les informations de la source d'entrée.
- Pertinence : Évalue la pertinence des réponses générées par rapport aux questions posées.
- Cohérence : Évalue la fluidité du texte généré, sa lecture naturelle et sa ressemblance avec le langage humain.
- Fluidité : Évalue la maîtrise de la langue du texte généré.
- Similarité GPT : Compare la réponse générée avec la vérité de base pour la similarité.
- Score F1 : Calcule le ratio des mots partagés entre la réponse générée et les données sources.
Ces mesures vous aident à évaluer l'efficacité du modèle à générer des réponses précises, pertinentes et cohérentes.
Ce tutoriel est une suite des précédents articles de blog, "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow: Step-by-Step Guide" et "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow in Azure AI Foundry." Dans ces articles, nous avons parcouru le processus d'affinage d'un modèle Phi-3 / Phi-3.5 dans Azure AI Foundry et de son intégration avec Prompt flow.
Dans ce tutoriel, vous déploierez un modèle Azure OpenAI en tant qu'évaluateur dans Azure AI Foundry et l'utiliserez pour évaluer votre modèle Phi-3 / Phi-3.5 affiné.
Avant de commencer ce tutoriel, assurez-vous d'avoir les prérequis suivants, comme décrit dans les tutoriels précédents :
- Un jeu de données préparé pour évaluer le modèle Phi-3 / Phi-3.5 affiné.
- Un modèle Phi-3 / Phi-3.5 qui a été affiné et déployé sur Azure Machine Learning.
- Un Prompt flow intégré avec votre modèle Phi-3 / Phi-3.5 affiné dans Azure AI Foundry.
Note
Vous utiliserez le fichier test_data.jsonl, situé dans le dossier de données du jeu de données ULTRACHAT_200k téléchargé dans les articles de blog précédents, comme jeu de données pour évaluer le modèle Phi-3 / Phi-3.5 affiné.
Intégrer le modèle Phi-3 / Phi-3.5 personnalisé avec Prompt flow dans Azure AI Foundry (Approche code d'abord)
Note
Si vous avez suivi l'approche sans code décrite dans "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow in Azure AI Foundry", vous pouvez passer cet exercice et passer au suivant. Cependant, si vous avez suivi l'approche code d'abord décrite dans "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow: Step-by-Step Guide" pour affiner et déployer votre modèle Phi-3 / Phi-3.5, le processus de connexion de votre modèle à Prompt flow est légèrement différent. Vous apprendrez ce processus dans cet exercice.
Pour continuer, vous devez intégrer votre modèle Phi-3 / Phi-3.5 affiné dans Prompt flow dans Azure AI Foundry.
Vous devez créer un hub avant de créer le projet. Un hub agit comme un groupe de ressources, vous permettant d'organiser et de gérer plusieurs projets au sein d'Azure AI Foundry.
-
Connectez-vous à Azure AI Foundry.
-
Sélectionnez Tous les hubs dans l'onglet de gauche.
-
Sélectionnez + Nouveau hub dans le menu de navigation.
-
Effectuez les tâches suivantes :
- Entrez Nom du hub. Il doit s'agir d'une valeur unique.
- Sélectionnez votre Abonnement Azure.
- Sélectionnez le Groupe de ressources à utiliser (créez-en un nouveau si nécessaire).
- Sélectionnez l'Emplacement que vous souhaitez utiliser.
- Sélectionnez le Connecter les services Azure AI à utiliser (créez-en un nouveau si nécessaire).
- Sélectionnez Connecter Azure AI Search à Ignorer la connexion.
-
Sélectionnez Suivant.
-
Dans le Hub que vous avez créé, sélectionnez Tous les projets dans l'onglet de gauche.
-
Sélectionnez + Nouveau projet dans le menu de navigation.
-
Entrez Nom du projet. Il doit être unique.
-
Sélectionnez Créer un projet.
Pour intégrer votre modèle Phi-3 / Phi-3.5 personnalisé avec Prompt flow, vous devez enregistrer l'endpoint et la clé du modèle dans une connexion personnalisée. Cette configuration garantit l'accès à votre modèle Phi-3 / Phi-3.5 personnalisé dans Prompt flow.
-
Visitez Azure ML Studio.
-
Accédez à l'espace de travail Azure Machine Learning que vous avez créé.
-
Sélectionnez Endpoints dans l'onglet de gauche.
-
Sélectionnez l'endpoint que vous avez créé.
-
Sélectionnez Consommer dans le menu de navigation.
-
Copiez votre REST endpoint et Primary key.
-
Visitez Azure AI Foundry.
-
Accédez au projet Azure AI Foundry que vous avez créé.
-
Dans le projet que vous avez créé, sélectionnez Paramètres dans l'onglet de gauche.
-
Sélectionnez + Nouvelle connexion.
-
Sélectionnez Clés personnalisées dans le menu de navigation.
-
Effectuez les tâches suivantes :
- Sélectionnez + Ajouter des paires clé-valeur.
- Pour le nom de la clé, entrez endpoint et collez l'endpoint que vous avez copié depuis Azure ML Studio dans le champ de valeur.
- Sélectionnez + Ajouter des paires clé-valeur à nouveau.
- Pour le nom de la clé, entrez key et collez la clé que vous avez copiée depuis Azure ML Studio dans le champ de valeur.
- Après avoir ajouté les clés, sélectionnez est secret pour empêcher l'exposition de la clé.
-
Sélectionnez Ajouter connexion.
Vous avez ajouté une connexion personnalisée dans Azure AI Foundry. Maintenant, créons un Prompt flow en suivant les étapes suivantes. Ensuite, vous connecterez ce Prompt flow à la connexion personnalisée pour utiliser le modèle ajusté dans le Prompt flow.
-
Accédez au projet Azure AI Foundry que vous avez créé.
-
Sélectionnez Prompt flow dans l'onglet de gauche.
-
Sélectionnez + Créer dans le menu de navigation.
-
Sélectionnez Chat flow dans le menu de navigation.
-
Entrez Nom du dossier à utiliser.
-
Sélectionnez Créer.
Vous devez intégrer le modèle Phi-3 / Phi-3.5 ajusté dans un Prompt flow. Cependant, le Prompt flow existant fourni n'est pas conçu pour cet objectif. Par conséquent, vous devez redessiner le Prompt flow pour permettre l'intégration du modèle personnalisé.
-
Dans le Prompt flow, effectuez les tâches suivantes pour reconstruire le flux existant :
-
Sélectionnez Mode fichier brut.
-
Supprimez tout le code existant dans le fichier flow.dag.yml.
-
Ajoutez le code suivant à flow.dag.yml.
inputs: input_data: type: string default: "Who founded Microsoft?" outputs: answer: type: string reference: ${integrate_with_promptflow.output} nodes: - name: integrate_with_promptflow type: python source: type: code path: integrate_with_promptflow.py inputs: input_data: ${inputs.input_data}
-
Sélectionnez Enregistrer.
-
-
Ajoutez le code suivant à integrate_with_promptflow.py pour utiliser le modèle Phi-3 / Phi-3.5 personnalisé dans Prompt flow.
import logging import requests from promptflow import tool from promptflow.connections import CustomConnection # Logging setup logging.basicConfig( format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", level=logging.DEBUG ) logger = logging.getLogger(__name__) def query_phi3_model(input_data: str, connection: CustomConnection) -> str: """ Send a request to the Phi-3 / Phi-3.5 model endpoint with the given input data using Custom Connection. """ # "connection" is the name of the Custom Connection, "endpoint", "key" are the keys in the Custom Connection endpoint_url = connection.endpoint api_key = connection.key headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } data = { "input_data": [input_data], "params": { "temperature": 0.7, "max_new_tokens": 128, "do_sample": True, "return_full_text": True } } try: response = requests.post(endpoint_url, json=data, headers=headers) response.raise_for_status() # Log the full JSON response logger.debug(f"Full JSON response: {response.json()}") result = response.json()["output"] logger.info("Successfully received response from Azure ML Endpoint.") return result except requests.exceptions.RequestException as e: logger.error(f"Error querying Azure ML Endpoint: {e}") raise @tool def my_python_tool(input_data: str, connection: CustomConnection) -> str: """ Tool function to process input data and query the Phi-3 / Phi-3.5 model. """ return query_phi3_model(input_data, connection)
Note
Pour plus d'informations détaillées sur l'utilisation de Prompt flow dans Azure AI Foundry, vous pouvez consulter Prompt flow dans Azure AI Foundry.
-
Sélectionnez Entrée de chat, Sortie de chat pour activer le chat avec votre modèle.
-
Maintenant, vous êtes prêt à discuter avec votre modèle Phi-3 / Phi-3.5 personnalisé. Dans le prochain exercice, vous apprendrez comment démarrer Prompt flow et l'utiliser pour discuter avec votre modèle Phi-3 / Phi-3.5 ajusté.
-
Sélectionnez Démarrer les sessions de calcul pour démarrer Prompt flow.
-
Sélectionnez Valider et analyser l'entrée pour renouveler les paramètres.
-
Sélectionnez la Valeur de la connexion à la connexion personnalisée que vous avez créée. Par exemple, connexion.
-
Sélectionnez Chat.
-
Voici un exemple de résultats : Maintenant, vous pouvez discuter avec votre modèle Phi-3 / Phi-3.5 personnalisé. Il est recommandé de poser des questions basées sur les données utilisées pour l'ajustement.
Pour évaluer le modèle Phi-3 / Phi-3.5 dans Azure AI Foundry, vous devez déployer un modèle Azure OpenAI. Ce modèle sera utilisé pour évaluer les performances du modèle Phi-3 / Phi-3.5.
-
Connectez-vous à Azure AI Foundry.
-
Accédez au projet Azure AI Foundry que vous avez créé.
-
Dans le projet que vous avez créé, sélectionnez Déploiements dans l'onglet de gauche.
-
Sélectionnez + Déployer modèle dans le menu de navigation.
-
Sélectionnez Déployer modèle de base.
-
Sélectionnez le modèle Azure OpenAI que vous souhaitez utiliser. Par exemple, gpt-4o.
-
Sélectionnez Confirmer.
Évaluer le modèle Phi-3 / Phi-3.5 ajusté en utilisant l'évaluation de Prompt flow d'Azure AI Foundry
-
Visitez Azure AI Foundry.
-
Accédez au projet Azure AI Foundry que vous avez créé.
-
Dans le projet que vous avez créé, sélectionnez Évaluation dans l'onglet de gauche.
-
Sélectionnez + Nouvelle évaluation dans le menu de navigation.
-
Sélectionnez l'évaluation Prompt flow.
-
Effectuez les tâches suivantes :
- Entrez le nom de l'évaluation. Il doit être unique.
- Sélectionnez Question et réponse sans contexte comme type de tâche. Car, le jeu de données UlTRACHAT_200k utilisé dans ce tutoriel ne contient pas de contexte.
- Sélectionnez le flux de prompt que vous souhaitez évaluer.
-
Sélectionnez Suivant.
-
Effectuez les tâches suivantes :
- Sélectionnez Ajouter votre jeu de données pour télécharger le jeu de données. Par exemple, vous pouvez télécharger le fichier du jeu de test, comme test_data.json1, qui est inclus lorsque vous téléchargez le jeu de données ULTRACHAT_200k.
- Sélectionnez la Colonne du jeu de données appropriée qui correspond à votre jeu de données. Par exemple, si vous utilisez le jeu de données ULTRACHAT_200k, sélectionnez ${data.prompt} comme colonne du jeu de données.
-
Sélectionnez Suivant.
-
Effectuez les tâches suivantes pour configurer les métriques de performance et de qualité :
- Sélectionnez les métriques de performance et de qualité que vous souhaitez utiliser.
- Sélectionnez le modèle Azure OpenAI que vous avez créé pour l'évaluation. Par exemple, sélectionnez gpt-4o.
-
Effectuez les tâches suivantes pour configurer les métriques de risque et de sécurité :
- Sélectionnez les métriques de risque et de sécurité que vous souhaitez utiliser.
- Sélectionnez le seuil pour calculer le taux de défaut que vous souhaitez utiliser. Par exemple, sélectionnez Moyen.
- Pour question, sélectionnez Source de données à {$data.prompt}.
- Pour answer, sélectionnez Source de données à {$run.outputs.answer}.
- Pour ground_truth, sélectionnez Source de données à {$data.message}.
-
Sélectionnez Suivant.
-
Sélectionnez Soumettre pour démarrer l'évaluation.
-
L'évaluation prendra un certain temps pour se terminer. Vous pouvez suivre la progression dans l'onglet Évaluation.
Note
Les résultats présentés ci-dessous sont destinés à illustrer le processus d'évaluation. Dans ce tutoriel, nous avons utilisé un modèle affiné sur un jeu de données relativement petit, ce qui peut entraîner des résultats sous-optimaux. Les résultats réels peuvent varier considérablement en fonction de la taille, de la qualité et de la diversité du jeu de données utilisé, ainsi que de la configuration spécifique du modèle.
Une fois l'évaluation terminée, vous pouvez examiner les résultats pour les métriques de performance et de sécurité.
-
Métriques de performance et de qualité :
- Évaluez l'efficacité du modèle à générer des réponses cohérentes, fluides et pertinentes.
-
Métriques de risque et de sécurité :
- Assurez-vous que les résultats du modèle sont sûrs et alignés avec les principes de l'IA responsable, en évitant tout contenu nuisible ou offensant.
-
Vous pouvez faire défiler vers le bas pour voir les Résultats détaillés des métriques.
-
En évaluant votre modèle Phi-3 / Phi-3.5 personnalisé par rapport aux métriques de performance et de sécurité, vous pouvez confirmer que le modèle est non seulement efficace, mais aussi conforme aux pratiques d'IA responsable, ce qui le rend prêt pour une utilisation dans le monde réel.
Vous avez réussi à évaluer le modèle Phi-3 affiné intégré avec Prompt flow dans Azure AI Foundry. C'est une étape importante pour garantir que vos modèles d'IA ne sont pas seulement performants, mais aussi conformes aux principes de l'IA responsable de Microsoft, vous aidant à construire des applications d'IA fiables et dignes de confiance.
Nettoyez vos ressources Azure pour éviter des frais supplémentaires sur votre compte. Allez sur le portail Azure et supprimez les ressources suivantes :
- La ressource Azure Machine Learning.
- Le point de terminaison du modèle Azure Machine Learning.
- La ressource de projet Azure AI Foundry.
- La ressource Prompt flow de Azure AI Foundry.
- microsoft/Phi-3CookBook
- Évaluer les systèmes d'IA en utilisant le tableau de bord de l'IA responsable
- Métriques d'évaluation et de surveillance pour l'IA générative
- Documentation Azure AI Foundry
- Documentation Prompt flow
-
Évaluation des applications d'IA générative
**Avertissement** : Ce document a été traduit à l'aide de services de traduction automatisée par IA. Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations critiques, une traduction humaine professionnelle est recommandée. Nous ne sommes pas responsables des malentendus ou des interprétations erronées résultant de l'utilisation de cette traduction.