用 Unsloth 与 Hugging Face Jobs 免费微调小模型
Train AI models with Unsloth and HF Mirror Jobs for FREE
Hugging Face 发布教程,介绍如何通过 Claude Code、Codex 等编码智能体结合 Unsloth 与 Hugging Face Jobs 微调小模型(示例为 LiquidAI/LFM2.5-1.2B-Instruct)。
原文给出从安装 Skill 到提交 HF Jobs 的完整命令与分档价格,读者可照此复现小模型微调流程。
本篇博客文章介绍如何通过 Claude Code 和 Codex 等编码代理,使用 Unsloth 和 HF Mirror Jobs 进行快速 LLM 微调(具体为 LiquidAI/LFM2.5-1.2B-Instruct)。与标准方法相比,Unsloth 提供约 2 倍更快的训练速度和约 60% 更低的显存占用,因此训练小模型的成本可能只需几美元。
为什么要用小模型?像 LFM2.5-1.2B-Instruct 这样的小语言模型是微调的理想选择。它们训练成本低、迭代速度快,并且在特定任务上越来越能与大得多的模型相媲美。LFM2.5-1.2B-Instruct 运行时内存占用不到 1GB,并针对端侧部署进行了优化,因此你微调出的模型可以部署在 CPU、手机和笔记本电脑上。
你需要准备
我们正在赠送免费额度,用于在 HF Mirror Jobs 上微调模型。加入 Unsloth Jobs Explorers 组织,即可领取免费额度以及一个月的 Pro 订阅。
- 一个 HF Mirror 账户(HF Jobs 必需)
- 账单设置(用于验证,你可以在账单页面监控用量并管理账单)。
- 一个具有写入权限的 HF Mirror token
- (可选)一个编码代理(
Open Code、Claude Code或Codex)
运行作业
如果你想使用 HF Jobs 和 Unsloth 训练模型,只需使用 hf jobs CLI 提交作业即可。
首先,你需要安装 hf CLI。可以通过运行以下命令来完成:
# mac or linux
curl -LsSf https://hf.co/cli/install.sh | bash
接下来,你可以运行以下命令来提交作业:
hf jobs uv run https://hf-mirror.com/datasets/unsloth/jobs/resolve/main/sft-lfm2.5.py \
--flavor a10g-small \
--secrets HF_TOKEN \
--timeout 4h \
--dataset mlabonne/FineTome-100k \
--num-epochs 1 \
--eval-split 0.2 \
--output-repo your-username/lfm-finetuned
查看训练脚本和 HF Mirror Jobs 文档了解更多详情。
安装 Skill
HF Mirror 模型训练 skill 通过简单的提示降低了训练模型的门槛。首先,使用你的编码代理安装该 skill。
Claude Code
Claude Code 通过其插件系统发现 skill,因此我们需要先安装 HF Mirror skills。操作方法:
- 添加 marketplace:
/plugin marketplace add huggingface/skills
- 在
Discover标签页中浏览可用的 skill:
/plugin
- 安装模型训练器 skill:
/plugin install hugging-face-model-trainer@huggingface-skills
更多详情,请参阅关于将 hub 与 skills 一起使用的文档或 Claude Code 的Skills 文档。
Codex
Codex 通过 AGENTS.md 文件和 .agents/skills/ 目录发现 skill。
使用 $skill-installer 安装单个 skill:
$skill-installer install https://github.com/huggingface/skills/tree/main/skills/huggingface-llm-trainer
更多详情,请参阅Codex Skills 文档和 AGENTS.md 指南。
其他方式
一种通用的安装方法就是克隆 skills 仓库,并将 skill 复制到你的代理的 skills 目录中。
git clone https://github.com/huggingface/skills.git
mkdir -p ~/.agents/skills && cp -R skills/skills/hugging-face-model-trainer ~/.agents/skills/
快速开始
skill 安装完成后,让你的编码代理训练一个模型:
Train LiquidAI/LFM2.5-1.2B-Instruct on mlabonne/FineTome-100k using Unsloth on HF Jobs
代理将根据 skill 中的示例生成训练脚本,将训练提交到 HF Jobs,并通过 Trackio 提供监控链接。
工作原理
训练作业运行在 HF Mirror Jobs 上,即完全托管的云端 GPU。代理会:
- 生成一个带内联依赖项的 UV 脚本
- 通过
hfCLI 将其提交到 HF Jobs - 报告作业 ID 和监控 URL
- 将训练好的模型推送到你的 HF Mirror Hub 仓库
训练脚本示例
该 skill 会根据 skill 中的示例生成如下脚本。
# /// script
# dependencies = ["unsloth", "trl>=0.12.0", "datasets", "trackio"]
# ///
from unsloth import FastLanguageModel
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
model, tokenizer = FastLanguageModel.from_pretrained(
"LiquidAI/LFM2.5-1.2B-Instruct",
load_in_4bit=True,
max_seq_length=2048,
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
lora_alpha=32,
lora_dropout=0,
target_modules=[
"q_proj",
"k_proj",
"v_proj",
"out_proj",
"in_proj",
"w1",
"w2",
"w3",
],
)
dataset = load_dataset("trl-lib/Capybara", split="train")
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset,
args=SFTConfig(
output_dir="./output",
push_to_hub=True,
hub_model_id="username/my-model",
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
num_train_epochs=1,
learning_rate=2e-4,
report_to="trackio",
),
)
trainer.train()
trainer.push_to_hub()
| 模型规模 | 推荐 GPU | 约每小时成本 |
|---|---|---|
| <1B 参数 | t4-small |
~$0.40 |
| 1-3B 参数 | t4-medium |
~$0.60 |
| 3-7B 参数 | a10g-small |
~$1.00 |
| 7-13B 参数 | a10g-large |
~$3.00 |
有关 HF Mirror Spaces 定价的完整概览,请查看此处的指南。
使用编码智能体的技巧
- 明确指定要使用的模型和数据集,并包含 Hub ID(例如
Qwen/Qwen2.5-0.5B和trl-lib/Capybara)。智能体会搜索并验证这些组合。 - 如果希望使用 Unsloth,请明确提及。否则,智能体会根据模型和预算选择框架。
- 在启动大型任务前,先询问成本估算。
- 申请 Trackio 监控以获取实时损失曲线。
- 提交后让智能体检查日志以查看任务状态。
资源
来源:Hugging Face Blog · hf-mirror.com