【AI编码产品】通义灵码-你的智能编码助手,提供代码智能生成、研发智能问答能力

用户群体

从产品、研发、测试到运维的各个阶段

  • 产品需求阶段,产品助手,他会和你进行多轮交互,再把需求转换成一个比较规范的产品文档
  • 研发阶段,除了AI 辅助编码工具,还有AI review代码
  • 测试阶段, AI 生成测试用例,根据我的产品需求生成库用例,然后帮我排期
  • 运维阶段,基于Multi-Agent做了一套运维 机器人。它可以帮你提单,帮你查询资源,帮你做一些简单的故障定位,甚至帮你 跟进 故障,发现 风险 ,并通过多轮沟通来解决风险

功能场景

  • 代码补全/代码续写
  • 代码生成(单元测试/自动化测试用例)
  • 代码优化
  • 代码解释
  • 代码翻译(跨语言)

引入落地的关注点

  • 在选一款AI编码工具时,最看重的还有哪些?

    • 考虑到工具在企业内部能不能很好地落地,能不能跟企业内部的系统有机结合。
    • 非常看重企业内部的知识库能不能便捷导入。
    • 工具的功能点是否完善,能不能提供像企业级RAG等企业特别关注的功能,有没有个人采纳率的统计。
    • 评估工具为企业带来的实际价值,无法计算投入产出比。
  • 趣丸内部哪些场景是使用AI编码工具比较多的?

  • 第一个难点——让大模型理解企业个性化框架的特点,包括理解企业具体的业务,其实是AI编码工具普遍面临的挑战。

    • 一个事实:大模型都是基于公开数据去训练的,如果把一个大模型直接引入到企业内部,它一定是个“外地人”。要想把这个大模型变成“本地人”,我们需要做什么?
    • 企业内部的知识库,公司私有的知识库
  • 聊几个业界讨论比较多的问题,也想听听两位的观点和解法。一个是关于代码安全的问题

    • 思路是企业内部要对代码进行分类分级
    • 灵码专属版
    • “代码安全”的另一个面向,人们也会担心AI生成的代码本身就不安全。
  • 对于AI可能生成不安全的代码,趣丸有什么应对思路

    • 在AI提交代码的时候,用另一套AI去review代码,检查其中有没有安全风险。
    • 除了基于传统的Sonar扫描做防范,我们还有一套基于大模型的新型策略。
  • AI编码工具会取代程序员吗?

    • 从大模型目前的原理来看,它更擅长模仿
    • 不管是代码助手,还是Agent应用,目前看来都更多是帮助开发者去做他们不愿意做的一些事
    • 现在这种自动化的编码工具的出现,会促使开发队伍的人才转型,我们要向更具创造力、更高价值的方向转变
  • 从写代码到整体的研发效能提升,中间有多大的gap?

    • 一个研发人员真正写代码的时间占比可能在百分之二三十。剩下大量的时间需要沟通、测试、写文档、设计等等。
    • 研发过程中,你还需要哪方面用 AI 帮你做效能提升?
  • 具体还有哪些方面可以让AI帮忙呢?

    • 产品、研发、测试到运维的各个阶段都做了尝试,都有一定的AI工具落地。
  • 趣丸内部现在的推广速度是什么样的?

    • 我们从最开始只有 10% 不到的人使用,经过一个季度,已经达到了 80% 以上了。

当一家公司 80% 的程序员都开始用 AI 写代码后,发生了哪些变化?

通义灵码 - 阿里巴巴

灵动指间,快码加编,你的智能编码助手

基于通义大模型,提供代码智能生成、研发智能问答能力

通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/API 的使用场景调优,为开发者带来高效、流畅的编码体验。

用户:从产品、研发、测试到运维的各个阶段

功能:代码补全/代码续写、代码生成(单元测试/自动化测试用例)、代码优化、代码解释、代码翻译(跨语言)

产品需求阶段,产品助手,他会和你进行多轮交互,再把需求转换成一个比较规范的产品文档

研发阶段,除了AI 辅助编码工具,还有AI review代码

测试阶段, AI 去生成测试用例,根据我的产品需求生成库用例,然后帮我排期

运维阶段,基于Multi-Agent做了一套运维 机器人。它可以帮你提单,帮你查询资源,帮你做一些简单的故障定位,甚至帮你 跟进 故障,发现 风险 ,并通过多轮沟通来解决风险

如何理解代码能力是检验一款大语言模型能力的关键指标?

  1. 代码本身也是一种特别的语言
  2. 从应用场景来看,调查显示大概有29%的大模型应用场景是人们希望大模型帮他去写代码

通义灵码现在用的是多大参数的模型?

在公共云上给开发者提供的是通义最好的模型,千亿级的参数。

大参数模型,再加上互联网实时RAG,能有效提升代码生成的质量和问答的精准度。

