Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 interactive nécessite une autorisation 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.
Dans ce guide de démarrage rapide, vous clonez le référentiel d’exemples et exécutez une recette d’apprentissage par renforcement (RL) sur les problèmes mathématiques GSM8K. La recette génère des réponses, note leur exactitude et met à jour un adaptateur d’adaptation de bas rang (LoRA) pour Qwen3.8-27B dans Microsoft Foundry.
Vous exécutez le driver Python localement ; Foundry exécute les opérations du modèle. Cette courte exécution vérifie que l’apprentissage, l’évaluation et l’enregistrement du point de contrôle fonctionnent. Il ne s’agit pas d’un benchmark de qualité de modèle, et vous n’avez pas besoin d’un GPU local.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.
Prerequisites
- Un projet Foundry avec un accès approuvé à la préversion de l’entraînement interactif et une capacité pour
Qwen/Qwen3.8-27B. Vérifiez les modèles pris en charge et les régions. - Rôle Utilisateur Foundry pour la formation, ou le rôle Propriétaire de Foundry si vous déployez également le modèle affiné. Consultez le contrôle d’accès en fonction du rôle pour Microsoft Foundry.
- Python 3.11 ou version ultérieure, Git et un répertoire local accessible en écriture.
- L’Azure CLI pour la commande de connexion ci-dessous.
- L'accès réseau pour télécharger les packages Python, le jeu de données public et le tokeniseur du modèle.
- Budget approuvé pour le chargement, l’apprentissage, l’échantillonnage et l’évaluation du modèle.
Cloner le référentiel d’exemples
Clonez microsoft-foundry/fine-tuning et ouvrez son guide pratique de formation interactive :
git clone https://github.com/microsoft-foundry/fine-tuning.git
cd fine-tuning/interactive_training
Conservez ce répertoire ouvert pour les commandes restantes. Il contient le pyproject.toml du livre de recettes et le package Python.
Installer le livre de recettes
Créez un environnement virtuel et installez le cookbook. Les commandes Linux et Windows utilisent l’index de packages Torch pour le processeur (CPU) pour les dépendances côté pilote.
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e . \
--index-url https://pypi.org/simple \
--extra-index-url https://download.pytorch.org/whl/cpu
Référence : Installation du livre de recettes.
Vérifiez l’installation sans créer de session à distance :
python -m pip check
python -m interactive_training.recipes.math_rl.train_azure --help
Vérifiez qu’aucune dépendance n’est en conflit et que l’aide de la recette répertorie project_endpoint, max_steps et max_train_examples.
Configurez votre projet et connectez-vous
Connectez-vous avec l’identité approuvée pour votre projet, puis sélectionnez son abonnement :
az login
az account set --subscription "<subscription-id>"
Référence : Connectez-vous avec Azure CLI.
Copiez le endpoint du projet à partir de votre projet Foundry. Utilisez l’URL du projet, et non une URL de déploiement de modèle ou uniquement le nom d’hôte du compte. Remplacez <project> et <account> par les valeurs de votre projet :
export AZURE_AI_PROJECT_ENDPOINT=\
"https://<account>.services.ai.azure.com/api/projects/<project>"
La recette utilise DefaultAzureCredential, sauf si AZURE_AI_API_KEY est défini. D’autres informations d’identification configurées peuvent être sélectionnées avant les informations d’identification CLI. Si la variable contenant la clé est définie, elle est prioritaire sur votre connexion Azure CLI.
Exécuter la recette
Exécutez la recette GSM8K avec deux itérations d’entraînement, 16 exemples d’entraînement et huit exemples d’évaluation mis de côté. La recette crée une session, échantillonne les réponses, calcule les récompenses, met à jour l’adaptateur et enregistre des points de contrôle.
Warning
Cette commande crée une session d’entraînement à distance et peut entraîner des frais.
max_steps=2 limite les itérations d’entraînement, et non le temps de chargement du modèle, les appels d’évaluation, le nombre total de jetons ou le coût. Ne procédez qu’avec un budget approuvé.
python -m interactive_training.recipes.math_rl.train_azure \
project_endpoint="$AZURE_AI_PROJECT_ENDPOINT" \
model_name="Qwen/Qwen3.8-27B" renderer_name=qwen3_8_low_reasoning \
env=gsm8k learning_rate=2e-5 temperature=1.0 max_tokens=1200 \
lora_rank=32 group_size=4 groups_per_batch=8 \
loss_fn=importance_sampling seed=42 \
max_steps=2 max_train_examples=16 max_test_examples=8 \
eval_every=1 save_every=1 \
log_path=./runs/first-math-check behavior_if_log_dir_exists=raise
Référence : Guide de démarrage rapide de Math RL.
La recette utilise les arguments key=value, et non --key value. Conservez le terminal et la connexion réseau ouvertes jusqu’à la fin de l’exécution.
Chaque itération utilise huit prompts avec quatre réponses par prompt.
max_tokens=1200 fournit un budget d’achèvement pour le raisonnement et la réponse finale ; les réponses peuvent toujours être tronquées.
Les résultats se trouvent dans le first-math-check répertoire sous runs. La commande refuse de remplacer un répertoire existant. Choisissez un nouveau log_path pour une autre exécution indépendante. Ne supprimez pas vos résultats pour contourner une erreur.
Vérifiez ce qui a fonctionné
Recherchez dans ./runs/first-math-check/, par rapport au répertoire du livre de recettes :
| Stage | Evidence | Ce que cela prouve |
|---|---|---|
| Configuration du lanceur |
run_meta.json est écrit ; l’ID de session peut initialement être null. |
La configuration locale démarre, mais cela ne signifie pas qu’Azure accepte la session. |
| Modèle chargé | Console Session ready: session_id=...; azure.session_id est mise à jour. |
La création de la session est terminée. |
| Boucle en cours d’exécution |
config.json, metrics.jsonl, métriques d’entraînement et HTML de trajectoire. |
Les opérations d’échantillonnage, de notation et de mise à jour progressent. |
| État enregistré |
checkpoints.jsonl a enregistré state_path/sampler_path entrées. |
Les opérations d’enregistrement sont terminées ; ne vous fiez pas à un nom de point de contrôle imprimé avant la fin de l’enregistrement. |
| Complétion normale | Ligne final du registre après le traitement des lots d’entraînement, le calcul des métriques finales sur les données de test mises de côté et la fin du processus sans erreur. |
Le workflow borné s’achève. Examinez les avertissements et vérifiez séparément le nettoyage des ressources. |
Pour cette nouvelle exécution DE GSM8K synchrone, l’évaluation initiale se produit avant la première mise à jour ; l’évaluation finale suit l’enregistrement final. Vérifiez test/env/all/correct et test/env/all/total_episodes ; examinez les éventuels avertissements signalant des évaluations ignorées. Un score zéro peut être un échec réel de la mise en forme ou du budget de tokens même lorsque l’infrastructure fonctionne. Les métriques manquantes ne sont pas un score zéro.
Cette vérification en deux étapes ne garantit ni gain de précision ni durée d’exécution précise. Pour démontrer une amélioration, utilisez un ensemble de validation fixe tenu à l’écart et le guide d’évaluation.
Affichez les artefacts locaux :
python dashboard_server.py --root ./runs
# Open http://127.0.0.1:8000/
Référence : Tableau de bord d’exécution.
Conservez le tableau de bord sur son adresse de bouclage par défaut, car il n’a pas d’authentification et peut afficher des prompts et des réponses. Appuyez sur Ctrl+C dans le terminal du tableau de bord pour l’arrêter ; cela ne met pas fin à votre session d’entraînement à distance.
Nettoyer les ressources
La recette tente de fermer la session d’entraînement à la sortie de la boucle. Vérifiez les avertissements liés au nettoyage des ressources ; le simple affichage d’un message Session closed ne confirme pas que les ressources de calcul distantes ont été libérées.
Utilisez l’ID de session enregistré et le guide d’exemple sur la gestion des sessions pour inspecter votre session. Si la session reste active, conservez les points de contrôle nécessaires et déchargez uniquement la session dont vous êtes propriétaire.
Conservez vos références de configuration, de métriques et de points de contrôle pour la récupération. La suppression de fichiers locaux ne libère pas les ressources de calcul distantes. Cette recette ne crée aucun déploiement destiné au service en production.
Essayez d’autres recettes
Une fois ce guide de démarrage rapide terminé, essayez d’autres recettes dans le référentiel d’exemples de réglage précis. Le livre de recettes sur l’entraînement interactif comprend des exemples d’ajustement fin supervisé, d’optimisation des préférences, de distillation et d’autres tâches d’apprentissage par renforcement (RL).
Suivez les instructions de configuration et de jeu de données de chaque recette. Confirmez l’accès au modèle et un budget approuvé avant de démarrer une autre exécution.