首页 科技 军事 财经 教育 体育 房产 健康 汽车 安全 热点 人才 推选

教育

旗下栏目:

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

发布时间:2023-09-06 来源:原创/投稿/转载 作者:admin 人气:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  腾讯云618狂欢节特惠来袭!现在购买3年轻量云服务器,配置2核2G4M,只需396元!超值优惠,性能稳定,让您的云端之旅更加畅享。快来腾讯云选购吧!

  计算机科学家对几个大型语言模型在StackOverflow的Java编码问题上的回答进行了评估,结果发现这些模型的代码质量仍然不尽如人意。研究人员收集了1208个StackOverflow上的Java编码问题,这些问题涉及24个常见的JavaAPI。语言模型的代码生成还需要在工程质量上下功夫不仅仅追求生成更多代码。

  自从ChatGPT等生成式人工智能诞生,就有不少开发者尝试将其作为编程中的辅助工具。美国普渡大学的一项研究指出,ChatGPT在回答编程问题时的错误率,出乎预料的高。需要注意的是,OpenAI很早之前就在官网告知用户,AI的回答可能会产生关于人、地点或事实的不准确信息。

  代码大模型领域又热闹了起来!先是Meta开源代码专用大模型CodeLlama,且免费商用。效果也非常好,CodeLlama在HumanEval和MBPP代码数据集上的一次生成通过率轻松超越GPT-3.5,其中「Unnatural」版本的pass@1逼近了原始GPT-4。那么未来WizardLM团队还会带给我们怎样的惊喜,让我们拭目以待。

  OpenAI推出了企业版ChatGPT,提供企业级的安全和隐私保护,以及无限制的高速GPT-4访问、更长的上下文窗口、高级数据分析能力和定制选项等功能。企业用户可以在企业版ChatGPT上定制化部署,并拥有完全控制自己的业务数据。OpenAI还计划推出更多功能,如定制化、针对不同角色的工具等。

  OpenAI最近为ChatGPT引入了几个新功能。其中之一是加入了示例提示、建议回复和后续问题。OpenAI表示,正不断改进和开发ChatGPT,为用户提供更多控制和定制化的AI聊天选项。

  Llama2系列又上新,这回是Meta官方出品的开源编程大模型CodeLlama。模型一发布,官方直接给贴了个“最强”标签强调了一把“免费可商用”。如果你对CodeLlama感兴趣,GitHub项目链接文末奉上~不过,想要获得代码和模型权重得先给Meta发个申请。

  人工智能领导者OpenAI周一宣布了自ChatGPT首次亮相以来的最大新闻,它将发布一个针对大型企业的ChatGPT版本,增加了OpenAI及其财务支持者微软向客户提供的重迭部分。ChatGPTEnterprise包括无使用限制的访问GPT-4.比以前版本快两倍的性能和API积分等功能。根据该公司的博客文章,OpenAI计划「在未来几周内吸引尽可能多的企业」。

  陶哲轩早就预言,2026年GPT能帮数学家合着论文。GPT-4就帮他写出一段代码,直接节省了半小时的工作量。由于他非常熟悉LaTeX,手动将其修正为第二张图片并不困难。

  OpenAI表示,企业版ChatGPT提供企业级安全和数据隐私保护,提供无限速的GPT-4访问权限,支持32K上下文输入,高级数据分析功能,自定义选项等所有高级功能。这是目前OpenAI最强版本ChatGPT。

  8月23日凌晨,OpenAI在官网宣布,推出GPT-3.5Turbo微调功能并更新API,使企业、开发人员可以使用自己的数据,结合业务用例构建专属ChatGPT。GPT-4的微调功能将于今年秋天推出。一个GPT-3.5Turbo包含100,000个okens的训练文件并训练3个epoch的微调作业的预期成本为2.40美元。

  核心频率不同,CPU型号不同天玑9200+和天玑 9000 都是联发科的5G旗舰级芯片,天玑9200+和天玑9000都是采用台积电4nm工艺制程。天玑9200+的CPU最高主频为3.3GHz,而天玑 9000 的CPU最高主频为3.2GHz。两款芯片都支持双模5G、WiFi 6E和蓝牙5. 2 等技术。

  天玑9200+主频是3.0GHz,与骁龙 8Gen 2 相同,跑分要比骁龙 8Gen 2高一点点天玑 9200+ 处理器与天玑 9200 同架构,但所有核心频率增加,主频来到了 3.0GHz,与骁龙 8Gen 2 相同。跑分数据,天玑 9200+ 在 Geekbench v6 平台单核得分 2121 分,多核得分 5655 分。作为对比,骁龙 8Gen 2 的单核跑分成绩在大约 2000,多核成绩大约 5400。天玑9200+的安兔兔跑分大约为 136 万分,骁龙8Gen2 安兔兔跑分大约是128万分。

  在 Geekbench v6 平台单核得分 2121 分,多核得分 5655 分联发科已经正式官宣,天玑9200+将于 5 月 10 日发布,这款处理器的 Geekbench v6 跑分已经出现。天玑 9200+ 处理器与天玑 9200 同架构,但所有核心频率增加,主频来到了 3.0GHz,与骁龙 8Gen 2 相同。 根据爆料的跑分数据,天玑9200+在 Geekbench v6 平台单核得分 2121 分,多核得分 5655 分。 作为对比,骁龙 8Gen 2 的单核跑分成绩在大约 2000,多核成绩大约 5400。

  7天以上小米手环 8 搭载蓝牙 5.1,内置直流 3.87V 聚合物锂离子电池,型号为 M2239B1。上一代的小米手环 7 续航大约有9-15天左右。 小米手环 7 内置180mAh 电池。预计小米手环8的续航会比小米手环7续航略微提升一点。

  2K+ 分辨率魅族 20 Pro 采用6.81英寸直屏,2K+ 分辨率、100% P3 广色域、120Hz LTPO 高刷、最高 1200 nit 全屏亮度、最低 2 nit 全屏亮度,同时支持防蓝光、DC 调光等功能一应俱全;魅族 20 Pro采用旗舰级性能配置,包括顶级处理器第二代骁龙 8、12GB 起步的 LPPDR5X 大内存、至高 512GB UFS4.0 极速闪存以及 36424 平方毫米的立体散热堆迭。

  第二代骁龙 8,LPPDR5X+UFS4.0,2K三星E6 材质Super AMOLED屏幕魅族 20 Pro,内置第二代骁龙 8,LPPDR5X+UFS4.0,搭载了2K三星E6 材质Super AMOLED屏幕,屏幕尺寸6. 81 英寸,支持120Hz自适应屏幕刷新率和1500Hz瞬时触控采样率,峰值亮度可达1800nit,屏幕还通过了SGS抗蓝光、抗频闪护眼认证;破晓灰、曙光银、朝阳金三种配色,整机厚7. 8 毫米,重 209 克;镜头模组由 5000 万像素人像镜头、 5000 万像素广角镜头、 5000 万像素超广角镜头组成,支持全像素对焦技术搭配dTOF辅助对焦,官方称将使对焦速度提升33%。魅族20 系列的主摄均支持SMA防抖,最高8K视频录制和夜景录像功能;5000mAh电池配80W快充,支持50W无线GB三种存储组合,售价 3999 起。

  后置三摄,主摄 5000万像素,屏幕分辨率2496*2224华为Mate X3有「羽砂玻璃版:羽砂白、羽砂黑、羽砂紫」、「素皮版:晨曦金、青山黛」五款配色可选;覆盖昆仑玻璃;超轻薄折迭四曲设计,机身重量仅239g,厚度仅5.3mm, IPX8级抗水。屏幕拥有2496*2224超高分辨率和426ppi 超高像素密度。同样支持最高120Hz 自适应刷新率以及1440Hz PWM 调光。影像方面:搭载5000万像素超感知主摄,1300万像素超广角镜头,1200万像素潜望式长焦镜头。并配备10通道多谱传感器和激光对焦传感器,支持100倍变焦和5倍光学变焦。续航方面:配备4800mAh 大电池,支持50W 无线W 有线W 无线反向快充。性能方面:与华为 P60系列一样搭载了骁龙8+ 处理器,配备了超冷跨轴石墨烯散热系统,导热面积提升了20%。价格:华为Mate X3:256GB:12999、512GB:13999;华为 Mate X3典藏版:1TB:15999

  6. 67 英寸的OLED屏幕, 4800 万像素长焦镜头华为P60 系列在背部采用了矩阵型模组,官方称之为“凝光设计”,引入了“凝光贝母”工艺;华为P60 全系搭载了6. 67 英寸的OLED屏幕,拥有2700* 1220 刷新率,显示效果十分细腻,支持10. 7 亿色、1440Hz PWM调光。 同时支持全局色彩管理,支持莱茵专业色准双重认证;屏幕还支持LTPO动态高刷新率,支持1~120Hz自适应刷新率,还配备了昆仑玻璃面板,IP68 防尘抗水;相机方面,华为P60 Pro则进一步升级长焦镜头,配备了 4800 万像素RYYB的超聚光夜视长焦镜头,支持3. 5 倍光学变焦、OIS,拥有F2. 1 超大光圈;支持双向北斗卫星通信;5100 毫安时大电池+88W快充;首发搭载了全新的鸿蒙3.1,新增了AOD息屏显示功能。

  6.67英寸的OLED屏幕,支持1~120Hz的LTPO刷新率华为P60 系列的屏幕搭载了骁龙8+ 4G处理器,6. 67 英寸的OLED屏幕,支持1~120Hz的LTPO刷新率,支持1440Hz PWM调光,拥有10. 7 亿色、全局P3 色域、HDR-P3HDR Vivid显示效果;覆盖四曲昆仑玻璃,支持IP68 防水,是全球首款德国莱茵专业色准双重认证的手机;相机方面,华为P60 支持F1.4-4. 0 十档可变光圈,搭载大光圈高透光镜群和RYYB超感光传感器,支持了华为XD Fusion Pro质感引擎;支持双向北斗卫星消息;首发搭载鸿蒙3.1,支持AOD息屏显示;价格,华为P60 的128GB版 4488 元,256GB版本是 4988 元,512GB版本是 5988 元。

  天玑9000芯片,LPDDR5+UFS3.1,11.61英寸LCD屏幕,支持144Hz刷新率OPPO Pad2主要配置包括:11.61英寸7:5比例LCD显示屏,拥有2800×2200分辨率和500尼特亮度,支持144Hz五档刷新率智能调节,2048级亮度自适应智能调光并支持手写笔。OPPO Pad2基于联发科技天玑9000,辅以LPDDR5内存和UFS3.1存储,内置9510毫安时电池、67W有线万像素前置摄像头和蓝牙5.3。软件方面,ColorOS13.1支持5G通信共享。可以自动共享手机的5G通信,从而直接上网、接打电话、同步手机验证码、拍照流转和应用接力。

  5G双待双通(DSDS)、WiFi 6/6E、蓝牙5.3等骁龙7+ Gen2 采用了骁龙X62 5G调制解调器,在全球范围内支持多种频段和模式的5G网络连接。它还是首款在骁龙 7 系中实现了5G双待双通(DSDS)功能,在两张SIM卡都插入时可以同时使用两个不同运营商或不同网络制式(例如SA和NSA)的5G网络服务。除此之外,它还支持WiFi 6/6E和蓝牙5. 3 等无线技术。

责任编辑:admin