大参数+实时RAG的架构已经成为AI编码产品的标配,因为提升精准度对开发者来讲是一大刚需。

目前最常用的场景有哪些?

今天70%由AI生成、被人类采纳的代码还都是来自于代码补全

在IDE里做代码的直接续写,一定是门槛最低、开发者最直观能感受到的能力。

代码补全/代码续写

在问答这块,我们发现大概有七成的问答是自由问答

他可能圈选一下代码,让AI做简单的优化,或者针对不会写的一段代码提出一个问题,或者让大模型直接生成一个算法,类似这样的场景是非常多的。这些本质上都是一种学习

过去我需要去查搜索引擎,还要甄别各种各样的垃圾信息,现在可以直接问大模型。

代码优化代码生成

我的一个前端工程师朋友还提到了一个场景:因为她正在学一门新的编程语言,可以通过AI工具的问答功能,让她更快掌握这门新语言。

对,这也是一种典型的学习场景。当然,还有一些深层次的代码任务

代码解释算是一个入门,更深层次的我们认为有两个,一个是单元测试,还有一个是代码优化或者叫code review。这两个其实也都跟质量和精准度相关。

所以我们可以很清楚地看到,首肯定要解决效率问题,再解决质量问题

代码解释代码优化代码生成:单元测试

现在已经到了解决质量问题的时候了,人们对大模型有越来越高的精度要求。

我们认为,普遍来讲现在做单元测试和code review的产品都没有达到一个非常好的水平。

举个例子,今天在单元测试的一些复杂case上,一次性编译通过率在30%,也就是说70%的还需要人类进行修正

从趣丸的角度,除了代码的采纳率和准确率之外,在选一款AI编码工具时,最看重的还有哪些?

作为企业,我们选择一款工具,就要考虑到****工具在企业内部能不能很好地落地,或者说能不能跟企业内部的系统有机结合

以AI编码工具为例,我们会非常看重****企业内部的知识库能不能便捷导入

当然,也包括工具的功能点是否完善,能不能提供像企业级RAG等企业特别关注的功能,有没有****个人采纳率的统计——如果没有这些数据,其实我们很难评估工具为企业带来的实际价值,无法计算投入产出比

在这些方面,我们认为国内像通义灵码这样的产品相比国外的AI编码产品更有优势,能力支撑上更全面、更友好

这些点都非常重要,也很值得产品方关注。目前,趣丸内部哪些场景是使用AI编码工具比较多的?

经过我们的调研,除了代码补全之外,基本所有人都会用代码解释的功能。

这是一个相对“深层次”的场景,但其实也是个刚需场景。

因为在企业内部,所有开发者可能最不喜欢的一件事就是****去读别人的代码、去理解别人的代码

现在AI 工具可以帮他去解释代码,这就省去了大量的时间。我们看到的数据是,基本上每人每天都会至少使用一次

代码解释会有上下文长度的限制吗?

目前大模型上下文都比较长,也会有一些函数特别长,存在多轮对话后超过上下文长度的。

但是我们通过工程或者是规范层面就可以很大程度上解决这个问题。

因为在一般开发过程中,是不允许一个函数写上万行这种情况存在的,所以通常经过多轮对话都能解决问题。

我们在调研中,只有3%的用户反馈,因为解释的代码附加上下文很长,在很多轮对话后,会有超出token的情况。

除了代码解释之外,还有哪个场景用的比较多?

因为我们内部正在启动一个项目,把过去C++的遗留项目全都转成用Golang和Java语言,所以这也是一个需求很大的场景。

目前来看,大模型可以完成百分之四五十的工作,剩余的一些工作还是需要我们手动去改。这里就涉及到神秀刚刚说的“准确度”问题。

我们当然希望AI写出的代码可以直接用在工程上,而不是之前要读别人写的代码,现在改成读AI生成的代码。

代码翻译:跨语言

目前趣丸内部有多少人在使用AI编码工具生成代码?

代码生成

在整体的研发人员中,扣除一些研发负责人,占比应该超过了80%

试验了将近一年后,我们做了一次调研,目前内部有超过60%的人认为AI编码对提效是比较明显的,有超过10%的人认为提升巨大。一些编程语言的AI生成代码占比甚至能达到百分之四五十

这个语言是Java吗?

对。

Java采纳率特别高,原因是什么?

Java的整体语料非常丰富,工程框架也比较标准化,所以模型在Java上的表现肯定会更好。

另外,从通义灵码线上的数据来看,有四成的开发者是Java开发者,这是我们的第一大语言。今天中国开发者对Java真的是情有独钟。所以我们会重点去优化Java的表现,也取得了很不错的效果。

