如何在 Hugging Face Jobs 上训练与微调 LLM 模型
解决本地缺乏高性能 GPU 的痛点:通过 Hugging Face Jobs 托管基础设施,配合 TRL 框架实现从监督微调(SFT)、偏好对齐(DPO)到强化学习(GRPO)的全流程云端训练,并支持一键导出 GGUF 格式。
为什么需要这个技能
在本地配置深度学习环境(CUDA、驱动、显存管理)极其繁琐,且昂贵的 A100/H100 显卡难以获取。通过该技能,你可以直接在云端调用托管 GPU,将训练脚本以 inline 形式提交,训练结果自动同步至 Hugging Face Hub,极大降低了 LLM 微调的门槛。
适用场景
- 云端微调:没有本地 GPU,但需要对 Qwen、Llama 等模型进行指令微调。
- 对齐训练:使用 DPO(直接偏好优化)或 GRPO 让模型输出更符合人类偏好。
- 快速验证:通过
t4-small等低成本实例快速验证数据集格式。 - 本地部署准备:训练完成后将模型转换为 GGUF 格式,以便在 Ollama 或 LM Studio 中运行。
核心工作流
1. 数据集预校验(关键步骤)
由于 50% 的训练失败源于格式错误,在启动 GPU 任务前,必须使用 dataset_inspector.py 在 CPU 环境下验证数据集是否符合 SFT(messages 格式)或 DPO(chosen/rejected 格式)的要求。
2. 配置训练脚本
采用 UV 脚本(PEP 723)定义依赖。核心配置必须包含:
push_to_hub=True:因为云端环境是临时性的,不上传至 Hub 结果将全部丢失。secrets={"HF_TOKEN": "$HF_TOKEN"}:提供写入权限。timeout:必须将默认的 30 分钟调高至 2-6 小时。
3. 提交异步任务
使用 hf_jobs() MCP 工具提交任务。不要在 AI 对话中循环轮询状态,而是获取 Job ID 和监控 URL,由用户在训练结束后请求检查日志。
4. 硬件选择参考
- <1B 模型:
t4-small(Demo 级别) - 1B-7B 模型:
a10g-small或a10g-large(生产级别) - 7B+ 模型:
a100-large并配合 LoRA/PEFT 降低显存占用。
# 典型 SFT 提交示例
hf_jobs("uv", {
"script": """
# /// script
# dependencies = ["trl>=0.12.0", "peft>=0.7.0", "trackio"]
# ///
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
trainer = SFTTrainer(
model="Qwen/Qwen2.5-0.5B",
train_dataset=load_dataset("trl-lib/Capybara", split="train"),
peft_config=LoraConfig(r=16, lora_alpha=32),
args=SFTConfig(
output_dir="my-model",
push_to_hub=True,
hub_model_id="username/my-model",
report_to="trackio",
)
)
trainer.train()
trainer.push_to_hub()
""",
"flavor": "a10g-large",
"timeout": "2h",
"secrets": {"HF_TOKEN": "$HF_TOKEN"}
})
下载和安装
下载 hugging-face-model-trainer 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