一个在实战中学会写代码的开源模型

一个在实战中学会写代码的开源模型
JetBrains 于 10 月 8 日发布 Mellum2.1。这是一个 120 亿参数的混合专家(mixture-of-experts)模型,专为编程智能体打造,以 Apache 2.0 协议在 Hugging Face 上开放。单看这些信息,它只是本月众多同类发布中的一个。真正让它与众不同的是训练方式。
Mellum2.1 的后训练在真实的编程环境中使用强化学习。不是模拟的基准测试框架,也不是由已解题目组成的静态数据集。模型会像一名在职开发者那样浏览代码仓库、修改文件、检查自己的改动。
为什么训练方式比参数规模更重要
如今大多数编程模型先被训练来预测下一段代码,再用优质补丁的样例做微调。这是一条合理的流水线,产出的模型能自动补全、能解释代码。可面对一个根本构建不起来的代码仓库,这种准备远远不够:第一个修复弄坏了测试,第二个修复又弄坏了别的东西。
真正需要的能力不是写出一个函数,而是闭合回路:提出假设、做出改动、观察结果、修正。在真实环境中用强化学习训练,恰好奖励的正是这种行为,因为奖励来自改动是否真的起了作用。
这也正是编程智能体开始变得有用的那次转变。只能写代码的模型只是一个花哨的自动补全。能运行测试、读懂报错、再试一次的模型才是协作者。Mellum2.1 的训练数据就是这条回路本身。

120 亿参数是刻意的规模
相比前沿模型,120 亿参数很小。而这正是重点。编程智能体在一个紧凑的回路中运转,读文件、跑命令、看 diff,因此会被频繁调用。一个运行便宜、响应快速的模型,可以比每步都要花真金白银的模型用得激进得多。
混合专家的设计进一步强化了同样的思路。即便总容量增加,每个 token 的激活量仍保持适中,这让推理保持廉价,又不会让模型缺少知识。对于一个完成任务可能要触发几十次的工具,这笔取舍恰到好处。
整个 10 月正在形成一种模式。小巧、专用、开放许可的模型正陆续出现,去承担更大系统中的重复性工作:这里有 JetBrains,还有 Liquid AI 的决策模型、Underdog AI 压缩后的 27B 版本。前沿模型决定上限,小模型决定下限,而大多数 token 恰恰消耗在下限这一层。
开放权重作为一种分发策略
JetBrains 不是争夺跑分冠军的实验室。它卖的是开发者工具,动机是让这些工具更好用,而不是把模型捂在手里。以 Apache 2.0 发布 Mellum2.1,能让模型在整个生态中扩散,包括进入竞品编辑器和智能体框架。
这一点值得留意。当一家工具公司开源一个编程模型时,它是在押注价值在于集成和工作流,而不在于权重。这跟今年许多基础设施公司下的注一样,而且这种注往往经得起时间考验。一个没人能采用的模型,就无法成为标准。
Apache 2.0 对采用尤其重要。宽松许可省去了让大型企业试用一个新模型时拖慢进程的法务审查。对于客户正是这些企业的公司来说,发布一个宽松许可的模型,是在真正开卖之前先培养熟悉度的办法。
与前沿编程模型的对比
前沿编程模型更擅长难题。这点没有争议,短期内也不太会改变。真正有争议的是:每个编程任务是否都需要前沿模型。大多数并不需要。给项目里一个函数改名、更新依赖、为已有行为补一个测试:这些任务常见、枯燥,而且一个小模型配上好的框架就足以应付。
Mellum2.1 并不想在那些最强模型最擅长的任务上击败它们。它想做的是在填满开发者一天的那些任务上足够好。这是一个更窄的目标,也更持久,因为它不依赖去赢一场它赢不了的比赛。
对一家工具公司来说,把模型保持在这个规模还有战略上的理由。小到能在本地运行的模型,可以不给按次查询计费,从而免去让开发者不敢放手使用智能体的计量门槛。一个能不经网络往返就调用自家模型的编辑器,和做不到的编辑器是不同的产品,差别就体现在用户愿意多大胆地依赖它。
为什么在真实环境中的强化学习不一样
在样例上训练与在结果上训练的区别值得再讲一遍,因为这是本次发布中最关键的细节。在样例上训练的模型学的是好的输出长什么样。在结果上训练的模型学的是哪些动作能带来好结果,这是另一种也更难的能力。
动作是序列。一个能通过测试的补丁不是一次决定,而是一连串决定:该看哪里、改什么、跑什么、怎么读懂一次失败。在真实环境中做强化学习,会给模型关于整条链路的信号,这也是学会“某些局部看似合理的选择会通向坏结果”的唯一途径。用真实代码仓库而不是一组精挑细选的问题,背后的直觉就在这里。
这种做法比监督式微调更贵、运行起来也更脆弱,这也是为什么更多模型没有这么做。它还往往产出在不熟悉情境中表现更好的智能体,因为它们练习的是从错误中恢复,而不只是模仿正确。
值得关注的点
最直接的检验,是这样一个以这种方式训练的 120 亿参数智能体,能否在一个真实的仓库任务上站得住脚:诊断一个失败的测试、提出补丁、验证结果。如果能,那么有意思的问题就变成:给它一个好的框架和一条紧凑的反馈回路,一个小的开源模型能离前沿编程质量有多近。
这个问题比任何单个模型的发布都更重要。如果 120 亿参数智能体与前沿模型之间的差距在实践中缩小,那么编程智能体市场的一大部分就不再是关于谁拥有最好的模型,而是关于谁围绕一个“足够好”的模型做出了最好的工具。Mellum2.1 是这个方向上一个小小的、具体的注脚,而方向本身才是关键。
相关文章
婚纱照不用摄影师了:这届年轻人把影棚搬进了阳台
10 月 14 日 AI 婚纱照冲上微博热搜第三。一个程序员在阳台挂块白布,做了整套婚纱照。这件事真正戳中的,不是价格,是那一天的表演压力。
五大出版社悄悄用AI做封面,读者已经开始认出来了
《连线》报道称,美国五大出版社中至少三家在未披露的情况下用AI生成封面与文案。官方回应与员工说法相互矛盾,而名字印在封面上的作者,往往是最后一个知道的人。
Character.AI 申请破产,迪士尼用 2000 万美元给专利兜底
Character.AI 申请破产,迪士尼以 2000 万美元充当马前卒,买的只是部分资产和专利许可。一个 1.5 亿美元 A 轮的故事,最后落在专利和每月八九百万美元的亏损上。
XERJ:一个会坦白自己数字灌水的编码代理搜索引擎
XERJ 用本地索引和 tree-sitter 符号帮编码代理少读文件:实测比 grep 省 2.7 倍 token,而不是标题宣称的 40 倍,维护者自己把这层窗户纸捅破了。