其实阿里云云效团队做通义灵码这款产品之前,在2021年就开始做代码助手小模型了。当时这款小模型就支持了两种语言,Java和Python。这次,我们也把过去两年多在Java上的调优经验迁移到了通义灵码上,包括跨文件的解析、整体幻觉的消除、框架的调优、单元测试的经验,甚至一些代码规约等,我们都做了融入。

所以很多使用者反馈,今天通义灵码的Java能力,不管是跟国内还是国外同类型产品PK都有一定优势。

我知道通义灵码支持200多种编程语言,其中有哪些语言的表现是有待提升的吗?趣丸可以提提建议。

从我们目前内部使用情况来看,像Dart这样的小众语言效果会差一些,像VUE之类的前端语言可能需要持续优化。

黄金提到的前端语言,确实会稍微难一些。首先,今天很多企业都有个性化前端框架,不一定是基于开源的。所以,如何让大模型能够感知到企业个性化框架的特点,生成可用的代码,是要解决的第一个难点。第二,前端语言是脚本型语言,代码引用链解析、程序分析等等都不太一样,需要去做特别的定制和优化。第三,前端语言的版本特别多,比如像我们经常说的VUE2、VUE3,语法或API都完全不同,我们还要让模型能清楚地识别各种框架的差异。

你提到的第一个难点——让大模型理解企业个性化框架的特点,包括理解企业具体的业务,其实是AI编码工具普遍面临的挑战。

这一点我们深有体会。我们不能回避一个事实:大模型都是基于公开数据去训练的,如果把一个大模型直接引入到企业内部,它一定是个“外地人”。要想把这个大模型变成“本地人”,我们需要做什么?

我们总结下来,就是把公司所有的产品需求、内部代码、自动化测试用例等等都建成一个公司私有的知识库。把这些知识库赋能给大模型,最终大模型才能产生我们想要的效果。

首先,是产品的知识库。比如说功能开发,我们可以直接在辅助工具里引入这一部分产品需求作为上下文,去提升生成代码的相关性。

其次,过去我们产生了很多测试用例,都与产品质量紧密相关。所以我们也建了一个测试用例的库,并推出了AI 生成测试用例的产品,它会根据我的产品文档去生成测试用例,再把这些东西全部沉淀下来,形成一个知识库。

代码,其实是企业内部数量巨大的资产。针对过去的代码 仓库,我们也建了一个项目数据库进行索引,用在代码生成和单元测试用例生成

之前我们遇到的问题是单元测试用例生成的准确率很低。现在简单的测试用例开发者都能搞定了,剩余复杂的就通过代码仓库的索引、通过语法树去获取生成测试用例需要的所有信息,然后通过Agent生成,采用率有了大幅提升。

我们也在考虑沉淀个人的知识库,让AI了解你负责什么业务,你之前写过什么代码,最终成为开发者的一个分身。

非常有启发。

接下来我们聊几个业界讨论比较多的问题,也想听听两位的观点和解法。一个是关于代码安全的问题。

在我们决定引入AI工具时,讨论最多的当然也是代码安全。但首先要看到,AI生成代码是一个必然趋势。要迎接这个趋势,就要做好相应的准备。如果一概而论、一刀切,只会导致落后于人。

我们的思路是企业内部要对代码进行分类分级。我们规定了哪些代码库可以直接用AI补全。很多代码其实都是从开源社区来的,如果不涉及内部的核心业务逻辑,或者核心算法,我们都会鼓励开发者去使用AI工具。同时在人员上,我们也根据工作是否涉及机密进行了划分。

从产品建设方的角度,我们尊重每个企业对代码安全的要求,同时我们要看有什么技术可以帮助企业去解决问题。

我们从2017年开始做云效产品,云效其实就是企业在云上托管代码的平台,承担了上万个企业私有代码的存储。所以我们深知代码和代码安全对一个企业的价值。我们为中大型企业设计了灵码专属版。“专属版”其实是云上独立部署的实例,跟其他企业做了网络层面的隔离,首先保证了不会因为横向越权而出现代码泄漏。第二,我们将实例与企业内网进行专线连接,杜绝了外部对实例攻击的可能。第三,保证代码的合规存储,企业代码在云上全链路都不会存储,从技术原理上就规避了代码泄露。目前,已经有一大批国营企业、制造业企业和有核心算法的科技企业都开始使用通义灵码的公共云专属版

当然,关于 “代码安全”的另一个面向,人们也会担心 AI 生成的代码本身就不安全。我们正在考虑设计一个后处理机制,通过异步化的扫描将不安全的代码识别出来,来确保新写的这段代码对整个代码库是安全的,不会引入新的安全漏洞

对于AI可能生成不安全的代码,趣丸有什么应对思路?

