Affiner des modèles Phi-3 sur le portail Azure AI Foundry
Important
Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Azure AI Foundry vous permet d’adapter des modèles de langage volumineux à vos jeux de données personnels à l’aide d’un processus appelé affinage. L’affinage offre une valeur significative en activant la personnalisation et l’optimisation de tâches et d’applications spécifiques. Cela aboutit sur des performances améliorées, une optimisation des coûts, une latence réduite et des sorties personnalisées.
Dans cet article, vous découvrez comment affiner des petits modèles de langage (SLM) de la famille Phi-3 sur le portail Azure AI Foundry en tant que service avec paiement à l’utilisation.
La famille Phi-3 de SLMs est une collection de modèles de texte génératifs optimisés pour les instructions. Les modèles Phi-3 sont les petits modèles de langage (SLM) les plus performants et les plus rentables disponibles, surpassant les modèles de même taille et de taille supérieure dans divers tests de langage, de raisonnement, de codage et de mathématiques.
Important
Les modèles qui sont en préversion comportent la mention préversion sur leur carte dans le catalogue de modèles.
Phi-3 Mini est un modèle ouvert léger de 3,8 milliards de paramètres, à la pointe de la technologie, qui repose sur les jeux de données utilisés pour Phi-2 (données synthétiques et sites web filtrés) en mettant l’accent sur les données de haute qualité et riches en raisonnement. Le modèle appartient à la famille de modèles Phi-3. La version Mini se décline en deux variantes, 4K et 128K, qui correspondent à la longueur de contexte (en jetons) que le modèle peut prendre en charge.
- Phi-3-mini-4k-Instruct (aperçu)
- Phi-3-mini-128k-Instruct (aperçu)
Le modèle a subi un processus d’amélioration rigoureux, incorporant à la fois le réglage précis et l’optimisation des préférences directes pour garantir une conformité précise des instructions et des mesures de sécurité robustes. Quand ils sont évalués par rapport à des points de référence testant le bon sens, la compréhension du langage, les mathématiques, le code, les contextes longs et le raisonnement logique, Phi-3 Mini-4K-Instruct et Phi-3 Mini-128K-Instruct présentent des performances robustes, de pointe, parmi les modèles comportant moins de 13 milliards de paramètres.
Prérequis
Un abonnement Azure. Si vous ne disposez pas d’un abonnement Azure, commencez par créer un compte Azure payant.
-
Important
Pour les modèles de la famille Phi-3, l’offre de fine-tuning de modèle avec paiement à l’utilisation est uniquement disponible avec les hubs créés dans les régions USA Est 2.
Les contrôles d’accès en fonction du rôle Azure (RBAC Azure) sont utilisés pour accorder l’accès aux opérations dans le portail Azure AI Foundry. Pour effectuer les étapes décrites dans cet article, votre compte d’utilisateur doit avoir le Rôle de développeur Azure AI sur le groupe de ressources.
Pour plus d’informations sur les autorisations, consultez Contrôle d’accès en fonction du rôle sur le portail Azure AI Foundry.
Inscription du fournisseur d’abonnement
Vérifiez que l’abonnement est inscrit auprès du fournisseur de ressources Microsoft.Network
.
- Connectez-vous au portail Azure.
- Sélectionnez Abonnements dans le menu de gauche.
- Sélectionnez l’abonnement que vous souhaitez utiliser.
- Sélectionnez Paramètres>Fournisseurs de ressources dans le menu de gauche.
- Vérifiez que Microsoft.Network figure dans la liste des fournisseurs de ressources. Sinon, ajoutez-le.
Préparation des données
Préparez vos données d’entraînement et de validation pour affiner votre modèle. Vos données d’apprentissage et vos jeux de données de validation se composent d’exemples d’entrée et de sortie de la façon dont vous souhaitez que le modèle fonctionne.
Assurez-vous que vos exemples d’apprentissage suivent le format attendu pour l’inférence. Pour affiner efficacement des modèles, assurez-vous de disposer d’un jeu de données équilibré et diversifié.
Cela implique la maintenance de l’équilibre des données, y compris différents scénarios, et l’affinage périodique des données d’apprentissage afin de les aligner sur les attentes réelles, ce qui aboutit à des réponses de modèle plus précises et équilibrées.
Différents types de modèles nécessitent un format différent de données d’entraînement.
Saisie semi-automatique de la conversation
Les données d’entraînement et de validation que vous utilisez doivent être mises en forme en tant que document JSON Lines (JSONL). Pour Phi-3-mini-128k-instruct
, le jeu de données d’optimisation doit être mis en forme au format conversationnel utilisé par l’API des complétions de conversation.
Exemple de format de fichier
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Le type de fichier pris en charge est JSON Lines. Les fichiers sont chargés dans le magasin de données par défaut et mis à disposition dans votre projet.
Effectuer un fine-tuning de modèle Phi-3
Pour effectuer un fine-tuning de modèle Phi-3 :
Connectez-vous à Azure AI Foundry.
Choisissez le modèle à affiner dans le catalogue de modèles du portail Azure AI Foundry.
Dans la page Détails du modèle, sélectionnez Optimiser.
Sélectionnez le projet dans lequel vous voulez optimiser vos modèles. Si vous souhaitez utiliser l’offre de fine-tuning de modèle avec paiement à l’utilisation, votre espace de travail doit appartenir à la région USA Est 2.
Dans l’Assistant Affinage, sélectionnez le lien vers les Conditions d’utilisation d’Azure AI Foundry pour en savoir plus sur les conditions d’utilisation. Vous pouvez également sélectionner l’onglet Détails de l’offre Azure AI Foundry pour en savoir plus sur la tarification du modèle sélectionné.
Si c’est la première fois que vous effectuez un affinage du modèle dans le projet, vous devez abonner votre projet à l’offre spécifique (par exemple Phi-3-mini-128k-instruct) depuis Azure AI Foundry. Cette étape nécessite que votre compte dispose des autorisations sur l’abonnement Azure et sur le groupe de ressources qui sont répertoriées dans les prérequis. Chaque projet a son propre abonnement à l’offre spécifique d’Azure AI Foundry, ce qui vous permet de contrôler et de surveiller les dépenses. Sélectionnez Abonner et optimiser.
Remarque
L’abonnement d’un projet à une offre Azure AI Foundry spécifique (dans le cas présent, Phi-3-mini-128k-instruct) requiert que votre compte dispose d’un accès Collaborateur ou Propriétaire au niveau de l’abonnement où le projet est créé. Comme alternative, votre compte d’utilisateur peut se voir attribuer un rôle personnalisé qui dispose des autorisations sur l’abonnement Azure et sur le groupe de ressources listées dans les prérequis.
Une fois que vous avez inscrit le projet à l’offre spécifique d’Azure AI Foundry, les opérations d’affinage suivantes de la même offre dans le même projet ne nécessitent pas de réabonnement. Par conséquent, vous n’avez pas besoin des autorisations au niveau de l’abonnement pour les travaux d’optimisation suivants. Si ce scénario s’applique pour vous, sélectionnez Continuer à optimiser.
Entrez un nom pour votre modèle affiné, puis les balises et la description facultatives.
Sélectionnez les données d’apprentissage pour affiner votre modèle. Consultez la préparation des données pour plus d’informations.
Remarque
Si vos fichiers d’apprentissage/de validation se trouvent dans un magasin de données sans informations d’identification, vous devez autoriser l’identité managée de l’espace de travail à accéder à ce magasin de données pour permettre le fine-tuning MaaS avec un stockage sans informations d’identification. Dans la page « Magasin de données », après avoir cliqué sur « Mettre à jour l’authentification » > Sélectionnez l’option suivante :
Assurez-vous que vos exemples d’apprentissage suivent le format attendu pour l’inférence. Pour affiner efficacement des modèles, assurez-vous de disposer d’un jeu de données équilibré et diversifié. Cela implique la maintenance de l’équilibre des données, y compris différents scénarios, et l’affinage périodique des données d’apprentissage afin de les aligner sur les attentes réelles, ce qui aboutit à des réponses de modèle plus précises et équilibrées.
- Taille de lot à utiliser pour la formation. Lorsqu’elle est définie sur -1, la batch_size correspond à 0,2 % des exemples du jeu d’apprentissage et la valeur maximale est de 256.
- Le taux d’apprentissage de l’affinage est le taux d’apprentissage d’origine utilisé pour le pré-apprentissage multiplié par ce multiplicateur. Nous recommandons d’essayer des valeurs comprises entre 0,5 et 2. Empiriquement, nous avons constaté que les taux d’apprentissage plus importants fonctionnent souvent mieux avec des tailles de lot plus grandes. Doit être compris entre 0.0 et 5,0.
- Nombre d’époques d’entraînement. Une époque fait référence à un cycle complet dans le jeu de données.
Les paramètres de tâche sont une étape facultative et une option avancée : le réglage des hyperparamètres est essentiel à l’optimisation des modèles de langage volumineux (LLMs) dans les applications réelles. Ils permettent des performances améliorées et une utilisation efficace des ressources. Les utilisateurs peuvent choisir de conserver les paramètres par défaut, et les utilisateurs avancés peuvent personnaliser les paramètres tels que les époques ou le taux d’apprentissage.
Passez en revue vos sélections et poursuivez l’apprentissage de votre modèle.
Une fois votre modèle affiné, vous pouvez le déployer et l’utiliser dans votre propre application, dans le terrain de jeu ou dans le flux d’invite. Pour plus d’informations, consultez Comment déployer la famille Phi-3 de petits modèles de langage avec Azure AI Foundry.
Nettoyage de vos modèles affinés
Vous pouvez supprimer un modèle affiné de la liste des modèles d’affinage dans Azure AI Foundry ou depuis la page des détails du modèle. Sélectionnez le modèle affiné à supprimer de la page Affinage, puis sélectionnez le bouton Supprimer pour le supprimer.
Remarque
Vous ne pouvez pas supprimer un modèle personnalisé si un déploiement de ce modèle existe. Vous devez d’abord supprimer le déploiement de votre modèle avant de pouvoir supprimer votre modèle personnalisé.
Coûts et quotas
Considérations relatives aux coûts et aux quotas pour les modèles Phi affinés en tant que service
Les modèles Phi ayant fait l’objet d’un affinage en tant que service sont proposés par Microsoft et intégrés à Azure AI Foundry pour leur utilisation. Vous trouverez les tarifs au moment du déploiement ou du fine-tuning des modèles sous l’onglet Tarifs et conditions de l’Assistant Déploiement.
Exemple de notebook
Vous pouvez utiliser cet exemple de bloc-notes pour créer une tâche de réglage fin autonome afin d'améliorer la capacité d'un modèle à résumer les dialogues entre deux personnes à l'aide de l'ensemble de données Samsum. Les données de formation utilisées sont l'ensemble de données ultrachat_200k, qui est divisé en quatre divisions adaptées au réglage fin supervisé (sft) et au classement par génération (gen). Le bloc-notes utilise les modèles Azure AI disponibles pour la tâche de complétion de conversation (si vous souhaitez utiliser un modèle différent de celui utilisé dans le bloc-notes, vous pouvez remplacer le nom du modèle). Le bloc-notes comprend la configuration des conditions préalables, la sélection d'un modèle à affiner, la création d'ensembles de données de formation et de validation, la configuration et la soumission du travail d'affinage et enfin, la création d'un déploiement sans serveur à l'aide du modèle affiné pour l'inférence d'échantillons.
Filtrage du contenu
Les modèles déployés en tant que service avec paiement à l’utilisation sont protégés par Azure AI Content Safety. Quand ils sont déployés sur des points de terminaison en temps réel, vous pouvez ne pas accepter cette fonctionnalité. Avec Azure AI Sécurité du Contenu activé, l’invite et la complétion sont soumises à un ensemble de modèles de classification visant à détecter et à empêcher la production d’un contenu nuisible. Le système de filtrage de contenu (préversion) détecte et prend des mesures sur des catégories spécifiques de contenu potentiellement dangereux dans les invites d’entrée et les exécutions de sortie. En savoir plus sur Azure AI Sécurité du Contenu.