Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Gli elementi contrassegnati come anteprima in questo articolo sono attualmente in anteprima. Questa anteprima viene fornita senza un contratto di servizio e Microsoft non lo consiglia per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero avere funzionalità limitate. Per ulteriori informazioni, vedere Condizioni supplementari per l'uso delle versioni di anteprima di Microsoft Azure.
Importante
Il training interattivo richiede l'approvazione esplicita dell'accesso. Richiedi l'accesso tramite il modulo di iscrizione dell'anteprima e attendi l'approvazione prima di creare una sessione di training.
In questa guida introduttiva si clona il repository degli esempi ed si esegue una ricetta di apprendimento per rinforzo (RL) sui problemi matematici GSM8K. La ricetta genera risposte, valuta la correttezza delle risposte e aggiorna un adattatore LoRA (Low Rank Adaptation) per Qwen3.8-27B in Microsoft Foundry.
Si esegue il driver Python in locale; Foundry esegue le operazioni del modello. Questa breve esecuzione verifica che training, valutazione e salvataggio dei checkpoint funzionino. Non è un benchmark di qualità del modello e non è necessaria una GPU locale.
Se non hai una sottoscrizione di Azure, crea un account gratuito.
Prerequisites
- Progetto Foundry con accesso approvato all'anteprima della formazione interattiva e capacità per
Qwen/Qwen3.8-27B. Controllare i modelli supportati e le regioni. - Ruolo Utente foundry per il training o proprietario di Foundry se si distribuisce anche il modello ottimizzato. Vedere Controllo degli accessi in base al ruolo per Microsoft Foundry.
- Python 3.11 o versione successiva, Git e una directory locale scrivibile.
- Usare interfaccia della riga di comando di Azure per il comando di accesso seguente.
- Accesso alla rete per scaricare Python pacchetti, il set di dati pubblico e il tokenizer del modello.
- Budget approvato per il caricamento del modello, il training, il campionamento e la valutazione.
Clonare il repository degli esempi
Clonare microsoft-foundry/fine-tuning e aprire il relativo cookbook di training interattivo:
git clone https://github.com/microsoft-foundry/fine-tuning.git
cd fine-tuning/interactive_training
Mantenere aperta questa directory per i comandi rimanenti. Contiene il pyproject.toml del libro di cucina e il pacchetto Python.
Installare il cookbook
Creare un ambiente virtuale e installare il cookbook. I comandi Linux e Windows usano l'indice del pacchetto Torch della CPU per le dipendenze sul lato driver.
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
Riferimento: Cookbook installation.
Controllare l'installazione senza creare una sessione remota:
python -m pip check
python -m interactive_training.recipes.math_rl.train_azure --help
Non si prevedono dipendenze interrotte e la guida della ricetta che include project_endpoint, max_steps e max_train_examples.
Configurare il progetto ed eseguire l'accesso
Accedere con l'identità approvata per il progetto e quindi selezionarne l'abbonamento:
az login
az account set --subscription "<subscription-id>"
Riferimento: accedere con interfaccia della riga di comando di Azure.
Copiare l'endpoint del progetto dal progetto Foundry. Usare l'URL del progetto, non un URL di distribuzione del modello o solo il nome host dell'account. Sostituire <account> e <project> con i valori del progetto:
export AZURE_AI_PROJECT_ENDPOINT=\
"https://<account>.services.ai.azure.com/api/projects/<project>"
La ricetta usa DefaultAzureCredential a meno che AZURE_AI_API_KEY non sia impostato. È possibile selezionare altre credenziali configurate prima delle credenziali dell'interfaccia della riga di comando. Se la variabile key è impostata, ha la precedenza sull'accesso interfaccia della riga di comando di Azure.
Esegui recipe
Eseguire la ricetta GSM8K con due iterazioni di training, 16 esempi di training e otto esempi di valutazione tenuti da parte. La ricetta crea una sessione, campiona le risposte, calcola ricompense, aggiorna l'adattatore e salva i checkpoint.
Warning
Questo comando crea una sessione di training remota e può comportare addebiti.
max_steps=2 limita le iterazioni di training, non il tempo di caricamento del modello, le chiamate di valutazione, i token totali o i costi. Procedi solo con un budget approvato.
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
Riferimento: Guida rapida alla ricetta Math RL.
La formula usa parametri key=value, non --key value. Mantenere aperto il terminale e la connessione di rete fino al termine dell'esecuzione.
Ogni iterazione usa otto prompt con quattro risposte per ogni richiesta.
max_tokens=1200 fornisce un budget di completamento per il ragionamento e la risposta finale; le risposte possono comunque essere troncate.
I risultati vengono inseriti nella first-math-check directory in runs. Il comando rifiuta di sovrascrivere una directory esistente. Scegliere un nuovo log_path per un'altra esecuzione indipendente. Non eliminare i risultati per risolvere un errore.
Controlla cosa è riuscito
Cerca in ./runs/first-math-check/, rispetto alla directory cookbook:
| Stage | Evidence | Cosa dimostra |
|---|---|---|
| Configurazione del Launcher |
run_meta.json è scritto; L'ID sessione potrebbe essere nullinizialmente . |
Viene avviata l'installazione locale, non quando Azure consente la sessione. |
| Modello caricato | Console Session ready: session_id=...; azure.session_id vengono aggiornati. |
La creazione della sessione è completata. |
| Ciclo in esecuzione |
config.json, metrics.jsonl, metriche di training e HTML di traiettoria. |
Il campionamento, la classificazione e le operazioni di aggiornamento sono in corso. |
| Stato salvato |
checkpoints.jsonl ha salvato state_path/sampler_path voci. |
Operazioni di salvataggio completate; non fare affidamento su un nome di checkpoint stampato prima del completamento del salvataggio. |
| Completamento normale |
final riga del registro dopo i batch sottoposti a training, metriche finali del set di validazione e uscita corretta del processo. |
Il flusso di lavoro delimitato si completa; esaminare gli avvisi e verificare separatamente la pulizia delle risorse. |
Per questa nuova esecuzione sincrona GSM8K, la valutazione iniziale si verifica prima del primo aggiornamento; la valutazione finale segue il salvataggio finale. Controllare test/env/all/correct e test/env/all/total_episodes; esaminare eventuali avvisi di valutazioni scartate. Un punteggio zero può essere un problema reale di formattazione o di budget dei token anche quando l'infrastruttura funziona. Le metriche mancanti non sono un punteggio zero.
Per questo controllo in due passaggi non è previsto alcun guadagno di accuratezza o un runtime promesso . Per dimostrare un miglioramento, usare un set di test fisso tenuto da parte e la guida alla valutazione.
Visualizzare gli artefatti locali:
python dashboard_server.py --root ./runs
# Open http://127.0.0.1:8000/
Riferimento: Run dashboard.
Mantenere il dashboard nell'indirizzo di loopback predefinito perché non dispone dell'autenticazione e può visualizzare prompt e risposte. Premere CTRL+C nel terminale del dashboard per arrestarlo; questa operazione non termina la sessione di training remoto.
Pulire le risorse
La ricetta tenta di chiudere la sessione di training quando il ciclo termina. Verificare la presenza di avvisi di pulizia; Un messaggio stampato Session closed da solo non conferma che le risorse di elaborazione remota vengono rilasciate.
Usare l'ID sessione registrato e la guida di esempio alla gestione della sessione per esaminare la sessione. Se rimane attivo, preserva i checkpoint necessari e chiudi solo la sessione di tua proprietà.
Mantenere i riferimenti a configurazione, metriche e checkpoint per il ripristino. L'eliminazione di file locali non rilascia le risorse di calcolo remote. Questa ricetta non crea un deployment di serving.
Prova altre ricette
Dopo aver completato questa guida introduttiva, provare altre ricette nel repository degli esempi di fine-tuning. Il cookbook di training interattivo include esempi per il fine-tuning supervisionato, l'ottimizzazione delle preferenze, la distillazione e altre attività di RL.
Segui le istruzioni per la configurazione e il dataset di ogni ricetta. Verificare l'accesso al modello e un budget approvato prima di avviare un'altra esecuzione.