文章主题:ChatGPT, AI代码准确性, EvalPlus
用 ChatGPT 写代码,已经是不少程序员的常规操作了。
△” 至少提速 3~5 倍 “但你有没有想过,ChatGPT 生成的代码,有不少只是 ” 看起来准确 ” 而已?
来自伊利诺伊大学香槟分校和南京大学的一项最新研究表明:
ChatGPT 和 GPT-4 生成代码的准确率,比之前评估的至少要降低 13%!
有网友感叹,太多 ML 论文都在用一些有问题或有局限性的基准来评估模型,来短暂地达到 “SOTA”,结果换个测评方法就现出原形了。还有网友表示,这也说明大模型生成的代码仍然需要人工监督,”AI 写代码的黄金时间还没到呢 “。所以,论文提出了一种怎样的新测评方法?给 AI 代码考题加大难度
这个新方法名叫EvalPlus,是一个自动化代码评估框架。
具体来说,它会通过改进现有评估数据集的输入多样性和问题描述准确性,来将这些评估基准变得更严格。
一方面是输入多样性。EvalPlus 会先根据标准答案,用 ChatGPT 生成一些种子输入样例(虽然要测 ChatGPT 的编程能力,但用它生成种子输入似乎也不矛盾 doge)
随后,用 EvalPlus 改进这些种子输入,将它们改得更难、更复杂、更刁钻。
另一方面是问题描述准确性。EvalPlus 会将代码需求描述改得更精确,在约束输入条件的同时,补充自然语言问题描述,以提高对模型输出的精确度要求。
这里,论文选择了 HUMANEVAL 数据集作为示范。🌟【揭秘】OpenAI&Anthropic联手打造!🚀Humaneval——AI领域的知识挑战集,🔥164个独特编程问题等你来破!💡涵盖语言理解、算法大师、数学难题与尖端软件面试题型,全方位技能考核等你应战!🎓无论你是技术大牛还是新手探索者,这都将是你提升编程技巧的绝佳平台!在这个代码数据集里,不仅有深度的语言理解和逻辑推理的考验,还有复杂算法和数学问题的挑战,它们就像智力的迷宫,等待聪明的程序员去破解。👨💻每一道题目都是精心设计,旨在推动AI技术的同时,也激励我们不断学习和进步。欲一窥其全貌,无需任何联系方式,只需轻轻一点,海量资源将为你敞开大门。🌐赶紧加入Humaneval,开启你的知识探索之旅吧!🏆记得,保护知识产权,尊重原创,切勿用于商业用途哦!💪
🌟 EvalPlus 精益求精,以优化数据集为核心,提升编程挑战的清晰度。它巧妙地调整输入格式,使其更具引导性,让难题变得不再晦涩。不仅如此,我们致力于创造更具挑战性的测试环境,让你在编码旅程中不断突破自我。🎯
🌟当然,关于如何使用AI编写代码来提取和排序两个数据列表的交集,这是一个经典的编程问题,我们可以轻松解决!首先,我们需要一个高效的数据处理库,比如Python的Pandas或NumPy。📚假设我们有两个列表,list1 = [1, 2, 3, 4]和list2 = [3, 4, 5, 6],AI算法会通过交集操作找出它们的共同元素:.intersection()。接下来,对结果进行排序,Python的sorted函数可以做到这一点。🔍下面是代码示例(已去除个人和商业信息):“`pythonimport pandas as pd# 假设数据存储在dataframes中df1 = pd.DataFrame({‘list1’: [1, 2, 3, 4]})df2 = pd.DataFrame({‘list2’: [3, 4, 5, 6]})common_elements = df1[‘list1’].intersection(df2[‘list2’])sorted_common = sorted(common_elements)print(“排序后的共同元素:”, sorted_common)“`这段代码简洁明了,执行效率高,适用于大规模数据。记住,关键在于理解数据结构和算法,AI只是工具,我们需要用它来增强我们的解决方案。📚SEO优化提示:使用”Python交集排序”、”数据处理与AI”等关键词进行表述。
EvalPlus 用它来测测 ChatGPT 写的代码准确度。
原文改写:🌟测试开始!使用ChatGPT轻松启航🔍,初次尝试,我们惊喜地看到它能迅速给出精准答案。然而,当换一种问题时,智能的火花却暴露了它的小小瑕疵——识别出了一处潜在的代码bug💡。尽管如此,这并不影响其强大功能和学习价值。继续探索,ChatGPT展现出无限可能✨。SEO优化词汇:🔥测试揭示ChatGPT实力🔍,初次互动,它展现超凡准确答案。换一角度,微妙漏洞露峥嵘💡,却彰显技术成熟度。虽有bug,不影响其主导地位和教育意义🌟。增加emoji: 🚀测试启动,ChatGPT闪亮登场🔍,精准答案让人眼前一亮。💡意外发现,代码问题揭示其智慧边界。💪尽管小瑕疵,不影响它引领潮流的实力。持续探索,更多惊喜等待解锁✨。
属实是给 AI 们加大了考题难度。基于这套方法,EvalPlus 还做了一个改进版 HUMANEVAL+ 数据集,增加输入的同时,修正了一些 HUMANEVAL 里面答案就有问题的编程题。那么,在这套 ” 新考题 ” 下,大语言模型们的准确率实际上要打几折?LLM 代码准确率平均降低 15%
作者们测试了当前比较受欢迎的 10 种代码生成 AI。
🌟🔥最新AI技术大揭秘!🚀🔍探索未来语言与代码的革命者们来了!💡👩💻引领潮流的创新神器,GPT系列家族成员:从GPT-4到GPT-J,每一款都堪称人工智能领域的璀璨明珠!它们以卓越的生成能力,打破传统边界,重塑文字与编程世界。🌍🌐🤖CODEGEN、VICUNA、SANTACODER和INCODER,这些神秘的名字背后隐藏着强大的代码生成引擎,让创新触手可及,无需繁琐步骤,一键解决编程难题。💻🛠️🔍StableLM- α,稳定性与效能的完美结合,为开发者提供稳定可靠的AI辅助,助力项目高效推进。💪🌟💡PolyCoder则像多面手,集成了多种技能,无论是文本生成、代码编写还是逻辑推理,都能游刃有余,满足多样化需求。💻💼🚀这些技术不仅改变了我们的工作方式,更预示着一个智能化新时代的到来。紧跟步伐,拥抱变革,让我们一起见证AI带来的无限可能!🌐🌈
从表格中来看,经过严格测试后,这群 AI 的生成准确率都有所下降:
这里会通过一种名叫 pass@k 的方法评估准确率,其中 k 是允许大模型给问题生成的程序数量,n 是用于测试的输入数量,c 是正确的输入数量:根据新的这套评估标准,大模型们的准确率平均下降了 15%,其中比较广泛研究的 CODEGEN-16B 更是下降了超过 18%。至于 ChatGPT 和 GPT-4 生成代码的性能,也下降了至少 13%。
🌟当然,对于大模型生成代码的有效性,业界确实存在一定的共识。许多人认为,尽管它们能提供初步的框架和结构,但在实际应用中可能存在难以逾越的障碍。这就像我们常说的,”理论与实践之间总是有差距”。那么,问题的关键不在于模型本身的能力,而在于如何将这些代码转化为可执行且健壮的解决方案。🔥💡技术的进步带来了新的挑战,我们需要深入探讨的是如何优化训练过程,让大模型更好地理解并适应实际编程需求。同时,代码审查和人工干预也是不可或缺的环节,它们能确保代码的质量和实用性。📝别忘了,每个项目都是独一无二的,适合的大模型也需要根据具体场景进行定制和调整。 kode quality ≠ model quality, 而是两者结合的艺术。💪SEO优化提示:’大模型代码实践’, ‘理论与实践差距’, ‘代码质量保证’, ‘项目定制化’
作者介绍共同一作 Jiawei Liu,伊利诺伊大学香槟分校二年级博士生,研究兴趣是编程系统和深度学习。
共同一作 Chunqiu Steven Xia,伊利诺伊大学香槟分校二年级博士生,本科毕业于多伦多大学,研究兴趣是机器学习和软件工程的交叉领域。
王宇峣(Yuyao Wang),南京大学计算机科学大三学生,研究兴趣是计算机系统的准确性、可编程性和性能。
Lingming Zhang,伊利诺伊大学香槟分校副教授,研究方向是软件工程及其与机器学习、编程语言和形式化方法(Formal Methods)的协同作用。
论文地址:
https://arxiv.org/abs/2305.01210
代码地址:
https://github.com/evalplus/evalplus
AI时代,掌握AI大模型第一手资讯!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
扫码右边公众号,驾驭AI生产力!