Qu’est-ce que la formation programmée (version préliminaire) 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

La formation programmée 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 programmé (version préliminaire) 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 la formation programmée 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 gestionnaire.
  • 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. Échantillonnez à partir de l’adaptateur actuel, évaluez les prompts de validation mis de côté 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.

Managed Training prend également en charge les évaluateurs pour l’ajustement fin par renforcement. Choisissez Programmed Training lorsque vous avez besoin de contrôler la boucle, pas seulement les paramètres du correcteur ou du travail. 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 driver Python de l’exécution du modèle Foundry. Le driver Python prend en charge la tokenisation, les récompenses, les avantages, les objectifs et la planification des expériences. Il envoie des tokens et des demandes d’opération à Foundry et reçoit des exemples, des log-probabilités, 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 programme peut s’exécuter sur un CPU, y compris votre propre machine ou un environnement de calcul. Un modèle de récompense ou un environnement que vous ajoutez peut avoir ses propres exigences de calcul. Conservez le driver en cours d’exécution pendant qu’il gère la boucle.

Concepts et primitives de base

Une session a un é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.
Passages vers l’avant et vers l’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.
Checkpoint du sampler 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 contrôle de formation 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 et la composition de la perte personnalisée, consultez 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 un exemple détaillé, suivez Prise en main.

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 une baseline de validation réservée 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 rollout. Soustrayez la récompense moyenne du groupe de prompts 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 stratégie mise à jour.
  6. Évaluez et conservez l’avancement. Comparez la justesse sur le jeu 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 des modèles pris en charge et des régions prises en charge.