代码生成三问:如何打造24小时在线的AI程序员?

智能科技有评论 2024-08-03 12:30:58

Copilot 是过程,Agent 才是通往成功的方向。作者丨张进编辑丨陈彩娴

2024 年年初,拥有编程全栈技能的 Devin 惊艳全球,让外界看到了 AI 改变一个行业——替代程序员的可能性。

Devin 发布数周后,其背后的公司 Cognition 也随即获得 1.75 亿美元融资,估值从 3.5 亿美元一跃升至 20 亿美元。紧接着,4 月,一家 AI 编码辅助创业公司 Augment 宣布完成 2.52 亿美元的融资,投后估值接近独角兽,代码生成赛道的多米诺骨牌效应开始出现……

到上半年,硅谷代码生成类的公司估值起步价已经高达 2 亿美金,头部公司甚至 20 亿美金。而据一位行业人士分析,代码生成的概念之所以受到追捧,其中一个重要原因是“人类的数据不够用了”。

AGI 时代的一个重要组成是人类必须依靠机器生成的数据,而代码生成的数据被部分从业者认为是“人类通往 AGI 过程中最有逻辑性与严谨的数据”。

与此同时,网络上为大模型代码生成提效欢呼的声音越来越多。例如,一位中国开发者就提出,Claude 3.5 Sonnet 只要 500+ 行的 html 就能实现一个不错的功能;还有开发者称,其借助 GPT-4o 辅助代码写作,以前开发小程序需要一个月,现在只需要七天……

根据开发者的反馈,大模型的代码生成能力正在真切地提升每位开发者的工作效率。

事实上,程序员对于“AI 代码生成”的想象早有年头。在这波生成式 AI 浪潮之前,市场上就已出现一系列的 AI 编程工具,例如 Tabnine、Kite 等,但受限于它们的技术路径,过去的产品对于上下文逻辑的理解和代码生成的质量不尽人意。

清流资本合伙人刘博告诉 AI 科技评论,AI 编码工具的其中一个效果评估指标是代码文件中由模型生成的代码占比,上一代工具只能做到 10-20%,而新一代的 AI 编程工具最高可以做到 40-50%——这是质的飞跃,同时新一代工具对编程上下文的理解也显著更好。

微软 CEO 称,两年前上线的 AI 编程工具 GitHub Copilot(后接入 GPT-4 模型后更名为“Copilot X”)已经开始获利、并拥有 180 万付费订阅用户。

迄今大模型狂飙一年半,在所有基于大模型的新 AI 工具中,coding 场景的 PMF 和付费意愿最先被验证,GitHub Copilot 仅用 14 个月便达到了 1 亿美元 ARR,是历史上增长最快的 SaaS 产品——这与其他场景里昙花一现的 AI 产品形成鲜明对比。

几乎所有的通用大模型公司都推出了代码大模型和 AI 编程助手,如 OpenAI codex、Meta Code Llama、智谱 CodeGeeX、百度的 comate、腾讯云的 AI 代码助手、DeepSeek Coder……

国内创业公司也开始增多:一站式 DevOps 研发管理平台 Coding 创始人张海龙创立了 AI Agent 公司 Babel,企业智能化软件开发解决方案提供商 aiXcoder 也因此受到资本关注、并在2023年迅速完成了 A+ 轮融资。

多方势力角逐,创业公司在混乱中争取生机,而创业公司、通用大模型公司、科技大厂各方仍然面临 AI 领域发展的通用问题:To C 还是To B,技术路径选择通用大模型还是垂直模型,要不要自研模型,以及如何在 GitHub Copilot 的笼罩下突围。

值得注意的是,受限于底层技术大模型的能力,目前各种 AI 编程产品仍然集中于 coding 阶段,在代码补全和代码生成两个场景 PK,所以本质上,现在的 AI 编程产品依然是 AI coding。

但尽管如此,“24 小时 AI 程序员”的生产力仍然让所有人着迷。

1为什么对 coding 情有独钟?

当前大多数 AI coding 产品主攻代码补全和代码生成两个高频场景。

软件开发的智能化最开始就是从代码生成和代码补全开始的。因为技术容易实现,不会颠覆程序员的开发模型,代码补全是整个行业做的比较成熟的功能,不管是大厂还是初创公司,产品都能用起来,且正确率较高。

在一个已有的项目中根据上下文去增加新功能叫代码补全,即开发者用自然语言表达一个需求,用代码生成。代码生成现在正处于从文件级代码到项目级代码的突破。