AI确实可能会生成存在风险泄露的一些代码。过去我们是一个人写代码,另一个人审核,现在我们也基于同样的思路,在AI提交代码的时候,用另一套AI去review代码,检查其中有没有安全风险。除了基于传统的Sonar扫描做防范,我们还有一套基于大模型的新型策略。如果有安全风险,AI会拒绝你提交,也会给出修改建议等等。

类似SFT中的reward model,很有启发。

下一个问题,如何看待copilot辅助代码生成和端到端需求实现的Agent这两种产品形态?

Devin出来之前,我们并不是特别相信Agent能够独立完成一个端到端的需求或者代码任务。虽然大家有一些尝试,但是没有笃定这个方向是一定能够在短期实现的。Devin的突然出现给大家打了个样,今天确实通过Multi-Agent的架构,可以实现端到端的 AI 自主编程。所以紧接着,像OpenDevin这样的开源项目,或者像SWE-bench这样的榜单,都出现了。同时也出现了大量编程领域的创业公司都在做Agent。可以说,Devin的出现相当于掀起了一个浪潮,让全世界聪明的大脑都看到了一个非常有前景的机会。

最近灵码也开发了Agent版本,并登陆了SWE-bench Lite的榜单,Agent的编码问题解决率达到了33% 。我觉得这是一个不错的成绩。我们也计划九月份左右能推出一些类Agent的灵码产品。但这只是一个开始,我们估计可能还需要半年到一年的时间不断去打磨,最终才能做到部分生产级的落地。

我们深知今天大模型想要实现端到端的需求解决,还有很长的路要走。所以,我们更倾向于在一些能够确定上下文的场景先落地,如果要选择一个产品建设路径的话,我们也会这样一步一步来。

AI****编码工具会取代程序员吗?

从大模型目前的原理来看,它更擅长模仿。比如它更擅长有固定范式的一些工作,或者是过去很多人都已经做过的事情,因为有大量的过往数据可以参考。在这种机制被打破之前,我认为大模型更多地还是做重复性的工作。所以说不管是代码助手,还是Agent应用,目前看来都更多是帮助开发者去做他们不愿意做的一些事

我的看法类似。从目前大模型的能力来看,要达到替换人的这个地步,还有一段路要走。

还是以Devin为例,我们很早之前就测试过Devin,实际测试下来缺陷还比较多。另一个问题是,如果要让Devin写一个贪吃蛇游戏,它可以很快生成,但实际上我们做过调研,真正完全从零开始的需求在公司里可能只占了不到25%剩余百分之七八十的需求都是在原来一个巨大的项目中去更改代码。这时候Devin的局限性就很大,他没办法在一个很大的项目中按照要求去实现修改需求。你需要花费大量的精力,来描述清楚你的需求。

另一方面,对一个程序员来说,编码只是一部分工作。还有很多包括架构、产品设计上的工作,大模型无法替代。只是说现在这种自动化的编码工具的出现,会促使开发队伍的人才转型,我们要向更具创造力、更高价值的方向转变

从写代码到整体的研发效能提升,中间有多大的gap?

研发本身是一个极其复杂的工程系统,研发效能的提升也不是由单一因素决定的。还是让调研的数据说话,一个研发人员真正写代码的时间占比可能在百分之二三十。剩下大量的时间需要沟通、测试、写文档、设计等等

所以我们也会问:在研发过程中,你还需要哪方面用AI帮你做效能提升?

这是个好问题。

这是个好问题。所以具体还有哪些方面可以让AI帮忙呢?

目前,我们已经从产品、研发、测试到运维的各个阶段都做了尝试,都有一定的AI工具落地。除了之前介绍的那些,我们还有个产品助手, 他会和你进行多轮交互,再把需求转换成一个比较规范的产品文档。在研发阶段除了AI辅助编码工具,还有AI review代码。在测试阶段我们用AI去生成测试用例,根据我的产品需求生成库用例,然后帮我排期。在运维阶段,我们基于Multi-Agent做了一套运维 机器人。它可以帮你提单,帮你查询资源,帮你做一些简单的故障定位,甚至帮你跟进故障,发现风险,并通过多轮沟通来解决风险。当然这些方面,AI的表现都还有待提升。

最近这一年半年,整个国内AI编码类产品的普及程度有多大提升?未来会是什么样的增长趋势?

我们其实有一个判断,六个月之内, AI 编码类产品在头部企业和先驱型企业都会落地。如果再放眼一年之内,可能每个企业或多或少都会使用。换句话说,会无死角地覆盖。

趣丸内部现在的推广速度是什么样的?

我们从最开始只有 10% 不到的人使用,经过一个季度,已经达到了 80% 以上了。我们也定了今年下半年的目标,把整体的 AI 代码生成占比提升到 35% 以上

大家的期待和希望努力的方向很一致,我们也期待很快能看到神秀说的,每一家企业都用上AI编码工具。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简放视野

深度思考,简放视野。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值