如何在 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-smalla10g-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

你可能还需要

暂无推荐