如何用 Hugging Face 的 ML-intern 构建并发布定制模型
The model that didn't exist, so you made it yourself
作者展示了如何在 HuggingChat 中使用 ML-intern 构建、训练、评估并发布定制模型,六个项目的算力费用合计约 USD 103。项目包括把 Qwen-Image 2.1 提示词改写模型做成可在 CPU 上运行的 0.8B 版本,以及为柑橘病害识别、角色绘制和图像编辑训练模型。作者还分享了提示词写法,包括要求先测基线、训练前进行小规模测试,并为付费任务设置预算上限。
文章以六个项目展示 ML-intern 从数据集构建到训练、评估和发布的流程,并列出约 USD 103 的总算力费用,可用于了解实际操作与成本构成。
上周,我想要一个小型版本的 提示词改写器,也就是随 Qwen-Image 2.1 一起发布的那个。官方版本是一个 9B 模型,需要约 20 GB 内存,而且要先思考数千个 token 才写出一个段落。在 Hub 上,我只找到同一个 9B 模型的压缩版本。于是我向 ML Intern描述了我的需求,第二天就得到了一个能在 CPU 上运行的 0.8B 版本。它有 99.7% 的概率返回有效输出,使用的 token 约为教师模型的四分之一。整个项目的计算成本,包括让 9B 模型为 8,797 个示例请求打标签,总计 16 美元。
接下来的几天里,我用同样的方法又做了五个模型。每个项目都始于 HuggingChat 中的一条消息,并开启 ML-intern;最终都成为 Hub 上的公开模型,评估结果也列在模型卡片中。ML-intern 会规划工作,在花费任何费用前先向我询问预算,正式运行前先做小规模测试,然后在 Hugging Face 硬件上训练、评估并发布。
我如何向 ML Intern 提示
我会把精力花在第一条消息上。我为下文分享的 citrus 模型写的第一个提示词大约有 450 个词。到了第 6 个项目时,提示词已经接近 2,000 个词,因为每个项目都让我学到一些想用于下一个项目的经验。全部七个提示词都在 GitHub 的 yvrjsharma/ml-intern-prompts 上,内容与我写下的完全一致。
提示词以一句话说明想法及我想做这件事的原因开头。接着列出具体内容:数据集、基础模型、训练脚本。我已经核实过的内容会放在一个标题为 "Verified facts, do not re-derive" 的部分下,这样智能体就能把预算用在实际工作上,而不是重新发现我已经知道的信息。对于摄像机角度 LoRA,该部分列出了刚刚添加透明图像支持的训练器,以及哪些尚未解决的 GitHub 问题让备用训练器存在风险。
提示词中有两行至关重要。第一行要求在任何训练开始前先取得基线结果。例如,citrus 提示词写道:"Also report the base model's zero-shot score on the same metric before training so we can see the gain." 没有这一步,你就只能得到一个训练好的模型,却不知道它是否比起点模型更好。第二行要求进行冒烟测试,并附带检查条件。对于图像 LoRA,我要求先进行 50 个训练步骤,然后检查保存的权重是否确实发生了变化,再为完整运行付费。
在提示词的末尾,我会列出预期交付内容并限定成本。我会说明模型卡片应包含哪些内容,并加入类似这样的指令:"Cap total spend at USD 12 and ask me before exceeding it." 由于 ML-intern 每项任务开始时的预算都是零美元,并且需要在执行付费任务前获得许可,因此这一支出上限会得到严格执行。如果不设预算,智能体会根据项目规模建议几种方案,并询问你更倾向哪一种。
你第一次尝试时不一定需要把这些都写上。例如,我在 citrus 需求说明中没有加入 verified-facts 部分,但 ML Intern 仍然做出了一个准确率超过 原来的三倍、表现优于 Qwen3.5-2B 的模型。接下来,我来带你看看短短几天里我用 Ml-Intern 构建的 6 个东西。
1. 一个了解你所在领域的模型
通用视觉模型可以描述一片发黄的柑橘叶。然而,要判断这是螨虫问题还是缺镁,以及该用何种生物或非生物防治方法来处理植株,就难得多了。我使用 Claude 整合了由 Hub 上的 Project-AgML 组织托管的三个来源,整理出一个训练数据集。由此得到的 citrus-disease-vlm-instruct 数据集包含 3,017 张经过标注的图像,涵盖 21 种不同的害虫、病害、营养缺乏情况和处理方法。ML-intern 使用这些示例对 Qwen3.5-2B 进行了微调,并确保事先对基础模型进行基准测试。
在 335 张测试照片中,基础模型正确识别问题的比例为 14.9%。在一台 A10G 上训练两个周期后,微调模型的准确率达到 52.8%。计算成本约为 USD 1.90。
2. 一个能画出你角色的模型
图像模型认识许多角色。但用 Hugging Face 品牌素材的扁平风格绘制的 Huggy,并不在其中。我让 ML-Intern 针对 FLUX.2 klein base 4B 训练一个 LoRA,使用的是 Chunte/huggy_for_training 数据集中的 84 张带说明的绘图。
该智能体每 100 步保存一个检查点,并用每个检查点绘制同一组提示词,这让选择变得很容易。到第 200 步时,Huggy 首次完全符合模型风格。从第 500 步开始,Huggy 的风格开始渗入与 Huggy 毫无关系的提示词!训练好的 LoRA 也能在蒸馏版 klein 模型上以 4 步运行。计算成本约为 USD 7.60。
查看:模型 · 数据集 · Huggy 生成器应用
3. 一个能施展新技巧的模型
- 相机角度 LoRA 是早期 Qwen-Image 模型最受欢迎的社区附加组件之一。你可以给模型一张物体图片,然后要求从左侧 45 度角观察它。我在 Qwen-Image 2.1 模型发布几天后查看时,还没有人制作这种 LoRA,于是我安排 ML-intern 来开发。
ML-intern 在一个 CPU 任务中,以 24 个角度渲染了 Google Scanned Objects 中的 1,030 件扫描家居物品,生成 24,722 张透明图像,成本仅几美分。随后,它选定 461 件物品用于训练,留出 40 件用于测试,并制作了 1,844 组前后对比训练样本,均匀分布在 23 条相机指令上。
训练在一台 A100 上运行了 2,000 步,耗时约 90 分钟(约 USD 3.75)。整个项目耗时约半天,共运行了 48 个任务,其中包括因缺少软件包或路径错误而失败、必须由 ML-Intern 重新提交的任务。总计算成本约为 USD 16。
- 涂鸦填充 LoRA 是另一个很棒的创意。上传一张带有洋红色涂鸦的照片,再添加一段简短提示词,指出物体名称。LoRA 会用该物体替换涂鸦,同时保持原有光照和构图一致。
没有现成的数据集,因此我的提示词描述了如何制作一个。从 Open Images 中选取真实照片,用 LaMa 修复模型移除一个物体,并在物体原来的位置画一道涂鸦。未修改的照片作为目标图像。ML-intern 在 CPU 沙箱中编写并测试了构建样本对的脚本,随后将其作为 GPU 任务运行,同时记录每张源照片的作者和许可信息。它构建了 6,042 对训练样本和一个包含 160 对样本的测试集,其中 40 对来自 23 个完全未纳入训练的物体类别。
训练前,它分别测量了基础模型单独运行以及搭配 Viggle turbo LoRA 时的表现,并确认批量运行编辑会生成完全相同的图像,从而降低评估成本。训练在一张 A100 上运行了 2,000 步,耗时 1 小时 38 分钟(约 4 美元);随后对 48 对测试样本上的已保存检查点进行比较,最终选定第 500 步的检查点。
搭配 Viggle turbo LoRA 并运行 6 步时,LoRA 的表现非常好。67.5% 的物体出现在涂鸦标记的位置,每次编辑耗时 4.7 秒。来自 23 个未见类别的物体,生成位置的可靠程度与其余物体相当(65.0% 对 64.2%)。整个项目耗时一天多,运行了 59 个任务。计算总成本约为 24 美元。
查看:模型 · 数据集 · Doodle-in 应用
4. 适配你的设备的模型
- 这篇文章开头提到的 Pocket Rewriter 是第一个。ML-intern 首先通过 Inference Providers,使用一个小型指令模型生成了 8,797 条简短的图像请求,内容按我的提示词设定,涵盖照片、海报、徽标、信息图等;其中约三分之一要求准确呈现引号中的文字,许多请求使用的语言也不是英语。随后,9B 教师模型在一张 A100 上用 2 小时 37 分钟(约 6.50 美元)重写了全部请求。经过质量筛选后,选出 1,840 个样本作为训练数据集。

