作者用 HuggingChat 的 ML-intern 两天造出 7 个模型,总花费约 103 美元
The model that didn't exist, so you made it yourself
作者因 Hub 上只有 Qwen-Image 2.1 官方 9B 提示词改写器的压缩版,用 HuggingChat 的 ML-intern 模式做出可在 CPU 运行的 0.8B 学生版。
作者用七个完整项目给出从提示词结构、预算控制到基线与冒烟测试的可复用流程,并附上全部提示词和逐项算力花费。
译文尚不完整,完整内容请切换到原文。
上周,我想要一个 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 上。
提示词开头用一行话陈述想法以及我为什么想要它。然后它列出确切的具体内容:数据集、基础模型、训练脚本。任何我已经核实过的内容都放在一个字面写着“已核实的事实,不要重新推导”的标题下,这样智能体就会把预算花在工作上,而不是重新发现我已经知道的东西。对于相机角度 LoRA,这一节列出了哪个训练器刚刚添加了透明图像支持,以及哪些未解决的 GitHub issue 会让备用训练器存在风险。
提示词中有两行至关重要。第一是要求在任何训练之前先给出基线。例如,citrus 提示词写道:“同时在训练前报告基础模型在同一指标上的 zero-shot 得分,以便我们能看到提升。”没有这一条,你只会得到一个训练好的模型,却不知道它是否比你最初的状态更好。第二是附带检查项的冒烟测试。对于图像 LoRA,我要求先跑 50 个训练步,然后检查保存的权重确实发生了变化,之后才为完整运行付费。
在提示词的结尾,我会列出预期的交付成果并限制成本。我定义了模型卡中应包含的内容,并加入类似这样的指令:“将总支出限制在 12 美元,超出前先征求我的意见。”由于 ML-intern 每个任务开始时的预算都是零美元,在执行付费任务之前需要获得许可,因此这个支出上限会被严格执行。如果你不提供预算,智能体会根据项目规模提出几条路径,并询问你倾向哪一种。
You don't necessarily need all of that on your first attempt. For example, I didn't have the verified-facts section in my citrus brief and ML Intern still produced a model that more than tripled the accuracy of the Qwen3.5-2B model. Let me walk you through 6 things I built with Ml-Intern in just a couple of days.
1. 一个懂你领域的模型
通用视觉模型可以描述一片发黄的柑橘树叶。但要告诉你是螨虫问题还是缺镁,以及治疗这种植物的生物和非生物方法,就非常困难了。我使用 Claude,将从 Hub 上 Project-AgML 组织托管的三个来源合并,整理出了一个训练数据集。最终的 citrus-disease-vlm-instruct 是一个包含 3,017 张标注图像的数据集,涵盖 21 种不同的害虫、病害、营养缺乏和治疗方法。ML-intern 使用这些示例对 Qwen3.5-2B 进行了微调,并事先对基础模型做了基准测试。
在 335 张测试照片上,基础模型有 14.9% 的概率说对问题。在单个 A10G 上训练两个 epoch 后,微调后的模型达到了 52.8%。计算成本约 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 步运行。计算成本约 7.60 美元。
看看:模型 · 数据集 · Huggy 生成器应用
3. 一个会新招数的模型
- 相机角度 LoRA 是早期 Qwen-Image 模型最受社区喜爱的附加组件之一。你可以给模型一张物体的照片,然后要求从左侧 45 度的角度看它。在 Qwen-Image 2.1 模型发布几天后我检查时,还没有人做过一个,所以我让 ML-intern 来构建它。
ML-intern 用一个只花几美分的 CPU 任务,将 Google Scanned Objects 中的 1,030 个扫描家居物体各渲染 24 个角度,共 24,722 张透明图像。它随后确定了 461 个物体用于训练、40 个留作测试,以及 1,844 对训练前后对比图,均匀分布在 23 条相机指令上。
训练在一个 A100 上运行了 2,000 步,耗时约 90 分钟(约 3.75 美元)。整个项目花了大约半天和 48 个任务,其中包括因缺少软件包或路径错误而失败、需要 ML-Intern 重新提交的任务。总计算成本约 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 美元。
4. 适合你设备的模型
- 本文开头的 Pocket Rewriter 是第一个。ML-intern 首先通过 Inference Providers 用一个小型指令模型生成了 8,797 个简短的图像请求,按照我提示词中设定的混合类型:照片、海报、标志、信息图等,其中约三分之一要求引号内的精确文字,许多还使用英语以外的语言。然后 9B 教师模型在一台 A100 上重写了所有这些请求,耗时 2 小时 37 分钟(约 6.50 美元)。经过质量筛选后,选出了 1,840 个示例用于训练数据集。

0.8B 和 2B 学生模型的训练在 A10G 上分别耗时 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 步并带引导(guidance),即每张图像 100 次网络传递。我让 ML-intern 将其蒸馏到仅需 4 次传递!
这花了两次运行。第一次运行将 155,000 张训练图像缓存为潜变量(latents),把引导烘焙进模型,然后分阶段将步数从 16 减到 8 再减到 4,全部在 A100 上进行。4 步学生模型在 GenEval 和 FID 上超过了同样运行 4 步的教师模型,之后 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 LIVE
花费了多少
| 模型 | 基础模型 | 算力 |
|---|---|---|
| Citrus Doctor | Qwen3.5-2B | 1.90 美元 |
| Huggy LoRA | FLUX.2 klein base 4B | 7.60 美元 |
| Pocket rewriter(0.8B 和 2B) | Qwen3.5-0.8B 和 2B | 16.05 美元 |
| Viewpoint Orbit LoRA | Qwen-Image 2.1 | 16 美元 |
| Doodle-in LoRA | Qwen-Image 2.1 | 24.30 美元 |
| Agate 4-step(两次运行) | Agate Preview 002 | 37 美元 |
| 总计 | 约 103 美元 |
这些是每个会话所报告的 GPU 和 CPU 任务费用。
制作你自己的
ML-intern 已在 HuggingChat 上线。开启 ML-intern 模式并粘贴一段提示词。如果你想要一个起点,我的示例提示词可自由复制。从一个你希望存在的模型和一个你手头拥有的、或能够描述的数据集开始。给它一个较小的预算,要求它做基线和冒烟测试,并在提高上限之前仔细阅读返回的结果。
如果你用它做出了什么,请在 X 上分享并标记 @Gradio 和 @HuggingFace。我们很乐意看到你做出那些其他人不会想到为你构建的模型。
来源:Hugging Face Blog · huggingface.co