代码大战白热化:WizardCoder挑落Bard及Claude,性能直追ChatGPT

7e0792e50eb21c9a5e2156bc29e66568.gif

0091d53c6d6fd6820a4e6475a81e01c0.png

Github链接:

https://github.com/nlpxucan/WizardLM/tree/main/WizardCoder

论文链接:

https://arxiv.org/abs/2306.08568

作为大语言模型(LLM)最重要也最具挑战性的能力之一,代码生成与补全同时吸引了 AIGC 学术界与工业界广泛研究和关注。根据 OpenAI 相关技术报告,GPT4 在 HumanEval 经典代码生成与补全任务中取得了惊人的成绩,一次通过率高达 85% 以上!

与此同时,在开源领域,由 Huggingface BigCode Project 主导发布的 StarCoder 更进一步提升了开源模型在这一领域的表现,达到了新的先进水平。

然而,我们依然注意到,目前最佳开源模型 InstructCodeT5+ 在 HumanEval 任务上的通过率也仅约为 35%,仍远低于包括 ChatGPT、Bard、Claude 等在内的一众闭源模型性能。

显然,与开放域通用对话能力相比,闭源与开源 LLM 在代码生成方面的差距尤为明显,又因为代码生成对于准确度与逻辑推理能力的严苛标准,因此追赶和提升难度也更高。

最近,WizardLM 团队开源了一款全新的代码大模型——WizardCoder,它打破了闭源模型的垄断地位,显著超越 Anthropic Claude 与谷歌 Bard,成为新时代的开源领军者。

6bee4abfbf80cb4c9c3ded1d716affcc.png

距离 WizardLM 宣布团队开源 WizardCoder 仅 5 天,该模型即获得了大模型社区广泛的关注与认可。

bc1f12b49b87fa198d34c8bb60316aa0.png

甚至有知名软件工程师在 Python 与 JavaScript 语言上试用 WizardCoder 一天后,认为不必再继续使用 GPT-4。

e9b00f5a16a0fcfc2c9c3b01b2ed0d64.png

也有网友调侃,本周 WizardCoder 的出现使他感受到了与阅读 CVPR 推文和整理自家花园一样的快乐。

4f0df03bbd35715c540e99a23895a31c.png

而在 YouTube, 顶流 AI 博主 Aitrepreneur 也制作了专业的评测视频,高度赞誉 WizardCoder。

b4e0b5f60c7859db2edb1b9242af955b.png

29c9376f9b536e1cb5e50623d993014d.png

WizardCoder性能详情

具体地,在代码补全任务中,WizardCoder 经过了四个专业评测(HumanEval, HumanEval+, MBPP, 与 DS-1000)。

令人惊叹的是,它在 HumanEval 和 HumanEval+ 两个任务上的表现仅次于千亿级别的巨无霸模型 GPT3.5/4,位列第三名,同时显著领先 Claude 和 Bard,尽管 WizardCoder 的参数量远远小于以上四者。

d6864148b55b8d310683b06d77a9b60e.png

除了与闭源模型的 PK,WizardCoder 还与当前的开源代码模型进行了对比。毫无疑问,在 HumanEval 和 MBPP 这两个代码补全任务中,WizardCoder 依然以惊人的优势超越了现有的开源模型 SOTA。

其中在 HumanEval 任务中,WizardCoder 的 pass@1 指标提升了 22.3 个百分点,在 MBPP 任务中,pass@1 指标提升了 8.2 个百分点。

229bd68b478fd4832cd980596570c73c.png

除了之前以上评测,WizardCoder 还接受了数据科学领域相关的代码补全和代码插入任务的挑战 DS-1000。这些任务要求模型熟悉并巧妙运用各种数据科学库,如 numpy 和 pytorch,来完成代码。

实验结果表明,在几乎所有的相关任务中,WizardCoder 依然远超当前开源模型的最高水平(SOTA),持续展现出卓越的性能。

e7bb2e8a256b616294d4a7b663190e1f.png

与此同时,在 Huggingface 社区中,网友们利用编程面试问题数据集 CanAiCode对 WizardCoder 进行了评测。结果显示 WizardCoder 取得了惊人的 98.5% 准确率,位居第二位,它仅比 ChatGPT 多做错了一道题,得分遥遥领先第三名(且同为 Wizard 家族的 WizardLM-30B)。这进一步证明了 WizardCoder 在编程领域的强大实力。

d4d49f3898d233ddb48c9a5df8ae5dac.png

dacbd11685440d050b421248f8ab4187.png

WizardCoder是怎样炼成的

我们仔细研究了相关论文,希望解开这款强大代码生成工具的秘密。与其他知名的开源代码模型(例如 StarCoder 和 CodeT5+)不同,WizardCoder 并没有从零开始进行预训练,而是在已有模型的基础上进行了巧妙的构建。它选择了以 StarCoder 为基础模型,并引入了 Evol-Instruct 的指令微调技术,将其打造成了目前最强大的开源代码生成模型。

