您的位置:首页 > 互联网

GPT-4写代码不如ChatGPT,误用率高达62%!加州大学两位华人开源代码可靠性基准RobustAPI

发布时间:2023-09-05 15:41:35  来源:互联网     背景:

声明:本文来自于微信公众号 新智元(ID:AI_era),作者:新智元,授权转载发布。

【新智元导读】代码能否跑起来的不是判断可靠性的标准,用语言模型写代码还需要考虑生产环境下的预期外输入。

大型语言模型(LLM)在理解自然语言和生成程序代码方面展现出了非凡的性能,程序员们也开始在编码过程中使用Copilot工具辅助编程,或是要求LLM生成解决方案。

经过几版迭代后,目前LLM生成的代码已经很少有语法错误了,也更贴合用户输入的文本、符合预期语义,但针对LLM代码生成的可靠性和鲁棒性仍然缺乏彻底的研究。

代码的可执行并不等同于可靠,软件的开发环境、部署环境都存在很大的不确定性。

如果直接使用LLM生成的代码,可能会因为AP误用(misuse)导致更严重的问题,例如资源泄漏、程序崩溃;最糟糕的是,使用LLM代码生成服务的用户大多数都是新手开发人员,很难识别出「貌似可运行代码」下的隐藏问题,进一步增加了漏洞代码在现实中的应用风险。

现有的代码评估基准和数据集主要专注于小任务,例如面试中的编程问题,可能不符合开发人员在工作中的实际需求。

最近,来自加州大学的两位华人研究人员发布了一个用于评估生成代码可靠性和鲁棒性的新数据集RobustAPI,包括从StackOverflow中收集得到的1208个编码问题,涉及24个主流Java API的评估。

论文链接:https://arxiv.org/pdf/2308.10335.pdf

研究人员总结了这些API的常见误用模式,并在当下常用的LLM上对其进行评估,结果表明,即使是GPT-4,也有高达62%的生成代码包含API误用问题,如果代码被实际部署,可能会导致意想不到的后果。

论文相关的数据和评估器不久后将开源。

方法

数据收集

为了利用软件工程领域现有的研究成果,RobustAPI没有从零构建,而是基于在线问答论坛中频繁出现的Java API误用数据集ExampleCheck

研究人员从数据集中选择了23个流行的Java APIs,涵盖了字符串处理、数据结构、移动开发、加密和数据库操作等。

然后再从Stack Overflow中爬取与上述API相关的问题,只选择问题中包含在线答案的,可以保证RobustAPI是可回答的(answerable),能够更有效地评估LLM在「人类容易犯错问题」上的代码能力。

收集数据后将问题转换为JSON格式,包含四个字段:

1. id,为样本分配的唯一标识符

2. api,用来提示大型语言模型问题相关API

3. question,包括问题的标题和描述

4. origin,样本的原始URL

提示生成(prompt generation)

研究人员设计了一个提示模板,并用数据集中的样本进行填充,再从LLMs收集回复内容,并实现一个API使用检查器来评估代码的可靠性。

在少样本演示下进行实验时,每个示例都提供回复的格式,然后在最后放入数据集中的问题及相应API提示,模拟新手用户询问时提出的问题。

LLM在对话时可以识别特殊标签的结构,所以研究人员将问题和答案封装起来指示LLM生成问题的答案。

演示样本(Demonstration Samples)

为了深入分析LLMs的代码生成能力,研究人员设计了两个少样本实验:

1. one-shot-irrelevant,使用不相关的API(如Arrays.stream)作为语言模型的提示样例。

研究人员假定该示例可以消除生成代码中的语法错误。

2. one-shot-relevant,使用相同的API作为示例,包括一组问题和答案。

JAVA API误用

研究人员在使用API时,需要充分理解API的使用规则,以便实现理想的API效果。

一个典型的例子是文件操作,通过RandomAccessFile打开和写入文件时,需要注意两条使用规则:

1. 读取文件可能会引发异常。

如果在读取预期字节之前达到缓冲区限制,API将抛出IndexOutOfBoundsException异常;当该文件同时被其他进程关闭时,API将抛出ClosedChannelException。

为了处理这些异常,正确的实现应该将API包含在try-catch块中。

2. 使用后应应该关闭文件通道,否则的话,如果此代码片段位于在多个实例中并发运行的长期程序中,文件资源可能会耗尽,代码需要在所有文件操作后调用close API

另一个容易被误用的API使用规则的例子是一个特殊的数据对象TypedArray,需要开发人员调用recycle()来手动启用垃圾收集,否则,即使不再使用此TypedArray,Java虚拟机中的垃圾收集也不会被触发。

在没有垃圾回收的情况下使用该API会导致未释放的内存消耗,在生产环境部署后,在大工作负载和高并发性下会降低甚至挂起软件系统。

在RobustAPI数据集中,研究人员总结了40个API使用规则,具体包括:

