Explorons comment affiner le modèle de langage Phi-3 Mini de Microsoft en utilisant Azure AI Foundry. L'affinage vous permet d'adapter Phi-3 Mini à des tâches spécifiques, le rendant encore plus puissant et conscient du contexte.
- Capacités : Quels modèles peuvent être affinés ? Que peut faire le modèle de base après affinage ?
- Coût : Quel est le modèle de tarification pour l'affinage ?
- Personnalisation : Dans quelle mesure puis-je modifier le modèle de base et de quelles manières ?
- Commodité : Comment se déroule réellement l'affinage - dois-je écrire du code personnalisé ? Dois-je apporter mes propres ressources de calcul ?
- Sécurité : Les modèles affinés sont connus pour présenter des risques de sécurité - y a-t-il des garde-fous en place pour protéger contre les dommages involontaires ?
Note
Pour les modèles de la famille Phi-3, l'offre d'affinage à la demande n'est disponible qu'avec les hubs créés dans les régions East US 2.
-
Un abonnement Azure. Si vous n'avez pas d'abonnement Azure, créez un compte Azure payant pour commencer.
-
Les contrôles d'accès basés sur les rôles Azure (Azure RBAC) sont utilisés pour accorder l'accès aux opérations dans Azure AI Foundry. Pour effectuer les étapes de cet article, votre compte utilisateur doit être assigné au rôle de développeur Azure AI sur le groupe de ressources.
Vérifiez que l'abonnement est enregistré 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 du projet AI > Fournisseurs de ressources dans le menu de gauche.
- Confirmez que Microsoft.Network figure dans la liste des fournisseurs de ressources. Sinon, ajoutez-le.
Préparez vos données d'entraînement et de validation pour affiner votre modèle. Vos ensembles de données d'entraînement et de validation doivent contenir des exemples d'entrée et de sortie pour illustrer comment vous souhaitez que le modèle fonctionne.
Assurez-vous que tous vos exemples d'entraînement suivent le format attendu pour l'inférence. Pour affiner les modèles efficacement, assurez-vous d'avoir un ensemble de données équilibré et diversifié.
Cela implique de maintenir l'équilibre des données, d'inclure divers scénarios, et de raffiner périodiquement les données d'entraînement pour s'aligner sur les attentes du monde réel, ce qui conduit finalement à 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.
Les données d'entraînement et de validation que vous utilisez doivent être formatées sous forme de document JSON Lines (JSONL). Pour Phi-3-mini-128k-instruct
, l'ensemble de données d'affinage doit être formaté dans le format conversationnel utilisé par l'API de complétion de chat.
{"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 téléchargés sur le datastore par défaut et mis à disposition dans votre projet.
Azure AI Foundry vous permet de personnaliser les grands modèles de langage pour vos ensembles de données personnels en utilisant un processus connu sous le nom d'affinage. L'affinage offre une valeur significative en permettant la personnalisation et l'optimisation pour des tâches et applications spécifiques. Il conduit à une amélioration des performances, une efficacité des coûts, une réduction de la latence, et des sorties personnalisées.
-
Connectez-vous à Azure AI Foundry.
-
Sélectionnez +Nouveau projet pour créer un nouveau projet dans Azure AI Foundry.
-
Effectuez les tâches suivantes :
- Nom du Hub du projet. Il doit être une valeur unique.
- Sélectionnez le Hub à utiliser (créez-en un nouveau si nécessaire).
-
Effectuez les tâches suivantes pour créer un nouveau hub :
- Entrez le Nom du hub. Il doit être 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 les Services Azure AI à connecter à utiliser (créez-en un nouveau si nécessaire).
- Sélectionnez Connecter Azure AI Search pour Ignorer la connexion.
-
Sélectionnez Suivant.
-
Sélectionnez Créer un projet.
Avant l'affinage, rassemblez ou créez un ensemble de données pertinent pour votre tâche, tel que des instructions de chat, des paires de questions-réponses, ou tout autre texte pertinent. Nettoyez et prétraitez ces données en supprimant le bruit, en gérant les valeurs manquantes, et en tokenisant le texte.
Note
L'affinage des modèles Phi-3 est actuellement pris en charge dans les projets situés dans East US 2.
-
Sélectionnez Catalogue de modèles dans l'onglet de gauche.
-
Tapez phi-3 dans la barre de recherche et sélectionnez le modèle phi-3 que vous souhaitez utiliser.
-
Sélectionnez Affiner.
-
Entrez le Nom du modèle affiné.
-
Sélectionnez Suivant.
-
Effectuez les tâches suivantes :
- Sélectionnez le type de tâche pour Chat completion.
- Sélectionnez les Données d'entraînement que vous souhaitez utiliser. Vous pouvez les télécharger via les données d'Azure AI Foundry ou depuis votre environnement local.
-
Sélectionnez Suivant.
-
Téléchargez les Données de validation que vous souhaitez utiliser, ou vous pouvez sélectionner Division automatique des données d'entraînement.
-
Sélectionnez Suivant.
-
Effectuez les tâches suivantes :
- Sélectionnez le multiplicateur de taille de lot que vous souhaitez utiliser.
- Sélectionnez le taux d'apprentissage que vous souhaitez utiliser.
- Sélectionnez le nombre d'époques que vous souhaitez utiliser.
-
Sélectionnez Soumettre pour démarrer le processus d'affinage.
-
Une fois que votre modèle est affiné, le statut sera affiché comme Terminé, comme montré dans l'image ci-dessous. Vous pouvez maintenant déployer le modèle et l'utiliser dans votre propre application, dans le terrain de jeu, ou dans le flux de prompt. Pour plus d'informations, consultez Comment déployer la famille de petits modèles de langage Phi-3 avec Azure AI Foundry.
Note
Pour des informations plus détaillées sur l'affinage de Phi-3, veuillez visiter Affiner les modèles Phi-3 dans Azure AI Foundry.
Vous pouvez supprimer un modèle affiné de la liste des modèles affinés dans Azure AI Foundry ou depuis la page des détails du modèle. Sélectionnez le modèle affiné à supprimer depuis la page d'affinage, puis sélectionnez le bouton Supprimer pour supprimer le modèle affiné.
Note
Vous ne pouvez pas supprimer un modèle personnalisé s'il a un déploiement existant. Vous devez d'abord supprimer votre déploiement de modèle avant de pouvoir supprimer votre modèle personnalisé.
Les modèles Phi affinés en tant que service sont proposés par Microsoft et intégrés à Azure AI Foundry pour être utilisés. Vous pouvez trouver les tarifs lors du déploiement ou de l'affinage des modèles sous l'onglet Tarification et conditions dans l'assistant de déploiement.
Les modèles déployés en tant que service avec paiement à l'utilisation sont protégés par Azure AI Content Safety. Lorsqu'ils sont déployés sur des points de terminaison en temps réel, vous pouvez choisir de désactiver cette fonctionnalité. Avec Azure AI content safety activé, à la fois l'invite et la complétion passent par un ensemble de modèles de classification visant à détecter et à prévenir la sortie de contenu nuisible. Le système de filtrage de contenu détecte et prend des mesures sur des catégories spécifiques de contenu potentiellement nuisible dans les invites d'entrée et les complétions de sortie. En savoir plus sur Azure AI Content Safety.
Configuration de l'affinage
Hyperparamètres : Définissez des hyperparamètres tels que le taux d'apprentissage, la taille des lots et le nombre d'époques d'entraînement.
Fonction de perte
Choisissez une fonction de perte appropriée pour votre tâche (par exemple, l'entropie croisée).
Optimiseur
Sélectionnez un optimiseur (par exemple, Adam) pour les mises à jour de gradient pendant l'entraînement.
Processus d'affinage
- Charger le modèle pré-entraîné : Chargez le point de contrôle de Phi-3 Mini.
- Ajouter des couches personnalisées : Ajoutez des couches spécifiques à la tâche (par exemple, une tête de classification pour les instructions de chat).
Entraîner le modèle Affinez le modèle en utilisant votre ensemble de données préparé. Surveillez les progrès de l'entraînement et ajustez les hyperparamètres au besoin.
Évaluation et validation
Ensemble de validation : Divisez vos données en ensembles d'entraînement et de validation.
Évaluer les performances
Utilisez des métriques comme la précision, le score F1, ou la perplexité pour évaluer les performances du modèle.
Point de contrôle Sauvegardez le point de contrôle du modèle affiné pour une utilisation future.
- Déployez en tant que service web : Déployez votre modèle affiné en tant que service web dans Azure AI Foundry.
- Testez le point de terminaison : Envoyez des requêtes de test au point de terminaison déployé pour vérifier sa fonctionnalité.
Itérer : Si les performances ne sont pas satisfaisantes, itérez en ajustant les hyperparamètres, en ajoutant plus de données, ou en affinant pour des époques supplémentaires.
Surveillez continuellement le comportement du modèle et affinez-le au besoin.
Tâches personnalisées : Phi-3 Mini peut être affiné pour diverses tâches au-delà des instructions de chat. Explorez d'autres cas d'utilisation ! Expérimenter : Essayez différentes architectures, combinaisons de couches, et techniques pour améliorer les performances.
Note
L'affinage est un processus itératif. Expérimentez, apprenez, et adaptez votre modèle pour obtenir les meilleurs résultats pour votre tâche spécifique !
Avertissement : Ce document a été traduit à l'aide de services de traduction automatisés 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.