HF Skills: 让AI代理微调大模型
我们赋予了Claude通过名为Hugging Face Skills的新工具来微调语言模型的能力。
我们赋予了Claude通过名为Hugging Face Skills的新工具来微调语言模型的能力。不仅仅是编写训练脚本,而是实际将作业提交到云GPU、监控进度,并将完成的模型推送到Hugging Face Hub。本教程展示了它是如何工作的以及如何自己使用它。
Claude Code可以使用“技能”——打包的指令、脚本和领域知识来完成专业任务。hf-llm-trainer技能教会Claude关于训练的一切:选择适合您模型大小的GPU,配置Hub认证,何时使用LoRA而不是全微调,以及处理成功训练运行所需的数十个其他决策。有了这个技能,您可以告诉Claude一些事情:
在数据集open-r1/codeforces-cots上对Qwen3-0.6B进行微调
然后Claude会:
- 验证您的数据集格式
- 选择适当的硬件(对于0.6B模型使用t4-small)
- 使用并更新带有Trackio监控的训练脚本
- 将作业提交到Hugging Face Jobs
- 报告作业ID和预估成本
- 当您询问时检查进度
- 如果出现错误,帮助您调试
模型在Hugging Face GPU上进行训练,而您可以做其他事情。完成后,您的微调模型出现在Hub上,随时可用。
这并不是一个玩具演示。该技能支持用于生产的相同训练方法:监督微调、直接偏好优化和具有可验证奖励的强化学习。您可以训练从0.5B到70B参数的模型,将它们转换为GGUF以本地部署,并运行结合不同技术的多阶段管道。
1、设置和安装
在开始之前,您需要:
- 一个拥有Pro或Team计划的Hugging Face账户(Jobs需要付费计划)
- 从huggingface.co/settings/tokens获取的写访问令牌
- 一个编码代理,如Claude Code、OpenAI Codex或Google的Gemini CLI
Hugging Face Skills与Claude Code、Codex和Gemini CLI兼容。有Cursor、Windsurf和Continue的集成,正在路上。
1.1 Claude Code
1) 注册仓库作为插件市场:
/plugin marketplace add huggingface/skills
2) 要安装一个技能,请运行:
/plugin install <skill-folder>@huggingface-skills
例如:
/plugin install hf-llm-trainer@huggingface-skills
1.2 Codex
1) Codex将通过AGENTS.md文件识别技能。您可以通过以下方式验证指令是否已加载:
codex --ask-for-approval never "总结当前的指令。"
2) 更多细节请参见Codex AGENTS指南。
1.3 Gemini CLI
1) 此仓库包含gemini-extension.json以与Gemini CLI集成。
2) 本地安装:
gemini extensions install . --consent
或使用GitHub URL:
gemini extensions install https://github.com/huggingface/skills.git --consent
3) 有关更多帮助,请参阅Gemini CLI扩展文档。
1.4 连接到Hugging Face
您需要通过写访问令牌认证您的Hugging Face账户,以便作业可以创建模型仓库。
设置您的令牌:
hf auth login
# 或者
export HF_TOKEN=hf_your_write_access_token_here
通过在HF_TOKEN或Authorization: BearerHTTP头中发送您的写入令牌来配置Hugging Face MCP服务器。 对于Claude Code:claude mcp add --transport http hf-skills https://huggingface.co/mcp?bouquet=skills --header "Authorization: Bearer $HF_TOKEN"
2、第一次训练运行
让我们走一遍完整的例子。我们将对一个小模型进行微调以看到完整的流程,然后探索更高级的功能。
2.1 指示编码代理进行微调
从一个简单明确的指令开始,微调特定的模型
在open-r1/codeforces-cots数据集上对Qwen3-0.6B进行微调,以遵循指令。
编码代理分析您的请求并准备训练配置。对于0.6B模型和演示数据集,它选择t4-small—足够用于此模型大小且最便宜的选项。
open-r1/codeforces-cots数据集是代码竞赛问题和解决方案的数据集。它是微调模型以解决困难编程问题的良好数据集。2.2 提交前审查
在编码代理提交任何内容之前,您将看到配置:
我将在open-r1/codeforces-cots上对Qwen/Qwen3-0.6B进行SFT微调。
配置:
- 硬件:t4-small(约$0.75/小时)
- 预计时间:约20分钟
- 预计成本:约$0.30
- 输出:username/qwen-codeforces-cots-sft
模型将自动推送到Hub。我要提交吗?
这是您调整任何内容的机会。更改输出仓库名称,选择不同的硬件,或要求Claude修改训练参数。一旦您批准,代理就会提交作业。
例如,您可以要求代理进行测试运行:
做一个快速测试运行,使用100个例子。
2.3 跟踪进度
提交后,您将获得作业详情:
✅ 作业成功提交!
作业ID:abc123xyz
监视器:https://huggingface.co/jobs/username/abc123xyz
预计时间:约20分钟
预计成本:约$0.30
查看实时指标:https://huggingface.co/spaces/username/trackio

