首页 >>  正文

csdn

来源:baiyundou.net   日期:2024-08-06

作者 | 深度999出品 | CSDN(ID:CSDNnews)

“人人都是开发者”的时代终于要来临了!

ChatGPT 的出现,引领了科技公司追逐 AI 的浪潮。相比初代 GPT-3,最新基于 GPT 3.5 的模型之所以受到更加广泛的关注,主要原因之一便是它在加入了代码作为训练数据后,彻底颠覆了传统模型较弱的思维链推理能力,大大地提升了模型的推理能力。因此,这也催生了多款针对开发者的辅助和革命性工具。

GPT 3.5加入了代码作为训练数据后,大大提升了推理能力

为给广大开发者推荐更多好用的辅助(Ti Dai)工具,CSDN 重磅发起“CSDN AI 编程榜单”,定期针对业界主流的 AI Coding 产品进行评测。本期榜单中,我们共选择了六款 AI Coding 产品,分别是:ChatGPT、GPT 3.5、CodeBBT、GitHub Copilot、CodeGeeX、aiXcoder。

话不多说,我们先看评测得到的关键性结论:

ChatGPT 以几乎接近满分的成绩,摘得榜首,成为开发者辅助编码的最佳神器;

目前尚未有任何一款产品达到 C4(高度自动编程)级别,即,想要在没有任何的人工干预下,生成理想中的代码也还存在一定的困难,正因此,至少就当前阶段而言,“程序员即将被 AI 所取代”的传言也并不可信;

C++ 和 Java 在各模型的 3 分占比高于 Javascript、Python 及 Shell,意味着各大模型对 C++ 和 Java 语言支持要优于其他几种语言。

注:本次评测为了快速获取评测结论,从生成任务数据集到评分/评级若有遗漏和不足之处,望各位大佬斧正。也欢迎本次没有覆盖到的产品联系我们([email protected]),加入评测。

AI 编程究竟哪家强?我们一起来评测

首先,根据流行度、发布时间、智能化等维度,我们选取了如下六款产品作为评测对象:

GPT-3.5是 OpenAI 在GPT-3 基础上微调出来的版本,它采用了与 GPT-3 不同的训练方式,所产生出来不同的模型,比起 GPT-3 来的更强大。