2.1 Evol-Instruct算法

这个算法可以追溯到该团队之前的另外一个开源大模型 WizardLM。

手动创建、收集和筛选高质量指令数据需要巨大的工作量,但 Evol-Instruct 提出了一种高效的方法,利用 LLM(语言模型)而不是人类来创建各种复杂度级别的大量指令数据。

2acdb876268268b5fc8ffb787a89b6bf.png

通过利用该算法生成的指令数据集,WizardLM 仅以 130 参数量成为了 AlpacaEval 开源大模型排行榜中的冠军。

63f6a5e30ab5eb904dd72b5863f62e24.png

2.2 Code Evol-Instruct

与 WizardLM 不同,WizardCoder 在 Evol-Instruct 的基础上进行了代码领域的适配。其思路是不再采用分叉进化的方式,而是从一个简单的初始指令开始,逐步线性演化为更复杂的指令。

对应的进化 prompt 为:

edf38c63159d0327d29d09a5226cd7a6.png

根据代码领域的相关特性,包括代码调试和时空复杂度,研究者们在进化操作中引入了 5 项限制。这些限制对应的 prompt 如下:

8a7ffc99a4d883f5077f86ea68185d49.png

8198736023176e95797d6d4e5a889c2e.png

WizardLM团队的开源工作

Wizard 团队在GitHub 及 Huggingface 平台上向公众开源了一系列基于 Evol-Instruct 算法的指令微调大模型,其中包括 WizardLM-7/13/30B-V1.0 和 WizardCoder-15B-V1.0,Wizard 团队以其持续研究和分享优质的 LLM 算法赢得了业界的广泛赞誉,让我们满怀期待地希望他们未来贡献更多的开源成果。

模型链接:

https://huggingface.co/WizardLM

outside_default.png

参考文献

outside_default.png

[1] GPT-4: https://openai.com/gpt-4

[2] Claude: https://www.anthropic.com/index/introducing-claude

[3] WizardLM: https://github.com/nlpxucan/WizardLM

[4] WizardCoder: https://github.com/nlpxucan/WizardLM/tree/main/WizardCoder

[5] HumanEval: https://github.com/openai/human-eval/tree/master

[6] MBPP: https://github.com/google-research/google-research/tree/master/mbpp

[7] DS-1000: https://ds1000-code-gen.github.io/

[8] CanAiCode: https://huggingface.co/spaces/mike-ravkine/can-ai-code-results

更多阅读

cb65ac8f8a65f1e547ab5b4d2e422355.png

a01813bd756e5158b448f784ba18e06f.png

b5c1166fdc580fd126d5aa575fbbb0b2.png

3df24524906aa138cafa2173d37ff19e.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

57904d16e4746ea4d1f46ae4227e5ee4.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

fbaab51fde8a560282fd0afd7a6e17a4.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/67393.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序接入第三方接口

史上最全,最简单微信小程序实现第三方接口 本文以第三方(聚合新闻头条)接口为例。 聚合接口基本上都是免费的。例如,天气查询,新闻。笑话,万年历等。 1.先去聚合官网注册账号 ,然后申请新闻头…

黑马点评项目学习笔记(15w字详解,堪称史上最详细,欢迎收藏)

黑马点评项目学习笔记 文章目录 黑马点评项目学习笔记前言项目搭建导入数据库初始化项目启动项目启动前端项目启动后端项目 基于Session实现短信验证码登录短信验证码登录配置登录拦截器数据脱敏 Session集群共享问题基于Redis实现短信验证码登录短信验证登录配置登录拦截器 店…

【Python】装上后这 14 个插件后,PyCharm 真的是无敌的存在

作者:写代码的明哥来源:Python编程时光 1. Key Promoter X 如果让我给新手推荐一个 PyCharm 必装插件,那一定是 Key Promoter X 。 它就相当于一个快捷键管理大师,它时刻地在: 教导你,当下你的这个操作&a…

【测试工具】jmeter组件大全及如何使用详解

文章目录 前言一、Jmeter是什么?可以做什么?二、jmeter入门到进阶1.基础组件线程组逻辑控制器HTTP请求http信息头管理器响应断言BeanShell断言HTTP Cookie管理器查看结果树聚合报告用户自定义变量Debug Sampler后置处理器json提取器正则表达式提取器Bean…

【项目方案】OpenAI流式请求实现方案

文章目录 实现目的效果比对非stream模式stream模式实现方案方案思路总体描述前端方案对比event-source-polyfill代码示例前端实现遇到的问题与解决方法后端参考资料时序图关键代码示例后端实现时遇到的问题与解决方法实现目的 stream是OpenAI API中的一个参数,用于控制请求的…

如何接收用户发送的短信验证码,判断是否合法-短信验证码开发10

在《向用户发送手机验证码》这篇教程中, 你已经通过php在服务器端生成和保存验证码, 并且通过腾讯云的短信发送接口, 把验证码发送到用户手机上。 当用户根据提示, 把手机上的验证码, 以短信的方式回复, 你…

