不知道你还是否记得首个「AI程序员」Devin,由10枚IOI金牌在手的创业团队Cognition AI开发,今年3月上线。
它由GPT-4提供后端支持,能以文本形式接收自然语言指令,并自主编写代码。
刚刚上线时,虽然效果没法达到取代程序员,但依旧给人留下了深刻印象。
如今,5个月过去,「狂飙」的GenAI领域已然大不相同。不仅GPT-4迎来了下一代模型GPT-4o,新发布的Claude 3.5 Sonnet、Codestral等模型都在编码方面性能优秀。
Devin的直接挑战者,是初创公司Cosine开发的自主AI工程师Genie。
Cosine发布的报告显示,在SWE-Bench中,Genie的得分为30.08%,轻松超越了分数为13.8%的Devin。
Cosine联合创始人兼CEO Alistair Pullen表示:「(Genie)模型的能力不是一个基准测试分数能概括的:它从一开始就被训练成像人类软件工程师(SWE)一样思考和行动。」
我很高兴与大家分享,我们打造出了世界上最强的AI软件工程师,在SWE-Bench上取得了30.08%的成绩,领先于亚马逊和Cognition。
由于CEO声称Genie可以像人类软件工程师一样思考和行动,网友调侃道,「你的意思是它不能和女人说话,如果你打电话给它,它就会出汗?」
Genie是什么?它能做什么?
和Devin类似,Genie也可以在人类工程师的指导下自主完成各种编码任务,包括bug修复、功能构建、代码重构,以及通过全面测试进行代码验证。
除了自主运行,Genie也可以与用户协作。
目前Genie还处在内测阶段,可以在官网注册信息后申请试用。
博客地址:https://cosine.sh/blog/state-of-the-art
Cosine声称Genie可以模拟人类工程师的认知过程。
Pullen在博文中解释说,「我的构想很简单:让它观察人类工程师如何完成工作,并模仿这一过程。」
Genie生成的代码存储在用户的GitHub repo中,这意味着Cosine不会保留副本,也不会有任何随之而来的安全风险。
此外,Cosine的软件平台已经与Slack和系统通知集成,它可以像人类同事那样,利用系统通知来提醒用户、提出问题或标记问题。
「Genie还可以向用户提出澄清性问题,并对其生成的Pull Request(拉取请求)的评论/意见做出回应」。
Pullen表示,「我们正试图让Genie表现得像同事一样,因此让该模型使用同事的渠道是最合理的。」
与OpenAI合作,用上最新GPT-4o
与许多依赖基础模型并辅以少量工具的模型不同,Genie是通过一个专有流程开发出来的,其中包括训练和微调来自OpenAI的模型。
Genie刚开始研发时,只能基于上下文窗口相对较小的模型进行微调,其范围在16-32k token。
团队在早期探索中发现,即使用超过1 亿token的大型数据集,加上设计架构的优点和各种压缩/分块方法,也依旧受限于模型在特定时刻能表达的信息容量。唯一的方法是使用上下文窗口更大的模型。
幸运的是,不久之后他们就获得了OpenAI长上下文模型的访问权限,这成为了Genie能力的突破口。
Pullen向VentureBeat透露,「Genie(目前)是一个非通用的GPT-4o变体,OpenAI允许我们访问并使用他们的模型进行训练,作为实验计划的一部分。」
「该模型表现良好,我们也因此与OpenAI的微调团队和工程领导层分享了我们的心得。这对我们来说是一个真正的转折点,因为它说服了他们为我们的新技术投入资源和关注。」
虽然Cosine没有说明具体型号,但OpenAI最近刚刚宣布了GPT-4o长输出上下文模型的有限可用性,输出长度可达64k token,相比最初的4k足足增加了16倍。
训练数据是关键
Pullen在技术报告中写道,在最近的训练运行中,Genie接受了数十亿token数据的训练,选择这些数据的组合是为了让模型尽可能胜任当前用户最关心的语言。
Genie的技术报告中列出了训练数据包含的15种语言,Java、JS、C、C++、C#、Rust、Python等热门语言,以及常用的Scala、Kotlin、Swift、PHP等也都全部涵盖。
其中,JavaScript、Python、TypeScript和TSX是数据集中占比最多的语言,其余的占比均为3%。
Cosine的博文表示,团队花了近一年的时间整理数据集,包括来自真实工程师的大量软件开发活动。
获取并有效利用这些数据是极其困难的,因为从本质上讲,这些数据是不存在的。
他们的数据管道从追踪软件工程师的开发轨迹开始,收集pull request、commits、来自OSS存储库的issue(MIT许可)等数据。
之后在管道中运行这些数据,以取证方式导出推理过程,重建出人类是如何得到最终结论的。
数据集中各种任务类型的占比
这个专有数据集是第一版模型训练的基础,剩下的工作由自我对弈和自我改进完成。
Genie的自主性循环由四个主要过程组成:计划、检索、代码编写和代码运行。这些本身并不新颖,但由于 Genie被训练成像人类一样执行任务,因此有了更大程度的改进。
「数据标注的影响不容低估,从有能力的软件工程师那里获得高质量的数据非常困难,但结果是值得的,因为它让我们深入了解了开发人员不易被发现的解决问题的思考方式。」
该数据集不仅体现了完美的信息脉络和渐进式知识发现,还捕捉到了人类工程师逐步决策的过程。
Pullen断言,「通过使用这个数据集实际训练我们的模型,而不是简单地提示基础模型(这是其他人正在做的事情),我们发现我们不再只是随机生成代码,而是像人类一样处理问题。」
基准评估结果
模型开发过程中,团队主要使用了两个基准进行评估——SWE-Bench 和 HumanEval。
前者涵盖的问题比较全面,包括分解问题、找到相关代码、对代码进行分类并实现可行解决方案;后者更专注于编写代码,没有检索方面的内容,并且对问题理解的强调较少。
然而,官方博客中仅披露了SWE-Bench分数,Genie取得30.08%的成绩,SWE-Lite中为50.67%的分数。
其中,Genie在SWE-Bench的表现非常亮眼:这是迄今为止的最高分数,相比第二名的19.27%有超过10%的增幅。
此外,团队还单独测试了模型的信息检索能力,特别是检索所需代码文件的正确部分的能力。
这是AI工程师的核心组件之一——如果模型不能可靠且熟练地找到正确的代码进行编辑,那么编辑代码的能力也无法得到充分发挥。
假设模型每次都能找到正确代码,可以查看模型为完成任务查找了多少行代码,以及实际找到的代码行数,来简单地衡量检索能力。
测试中,Genie成功检索到了142,338行中所需的91,475行代码,得分为64.27%。这里显然还有很大的改进空间,而且相较于分解问题能力,检索能力是关注较少的一个方面。
背靠YC,华人牛津硕士带队
Cosine是通过硅谷著名的Y Combinator创业加速器成立的。
该公司是一个人类推理实验室,专注于研究和整理人类执行任务的方式,旨在教会人工智能模仿、擅长并扩展这些任务。
2022年,Alistair Pullen、Sam Stenner和Yang Li联合创立了Cosine,将其定位为人类推理实验室。
他们希望从软件工程领域开始,研究和整理人类执行任务的方式,从而教会AI模仿、擅长并扩展这些任务,推动智能的发展。
Cosine已从Uphonest和SOMA Capital募集到250万美元种子资金,Lakestar、Focal等公司也参与了投资。
Cosine拥有一支规模不大但技术精湛的团队,已经在人工智能领域取得了长足的进步,Genie只是一个开始。
Pullen在公告博文中表示,「我们真心相信,我们能够为任何工作和行业重现人类推理。」
「软件工程只是一个最直观的起点,我们迫不及待地想向大家展示我们正在研究的其他一切。」
值得一提的是,在创始人团队中,有一位华人面孔,Yang Li。
Li毕业于牛津大学社会学系,在2021年被评为福布斯30位30岁以下精英之一。
在创办Cosine之前,他有过6段工作/创业经历,其中包括美团摩拜单车业务的商务总监。
可以看到,在2022年以前,Yang Li以一年一跳的频率不断在产业界探索新机会。
现在,Yang Li推特的简介上是这样描述自己的:经历了1 次IPO、2次收购和3家独角兽。
1次IPO指的就是,将摩拜单车月活跃用户数增长至2.2 亿,直至550亿美元的IPO。
Genie的未来
Pullen在给VentureBeat的邮件中透露了Genie可能采用的价格模式。早期阶段,产品定价将分为两个类型:
一是面向个人和小型团队。与现有人工智能工具相比,价格具有竞争力,大约在20美元左右。这一级别的产品在功能和使用上会有一些限制。
二是面向企业。具有更多的功能,使用几乎不受限制,并且能够创建一个完美的人工智能同事、代码专家。这一级别的价格将更高。
「我们一直在追逐一个梦想,那就是制造出一种能够真正自动执行端到端编程任务、无需干预且高度可靠的人工同事。Genie正是实现这一梦想的第一步」,Pullen在Cosine的博客文章中写道。
Genie的推出对软件开发团队具有深远影响,尤其是那些希望提高生产率、减少日常工作时间的团队。
凭借自主处理复杂编程挑战的能力,Genie有可能改变工程资源的分配方式,让团队专注于更具战略性的计划。
Pullen写道,「工程资源不再是制约因素的想法,对我来说是一个巨大的驱动力,尤其是在创办公司之后。」
人工智能同事可以跳入一个未知的代码库,在比人类快数倍的时间内解决未知问题,其价值不言而喻,并将对世界产生巨大影响。
Cosine为Genie的未来发展制定了雄心勃勃的计划。
「我们正在加速推进,通过Genie革新技术团队。我们的主要目标是平衡实际产品与前沿研究。」
- 完善数据集以增强Genie的能力。通过拓宽数据并引入新功能,Genie将精通更多编程语言和最新框架,精准地满足开发者的工作需求。
- 扩展其模型组合。包括用于简单任务的小型模型和能够处理更复杂挑战的大型模型。利用独特的数据集,将使Cosine能够将任何最先进的基础模型转换为Genie模型。
- 将工作扩展到开源社区。比如,对一个领先的开源模型进行上下文扩展,并使用庞大的数据集进行预训练。
- 使用特定代码库微调Genie。这是一项企业功能,能够使Genie对大型、遗留代码库有完美的理解,即使这些代码是用不太流行或专有的语言编写的。
Pullen表示,随着公司不断完善Genie,将不断向客户发布更新,优化与这个人工同事的互动并收集有价值的反馈。
Li在推特中畅想,Cosine旨在将人类的推理能力编码化,未来不再有过采样,也不再有copilot。