GitHub Copilot(https://github.com/features/copilot,是 GitHub 和 OpenAI 于 2021 年 6 月推出的人工智能工具,它可以根据命名或者正在编辑的代码上下文为开发者提供代码建议。

GPT-3.5-Turbo(ChatGPT)https://openai.com/blog/chatgpt),是 OpenAI 于 2022 年 11 月推出的人工智能聊天机器人程序。该程序使用基于 GPT-3.5-Turbo 架构的大型语言模型并以强化学习训练。ChatGPT 目前仍以文字方式交互,而除了可以用人类自然对话方式来交互,还可以用于甚为复杂的语言工作,包括自动生成文本、自动问答、自动摘要等多种任务。

CodeGeeXhttps://github.com/THUDM/CodeGeeX/blob/main/README_zh.md),是智谱 AI 联合清华、华为发布的代码生成模型,它是一个具有 130 亿参数的多编程语言代码生成预训练模型。采用华为 MindSpore 框架实现,在鹏城实验室“鹏城云脑II”中的 192 个节点(共 1536 个国产昇腾 910 AI 处理器)上训练而成。

CodeBBT,是超对称技术公司近期发布的 BBT-2 大模型系列中的代码模型。继 2022 年 6 月发布 10 亿参数的 BBT-1 金融大模型后,超对称公司接续研发了 120 亿参数的通用语言大模型 BBT-2,并在 BBT-2 的基础上训练中英文代码数据,推出面向中文开发者的代码模型 CodeBBT。

aiXcoderhttps://www.aixcoder.com),是硅心科技研发的国内首款基于深度学习的智能化软件开发工具,利用 AI 技术实现代码⾃动⽣成、代码⾃动补全、代码智能搜索等功能,提升开发者开发效率与代码质量。

基于以上 AI 辅助代码工具,在生成任务的选取中,生成任务语言以中文自然语言环境为主。测试集包含了 C++、 Java、 Javascript 、Python 和 Shell 5 种主流的开发语言。另外,以开发者在 CSDN 平台上的 Text→Code(Code→Text)、Troubleshooting、命令行等高频需求为生成任务。评测同一个 Query 在不同模型搜索返回结果的效果,并选择 50 个 CSDN 搜索高频 Query。

CSDN 发布 C1-C5 级自动编程评测方法与标准

为了更直观看出不同产品之间的区别,我们模仿自动驾驶的 L1-L5 级别划分,将自动编程分成了 C1-C5 级别。

倘若能够达到 C5 级别,那么也可以畅想一下未来:产品经理能够直接用自然语言写成的需求文档作为输入,自动生成代码、自动化测试、自动化部署上线等。

当然,自动驾驶也分路况,自动化编程也会分“路况”,在此,我们也将每一档划分了相应的分值:

*说明:评分涉及的编程语言指主流编程语言 Java、C/C++、Javascript、Python和Shell

单条 Query→内容打分规则

3 分:有正确输出,能直接解决问题

2 分:有错误输出,不能直接解决问题,但输出可参考

1 分:有输出但不能解决问题,输出不可参考

0 分:无输出

评测三步走

本次的测试集主要是 CSDN 上用户主要在 AI Coding 上的高频需求同时兼顾对主流编程语言的覆盖,可能不能完全体现各个产品/模型的性能,并且上述产品是针对不同的场景来设计的,所以在不同的“路况”下,表现会有差别,例如 Copilot 和 CodeGeex 就是专门为 IDE 环境设计的辅助开发工具,所以在代码生成方向很强,但是 Troubleshooting 上就会差一些,可能不是没有这个能力,而是针对性设计的结果。

因为所有产品均未达到 C4,故所选的测试集均为 C4 级别以下的数据。同时我们以真实的用户需求为评估方向,因此我们以 C3 代码生成和代码调试展开评估以及阐述。

具体评测步骤按下面评分对各项打分求和即是模型最终得分,再根据模型档位对应的分数范围将模型划分到对应档位。

1. 函数级别的代码生成、代码分析的评分,对应分数作为在 C3 等级的评分

单条评分加和,具体单条评分如下,其评分规范参见上文第二部分:

在遵循此步骤的基础上,我们以生成一个「 Python 爱心代码」为例,不妨先看看每种模型的表现情况:

模型:GPT-3.5-Turbo(ChatGPT)

得分:3 分

输出内容如下:

模型:GPT 3.5

得分:2 分

输出内容如下:

模型:CodeBBT(超对称)

得分:3 分

输出内容如下:

模型:Copilot(vscode插件)

得分:3 分

输出内容如下:

模型:CodeGeeX(智谱)

得分:1 分

输出内容如下:

模型:aiXcoder

得分:1 分

输出内容如下:

那么,生成代码和捉 Bug 能力是否相一致?

为了证明不同模型之间的能力,我们又从 Troubleshooting 类入手,如用 java.lang.illegalstateexception: failed to load applicationcontext 异常的代码问题,进行评测:

模型:GPT-3.5-Turbo(ChatGPT)

得分:3 分

输出内容:

模型:GPT 3.5

得分:2 分

输出内容如下:

模型:CodeBBT(超对称)

得分:1 分

输出内容如下:

模型:Copilot(vscode插件)

得分:1 分

输出内容如下:

模型:CodeGeeX(智谱)

得分:1 分

输出内容如下:

模型:aiXcoder

得分:0 分

无输出

评测结果出炉:ChatGPT 一马当先,国产化 AI 工具还有较大的差距!

几经测试之后,最终得出各产品档位得分(150 分制)情况如下:

*说明:GitHub Copilot(vscode插件)的 VSCode 版本为:1.75.1 ;GitHub Copilot:v1.76.9071

各产品分项得分(150 分制)

本次评测结果中,ChatGPT 名列前茅,aiXcoder 排名最末位,其他几个产品水平相差无几。

各产品的分数分布

不同测试集的分数分布

不同编程语言类型的分数分布

主要结论:

各产品得分最高为 GPT-3.5-Turbo(ChatGPT),得分最低为 aiXcoder,因此在提供辅助代码的智能化方面,ChatGPT 的表现最佳;

0 分占比最多为 aiXcoder,3 分占比最多为 GPT-3.5-Turbo(ChatGPT);

代码生成类型的 Query 得分高于 troubleshooting 类型的 Query;

C++ 和 Java 在各模型的 3 分占比高于 Javascript、Python 及 Shell;

CodeBBT(超对称)对比 GPT-3.5-Turbo(ChatGPT)的 GSB(GOOD、SAME、BAD)条数为:0:10:40,这意味着国产的 AI 编程工具和领先的 ChatGPT 之间还存在一定的差距,有不少的上升空间。

写在最后

本次评测中,ChatGPT 出类拔萃,几乎接近满分,大家追赶 ChatGPT 的步伐任重而道远有些遗憾的是,所有的产品都均未达到 C4 级别,离 C5 也还有很长的路要走。

然而,AI 一旦踏上了这个方向,必然势不可挡,人人都是开发者的时代也许就在不远的将来。作为开发者社区,CSDN 也将持续致力于 AI 编码工具的研究与关注,敬请期待下期评测内容。

","gnid":"9738bde2600cce92e","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t013d73ffee4a20366b_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t013d73ffee4a20366b.gif","width":"640"},{"desc":"","height":"649","title":"","url":"https://p0.ssl.img.360kuai.com/t01f475d9d0da943918.jpg","width":"1080"},{"desc":"","height":"1752","title":"","url":"https://p0.ssl.img.360kuai.com/t01e3f2c0aa812e975c.jpg","width":"1080"},{"desc":"","height":"527","title":"","url":"https://p0.ssl.img.360kuai.com/t018297d73c02fc2ad5.jpg","width":"1080"},{"desc":"","height":"859","title":"","url":"https://p0.ssl.img.360kuai.com/t013cdd2ac0a1f965ee.jpg","width":"296"},{"desc":"","height":"422","title":"","url":"https://p0.ssl.img.360kuai.com/t0183039b145b658ef0.jpg","width":"232"},{"desc":"","height":"476","title":"","url":"https://p0.ssl.img.360kuai.com/t0146b2c130f6d3eaf7.jpg","width":"336"},{"desc":"","height":"341","title":"","url":"https://p0.ssl.img.360kuai.com/t011aa6f69fd2566810.jpg","width":"459"},{"desc":"","height":"851","title":"","url":"https://p0.ssl.img.360kuai.com/t016e863161dbba9cb9.jpg","width":"307"},{"desc":"","height":"791","title":"","url":"https://p0.ssl.img.360kuai.com/t01a2943890bd6600ad.jpg","width":"672"},{"desc":"","height":"317","title":"","url":"https://p0.ssl.img.360kuai.com/t01af7c864531ba69c1.jpg","width":"1029"},{"desc":"","height":"528","title":"","url":"https://p0.ssl.img.360kuai.com/t0102251c3df956b272.jpg","width":"1080"},{"desc":"","height":"218","title":"","url":"https://p0.ssl.img.360kuai.com/t0155a5d882f0612351.jpg","width":"1080"},{"desc":"","height":"156","title":"","url":"https://p0.ssl.img.360kuai.com/t0125573b522a51ec39.jpg","width":"848"},{"desc":"","height":"232","title":"","url":"https://p0.ssl.img.360kuai.com/t0161e884abdfd3fd41.jpg","width":"907"},{"desc":"","height":"135","title":"","url":"https://p0.ssl.img.360kuai.com/t011385a4d91049044d.jpg","width":"1080"},{"desc":"","height":"171","title":"","url":"https://p0.ssl.img.360kuai.com/t012b8b0ce3ef495d01.jpg","width":"1080"},{"desc":"","height":"511","title":"","url":"https://p0.ssl.img.360kuai.com/t01bf0c3cd946f12cfe.jpg","width":"1080"},{"desc":"","height":"652","title":"","url":"https://p0.ssl.img.360kuai.com/t01a4507801b9cd9476.jpg","width":"1024"},{"desc":"","height":"657","title":"","url":"https://p0.ssl.img.360kuai.com/t017ebbbebd582ac2f3.jpg","width":"620"},{"desc":"","height":"644","title":"","url":"https://p0.ssl.img.360kuai.com/t01463abec1ed9b9e39.jpg","width":"660"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1678712711000,"pure":"","rawurl":"http://zm.news.so.com/3ce7bcd72ef1014256b13831ac67728d","redirect":0,"rptid":"cae77d3c7c34bb8e","rss_ext":[],"s":"t","src":"CSDN","tag":[{"clk":"ktechnology_1:turbo","k":"turbo","u":""},{"clk":"ktechnology_1:java","k":"java","u":""},{"clk":"ktechnology_1:pilot","k":"pilot","u":""}],"title":"各家的“ChatGPT”什么时候能取代程序员?CSDN AI编程榜发布

平面侧5080CSDN是甚么意思?
尹支晨19827455078 ______ 集成化信息传播与服务平台

平面侧5080什么是CSDN帐号? -
尹支晨19827455078 ______ CSDN,中国软件开发联盟.它有非常强的专业性,其会员囊括了中国地区百分之九十以上的优秀程序员,在IT技术交流及其周边国内中第一位的网站.账号也就是该网站会员的登录号码.

平面侧5080CSDN是什么? -
尹支晨19827455078 ______ 是一个网站,上面有一个程序员常去的论坛,人气还可以,有软件开发方面的问题去那里问最好www.csdn.net

平面侧5080什么是CSDN???
尹支晨19827455078 ______ 是一个下载什么都要积分的网站 病毒也多 上次我花了5分 下载了一个卡丁车外挂 结果还是病毒

平面侧5080csdn属于什么类型的网站 -
尹支晨19827455078 ______ 是的,虽然其中也有硬件的内容,但是软件占绝大部分,包含应用程序开发,网页制作,操作系统等.

平面侧5080什么是CSDN号? -
尹支晨19827455078 ______ CSDN是“China Software Developer Network”的缩写 ,中国软件开发者社区. 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台.

平面侧5080CSDN英文全名是什么、这是干什么的 -
尹支晨19827455078 ______ chinese software develop net 中国软件开发联盟http://baike.baidu.com/view/5220.htm

平面侧5080天涯论坛和CSDN有什么区别?CSDN的英文全称是什么? -
尹支晨19827455078 ______ 前者是论坛,后这是软件啊. 电路交换数据网络(Circuit Switching Data Network); 中国程序员大本营(China Software Developper Network); 中国软件开发网络(China Software Devolopment Network)

平面侧5080CSDN的全拼是什么?ChineSe Developer Network -
尹支晨19827455078 ______ 全拼是:chinese software develop net 中国软件开发联盟 希望对你有帮助哦!

平面侧5080谁教我用一下CSDN -
尹支晨19827455078 ______ 一,提问编程方面的问题去哪里提问. 进入CSDN论坛(http://community.csdn.net/)后,左边应有树形分支.编程方面的问题在树形分支的 开发语言 大类 里的各小类中去提.学编程应该是针对某门语言和工个去学的,比如学VC,Delphi,在小类...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024