
繼我們使用 Claude Code 訓練開源模型的項目之後,現在我們更進一步,將 Codex 引入這一流程。這裏的重點不是“Codex 自己開源模型”,而是讓 Codex 作為編碼代理,參與並自動化開源模型的訓練、評估與發佈全流程。為此,我們為 Codex 接入了 Hugging Face Skills 倉庫,該倉庫包含了許多與機器學習和 AI 相關的“技能”,比如模型訓練與評估等任務。通過 HF Skills,Codex 這樣的編碼代理可以實現:
- 對語言模型進行微調和強化學習(RL)對齊訓練
- 查看、解釋並基於 Trackio 的實時訓練指標做出操作
- 評估模型檢查點並根據評估結果作出決策
- 生成實驗報告
- 將模型導出為 GGUF 格式,方便本地部署
- 將模型發佈到 Hugging Face Hub
本教程將更深入地介紹它的工作原理,並手把手教你如何使用。我們開始吧!
Codex 使用
AGENTS.md文件來完成特定任務,而 Claude Code 使用的是 “Skills”。幸運的是,“HF Skills” 兼容這兩種方式,並可與 Claude Code、Codex 或 Gemini CLI 等主要編碼代理配合使用。
例如,使用 HF Skills,你可以對 Codex 下達如下指令:
Fine-tune Qwen3-0.6B on the dataset open-r1/codeforces-cots
Codex 將自動執行以下步驟:
- 驗證數據集格式
- 選擇合適的硬件(比如 0.6B 模型使用 t4-small)
- 使用並更新帶有 Trackio 監控的訓練腳本
- 將任務提交到 Hugging Face Jobs
- 返回任務 ID 和預估費用
- 根據請求查看訓練進度
- 如遇問題,協助你進行調試
模型會在 Hugging Face 提供的 GPU 上訓練,你可以同時做其他事情。訓練完成後,你的微調模型將自動發佈到 Hub,可立即使用。
這不僅僅是一個演示工具。這套擴展系統支持生產級的訓練方法,有監督微調(SFT)、直接偏好優化(DPO)和帶有可驗證獎勵的強化學習(RL)。你可以訓練 0.5B 到 7B 參數規模的模型,將它們轉換為 GGUF 格式便於本地運行,還可以通過多階段流程結合不同方法。
目標:端到端的機器學習實驗
我們在 Claude Code 教程中探索過單條指令的方式。而現在,我們可以讓 OpenAI Codex 實現完整的端到端機器學習實驗。Codex 能夠:
- 實時監控進度
- 評估模型效果
- 維護最新訓練報告
工程師可以將實驗任務交由 Codex 自動執行,而自己只需查看最終報告即可。同時,Codex 還能根據訓練與評估結果自動做出更多決策。
我們開始動手吧!
環境準備與安裝
在開始之前,你需要:
- 一個 Hugging Face 賬户,並開通 Pro 或 Team / Enterprise 付費計劃(Jobs 需付費)
- 一個擁有寫權限的 token(在 huggingface.co/settings/tokens 生成)
- 安裝並配置好 Codex
安裝 Codex
Codex 是 OpenAI 推出的 AI 編碼代理,包含在 ChatGPT Plus、Pro、Business、Edu 和 Enterprise 等計劃中。它可以將 AI 能力直接融入你的開發流程。
參見 Codex 官方文檔 獲取安裝與配置説明。
安裝 Hugging Face Skills
Hugging Face Skills 倉庫中包含 AGENTS.md 文件,Codex 會自動識別並使用它。
克隆倉庫:
git clone https://github.com/huggingface/skills.git
cd skills
Codex 會自動檢測到 AGENTS.md 文件,並加載相應的技能。你可以通過以下指令確認技能已加載:
codex --ask-for-approval never "Summarize the current instructions."
詳細信息請參考 Codex AGENTS 指南。
連接 Hugging Face
使用以下命令並輸入寫權限 token 來進行認證:
hf auth login
Codex 支持 MCP(模型上下文協議),你可以在配置文件中添加 Hugging Face 的 MCP 服務,提升與 Hub 的集成體驗。將以下內容添加到 ~/.codex/config.toml:
[mcp_servers.huggingface]
command = "npx"
args = ["-y", "mcp-remote", "https://huggingface.co/mcp?login"]
你也可以在 Settings 頁面 中配置 MCP 服務。
之後啓動 Codex,會跳轉到 Hugging Face MCP 的認證頁面。
你的第一個 AI 實驗
我們來看一個完整示例。使用 open-r1/codeforces-cots 數據集,配合 openai_humaneval 基準測試,微調一個小模型來提升其代碼解題能力。
open-r1/codeforces-cots是一個包含 Codeforces 編程題及其解答的數據集,非常適合用於模型的指令微調,幫助模型解決複雜編程問題。
向 Codex 發起完整的微調實驗請求
在你的項目目錄下啓動 Codex,並輸入如下指令:
Start a new fine-tuning experiment to improve code solving abilities on using SFT.
- Maintain a report for the experiment.
- Evaluate models with the openai_humaneval benchmark
- Use the open-r1/codeforces-cots dataset
相比 Claude Code 教程中的單條指令方式,這裏我們加了更多細節和步驟。
你也可以嘗試自己不斷迭代這個實驗,提出一些更開放性的問題,比如:“哪個模型最擅長代碼解題?”或“哪個數據集最適合訓練代碼解題能力?”
Codex 會分析你的請求,並生成對應的訓練配置。例如,對於一個 0.6B 參數規模的模型和一個演示數據集,它會選擇 t4-small,這是適合該模型大小的最低成本 GPU 選項。Codex 會在 training_reports/<model>-<dataset>-<method>.md 路徑下創建一份新的實驗報告,並在實驗過程中持續更新每次運行的相關信息。
訓練報告示例
# 基礎模型與數據集
[Base Model](https://huggingface.co/Qwen/Qwen3-0.6B)
[Dataset](https://huggingface.co/datasets/open-r1/codeforces-cots)
---
# `sft-a10g` - `TBD` - `進行中`
## 訓練參數
| 參數 | 值 |
|-----------|-------|
| 方法 | SFT(TRL)|
| 模型 | `Qwen/Qwen3-0.6B` |
| 數據集 | `open-r1/codeforces-cots`(訓練集,5% 驗證劃分)|
| 最大長度 | 2048 |
| 訓練輪數 | 1(首次檢查後延長到3)|
| 每個設備的 batch 大小 | 1 |
| 梯度累積步數 | 8 |
| 有效 batch | 8 |
| 學習率 | 5e-5 |
| 權重衰減 | 0.01 |
| 預熱比例 | 0.03 |
| 評估策略 | 每 500 步 |
| 保存策略 | 每 500 步,`hub_strategy=every_save`,最多保存2個 |
| 精度 | bf16 |
| 啓用梯度檢查點 | true |
| 是否打包樣本 | false |
| Hub 模型倉庫 | `burtenshaw/qwen3-codeforces-cots-sft` |
| 使用硬件 | a10g-small |
| 超時時間 | 2 小時 |
| Trackio 項目 | `qwen3-codeforces-cots`,運行名稱:`sft-a10g` |
## 運行狀態
進行中(等待提交)
## 運行日誌
尚未提交(提交後會補充鏈接)
## Trackio 日誌
等待中(任務開始後補充鏈接)
## 模型評估
等待中(將使用 lighteval 對基礎模型和各檢查點進行 `openai_humaneval` 評估)
---
# 實驗評估結果
| 運行標題 | 基準測試 | 得分 | 評估任務鏈接 | 模型鏈接 |
|-----------|-----------|-------|---------------------|------------|
| `sft-a10g` - `TBD` - `進行中` | HumanEval pass@1 | 待定 | 待定 | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)
訓練報告實時更新
隨着實驗的推進,Codex 會不斷將最新的信息和每次運行的結果寫入報告中。你可以在 training_reports/<model>-<dataset>-<method>.md 文件中查看這些更新。
例如,當實驗進行中時,Codex 會將報告標題更新為如下格式:
# `sft-a10g` - `TBD` - `進行中`
它還會添加運行日誌和 Trackio 實時監控的鏈接:
## Run Logs
[Run Logs](https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3)
## Trackio Logs
[Trackio Logs](https://burtenshaw-trackio.hf.space/?project=qwen3-codeforces-sft&metrics=train/loss&runs=sft-qwen3-codeforces-20251209-175806&sidebar=hidden&navbar=hidden)
評估結果也會更新到實驗評估表中:
# Experiment Evaluations
| Run Title | Benchmark | Score | Evaluation Job Link | Model Link |
|-----------|-----------|-------|---------------------|------------|
| `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.304 | [Logs](https://huggingface.co/jobs/burtenshaw/69382863c67c9f186cfe1ae7) | [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B) |
| `qwen3-0.6b-lora-v1` - `2025-12-09 13:47:47 UTC` - `In Progress` | HumanEval pass@1 | TBD | TBD | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)
數據集驗證
數據集格式錯誤是訓練失敗最常見的原因之一,也常是訓練腳本中工作量最大的部分之一。Codex 會在任務開始前驗證數據集格式,並根據需要配置 TRL 訓練參數或預處理數據。
通常,Codex 會在訓練前驗證數據集,你也可以手動讓它提前檢查:
Check if open-r1/codeforces-cots works for SFT training.
Codex 會在 CPU 上快速檢查(成本非常低),並返回如下結果:
Dataset validation for my-org/conversation-data:
SFT: ✓ READY
Found 'messages' column with conversation format
DPO: ✗ INCOMPATIBLE
Missing 'chosen' and 'rejected' columns
如果你的數據集需要轉換格式,Codex 可以在訓練開始前對數據集進行預處理:
Preprocess the dataset open-r1/codeforces-cots to use 'good_response' and 'bad_response' instead of 'chosen' and 'rejected'.
Codex 會自動預處理數據並更新訓練腳本中的配置。
提交前確認
在 Codex 提交訓練任務前,它會向你確認配置信息:
I'll fine-tune Qwen/Qwen3-0.6B on open-r1/codeforces-cots using SFT.
Configuration:
- Hardware: t4-small (~$0.75/hour)
- Estimated time: ~20 minutes
- Estimated cost: ~$0.30
- Output: username/qwen-codeforces-cots-sft
The model will be pushed to Hub automatically. Should I submit?
此時你可以修改任何內容,比如更改輸出倉庫名稱、選擇其他硬件、調整訓練參數等。一旦確認無誤,Codex 就會提交任務。
你也可以先進行小規模測試:
Do a quick test run on 100 examples.
使用訓練報告追蹤進度
提交任務後,你可以通過訓練報告追蹤進度,並獲取運行日誌和 Trackio 日誌的鏈接。你也可以讓 Codex 獲取日誌、彙總訓練進展,並更新訓練報告。隨着 Codex 執行任務,它會持續將最新信息寫入訓練報告中。
Codex 示例響應
─ Worked for 10m 38s ─────────────────────────────────────────────────────────────────────────────────────────────────────────
• Training and eval jobs are live. Key details:
- SFT launched on open-r1/codeforces-cots (solutions_py_decontaminated, 98/2 split) with LoRA on Qwen/Qwen3-0.6B, a10g-
large, bf16, max_steps=1000, batch=1, grad_accum=8, lr=2e-5, save/eval every 200 steps, hub push burtenshaw/qwen3-
codeforces-cots-sft. Job: https://huggingface.co/jobs/burtenshaw/6938272ec67c9f186cfe1ae3 (Trackio project codeforces-
cots-sft, run qwen3-0.6b-lora-v1).
- Baseline lighteval (HumanEval) on the base model queued on a10g-large. Job: https://huggingface.co/jobs/
- Experiment report updated with current runs and links: training_reports/qwen3-codeforces-cots-sft.md.
To evaluate the fine-tuned checkpoints once the SFT job pushes to the hub, reuse the same lighteval script:
hf jobs uv run --flavor a10g-large --timeout 1h --secrets HF_TOKEN -e MODEL_ID=burtenshaw/qwen3-codeforces-cots-sft -e
RESULTS_ORG=burtenshaw -d /tmp/lighteval_humaneval.py
(or swap MODEL_ID for a specific checkpoint path). This will log to the same results directory on the hub.
1. Monitor the two running jobs; I can fetch logs or metrics on request.
2. After a checkpoint lands, trigger the lighteval run above to compare against the baseline; then we can fill in pass@1 in the report.
Trackio 會通過自動運行評估任務,幫助你監控訓練和評估的得分,並選擇表現最好的模型檢查點(checkpoint)。如果你想了解訓練任務的狀態,可以讓 Codex 獲取日誌,並以表格形式總結訓練進展。
例如,你可以直接詢問:
Are models outperforming the base model?
Codex 會返回類似的表格總結:
| Model | Benchmark | Score | Evaluation Job Link | Model Link |
|-----------|-----------|-------|---------------------|------------|
| `qwen3-0.6b-lora-v1` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.342 | [Logs](<link>) | [burtenshaw/qwen3-codeforces-cots-sft](https://huggingface.co/burtenshaw/qwen3-codeforces-cots-sft)
| `base-humaneval-a10g` - `2025-12-09 13:47:47 UTC` - `Completed` | HumanEval pass@1 | 0.306 | [Logs](<link>) | [Qwen/Qwen3-0.6B](https://huggingface.co/Qwen/Qwen3-0.6B)
通過這種方式,你可以清楚地看到微調後的模型是否優於基礎模型。
你也可以實時查看訓練損失變化:

Codex 會自動獲取日誌並更新進度。
點擊此處查看 Trackio 儀表盤示例
使用你的模型
訓練完成後,模型會被上傳到 Hugging Face Hub:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("burtenshaw/qwen3-codeforces-cots-sft")
tokenizer = AutoTokenizer.from_pretrained("burtenshaw/qwen3-codeforces-cots-sft")
Transformers 是一個非常優秀的標準工具,我們也可以輕鬆地將訓練好的模型轉換為 GGUF 格式,用於本地部署。這是因為訓練技能中已經包含了將模型轉換為 GGUF 的説明和支持腳本。
Convert my fine-tuned model to GGUF with Q4_K_M quantization.
Push to username/my-model-gguf.
Codex 會自動將模型轉換為 GGUF 格式,應用指定的量化策略,並將其推送到 Hugging Face Hub。如果你使用了 LoRA 適配器進行訓練,它還會將這些適配器合併回基礎模型中。
在本地運行模型:
llama-server -hf <username>/<model-name>:<quantization>
# For example, to run the Qwen3-1.7B-GGUF model on your local machine:
llama-server -hf unsloth/Qwen3-1.7B-GGUF:Q4_K_M
硬件與成本
Codex 會根據你的模型規模自動選擇合適的硬件,但瞭解背後的取捨邏輯,有助於你做出更明智的決策。你可以參考這個 硬件指南 來了解各種硬件的選擇和成本,不過 Codex 會自動幫你選擇最優配置。
-
對於 小於 10 億參數的微型模型,
t4-small是一個很好的選擇。這類模型訓練速度快,成本大約在 $1-2,非常適合教學或實驗用途。 -
對於 小模型(1-3B 參數),推薦使用
t4-medium或a10g-small。訓練耗時幾個小時,成本在 $5-15 左右。 -
對於 中等模型(3-7B 參數),需要使用
a10g-large或a100-large,同時配合 LoRA 微調。完整微調不太可行,但藉助 LoRA 技術仍然可以高效訓練。生產級別訓練預算約為 $15-40。 -
對於 大型模型(超過 7B),目前 HF Skills Jobs 暫不支持。但請保持關注,我們正在開發支持大模型的能力!
接下來可以做什麼?
我們已經展示了 Codex 如何處理模型微調的完整生命週期,驗證數據、選擇硬件、生成訓練腳本、提交任務、監控進度,以及轉換輸出。
你可以嘗試以下操作:
- 使用你自己的數據集微調一個模型
- 進行更大規模的實驗,使用多個模型和數據集,並讓代理自動生成訓練報告
- 使用 GRPO 方法在數學或代碼任務上訓練一個推理能力模型,並生成完整的實驗報告
這個 Codex 擴展是開源的,你可以根據自己的流程進行擴展和定製,或者將其作為其他訓練場景的起點。
資源鏈接
Codex
- Codex 官方文檔 ,OpenAI 的 AI 編碼代理
- Codex 快速上手
- Codex AGENTS 指南 ,使用 AGENTS.md 文件説明
Hugging Face Skills
- SKILL.md ,技能文檔
- 訓練方法指南 ,介紹 SFT、DPO、GRPO 等方法
- 硬件指南
- TRL 文檔 ,Hugging Face 的訓練庫
- HF Jobs 文檔 ,雲端訓練任務指南
- Trackio 文檔 ,實時訓練監控工具
英文原文: https://huggingface.co/blog/hf-skills-training-codex
原文作者: ben burtenshaw, shaun smith
譯者: Luke, Hugging Face Fellow