股东大会后,有投资者撰文曝光了迈瑞医疗上述股东大会

1. API的保护条件,在API调用之前应该检查,例如File.exists()应该在调用File.createNewFile()之前;

2. API的调用顺序,例如close()的调用应该在File.write()之后;

美国股市又创新高

3. API的控制结构,例如SimpleDataFormat.parse()应该被try-catch结构所包围。

检测API误用

现有的评估LLMs生成的代码的研究通常使用人工编写或自动测试生成的测试用例,但即使是高覆盖率的测试用例也只能覆盖语义正确性,无法模拟生产环境中的各种意外输入,无法对代码的可靠性和健壮性进行完善的评估。

为了解决这个难题,研究人员使用静态分析的方法,在不运行测试用例的情况下,通过代码结构分析代码误用,可以保证对整个程序的全面覆盖,并且比测试解决方案的效率更高。

为了评估代码中API用法的正确性,先从代码片段中提取调用结果和控制结构,然后根据API使用规则检测API误用。

代码检查器(code checker)首先检查代码片段,判断是一个方法的片段还是一个类的方法,然后就可以对代码片段进行封装,并从代码片段中构造抽象语法树(AST)。

然后检查器遍历AST,按顺序记录所有的方法调用和控制结构,从而生成一个调用序列;检查器将调用序列与API使用规则进行比较,判断每个方法调用的实例类型,并使用类型和方法作为键来检索相应的API使用规则。

最后,检查器计算调用序列和API使用规则之间的最长公共序列:如果调用序列与预期的API使用规则不匹配,则报告API误用。

实验结果

研究人员使用4个语言模型(GPT-3.5,GPT-4,Llama-2,Vicuna-1.5)在RobustAPI上进行评估。

将可编译且包含API误用的答案除以所有可编译的答案后,计算得到各个语言模型的误用率。

从实验结果上来看,即便是最先进的商业模型,如GPT-3.5和GPT-4也存在误用的问题。

未来十年很可能进入智能眼镜时代

在零样本设置下,Llama的API误用率最低,不过大多数Llama的答案中都不包含代码。

一个与直觉相反的发现是,虽然OpenAI官方宣称GPT-4比GPT-3.5在代码生成上的性能提升达到40%,但实际上GPT-4的代码误用率要更高。

这一结果也表明,代码在现实世界生产中的可靠性和健壮性没有得到业界的重视,并且该问题存在巨大的改进空间。

参考资料:

https://arxiv.org/abs/2308.10335


返回网站首页

本文评论
1周卖超旗舰店2个月的销量!茶颜悦色成“福气店”黑马_茶颜悦色旗舰店是真的吗
1月16日 消息:今年支付宝集五福“福气店”商品销售情况,就像热门年货晴雨表。记者发现,短短几天,茶颜悦色推出的“五福组合装”已经兑换2万+件,折合售出8万多袋茶包。而茶颜悦色...
日期:01-16
日本与印度签署合作备忘录,共同构建半导体供应链「日本印度签署军事协议」
根据日经中文网消息,日本经济产业相西村康稔近期访问印度,他于7月20日与印度政府签署了旨在构建半导体供应链的合作备忘录。双方将以“日印半导体供应链伙伴关系”为题,针对印...
日期:07-22
iOS16.6.4正式发布,续航提升超出硬件极限,信号大幅优化,推荐「gopro9什么时候出」
今天凌晨苹果正式发布了iOS16.6第四个预览版,这个版本也被业内称为iOS16.6.4,距离上次更新时隔12天时间,那么iOS16.6已历经4次更新迭代,系统趋于成熟了,那么值得升级吗?首批果粉凌...
日期:06-28
腾讯:一季度游戏收入同比增10.8%,未成年人游戏时长占比0.4%
腾讯公布 2023 年第一季度财报,腾讯游戏业务收入 483 亿元,同比增长10.8%;在本土游戏业务中,未成年人在游戏时长、流水中占比仅 0.4%和 0.7%,较 3 年前同期大幅下降96%和90%。曝i...
日期:05-17
横空出世!ChatGPT全面高效,人工智能将对教育行业造成怎样冲击_人工智能促进教育变革
去年11月,生成式人工智能ChatGPT横空出世,引起全球广泛关注、兴趣和争议。对于教育界来说,最直接的冲击,莫过于瞬间带来抄袭作弊的危机。即使不使用需要付费的更精准、更深入的...
日期:08-26
周鸿祎宣布上线“360AI商店” 发挥浏览器优势助力AI应用落地_360老总周鸿祎家乡在哪
【网易科技5月14日报道】360集团创始人周鸿祎近日宣布上线360AI商店,旨在集成全球AI工具,为中小企业提供生产力工具,并使人工智能普惠化。360AI商店作为AI导航平台,将展示并整合...
日期:05-14
眨眼就能照相?哈佛从神经信号提取出图像,成果登Nature_神经信号是怎么携带信息的
声明:本文来自于微信公众号 量子位(ID:QbitAI),作者:克雷西,授权转载发布。将肉眼直接用来“照相”,也许将成为可能……哈佛团队推出的新模型能够分析神经信号,甚至从视觉皮层中直...
日期:05-09
网易云音乐大变局 迎来新任CEO 创始高管悉数离场_网易云音乐大股东
  |四大金刚  2013年夏秋之交的北京,五道口。  网易北京总部还没搬去西北旺的后厂村,仍在“宇宙中心”的清华科技园办公,5年后将担任网易云音乐内容运营副总裁的丁博和同...
