Qu’est-ce que la formation interactive (préversion) dans Microsoft Foundry ?

Important

Les éléments marqués comme préversion dans cet article sont actuellement en préversion. Cette préversion est fournie sans contrat de niveau de service et Microsoft ne le recommande pas pour les charges de travail de production. Certaines fonctionnalités peuvent ne pas être prises en charge ou avoir des fonctionnalités contraintes. Pour plus d’informations, consultez Conditions d'utilisation supplémentaires pour les versions préliminaires de Microsoft Azure.

Important

L’entraînement interactif nécessite une approbation d’accès explicite. Demandez l’accès via le formulaire d’inscription en préversion et attendez l’approbation avant de créer une session d’entraînement.

L’entraînement interactif (préversion) est une API permettant de créer votre propre boucle post-entraînement sur des modèles open-weight dans Microsoft Foundry. Vous pilotez l’expérience en Python. Foundry exécute l’échantillonnage de modèles et les mises à jour de l’adaptation à faible rang (LoRA) sur des GPU serverless.

Pour l’apprentissage par renforcement (RL), votre code contrôle la collecte des rollouts, les récompenses, les avantages et la planification des mises à jour. Les mêmes primitives prennent en charge l’apprentissage supervisé, l’apprentissage de préférence, la distillation et les flux de travail de perte personnalisée.

Quand l′utiliser ?

Utilisez un entraînement interactif lorsque la boucle d’entraînement elle-même fait partie de votre recherche :

  • Vous avez besoin d’un signal d’apprentissage personnalisé. Fournissez des démonstrations, calculez des récompenses et des avantages, ou composez une perte locale pour l’apprentissage des préférences ou d’autres objectifs.
  • Votre modèle interagit avec un environnement. Coordonnez les réponses de modèle, les appels d’outils, les observations et les récompenses dans votre orchestrateur.
  • Vous devez avoir le contrôle sur les mises à jour individuelles. Sélectionnez des lots, des masques de tokens, des paramètres de perte et des paramètres d’optimiseur. Décidez quand accumuler les gradients et appliquer une mise à jour.
  • Vous souhaitez inspecter et adapter une expérimentation. Exemple à partir de l’adaptateur actuel, évaluez les prompts de test non vus et choisissez les prompts suivants en fonction des résultats observés.
  • Vous devez conserver et poursuivre la progression. Enregistrez l’état de l’adaptateur et de l’optimiseur, puis reprenez dans une session compatible. Conservez la position du jeu de données et d’autres états d’expérience dans votre driver.

L’ajustement fin géré prend également en charge les évaluateurs pour l’ajustement fin par renforcement. Choisissez une formation interactive lorsque vous avez besoin d’un contrôle sur la boucle, pas seulement des paramètres de l’évaluateur ou de tâche. Consultez Choisir votre approche de formation.

Qui fait quoi

Votre programme Python est le pilote d’entraînement. Il prépare les données d’entrée et coordonne l’expérience. Foundry gère l’état du modèle et de l’adaptateur et exécute les opérations demandées.

Diagramme séparant votre pilote Python de l’exécution du modèle Foundry. Le pilote possède la tokenisation, les récompenses, les avantages, les objectifs et la planification des expériences. Il envoie des jetons et des demandes d’opération à Foundry et reçoit des exemples, des probabilités logarithmiques, des métriques et des ID de point de contrôle. Foundry exécute l’échantillonnage, les passes avant et arrière, ainsi que les mises à jour de l’optimiseur et gère les opérations de point de contrôle.

Votre pilote logiciel peut s’exécuter sur un CPU, y compris votre propre ordinateur ou un environnement de calcul. Un modèle de récompense ou un environnement que vous ajoutez peut avoir ses propres exigences de calcul. Laissez le pilote en cours d’exécution pendant qu’il gère la boucle.

Concepts et primitives de base

Une session conserve son état : le calcul du gradient, les mises à jour de l’optimiseur et l’échantillonnage sont des opérations distinctes sur un modèle et un adaptateur sélectionnés. Cette séparation vous permet de choisir quand collecter des données, accumuler des gradients, mettre à jour et évaluer.