在一台 A10G 上训练 0.8B 和 2B 学生模型分别耗时 12 分钟和 18 分钟(两者合计 0.75 美元)。0.8B 模型还以 812 MB 的 GGUF 文件形式发布,可在 CPU 上运行。整个项目耗时约 11 小时,运行了 24 个任务。计算总成本约为 16 美元。
查看:Pocket rewriter 0.8B Student · 2B Student · 数据集 · Pocket Studio 应用 · 在 Rewriter Arena 中比较教师模型与学生模型
- Agate-Preview-002-4step 是第二个。Logolabs 的 Agate Preview 002 是一个拥有 260M 参数的文生图模型,小到足以在浏览器中运行,但生成每张图像需要在引导下运行 50 步,也就是进行 100 次网络前向计算。我让 ML-intern 将它蒸馏到只需 4 次计算!
整个过程分两次运行。第一次将 155,000 张训练图像缓存为潜变量,把引导信息融入模型,然后在 A100 上分阶段将步数从 16 减到 8,再减到 4。这个 4 步学生模型在 GenEval 和 FID 上的表现,优于教师模型以相同步数运行的结果;之后,ML-intern 将它导出为 ONNX 格式,以便在浏览器中运行。此次运行耗时约 13 小时,花费 22 美元。
我又让 ML-Intern 进行第二次训练,以进一步提升 4 步学生模型。它随后用教师模型以 16 步生成了 24,000 对图像样本,并用这些样本对 4 步学生模型进行约一小时的微调。GenEval 分数从 0.509 提升至 0.536;教师模型运行 50 步时为 0.563,而学生模型只需 4 步(计算量为四分之一)。ML-intern 重新导出了浏览器版本。第二次运行耗时约 8 小时。两次运行的计算总成本约为 37 美元。
查看:Agate 4-step 模型 · 数据集 · 在浏览器中运行 Agate · Agate 4-step 实时版
费用
| 模型 | 基础模型 | 算力 |
|---|---|---|
| Citrus Doctor | Qwen3.5-2B | USD 1.90 |
| Huggy LoRA | FLUX.2 klein base 4B | USD 7.60 |
| Pocket rewriter(0.8B 和 2B) | Qwen3.5-0.8B 和 2B | USD 16.05 |
| Viewpoint Orbit LoRA | Qwen-Image 2.1 | USD 16 |
| Doodle-in LoRA | Qwen-Image 2.1 | USD 24.30 |
| Agate 4-step(运行两次) | Agate Preview 002 | USD 37 |
| 总计 | 约 USD 103 |
这是各次会话所产生的 GPU 和 CPU 作业费用。
创建你自己的作品
ML-intern 已上线 HuggingChat。开启 ML-intern 模式并粘贴提示词。如果你想找个起点,可以免费复制我的示例提示词。从一个你希望存在的模型,以及你已有或能够描述的数据集开始。给它一笔小预算,让它提供一个基线和冒烟测试;提高预算上限前,先阅读返回的内容。
如果你用它创作了作品,请分享到 X,并标记 @Gradio 和 @HuggingFace。我们很想看看你创作的、别人想不到为你打造的模型。
来源:Hugging Face Blog · huggingface.co