代码生成还处于初级阶段,简单的函数能生成得比较好,但并不是完全靠大模型,需要外挂一些知识库配合,不能达到100%准确,若再想扩展到一个文件级的代码生成,难度则会增高,往仓级别的难度会更高,而 Devin 展示的就是往仓级别去实现。

一位研究代码智能的专家告诉 AI 科技评论,代码补全现在是兵家必争之地,是已经真正落地、也是程序员使用最多的场景。相对来说,代码生成功能的使用频率相对少一些,目前要真正融入到日常的开发成为高频选项还有一些距离,原因是代码生成需要改变程序员的开发模式、开发习惯。代码生成目前依然是通过跟一个对话机器人对话,用自然语言表达需求来让大模型生成一段代码,在这个过程中不断交互、表达需求,需求表达地越清晰、生成的代码越准确。这过程中涉及到需求拆解。将一个大的需求拆解成一个个的小任务,再去生成,需求拆解对于当前大模型来说还有难度。同时,由于编程思维跟自然语言表达是两回事,对于开发者来说,一个人代码写的好,并不意味着用自然语言表达业务逻辑好,它需要具备两方面的能力。一是要熟悉业务,二是要扎实的计算机理论知识,包括算法,操作系统,软件工程,计算机安全等,这其实对开发者的个人素养提出了很高的要求。

除了代码补全和代码生成两个高频场景,其他产品寻求差异化的出口是提供代码注释、代码解读、代码 bug 修复、代码优化、漏洞检测等能力。

例如国内智谱 CodeGeeX 便开发了独有的功能,例如去年年底推出的工具箱,就是基于模型具备Code Interpreter代码解释器能力,可以批量处理多种格式的文件、批量实现数据可视化、绘制数学函数图等。

CodeGeeX 负责人郑勤锴认为,在这些事情上为开发者节省了时间,开发者就能将工作更多放在顶层设计上——怎么把代码的架构设计地更好、功能考虑地更完善,从而提高软件的质量。

智谱在2022年就完成了CodeGeeX代码大模型的训练,并同时推出了 CodeGeeX插件产品。

跟GitHub Copilot 一样,CodeGeeX定位是智能辅助编程,但辅助也分为不同层级,目前已经从单个文件辅助拓展到了项目级辅助编程,因为实际开发场景中不可能只有单文件,大多都是多文件。

CodeGeeX负责人郑勤锴称,往项目级拓展的挑战在于项目生成的成功率,因为代码项目往往不只是一小段代码或者一个文件的代码组成,而是同时需要完成项目中跨文件的代码理解和生成补全。让模型能充分理解更长的信息,并提取到关键部分,这对模型的要求很高。

对于参数量10B以下的代码大模型,从海量的代码中准确提取信息是一个关键性的挑战。CodeGeeX4支持128K上下文,能够处理和利用更长代码文件、包括项目代码中的信息,是模型更深入理解复杂和细节丰富的代码的关键点。

2如何跟 GitHub Copilot 竞争?

一位投资人认为,做 AI 编程助手没人能拼得过 GitHub Copilot。

GitHub Copilot 主要 To C,面向个人开发者定价每月 10 美元(约 66.9 元人民币)或每年 100 美元(约 669 元人民币)。

To B 企业用户月费 39 美元,企业用户可以将代码部署到云端,而不必在本地反复克隆;企业用户可以内建知识库,形成个性化的Copilot Chat(在原有Copilot的基础之上,开发者可以直接用自然语言和Copilot对话来解决遇到的问题),甚至是对底层模型进行微调。

除了占据时间上的先发优势,GitHub Copilot 拥有两大先天优势,一是背靠拥有上亿开发者的代码托管平台 GitHub,二是底层接入的是 OpenAI 最强的模型。

站在今天来看,微软对开发者市场的战略一直很清晰:2015 年推出跨平台代码编辑器 VScode,从用户侧统一IDE;2018 年收购 GitHub,拥有大量代码数据(包括商用的未公开的数据);2019 年,微软向 OpenAI 投资了 10 亿美金,并获得了 OpenAI 技术的商业化授权。

于是,在 2020 年 OpenAI 推出了 GPT-3 后,拿着最多的代码数据去训练模型,隔年 AI 编程工具 GitHub Copilot被推出,成为全球最早一款大模型 AI 编程工具,抢占了先发优势。

今年 4 月微软 CEO 称 GitHub Copilot 已经拥有 180 万付费订阅用户。

但也有多位从业者认为 GitHub Copilot 并非能一统天下。

“对于国内市场而言,商业化机会在 B 端。”清流资本合伙人刘博告诉 AI 科技评论。

首先,AI 编程产品面向的中大型企业 B 端市场大概是几十亿人民币的规模,用户付费意愿非常明确,这一市场规模和客单价在软件服务市场上已经比较客观。