Bloc de construction Qu’est-ce que cela fait ?
Session d’entraînement et adaptateur LoRA FineTuningSession.create permet d’initialiser un modèle de base pris en charge avec votre configuration d’adaptateur. La session contient l’état utilisé par les opérations suivantes.
Lot tokenisé et masques Datum transporte les entrées de modèle et les entrées de la fonction de perte. Les masques sélectionnent les jetons qui contribuent à l’apprentissage, tels que les jetons d’assistant plutôt que les prompts ou les observations d’outils.
Échantillonnage sample génère des réponses à partir d’un checkpoint du sampler sélectionné. Les entrées RL associent des jetons échantillonnés à leurs log-probabilités du rollout et à leurs avantages dérivés des récompenses.
Passes avant et arrière forward retourne des sorties de fonction de perte par exemple sans accumuler de gradients. forward_backward calcule l’objectif sélectionné et accumule les gradients. Elle n’applique pas de mise à jour d’optimiseur.
Mise à jour de l’optimiseur optim_step applique des gradients accumulés avec vos paramètres Adam. Vous choisissez quand mettre à jour et quel taux d’apprentissage utiliser.
Point de contrôle de l’échantillonneur save_weights_for_sampler prépare les poids de l’adaptateur pour la génération. Actualisez ces pondérations après une mise à jour avant d’échantillonner à partir de l’adaptateur mis à jour.
Point de reprise de l’entraînement save_weights enregistre l’état des poids de l’adaptateur et de l’optimiseur. FineTuningSession.create_from_checkpoint reprend l’entraînement dans une session compatible.

Le Kit de développement logiciel (SDK) inclut cross_entropy pour les mises à jour supervisées et les pertes RL telles que importance_sampling et ppo. Ces pertes sont des primitives de perte, pas des algorithmes de bout en bout prédéfinis. Pour connaître les contrats d’entrée de données et la composition de perte personnalisable, consultez les concepts clés.

Fonctionnement d’une boucle RL

Envisagez une expérience de raisonnement mathématique : votre modèle génère plusieurs réponses à chaque problème et votre programme note leur exactitude. Pour obtenir un exemple détaillé, suivez Démarrage.

Diagramme d’une itération d’apprentissage par renforcement. Foundry actualise les pondérations de l’échantillonneur et échantillonne des rollouts. Votre driver calcule les récompenses, les avantages et les masques de jetons. Foundry calcule les gradients et applique la mise à jour de l’optimiseur. La boucle revient à actualiser les pondérations de l’échantillonneur avant de collecter de nouveaux rollouts.

Établissez un jeu de référence tenu à part et testez votre fonction de récompense avant la première mise à jour. Répétez ensuite :

  1. Préparez la politique actuelle pour l’échantillonnage. Enregistrez les pondérations de l’échantillonneur à partir de l’adaptateur d’entraînement, puis collectez plusieurs réponses ou rollouts pour chaque prompt.
  2. Noter et comparer les réponses. Votre fonction de récompense attribue un score à chaque simulation. Soustrayez la récompense moyenne du groupe d’invite pour produire l’avantage de chaque rollout.
  3. Préparez le signal d’apprentissage. Alignez les jetons de l’assistant échantillonnés avec leurs log-probabilités du rollout et avantages. Excluez les prompts et les observations d’environnement du signal d’apprentissage.
  4. Calculer les gradients. Envoyez le lot à forward_backward avec importance_sampling. Effectuez le calcul du gradient avant la mise à jour qui l’utilise.
  5. Mettez à jour l’adaptateur. Appelez optim_step, puis actualisez les pondérations de l’échantillonneur avant de collecter des réponses à partir de la règle mise à jour.
  6. Évaluez et conservez les progrès. Comparez l’exactitude sur l’ensemble de validation avec la ligne de base et enregistrez les points de contrôle d’entraînement à votre cadence choisie.

Get started

Choisissez le point de départ qui correspond à votre tâche :

Modèles et régions pris en charge

Consultez la vue d’ensemble de l’ajustement fin pour les modèles pris en charge et les régions prises en charge.