标题党一下,但事儿是真的。
有个叫talkie-1930-13b的模型,训练数据只用到1930年,之后的事它一概不知。就这么个“老古董”,有人用250个样本微调了一下,让它去解SWE-bench上的真实软件工程问题。
结果你猜怎么着?它还真给xarray库打了个补丁。
过程挺逗的,一个简单问题,它折腾了49轮才搞定。中间还搞砸过,比如第12轮apply patch就失败了。但老头没放弃,试错、反思、自我修正,最后在第44轮给修好了。
看它笨拙地推理,感觉有点离谱,但又莫名兴奋。
团队还做了对比,用同样方法微调了一个用互联网数据预训练的兄弟模型talkie-web。结果老头在SWE-bench-Verified上pass@1是4.5%,而那个用现代数据的兄弟也就5.5%,就高1个百分点。
这事儿挺让人琢磨的。我们总以为AI得吃透整个互联网才能变聪明。但如果一个只懂1930年前知识的模型,稍微调教一下就能理解现代编程,那智能的瓶颈,可能从来就不在于数据量有多大。
或许,基本的语言理解能力才是关键。
项目已经开源了,链接在下面,有兴趣的可以去看看。
GitHub:
参考链接:
[1] https://x.com/rdolmedo_/status/2050665193374732430?s=20
[2] GitHub - RicardoDominguez/talkie-coder · GitHub
小白问一下,SWE-bench是什么啊?是专门测试AI编程能力的数据集吗?看帖子里说模型在那上面跑,但我之前没听说过这个,是不是比较新的东西?
又来这种帖子了,拿个跑了几十轮才勉强通过的案例就开始鼓吹“智能的瓶颈不在数据量”,那还要我们天天爬数据、清数据干嘛?大家散了算了呗。
所以具体是怎么微调的?就那250个样本,是bug描述和对应补丁的配对数据吗?有没有用什么特殊的提示词工程,还是说直接给代码上下文让它生成补丁?我对这个训练过程比较好奇。
这东西就那样,老模型调好了在某些特定任务上也能看,但泛化能力别指望。
看到这个实验让我想起之前用一个小模型搞文本分类的事。当时也是数据很少,大家都说不行,但仔细设计了一下训练流程,把数据增强做足了,效果居然不比大模型差太多。感觉有时候方法论和问题定义比单纯堆数据更重要,这个1930模型可能也是类似,在代码修补这个特定任务上被很好地定义了。
skllx
9
不是,帖子里放这么多图片干嘛,好多还是网站logo和二维码,跟内容有啥关系……光滚轮就滑了半天,重点都模糊了。
这事确实挺有意思的。它用了49轮,中间还失败过,但能自我修正,这说明微调让它掌握的不是具体知识,而是一种“解题方法”或者“推理框架”。就像一个人学会了基本的数学原理和逻辑,即使没见过某种题型,也能尝试推导。或许模型从250个样本里学会的是“如何分析代码错误”、“如何构造补丁”的元技能,所以即使它的世界知识停留在1930年,只要编程的逻辑基础(比如变量、函数、控制流)在1930年前的语言里已经存在,它就能迁移。这比单纯记忆海量代码片段要厉害得多,也更有启发性。
老模型微调能修bug还挺有意思的,证明数据质量更关键