对于国内 B 端用户而言,他们有两个需求是 GitHub Copilot 无法满足的:1)模型本地部署,如果云端调用 GitHub Copilot 会有代码泄露的风险同时本地部署后可以根据客户的私有代码进一步训练,显著提升代码生成的效果;2)大客户需要选择国内的产品作为供应商,避免数据外流。

照着以上标准来找标的,清流资本在去年 9 月参与了国内面向企业的智能化软件开发解决方案提供商 aiXcoder A+ 轮投资。跟 GitHub copilot 不同,aiXcoder 聚焦 To B,为企业提供基于代码大模型的智能化软件开发解决方案,包含私有化部署、企业领域知识与大模型融合、定制化开发等服务。清流资本合伙人刘博告诉 AI 科技评论,B 端市场的打法是当公司在一个行业里已经渗透了足够多的客户后,就能成为 AI Coding工具实质上的行业标准,成为行业里其他企业采购 AI Coding 工具时必须邀请参与竞标的供应商。因此从国内的商业化角度出发,先发优势和聚焦很重要。aiXcoder孵化自北京大学软件工程研究所,在2013年就开始研究深度学习跟代码结合,早在 2022 年 6 月便发布了中国首个百亿级参数的代码大模型 aiXcoder-13B,能够支持方法级(函数级)的代码补全。aiXcoder COO 李力行认为,代码大模型落地时,如何跟企业的领域知识或者私域知识相结合非常关键,从而保证生成的代码更准确,因为代码生成要用到很多上下文信息,以及一些外部的领域知识,领域知识是指企业的业务逻辑、业务知识等等。一位资深从业者认为,高质量的数据才是模型能力的区隔。公开的数据可能有一天终会达到瓶颈,但世界上还有大量的私有数据可能永远不会被公开,它们存在于各个 B 端企业内部,与企业业务逻辑强耦合。aiXcoder 在为客户做本地部署的时候会基于这些私有化数据进行再训练,给每个企业打造专属的代码大模型。

3通用大模型还是垂直模型?

GitHub Copilot 占据了 C 端优势地位,国内玩家不约而同选择了 C 端免费策略,如智谱 CodeGeeX、百度Comate、腾讯云 AI 代码助手都推出了面向个人开发者的免费工具,这几家厂商跟 aiXcoder 一样、将商业化看向 B 端。

它们共同的思路是拿代码数据在各自的基座大模型上进行预训练或者微调,相同的代码数据来自GitHub和其他可公开访问的源代码,百度、阿里、腾讯这些大厂还有一部分内部代码的积累。

收集数据的方式、选取数据的类型、训练的方法……整个训练过程多个环节的差异导致各个代码模型效果各异。

例如智谱 CodeGeeX 推出一体机的模式,开箱即用,提供完善的软硬件和使用方式,特点是可以结合企业内部的代码仓库、知识库来加强代码能力,优势是代码是私有化安全的。

企业更关注怎么跟企业内部的代码、数据文档做结合,在模型训练阶段对这些代码并不了解,包括企业内部自己定义的 API 接口等等。

为了让模型更懂企业的代码,CodeGeeX 提供了几个方向:定制化的微调方案,在企业内部去用它们自己的代码去对模型进行强化,还包括 RAG 检索增强方案,即把企业代码和文档作为知识库来辅助预测。

有投资人并不看好创业公司做代码大模型,他们认为 AI Coding 这块未来依然是通用大模型公司的事情,大模型公司更擅长做这件事,创业公司很难产生差异化,而且竞争对手太多了。

而且,软件 To B 一直面临的问题是国内 B 端客户用不起,这是国内 SaaS 一直没做起来的原因之一。

的确,根据开发者的反馈,如 GPT-4o、Claude 3.5 Sonnet 这样的通用大模型现在也能保持不错的代码效果。

一位从业者认为,未来可能会有一个在所有模态上都很强的六边形战士模型,但真正从B端商业化落地来看,不太有太多公司有能力本地部署这样一个参数量巨大的六边形战士模型,市场仍然需要一个代码垂直模型。

那么创业公司如何跟大厂竞争?

大厂在理论上可以做所有的事情,但:

首先,大厂需要在所有能做的事情里去选择以及决定对应的资源调配,对于大厂而言,有太多方向可以得到比单个 B 端 coding 场景更多的资源,比如通用大模型、AGI 等,而创业公司 100% 聚焦在一件事上;

其次,在垂直场景里,大厂的认知不一定比创业公司更深。B 端 AI coding是一个非常垂直且专业的场景,在大模型的基础上仍然需要大量进阶的代码 knowhow 和对客户需求的深度洞察。