该技能包括Trackio集成,因此您可以实时观看训练损失减少。作业异步运行,所以您可以关闭终端并稍后回来。当您想要更新时:
我的训练作业怎么样?
然后代理获取日志并总结进度。
点击这里查看一个带有某些已完成运行的Trackio仪表板示例。
2.4 使用您的模型
当训练完成时,您的模型就在Hub上:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("username/qwen-codeforces-cots-sft")
tokenizer = AutoTokenizer.from_pretrained("username/qwen-codeforces-cots-sft")
这就是完整的循环。您用普通英语描述了您想要的内容,代理处理了GPU选择、脚本生成、作业提交、身份验证和持久化。整个过程花费大约三十美分。
3、训练方法
该技能支持三种训练方法。了解何时使用每种方法有助于您获得更好的结果。
3.1 监督微调 (SFT)
SFT是大多数项目开始的地方。您提供示范数据—输入和期望输出的例子—训练调整模型以匹配这些模式。
当您有高质量的所需行为示例时使用SFT。客户支持对话、代码生成配对、特定领域的问答—任何您可以向模型展示好样子的东西。
在我的组织/support-conversations上对Qwen3-0.6B进行3轮SFT。
代理验证数据集,选择硬件(对于7B模型使用a10g-large和LoRA),并配置带有检查点和监控的训练。
对于大于3B参数的模型,代理会自动使用LoRA(低秩适应)以减少内存需求。这使得在单个GPU上训练7B或13B模型成为可能,同时保留大部分全微调的质量。
3.2 直接偏好优化 (DPO)
DPO在偏好对上训练—其中一个是“选择”的响应,另一个是“拒绝”的响应。这使模型输出与人类偏好对齐,通常在初始SFT阶段之后。
当您有人类标注者或自动化比较的偏好注释时使用DPO。DPO直接优化首选响应,而不需要单独的奖励模型。
在我的组织/preference-data上运行DPO,以对齐我刚刚训练的SFT模型。
数据集有'chosen'和'rejected'列。
DPO对数据集格式敏感。它需要列名精确为chosen和rejected,或者一个包含输入的prompt列。代理首先验证这一点,并向您展示如何在您的数据集使用不同名称时映射列。
3.3 组相对策略优化 (GRPO)
GRPO是一种强化学习任务,在可验证的任务如解决数学问题、编写代码或任何具有程序性成功标准的任务上已被证明是有效的。
基于Qwen3-0.6B在openai/gsm8k数据集上使用GRPO训练一个数学推理模型。
模型生成响应,根据正确性接收奖励,并从结果中学习。这比SFT或DPO更复杂,但配置类似。
4、硬件和成本
代理根据您的模型大小选择硬件,但了解权衡可以帮助您做出更好的决定。
4.1 模型大小与GPU映射
对于小于1B参数的小模型,t4-small效果很好。这些模型训练速度快—预计一次完整运行花费$1-2。这对于教育或实验运行非常完美。
对于小模型(1-3B),升级到t4-medium或a10g-small。训练需要几个小时,花费$5-15。
对于中等模型(3-7B),需要a10g-large或a100-large以及LoRA。全微调无法容纳,但LoRA使这些非常可训练。预算$15-40用于生产。
对于大模型(7B+),此HF技能工作不适用。
4.2 演示与生产
在测试工作流时,从小处着手:
对Qwen-0.6B进行SFT,使用我的组织/support-conversations的100个例子进行快速测试运行。
编码代理配置最小训练—足以验证您的流水线是否有效,而无需实际成本。
对于生产,要明确:
在完整的我的组织/support-conversations上对Qwen-0.6B进行SFT。
每500步检查点,3轮,余弦学习率。
始终在投入多小时的生产作业之前运行一次演示。0.5美元的演示如果发现格式错误,可以节省30美元的失败运行。
5、数据集验证
数据集格式是训练失败最常见的原因。代理可以在您花费GPU时间之前验证数据集。
检查我的组织/conversation-data是否适用于SFT训练。
代理在CPU上快速检查(几分钱)并报告:
数据集验证对于my-org/conversation-data:
SFT: ✓ 准备就绪
找到'messages'列,具有对话格式
DPO: ✗ 不兼容
缺少'chosen'和'rejected'列
如果您需要转换数据集,代理可以向您展示如何:
我的DPO数据集使用'good_response'和'bad_response'而不是'chosen'和'rejected'。我该如何修复?
代理提供映射代码,并可以将其直接整合到您的训练脚本中。
6、监控训练
实时监控有助于及早发现问题。该技能默认配置Trackio—提交作业后,您可以在以下位置查看指标:
https://huggingface.co/spaces/username/trackio
这显示了训练损失、学习率和验证指标。健康的运行显示逐渐下降的损失。
随时向代理询问状态:
我的训练作业的状态是什么?
作业abc123xyz正在运行(已过去45分钟)
当前步骤:850/1200
训练损失:1.23(从开始的2.41下降)
学习率:1.2e-5
预计完成时间:约20分钟
如果出错,代理会帮助诊断。内存不足?代理建议减少批量大小或升级硬件。数据集错误?代理会识别不匹配。超时?代理建议更长的持续时间或更快的训练设置。
7、转换为GGUF
训练完成后,您可能希望在本地运行您的模型。GGUF格式适用于llama.cpp和依赖工具如LM Studio、Ollama等。
将我的微调模型转换为GGUF,使用Q4_K_M量化。
推送到username/my-model-gguf。
代理提交一个转换作业,合并LoRA适配器,转换为GGUF,应用量化,并推送到Hub。
然后在本地使用它:
llama-server -hf <username>/<model-name>:<quantization>
# 例如,在本地机器上运行Qwen3-1.7B-GGUF模型:
llama-server -hf unsloth/Qwen3-1.7B-GGUF:Q4_K_M
8、下一步
我们已经展示了像Claude Code、Codex或Gemini CLI这样的编码代理可以处理模型微调的完整生命周期:验证数据、选择硬件、生成脚本、提交作业、监控进度和转换输出。这将原本需要专业知识的技能变成了可以通过对话完成的事情。
一些可以尝试的事情:
- 在自己的数据集上微调一个模型
- 使用SFT→DPO构建一个对齐的模型
- 使用GRPO在数学或代码上训练一个推理模型
- 将模型转换为GGUF并在Ollama上运行
该技能是开源的。您可以扩展它,根据您的工作流程进行定制,或将其作为其他训练场景的起点。
原文链接:We Got Claude to Fine-Tune an Open Source LLM
汇智网翻译整理,转载请标明出处