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
Programmed Training 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.
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 en préversion approuvé à la formation programmée et une capacité approuvée 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.
- Utilisez 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 d’entraînement programmé :
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 cookbook
Créez un environnement virtuel et installez le cookbook. Les commandes Linux et Windows utilisent l’index des paquets CPU Torch 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 de Cookbook.
Vérifiez l’installation sans créer de session à distance :
python -m pip check
python -m interactive_training.recipes.math_rl.train_azure --help
Vous ne devriez avoir ni dépendances rompues ni une aide sur les recettes qui 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 key est définie, elle est prioritaire sur votre connexion Azure CLI.
Lancer la procédure
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 des réponses, calcule des récompenses, met à jour le module d’adaptation et enregistre les 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 formule utilise key=value arguments, pas --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é
Cherchez dans ./runs/first-math-check/, par rapport au répertoire cookbook :
| Stage | Evidence | Ce que cela prouve |
|---|---|---|
| Configuration du lanceur |
run_meta.json est écrit ; l’ID de session peut initialement être null. |
Le programme d’installation local démarre, non parce qu’Azure autorise 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 |
final ligne du grand livre après lots entraînés, métriques finales sur jeu de test réservé et sortie réussie du processus. |
Le workflow borné se termine ; inspectez les avertissements et vérifiez le nettoyage séparément. |
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/total_episodes et test/env/all/correct ; inspectez les avertissements concernant les é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.
Il n’existe aucun gain de précision requis ou temps d’exécution promis pour cette vérification en deux étapes. 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 : Lancer le tableau de bord.
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
Le recipe tente de fermer sa session d’entraînement lorsque la boucle se termine. Rechercher les avertissements de nettoyage ; un message imprimé Session closed seul ne confirme pas que les ressources de calcul distantes sont libérées.
Utilisez l’ID de session enregistré et le guide d’exemple sur la gestion des sessions pour inspecter votre session. S’il reste actif, conservez les points de contrôle requis et fermez 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 pas de déploiement de serving.
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 Programmed Training cookbook 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.