博客 / 詳情

返回

Codex 正在推動開源 AI 模型的訓練與發佈

繼我們使用 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 將自動執行以下步驟:

  1. 驗證數據集格式
  2. 選擇合適的硬件(比如 0.6B 模型使用 t4-small)
  3. 使用並更新帶有 Trackio 監控的訓練腳本
  4. 將任務提交到 Hugging Face Jobs
  5. 返回任務 ID 和預估費用
  6. 根據請求查看訓練進度
  7. 如遇問題,協助你進行調試

模型會在 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-mediuma10g-small。訓練耗時幾個小時,成本在 $5-15 左右。

  • 對於 中等模型(3-7B 參數),需要使用 a10g-largea100-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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.