揭秘验证码,你可能不知道的那些事儿

在现代网络世界中,我们经常遇到验证码这个概念。它是一种用于验证使用者身份或防止恶意行为的安全机制。然而,除了表面上的使用和功能,验证码还有许多有趣而不为人所知的方面。本文将带你揭秘验证码背后的秘密,探索你可能不知道的…

注册kaggle人机验证没有验证码

打开edge浏览器,安装header editor扩展。 1.点击扩展 2.管理扩展 3.获取扩展 4.搜索框中输入“header editor”。 5.点击获取,我这里是因为已经获取了。所以获取按钮是删除。 6. 获取成功后,打开扩展的详细信息。 7.点击扩展选项。 8.在URL内输入网址。…

Kaggle账号注册时验证码无法显示问题解决方法

学习机器学习,想用深度神经网络做一个猫狗识别的程序,然后到kaggle上下载训练集猫狗图片,奈何一直出现验证码未填写的情况。看了很多文章说是要下载谷歌浏览器还有助手什么的,想起手机之前有个浏览器,一直没用过&#…

什么是消息验证码

在信息安全领域中,常见的信息保护方法分为加密和认证两大类。认证技术又分为对用户的认证和对消息的认证两种方式。用户认证用于鉴别用户的身份是否是合法用户;消息认证就是验证所收到的消息确实是来自真实的发送方且未被修改的消息,可以验证…

5个值得推荐的英语学习网站及1个英语学习App

1、练习听力 美国国家公共广播电台NPR:http://www.npr.org/特点:标准美式英语。 建议:每天花三十分钟左右,反复听英语广播,这是听力过关的必经之路。点击网页中左边“BROWSE TOPICS”下面的“News”选项。选择自己有…

随时随地学英语的美好愿望 Tutorabc 能帮你实现

随着互联网技术的飞速发展,在线教育也随着得到长足的发展,而后随着它的优势不断凸显,越来越多的人开始认可并接受在线教育。这也是在线英语学习平台能不断发展和进步的主要原因,正是因为越来越多的人能接受这一新的学习方式&#…

精选 8个 学习英语的APP,完全免费,适合不同阶段的你

一直有小伙伴找盘哥要学习英语的软件,以前零零星星的分享过几个,这次花了2天时间,重新挑选了10个良心好用的英语学习APP,有安卓版本的,也有iOS版本的,希望对你有所帮助。 文章比较长,希望你在饭…

全天候自动化的企业知识库文档、帮助中心到底有什么用?

想要给客户提供一个良好的客户体验,除了出色的服务态度之外,很重要的就是可以及时给到客户们他们想要的信息。最好的方法就是建立一个企业的知识库文档,也可以叫做是帮助中心。很多时候,客户都是根据帮助中心的内容来作出购买决定…

用C端经验做B端产品,需要考虑客户的整个体验旅程

B端产品大多需要保障业务流程的顺畅。一款B端SAAS产品选择长尾部分的客户,对产品设计和运营提出了高要求,除了考虑产品满足客户实际管理需求外,更需要考虑客户整个体验旅程。 B端产品大多需要保障业务流程的顺畅。一款B端SAAS产品选择长尾部分…

实现layui中每次切换页面时刷新页面(tab页面)

实现layui中每次切换页面时刷新页面(tab页面) 在html中找到tabChange方法,加上下面这部分代码即可实现每次切换tab页面时刷新页面(重新载入) tabChange: function (id) {//切换到指定Tab项element.tabChange(demo, i…

【微信小程序】页面tabBar切换、下拉刷新

目录 前言 一、tabBar切换 1.为什么使用tabBar 2.注意事项(官网提示) 3.如何使用(附源码) 二、下拉刷新 前言 基本上,所有的小程序,页面底部都有个tab,来实现页面的切换,效果如下 一、t…

后台管理tab切换回显刷新页面

el-form-item style"margin-bottom: 0px" label"拆股人手机号"><el-inputsize"small"v-model"form.mobile"placeholder"请输入手机号"input"onInput"></el-input></el-form-item><el-for…

chrome浏览器手动调节模拟网速

chrome浏览器手动调节模拟网速 参考网址&#xff1a; https://blog.csdn.net/Liberty_yes/article/details/122792457?ops_request_misc&request_id&biz_id102&utm_termchrom%E6%B5%8F%E8%A7%88%E5%99%A8%E9%99%8D%E4%BD%8E%E7%BD%91%E9%80%9F&utm_mediumdis…

女方父母总是插手家里的事怎么办?

我老弟的丈母娘就喜欢插手女儿女婿的家事&#xff0c;结婚五年多从未间断过&#xff0c;为此我老弟差点跟媳妇离婚&#xff0c;最后还是找到了解决的方法。 我老弟和弟媳是经人介绍认识的&#xff0c;虽然我们家是农村的&#xff0c;弟媳是城里人&#xff0c;但我老弟是烧烤大师…