aiXcoder COO李力行认为,首先需要通过全流程的数据治理和个性化训练,使大模型能够深刻理解并掌握企业领域知识,落地企业专属代码大模型;随后,利用多 agent 等方式结合传统软件开发工具和方法,高效地解决企业复杂的软件开发任务。

4Agent 是趋势

软件开发是一个复杂的系统工程,coding只占其中很少的部分,还涉及到需求理解、debugging、优化、部署等多个环节。而以 GitHub Copilot 为首的 AI 编程辅助产品现在只能写点“函数砖头”,砌墙的事还得程序员亲自来。

但 Devin 的出现满足了外界对 AI 软件开发的想象力,不止于 coding 阶段。

在 3 月初创公司 Cognition 的 demo 演示中,Devin 化身为一个拥有“全栈技能”的AI程序员,一个能够独立完成任务的自助系统,在快速原型设计、修复bug和复杂数据的可视化上表现优秀。

从交互上,Devin 带来了一种新的AI软件开发形态,包括命令行、浏览器等组件,是第一个脱离 IDE 的软件开发形态。从实际任务上,Devin 愿景是完成整个软件开发的需求任务,这种能完成更复杂开发任务的 Agent 已经成为业内确定的产品趋势。

而 Devin 则被称为 Agent 的“ChatGPT 时刻”。

一位 AI Agent 创业者赵聪认为,issue level 的 coding 都需要用 Agent 来实现,解决的是更复杂的问题,自动解 issue。issue 等同于文件级的代码,而现在的代码生成、补全都是在单文件上,解 issue 往往是针对整个项目,拥有多个文件。

aiXcoder COO 李力行看好 Agent 在软件开发领域的应用,他认为多 Agent 协作也让全流程代码生成等更加复杂的开发任务成为可能。在2024年, aiXcoder 推出基于Agent技术的智能化软件开发系统2.0,通过大模型+软件开发工具调用解决企业项目级代码生成问题,确保复杂开发场景下代码生成的高效性、准确性和可靠性。

Devin 想要去解决一个问题,或者说修改一个仓密度的代码,大家都在朝着 Devin 的方向做探索,但大模型能力现在几乎还达不到。目前 Agent 还处于探索、实验阶段。

距离 Devin 发布已经过去五个月,依然没有任何更进一步的消息。其 CEO Scott 也透露,他们尚无明确的公开预览(public preview)时间表,目前仍在内测阶段,即无确定的产品形态。

CodeGeeX 负责人郑勤锴则认为,Agent 只是实现某个功能的路径,现在的 Agent 很多只是简单的工具调用。重要的还是看最终实现的功能,能达到多高的可用性。

赵聪认为未来的创业机会在 AI Agent,因为 AI 编程赛道上 Copilot 微软已经做了,很难再与之竞争,所以只能往前走,即直接替代人。开发者平时很多工作都类似于拿着螺丝刀拧螺丝,Copilot 就是把螺丝刀换成了电钻,而 AI 程序员则是给开发者配个小弟,所以 Copilot 依然是个好工具,但 AI 程序员就是生产力,这是完全不同的两件事。

但做 AI 程序员不是科学问题,而是个工程问题。这里涉及路径选择的问题,在做 AI 程序员时有公司是自己做模型,赵聪认为这是错误的路径,他不相信所谓的小模型/垂直模型,觉得模型就只有大模型,因为只有大模型能带来智力。

未来面临的挑战是,所有人都要往 project level coding 走,要依赖底层模型的进化,但模型太贵。赵聪认为GPT-4 至少得再降价 10 倍,才具有真正的可能性。

在软件工程中,AI 难以解决的两大问题是:1)复杂项目的业务上下文理解。2)每家公司独特的工程架构、逻辑和实践。在解决这两个问题之前,AI Agent 还无法完全替代人类程序员。

但多位从业者一致认为,随着 AI 不断进化,未来高级程序员不会被替代,拧螺丝的初级程序员被替代已经能看到,未来程序员的培养路径也跟现在不一样,就像高科技种地,不需要真的从种地开始学,而是先从学习使用工具开始。

未来 C 端应该更好地服务普通人,而不仅仅是开发者,如果普通人也能通过 AI 实现编程,那么 C 端有可能完成一次爆发,而这需要更强的模型能力,端到端仍然需要 Agent 来实现。

但可以肯定的是,未来程序员逐渐都会离不开 AI 编程工具。

(文中赵聪为化名)

0 阅读:0

智能科技有评论

简介:感谢大家的关注