资讯 · 改写稿
用 40 万条合成数据,把 1.5B 小模型练成 bash 命令高手
结论很直接:1.5B 的小模型经 40 万条合成数据微调后,在「英文转 bash 命令」这类窄任务上能追到接近大模型的水平,而且 4-bit 量化后几乎没有掉分。
来源是一个个人实验的记录。作者的出发点很朴素:写码时最常打断心流的事,是停下来查 bash 命令的语法。他判断这属于「小模型能做好」的任务——命令集有限、语法明确、训练数据容易造。于是他动手验证,并把模型、数据与命令行工具都放了出来。
结果:212/300 对 191/300
在本地开发测试中,发布的 1.5B 4-bit 模型在 ALFA 更新版任务上通过了 212/300(70.7%),对比基线的 191/300(63.7%)。来源说明,两者用的是同一套评分定义,但提示词与生成设置不同。
本站计算——把差距换算清楚:绝对差距是 212 − 191 = 21 道题,占 300 题的 7 个百分点;相对提升是 70.7 ÷ 63.7 ≈ 1.11,即约 11%。也就是说,这个 1.5B 的小模型不是「碾压」基线,而是在一个窄任务上稳定领先约 11%。
数据与方法
- 数据规模:微调数据集为 401,975 条唯一的「英文请求 / bash 命令」配对。
- 基座与方式:从 Qwen3-0.6B 与 Qwen2.5-Coder-1.5B-Instruct 出发,用 LoRA 做监督微调。
- 试过的模型:SmolLM 135M、SmolLM 360M、Qwen3-0.6B、Qwen2.5-Coder-1.5B、Qwen3.5-0.8B、Qwen3.5-2B 共六个,最终保留 0.6B 与 1.5B 两个。
- 流程:由 AI 承担训练控制器,多轮「生成数据 → 评审入库 → 训练 → 评估 → 再生成」,整个过程约 10 天。
- 量化:4-bit 版本意外地保留了 16-bit 版本的大部分收益。
为什么这个案例值得看
它示范了一种「把通用大模型的能力,换成一个专用小模型」的思路:先用大模型批量生成与评审数据,再让小模型在这些数据上学。因为任务被收窄到单一领域,1.5B 的参数规模就够用,4-bit 量化后还能塞进本地设备。作者的提示词也很直白——只要在「英文转 bash」这一个方向上进步,其他能力都可以牺牲。
什么时候该自己训一个小模型
三个前提:任务足够窄(比如只有一类命令或一种格式)、语法或规则相对确定(便于自动校验生成的数据)、以及调用量足够大(否则直接用 API 更省事)。反过来,如果任务本身边界模糊、需要广泛世界知识,小模型 + 微调通常不是好选择。
看到「接近 GPT-4o 水平」就以为通用能力也接近——来源强调的只是 bash 生成这一窄任务。
忽略评分口径:两者用同一评分定义,但提示词与生成设置不同,横向比较要留余地。
把「70.7%」当成绝对可用率——它意味着每 300 题仍有约 88 题没过。
自检清单
常见问题
这个模型能做什么?
把英文请求转成 bash 命令,属于单一窄任务;来源强调它只在这个方向上优化,不代表通用能力。
212/300 是什么水平?
在 ALFA 更新版任务上的通过数,换算为 70.7%;对比基线 191/300(63.7%),领先约 7 个百分点。
需要多少数据?
来源用了 401,975 条唯一的「英文请求 / bash 命令」配对,通过多轮生成与评审逐步累积。
4-bit 量化会掉多少分?
来源称 4-bit 版本意外地保留了 16-bit 版本的大部分收益,几乎不影响该任务表现。
来源参考
以上为外部来源;本文为 RefHub 用自己的结构重写,事实以来源页为准,价格与政策会变,请回源核对当日。
下一步:想理解本地小模型的取舍,读 本地模型能顶掉订阅吗;要估算微调与调用的额度成本,用 额度计算器。