日期:09-30
三星电子发展「反其道而行?三星电子计划明年增加最大工厂芯片产量」
12月26日消息,据韩国当地媒体周日时候报道,尽管预计总体经济形势将持续放缓,但三星电子明年仍计划增加旗下最大半导体工厂的芯片产能。这部手机的尺寸是多少与三星此举形成鲜明...
日期:12-26
玩转金山卫士一键清理 轻松释放上G磁盘空间
  电脑使用时间长了,经常会出现很多系统垃圾文件,并保存大量的操作系统和软件使用痕迹,经常执行软件安装、卸载操作,也会保留很多冗余的注册表键值等耗费大量的磁盘空间,同时,...
日期:07-26
2023年PT展重磅回归:“打通信息大动脉 共创数智新时代”
通信世界网消息(CWW)首夏犹清和,芳草亦未歇。初夏6月,被誉为“ICT行业风向标”的中国国际信息通信展览会时隔一年半重磅回归。2023年6月4日至6日,由工业和信息化部主办的“第31届...
日期:06-02
小米第二季度营收674亿元 净利润同比增长147%
8月29日消息,小米发布了2023年Q2的业绩。业绩显示,2023年Q2集团总收入实现人民币674亿元,经调净利同比大增147%,达人民币51亿元,为2021年Q4以来单季度最高利润。2023年上半年,小米...
日期:08-29
喜茶 城市「喜茶联合11城文旅局推出城市文旅冰箱贴」
4月21日消息,喜茶正式宣布与广州市、江门市、洛阳市、三亚市、成都市锦江区、长沙市芙蓉区、杭州市上城区、宁波市海曙区、南京市秦淮区、西安曲江新区、厦门市思明区的文旅...
日期:04-21
瑞银:ChatGPT月活用户达到1亿人,创增长最快纪录
2月2日消息,瑞银周三公布的研究报告显示,在AI研究公司OpenAI推出AI聊天机器人ChatGPT仅仅两个月后,其月活跃用户在1月末达到了1亿人,这使其成为史上用户增长最快的消费者应用程...
日期:02-02
魅族 19 来了,魅友大会共邀大家一起聊聊魅族 19,新机外观或藏于海报中
2022 年 12 月 21 日消息。此前 @魅族科技 宣布新机将首批搭载骁龙 8 Gen2 芯片,12 月 19 日上午魅族官方宣布,将在 12 月 23 日的魅友大会 2022 上一起聊聊魅族 19,这也是官方...
日期:12-21
tp link手机_tplink手机登录入口192.168.1.1
TP-Link 手机是中国著名的网络设备制造商 TP-Link 公司推出的一款智能手机,它采用了高端的配置和良好的性价比,一经推出深受消费者的喜爱。TP-Link 手机于2016年首次推出,当时...
日期:06-03
一站式人才服务平台_前程无忧助力多地人社系统,提供全流程在线就业服务
  就业是民生之本,也是国家宏观经济治理的 “六稳”与“六保”之首。近期的中央经济工作会议则强调,要稳定就业总量,改善就业结构,提升就业质量。面对各种就业挑战,中央、地方...
日期:07-14
福特CEO:比亚迪等中国汽车制造商是我们最大竞争对手「比亚迪吉利收购福特」
特斯拉fsd2.0 中国5月26日消息,福特汽车首席执行官吉姆·法利(Jim Farley)周四表示,该公司在电动汽车领域最大的竞争对手不是美国领头羊特斯拉或跨城竞争对手通用汽车,而是中国...
日期:05-26
用科学眼观看组织文化,百度打造智能组织的关键为何是“时间”?
  父亲节期间,“AI复原爷爷照片引父亲泪崩”的话题登上了微博热搜。一位开发者利用百度飞桨的AI技术,基于爷爷生前的照片,制作了逼真而生动的爷爷视频形象,并让爷爷和父亲实...
日期:02-24
华为P60外观正式曝光:正面几乎没黑边「华为p60还会有吗」
今天傍晚华为P60外观正式曝光,而且还有一些屏幕的细节、新技术同时曝光。5月19日华为mate新品华为即将上市折叠屏手机华星光电今年6月发布过一款名为“等高高斯四曲面”的屏...
日期:11-05