SuperAPI AI 工具集

hugging-face-model-trainer

智能体与模型

查看项目

更新于 10-16 02:22

技能介绍

用途

本技能面向需要在云端 GPU 上训练或微调语言模型、视觉模型的场景,无需自建本地训练基础设施。它基于 Hugging Face Jobs 基础设施运行训练任务,并覆盖 TRL(Transformer Reinforcement Learning)系列训练方法,包括 SFT、DPO、GRPO 等。

适用情形包括:在云 GPU 上微调语言模型;使用 TRL 方法训练;在 Hugging Face Jobs 上运行训练作业;将训练后的模型转换为 GGUF 以便本地部署(Ollama、LM Studio、llama.cpp);确保训练模型永久保存到 Hub;使用带有优化默认值的现代工作流。

主要能力

  • 支持 TRL 训练方法:SFT、DPO、GRPO 等。
  • 支持在 Hugging Face Jobs 基础设施上运行训练作业。
  • 支持将训练模型转换为 GGUF,用于本地部署。
  • 支持将训练结果推送并永久保存到 Hugging Face Hub。
  • 提供生产就绪的示例训练脚本:scripts/train_sft_example.py(完整 SFT 训练,含 Trackio、LoRA、检查点)、scripts/train_dpo_example.py(偏好学习 DPO 训练)、scripts/train_grpo_example.py(在线 RL 的 GRPO 训练)。这些脚本演示了正确的 Hub 保存、Trackio 集成、检查点管理和优化参数,可将其内容内联传给 hf_jobs() 或作为自定义脚本模板。

何时使用 Unsloth

在以下情况应使用 Unsloth(references/unsloth.md)替代标准 TRL:GPU 显存有限(Unsloth 显存占用约减少 60%);对速度有要求(Unsloth 约快 2 倍);训练大型模型(>13B,显存效率关键);训练视觉语言模型(VLM,Unsloth 提供 FastVisionModel 支持)。完整 Unsloth 文档见 references/unsloth.md,生产就绪训练脚本见 scripts/unsloth_sft_example.py。

使用方式与前置条件

开始任何训练作业前需核对以下清单:

账号与认证:需要 Hugging Face 账号并具备 Pro、Team 或 Enterprise 计划(Jobs 需要付费计划);需已登录认证,可用 hf_whoami() 检查;需要 HF_TOKEN 用于 Hub 推送——这一点至关重要,因为训练环境是临时的,必须推送到 Hub,否则所有训练结果都会丢失;Token 必须具有写权限;必须在作业配置中传入 secrets={"HF_TOKEN": "$HF_TOKEN"} 以使 Token 可用($HF_TOKEN 语法引用实际 Token 值)。

数据集要求:数据集必须存在于 Hub 上,或可通过 datasets.load_dataset() 加载;格式必须与训练方法匹配(SFT:"messages"/text/prompt-completion;DPO:chosen/rejected;GRPO:仅 prompt);在 GPU 训练前务必校验未知数据集,以防格式失败;数据规模需与硬件匹配(演示:t4-small 上 50-100 条;生产:a10g-large/a100-large 上 1K-10K+ 条)。

关键设置:超时必须超过预期训练时间——默认 30 分钟对大多数训练来说太短,建议最少 1-2 小时,超时会导致作业失败并丢失全部进度;必须启用 Hub 推送——配置为 push_to_hub=True、hub_model_id="username/model-name",作业中设置 secrets={"HF_TOKEN": "$HF_TOKEN"}。

执行前应先阅读详细指南,其中保留了完整流程与参考资料,其安全、前置条件和校验要求视为强制。聚焦任务可加载相关章节,端到端任务应完整阅读指南。

适用场景

适合希望在无本地基础设施的情况下利用云 GPU 完成模型微调、偏好学习或在线强化学习,并将成果保存到 Hub 或转换为 GGUF 供本地推理使用的用户。

限制

仅当任务明确匹配其上游产品或 API 范围时使用本技能。在做出更改前,应依据当前官方文档核实命令、API 行为、定价、配额、凭据和部署影响。不得将生成的示例视为环境特定测试、安全审查或对破坏性/高成本操作的用户批准的替代。