Inizia con il training interattivo (anteprima) in Microsoft Foundry

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

  • Un progetto Foundry con accesso approvato all'anteprima del training interattivo 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.
  • L'interfaccia della riga di comando di Azure per il comando di accesso riportato di seguito.
  • 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 pyproject.toml del cookbook 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: Installazione del cookbook.

Controllare l'installazione senza creare una sessione remota:

python -m pip check
python -m interactive_training.recipes.math_rl.train_azure --help

Non dovrebbero essere presenti dipendenze interrotte e la Guida della ricetta deve elencare project_endpoint, max_steps e max_train_examples.

Configurare il progetto ed eseguire l'accesso

Accedere con l'identità approvata per il progetto, quindi selezionare la relativa sottoscrizione:

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 non sia impostato AZURE_AI_API_KEY. È 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.

Eseguire la ricetta

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 all'Avvio rapido della ricetta Math RL.

La ricetta usa argomenti 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.

Verificare cosa è stato completato correttamente

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 . La configurazione locale viene avviata; questo non significa che Azure abbia accettato la sessione.
Modello caricato Console Session ready: session_id=...; azure.session_id viene aggiornato. La creazione della sessione viene 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 relativi alle valutazioni ignorate. Un punteggio pari a zero può indicare un errore reale di formattazione o del 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: Dashboard di esecuzione.

Mantenere il dashboard nell'indirizzo di loopback predefinito perché non dispone dell'autenticazione e può visualizzare prompt e risposte. Premere Ctrl+C nel terminale della dashboard per interromperla; ciò non scarica la sessione di training remota.

Pulire le risorse

La ricetta tenta di chiudere la sessione di training quando il ciclo termina. Controllare la presenza di avvisi di pulizia; un messaggio Session closed stampato da solo non conferma che il calcolo remoto sia stato rilasciato.

Usare l'ID sessione registrato e la guida di esempio alla gestione della sessione per esaminare la sessione. Se rimane attiva, conservare i checkpoint necessari e scaricare solo la propria sessione.

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 una distribuzione per il 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.