模型不存在?那就让 AI Agent 给你造一个
上周,我需要一个 Qwen-Image 2.1 自带 prompt rewriter 的小版本。官方版是 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 写 prompt 的
第一条消息是我花费精力的地方。我下方分享的 citrus 模型的第一版 prompt 大约 450 词。到了第 6 个项目时,prompt 已接近 2,000 词,因为每个项目都教会了我一些希望带入下一个项目的经验。全部 7 份 prompt 原样保存在 GitHub 的 yvrjsharma/ml-intern-prompts 仓库。
Prompt 从一行理念和理由开始,随后明确具体组件:数据集、基础模型、训练脚本。我已经核实过的信息,会放在一个标题写着“已核实事实,不要重新推导”的部分下,让 Agent 把预算花在干活上,而不是重新发现我已知的事实。比如在做相机角度 LoRA 时,那部分列出了哪个 trainer 刚刚添加了透明图像支持,以及哪些开放的 GitHub issue 让备用 trainer 变得高风险。
提示词中有两行至关重要。第一行要求在训练前先评估基线。例如,柑橘提示词中写道:“请同时报告基础模型在相同指标上的零样本得分,以便观察提升幅度。”没有这一步,你得到的只是一个训练后的模型,却无从判断它是否比初始版本更强。第二行是带检查的冒烟测试。针对图像 LoRA,我要求先跑 50 步训练,并检查保存的权重确实发生了变化,然后才支付全量训练的费用。
在提示词末尾,我列出了预期交付物并限制了成本。我定义了模型卡片应包含的内容,并加入类似这样的指令:“总支出上限为 12 美元,超出前需征求我同意。”由于 ML-intern 启动每个任务时预算均为零,执行付费任务前需获得许可,因此这一支出限制得到了严格执行。如果未设定预算,代理会根据项目规模提供几种路径选项,并询问你倾向哪一种。
首次尝试时,你未必需要所有这些内容。例如,我在 柑橘 简报中没有 已验证事实 部分,但 ML Intern 仍产出了一个将使 Qwen3.5-2B 模型的准确率提升两倍以上的模型。下面我将带你回顾用 Ml-Intern 在几天内构建的 6 个项目。
- 一个了解你领域知识模型
通用视觉模型可以描述一片变黄的柑橘叶,但要判断这是螨虫问题还是镁缺乏,以及采用生物或非生物手段治疗植物,则非常困难。借助 Claude,我从 Project-AgML 组织在 Hub 上托管的三个来源合并了一个训练数据集。最终得到的 citrus-disease-vlm-instruct 包含 3,017 张带注释的图像,涵盖 21 种不同的害虫、疾病、营养缺乏和治疗方案。ML-intern 使用这些样本对 Qwen3.5-2B 进行微调,并确保事先对基础模型进行了基准测试。
在 335 张测试照片上,基座模型只有 14.9% 的概率说出正确病害;在一块 A10G 上微调两个 epoch 后,准确率提升到 52.8%。算力成本约 1.90 美元。
相关链接:模型 · 数据集 · Citrus Doctor 应用
- 一个会画你的角色的模型
图像模型认识很多角色,但 Huggy 不在其中——它是 Hugging Face 品牌资产那种扁平风格的卡通形象。我让 ML-Intern 在 FLUX.2 klein base 4B 上训练了一个 LoRA,数据来自 Chunte/huggy_for_training 数据集中的 84 张带说明的图。
Agent 每 100 步保存一个 checkpoint,并用同一组提示词为每个 checkpoint 生成图像,选择起来非常方便。到第 200 步时,Huggy 第一次完全符合原设定(on-model)。而从第 500 步开始,Huggy 的画风开始“外溢”,连与它毫不相关的提示词也被带上了 Huggy 的风格!训练出的 LoRA 在蒸馏版 klein 模型上只需 4 步也能用。算力成本约 7.60 美元。
相关链接:模型 · 数据集 · Huggy Generator 应用
- 一个会新技能的模型
- 视角 LoRA 是早期 Qwen-Image 模型社区里最受欢迎的扩展之一:给它一张物体的图片,就能让它呈现从左侧 45 度看过去的样子。Qwen-Image 2.1 发布几天后我查了一下,还没人做这个,于是把任务交给了 ML-Intern。
ML-Intern 使用 Google Scanned Objects 数据集,在 CPU 任务上以几分钱的成本渲染了 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 美元。
- 适配设备端的模型
- 帖文顶部的 Pocket Rewriter 是首款适配设备端的模型。ML-intern 利用 Inference Providers 和小规模 instruct 模型生成了 8,797 条简短图像请求。根据我在提示词中设定的混合比例,这些请求涵盖照片、海报、Logo、信息图表等,其中约三分之一要求生成引号内的精确文本,且包含许多非英语语言。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 美元。
资源链接:0.8B 学生版 Pocket Rewriter · 2B 学生版 · 数据集 · Pocket Studio 应用 · 在 Rewriter Arena 中对比教师模型与学生模型
- Agate-Preview-002-4step 是第二个。Logolabs 的 Agate Preview 002 是一个 260M 参数的文生图模型,小到能跑在浏览器里,但它需要 50 步加 guidance,相当于每张图要跑 100 次网络。我让 ML-Intern 把它蒸馏到只用 4 次前向!
训练跑了两轮。第一轮先把 155,000 张训练图片缓存成 latent,把 guidance 烘焙进模型,然后分阶段把步数从 16 降到 8 再降到 4,全部在 A100 上完成。这个 4 步的 student 模型在 GenEval 和 FID 上都超过了同样只跑 4 步的 teacher 模型,之后 ML-Intern 把它导出成 ONNX 供浏览器使用。这一轮耗时约 13 小时,花费 22 美元。
第二轮训练是让 ML-Intern 再优化一下 4 步 student。它用 teacher 在 16 步下又生成了 24,000 对图片,然后用它们对 4 步 student 微调了约一个小时。GenEval 从 0.509 提升到 0.536,而 teacher 在 50 步下也只有 0.563——student 只用了 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 模式,然后粘贴你的 Prompt。如果需要参考,我提供的示例 Prompt 可以免费复制使用。从一个你希望存在但实际没有的模型,以及你已有或能描述的 Dataset 出发。先设定较小的 Budget,要求输出 Baseline 和 Smoke Test,仔细读完返回结果后,再提高上限。
如果你用它开发了工具或应用,请在 X 上分享并 @ @Gradio 和 @HuggingFace。我们非常期待看到你构建那些别人根本想不到会为你开发的模型。