開始使用 Microsoft Foundry 的互動式訓練(預覽)

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 和 範例會話管理指南 來檢查你的會話。 如果它仍然有效,保留必要的檢查點,並只卸載你所擁有的工作階段。

保留你的設定、指標和檢查站參照,以便復原。 刪除本地檔案並不會釋放遠端運算。 這個範本不會建立推論部署。

試試其他食譜吧

完成這個快速入門後,可以嘗試 微調範例存放庫裡的其他範例。 互動式訓練手冊包含監督式微調、偏好優化、蒸餾及其他強化學習任務的範例。

請依照每個配方的設定和資料集說明進行操作。 在開始下一次運行前,先確認模型的使用權限和核准的預算。