Important
本文中標示為預覽的項目目前仍在預覽中。 此預覽版未簽訂服務等級協議,Microsoft 不建議用於生產工作負載。 某些功能可能不被支援或功能受限。 欲了解更多資訊,請參閱 Microsoft Azure 預覽版補充使用條款。
Important
互動式訓練需要明確的存取核准。 請透過 預覽報名表 單申請存取權限,並等待核准後再建立訓練工作階段。
在這個快速入門中,你會複製範例存放庫,並執行強化學習(RL)配方來處理 GSM8K 數學問題。 該配方會產生回應、評分其正確性,並更新 Microsoft Foundry 中 Qwen3.8-27B 的低秩適應(LoRA)配接器。
你在本地執行 Python 驅動程式;Foundry 負責模型操作。 這次短暫執行會檢查訓練、評估和儲存檢查點是否正常運作。 它不是模型品質的基準測試,而且你不需要本機顯示卡。
如果您沒有 Azure 訂用帳戶,請建立免費帳戶。
Prerequisites
- 一個 Foundry 專案,具備經核准的互動式訓練預覽權限以及可供
Qwen/Qwen3.8-27B使用的容量。 請檢查 支援的型號 和 地區。 - 用於訓練的是 Foundry User 角色;如果你也部署微調模型,則是 Foundry Owner 角色。 請參閱 Microsoft Foundry 的角色基礎存取控制。
- Python 3.11 或更新版本、Git 以及可寫的本地目錄。
- 以下為下列登入命令的 Azure CLI。
- 網路存取權限,可下載 Python 套件、公開資料集,以及模型的分詞器。
- 核准的模型載入、訓練、取樣及評估預算。
複製範例存放庫
複製 microsoft-foundry/fine-tuning,打開它的互動式訓練手冊:
git clone https://github.com/microsoft-foundry/fine-tuning.git
cd fine-tuning/interactive_training
請保持此目錄開啟,以便執行其餘指令。 它包含了食譜書的 pyproject.toml 和 Python 套件。
安裝 Cookbook
建立虛擬環境並安裝 cookbook。 Linux 與 Windows 指令使用 CPU Torch 套件索引來安裝驅動端的相依套件。
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
參考資料:Cookbook 安裝。
在不建立遠端工作階段的情況下檢查安裝:
python -m pip check
python -m interactive_training.recipes.math_rl.train_azure --help
不會有損壞的相依性,也不會有列出 max_train_examples、project_endpoint 和 max_steps 的配方說明。
設定你的專案並登入
請以您專案核准的身分登入,然後選擇其訂用帳戶:
az login
az account set --subscription "<subscription-id>"
參考:使用 Azure CLI 登入。
從你的 Foundry 專案複製專案端點。 使用專案 URL,而不是模型部署 URL,也不是僅使用帳號主機名稱。 將 <account> 和 <project> 替換為你的專案值:
export AZURE_AI_PROJECT_ENDPOINT=\
"https://<account>.services.ai.azure.com/api/projects/<project>"
除非已設定 AZURE_AI_API_KEY,否則配方會使用 DefaultAzureCredential。 可在 CLI 憑證前選擇其他已設定的憑證。 如果設定了 key 變數,其優先順序高於你的 Azure CLI 登入憑證。
執行程序
執行 GSM8K 配方,包含兩次訓練迭代、16 個訓練範例和 8 個保留作評估的範例。 這個配方會建立一個會話,取樣回應,計算獎勵,更新適配器,並儲存檢查點。
Warning
此指令會建立遠端訓練工作階段,並可能產生收費。
max_steps=2 限制訓練迭代次數,而非模型載入時間、評估呼叫、總標記或成本。 請僅在預算已獲核准後再繼續。
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
參考資料: 數學強化學習食譜快速入門。
這個範本使用 key=value 引數,而不是 --key value。 在跑完之前,保持終端機和網路連線暢通。
每次迭代使用八個提示,每個提示有四個回應。
max_tokens=1200 提供完成預算用於推理與最終答案;回應仍可被截斷。
結果會放在位於 runs 之下的 first-math-check 目錄中。 指令不會覆寫現有目錄。 選擇新的 log_path 以進行另一次獨立執行;不要為了排除錯誤而刪除您的結果。
檢查哪些項目成功了
請在 ./runs/first-math-check/ 中查看,相對於食譜目錄:
| Stage | Evidence | 它證明了什麼 |
|---|---|---|
| 啟動器設定 |
run_meta.json 已寫入;會話識別碼最初可能是 null。 |
本地設定開始了,並不是 Azure 允許此工作階段。 |
| 模型已載入 | 主控台 Session ready: session_id=...; azure.session_id 已更新。 |
工作階段建立完成。 |
| 迴圈執行中 |
config.json、 metrics.jsonl、 訓練指標,以及軌跡 HTML。 |
取樣、分級與更新作業正在進行中。 |
| 儲存狀態 |
checkpoints.jsonl 已儲存 state_path/sampler_path 條目。 |
存檔操作完成;不要只依賴存檔結束前印出的檢查點名稱。 |
| 正常完成 |
final 分類帳資料列在訓練批次、最終保留驗證指標及成功流程退出後。 |
有界工作流程完成;檢查警告並分別確認清理情況。 |
對於這個全新的同步 GSM8K 執行,初始評估會在第一次更新前進行;最終評估是在最終存檔之後進行。 檢查 test/env/all/correct 和 test/env/all/total_episodes;檢查任何已略過的評估警告。 零分可能代表格式或代幣預算的嚴重失誤,即使基礎設施運作良好。 缺少指標不等於零分。
此兩步驟檢查 沒有所需的準確度提升或保證的執行時間。 要主張改進,請使用固定的保留集和 評估指南。
檢視本機成品:
python dashboard_server.py --root ./runs
# Open http://127.0.0.1:8000/
參考:Run dashboard。
儀表板保持預設的迴圈位址,因為它沒有驗證功能,可以顯示提示和回應。 在儀表板終端機按 Ctrl+C 即可停止;這並不會卸載你的遠端訓練工作階段。
清理資源
當迴圈結束時,流程會嘗試關閉其訓練階段。 請檢查是否有清理警告;僅有顯示的 Session closed 訊息並不能保證遠端運算已經被釋放。
使用錄製的會話 ID 和 範例會話管理指南 來檢查你的會話。 如果它仍然有效,保留必要的檢查點,並只卸載你所擁有的工作階段。
保留你的設定、指標和檢查站參照,以便復原。 刪除本地檔案並不會釋放遠端運算。 這個範本不會建立推論部署。
試試其他食譜吧
完成這個快速入門後,可以嘗試 微調範例存放庫裡的其他範例。 互動式訓練手冊包含監督式微調、偏好優化、蒸餾及其他強化學習任務的範例。
請依照每個配方的設定和資料集說明進行操作。 在開始下一次運行前,先確認模型的使用權限和核准的預算。