不好!1930年的AI都来抢程序员饭碗了
Jay 发自 凹非寺
量子位 | 公众号 QbitAI
劳动节到了,连知识停留在1930年的“古董”大模型,也得出来活动活动筋骨。
没错,有人把这位只具备上世纪30年代认知的“老前辈”,成功微调成了一名软件工程师。整个过程,比预想的要轻松不少。
仅仅用了250个训练样本,这位强悍的“老先生”就解决了自己人生中的第一个编程问题——
为xarray库打上了一个补丁。
一个连电视机概念都没有的AI,如今也开始“学坏”,要跟Claude这些现代模型抢程序员的饭碗了。(当然,这只是玩笑)
中古硅基软件工程师
先来补充点背景,这位“1930”究竟是何方神圣?
它就是最近爆火的“老头AI”,全称是talkie-1930-13b。
背后的操盘手是AI研究员Nick Levine、多伦多大学副教授Da vid Duvenaud,以及一位大家都很熟悉的名字——真·GPT系列之父Alec Radford。
这个项目最有趣的设计在于,模型训练数据有一条铁律:1931年1月1日之后的任何一个字,都绝对不允许进入!
是的,它不知道电视机,不了解互联网,更不清楚二战是如何结束的……
这位“老头”的世界观,永远定格在了1930年12月31日的午夜。
但让全网感到惊讶甚至有些“瘫软”的是,就是这么一个老古董,当被抛出一道Python编程题时,这个跨越近百年的“过去之灵”,竟然真的写出了人生的第一行Python代码。
这事儿听起来就有点离谱。
如今,这位“老头”再次发力了。
有人对Alec Radford的这个1930 vintage LLM进行了微调,让它去挑战SWE-bench上的真实软件工程问题。
谁曾想,还真让它给干成了。
在250个训练样本之后,它成功落地了第一个修复——一个针对xarray库的小补丁。
百岁老人,硬核上岗,这画面感十足。
对了,团队还放出了“老头”落地这个xarray库补丁的全过程记录。
说实话,如果以评价前沿大语言模型的标准来看,这个演示过程看着真有点让人着急。
一个简单的问题,“老头”足足花了49轮对话才搞定,过程又长又慢。
其中有些轮次的尝试,实在显得有点笨拙,看得人着急上火,但你又不好意思对一位“百岁老人”发脾气。
但奇妙的是,这种笨拙在某些时刻,反而让人更兴奋,有点像在看一部逆袭的“爽文”。
举个最“直给”的例子。
“老头”一开始其实搞砸了。
在第12轮对话的时候,它尝试应用补丁(apply patch)但失败了。
代码可以报错,但,老兵不死。
“老头”没有放弃,它继续尝试,直到终于意识到自己错在哪里……
然后,在第44轮,它把问题给修好了!!
必须承认,这个修复本身很简单,别说跟现在的AI SOTA比,就算跟编程小白比,可能也够呛。
但真正重要的,是“老头”在整个解题过程中展现出的思考轨迹。
这个过程展示出的那种推理能力——试错、反思、自我修正——跟我们在现代模型上看到的如出一辙。
一个1930年的模型,也学会了试错,学会了反思,学会了自我修正。
演示之外,基准测试的表现同样亮眼。
当微调时的训练数据规模扩展到大约7.5万条轨迹(trajectory),也就是约10亿token的时候,模型在SWE-bench-Verified上达到了4.5%的pass@1通过率。
要知道,它原来在HumanEval上的成绩才4%的pass@100。这个进步幅度,相当可观。
虽然绝对值还很低,但对一个知识停留在1930年的模型来说,这已经足够离谱了。
更有意思的还在后面,团队还做了另一个对照实验。
事实上,他们同时给“老头”训练了一个兄弟模型,叫talkie-web,这个模型是在互联网数据上预训练的。
使用完全相同的微调配方,talkie-web在SWE-bench-Verified上的成绩是5.5%。
没错,即便团队“偏心”,给孪生兄弟喂了互联网数据,它的成绩也就比“老头”高了仅仅1个百分点。
以上所有结果,都欢迎复现验证。
这可不是什么穿越爽文,团队已经在GitHub上开源了整个项目,链接就放在文章结尾,感兴趣的朋友完全可以自己去跑跑看。
团队自己也很兴奋,在项目的README里喊话:
如果你手头有更多算力,我们很想看到1930模型和互联网模型在后训练持续扩展时的完整scaling曲线对比。
这确实让人想看,这比单纯秀肌肉的基准测试分数有意思多了。
什么是智能?
团队并没有深入剖析这背后的原因,但浏览了不少网友在相关帖子下的评论后,觉得这确实是一个值得深入讨论的话题。
我们一直默认,AI需要“吃掉”整个互联网的数据才能变得聪明。
但如果一个只读过1930年以前书籍的模型,经过一点点后训练就能写代码、修bug……
那么,我们对“什么是智能”的理解,是不是也得重新思考一下了?
4.5%的pass@1,放在今天的SOTA模型面前当然不够看。但它所证明的那件事,比任何基准测试分数都更重要。
它似乎暗示着,一个1930年代的人,如果拥有几乎相同的认知与教育体系,完全有能力理解现代的软件工程。
一百年前的数据量,加上正确的后训练方法,就足以催生出符合现代定义的推理能力。
智能的瓶颈,或许从来就不在于预训练数据的“量”有多大。
你可能并不需要一个训练过所有知识的模型,它只需要具备基本的语言理解与逻辑推理能力,这就足够了。
或许,当我们在模型规模扩展(Scaling)的道路上一路狂奔的间隙,也可以稍微停一停,抬起头来跟身边的人探讨一些更本质的问题——
诶,你说……
智能的本质,到底是什么?
GitHub项目地址:
https://github.com/RicardoDominguez/talkie-coder
参考链接:
[1]
https://x.com/rdolmedo_/status/2050665193374732430?s=20
[2]
https://github.com/RicardoDominguez/talkie-coder