您的位置:首页 > 互联网

人手一个编程助手!北大最强代码大模型CodeShell-7B开源,性能霸榜,IDE插件全开源

发布时间:2023-10-19 20:24:07  来源:互联网     背景:

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

【新智元导读】继CodeLlama开源之后,北大等机构正式开源了性能更强的代码基座大模型CodeShell-7B和代码助手CodeShell-Chat。不仅如此,团队还把方便易用的IDE插件也开源了!

今天,北京大学软件工程国家工程研究中心知识计算实验室联合四川天府银行AI实验室,正式开源70亿参数的代码大模型CodeShell,成为同等规模最强代码基座。

与此同时,团队将软件开发代码助手的完整解决方案全部开源,人手一个本地化轻量化的智能代码助手的时代已经来临!

CodeShell代码:https://github.com/WisdomShell/codeshell

CodeShell基座模型:https://huggingface.co/WisdomShell/CodeShell-7B

代码助手VSCode插件:https://github.com/WisdomShell/codeshell-vscode

具体来说,CodeShell-7B基于5000亿Tokens进行了冷启动训练,上下文窗口长度为8192。

在权威的代码评估基准(HumanEval和MBPP)上,CodeShell取得同等规模最好的性能,超过了CodeLlama-7B和StarCodeBase-7B。

与此同时,同CodeShell-7B配套的量化与本地部署方案,以及支持VSCode与JetBrains IDE的插件也全部开源,为新一代智能代码助手提供了轻量高效的全栈开源解决方案。

CodeShell模型和插件的相关代码已经在Github发布,并严格遵循Apache2.0开源协议,模型在HuggingFace平台发布,支持商用。

CodeShell:性能最强的7B代码基座大模型

CodeShell构建了高效的数据治理体系,通过冷启动预训练5000亿Token,代码生成性能超过了CodeLlama-7B与StarCoder-7B。

相比而言,CodeLlama在强大的Llama2上继续预训练依然学习了超过5000亿Token,而StarCoder冷启动训练了10000亿Token,是CodeShell的两倍。

CodeShell的原始训练数据基于自己爬取的Github数据、Stack和StarCoder数据集,以及少量高质量的中英文数据。

通过在数据判重、数据过滤规则、数据质量模型上设计了一套体系化的数据治理流水线,CodeShell构建了高质量的预训练数据。

CodeShell构建了包含7万个词的词表,中文、英文、代码的压缩比分别为2.83、3.29、3.21,支持中英文和代码的平衡且高效的编解码。

在更小规模的各种基座架构上进行大量预训练实验后,CodeShell架构设计最终融合了StarCoder和Llama两者的核心特性。

以GPT-2为基础,采用fill-in-middle(FIM)模式支持代码特有的补齐生成方法,引入Grouped-Query Attention和ROPE位置编码,最终形成了CodeShell高性能且易于扩展上下文窗口的独特架构。

为了获得最大的分布式训练效率,Codeshell基于Megatron-LM,在Attention算子优化、数据预处理、数据加载、日志输出、状态监控、分布式训练管理等方面进行了深度定制,支持Flash Attention2加速,训练吞吐量达到了每GPU每秒3400Token的业界先进水平。

CodeShell预训练的上下文窗口为8192。经过5000亿Token训练,CodeShell在humaneval和mbpp两个主流评测数据集都体现了明显的优势。在humaneval的其它编程语言评测中,如JavaScript、Java、C++,CodeShell依然性能领先。

在CodeShell的训练中团队发现,通过刻意刷榜训练,可以让代码基座评分虚高,但是在实际应用和微调中无法体现与分数匹配的潜力。

为了验证CodeShell预训练的纯粹性,团队采用WizardCoder的Evol-instruction数据构建方法生成微调数据,使用这份数据分别对CodeShell、CodeLlama、StarCoder进行微调,并用WizardCoder提供的Prompt进行统一的HumanEval评估。这一场景下CodeShell依然保持优异性能,充分验证了CodeShell的真实底座能力。

CodeShell在Hggingface权威的代码大模型榜单中的表现也极其亮眼!在这份榜单中,各种经过特定优化的代码基座和微调模型,在HumanEval评分上可以超越CodeLLama,但是体现综合能力的综合胜率(Win Rate)与CodeLlama却依然有很大差距。

令人惊喜的是,CodeShell不仅在HumanEval上霸榜7B模型,综合胜率与CodeLlama-7B持平。考虑到CodeLlama-7B训练的Token数量超过两万五千亿,而CodeShell的数量仅为五分之一,这份榜单充分体现了CodeShell团队的技术实力。

正在研发中的CodeShell新版本将在强大的代码能力基础进一步提升中英文处理能力,综合能力值得更大的期待。

CodeShell-Chat:功能齐全的代码助手模型

在CodeShell底座基础上,团队面向真实的软件开发场景,通过高效微调,训练了支持对话、代码生成、代码补齐、代码注释、代码检查与测试用例生成的全能代码助手模型CodeShell-Chat。

为此,CodeShell团队分别构造了数万条高质量代码对话数据和代码补齐数据,设计了基于规则与基于嵌入表示相结合的微调数据筛选方法,构造了多任务一致的微调数据格式,并在基座模型上采用任务分类优化策略进行小规模微调,最终得到了高效实用的代码助手模型。

为了进一步降低使用门槛,支持轻量级本地部署,团队针对CodeShell独有的架构扩展了llama.cpp —— 一个纯 C/C++ 实现的LLaMA模型高效推理接口,以支持CodeShell的模型在各种计算架构中的格式转化、推理运行以及量化部署。

在16G内存的苹果笔记本上进行推理,响应速率可达每秒18Token,真实的使用体验非常流畅。

想象一下,一个在飞行途中的程序员,打开普通的Mac电脑,即可使用性能几乎无损、仅占4G内存的4-bits量化版本。本地部署不仅保障了数据安全,更是可以随时随地使用!

对众多开发者而言,即便拥有功能强大的代码助手模型,其应用门槛仍然过高。

为此,CodeShell团队诚意满满地把IDE插件也开源了!

IDE插件目前支持VSCode和IntelliJ IDEA,适用于各种主流编程语言。

在开发过程中,CodeShell代码助手插件提供了两种模式,即专注模式和交互模式,两种模式相互协同,共同提升开发效率。

在专注模式下,通过对当前项目代码的分析,提供代码提示与补全功能,从而提高编程效率。

在交互模式下,IDE插件通过向代码助手大模型发送特定的交互Prompt和用户输入,可提供丰富的功能,来看几个实例。

智能问答:在编程过程中直接向代码助手模型提出问题,无需切换至其他界面,支持对话与编程两种场景无缝融合。

代码解释:使用自然语言解释代码的运行过程,让开发者更好地理解代码的结构和逻辑。

安全检测:检测代码中的潜在安全风险,如可能出现的SQL注入、跨站脚本攻击等,帮助排查安全性风险。

其它功能还包括:

自动添加注释——为代码自动生成描述其功能、参数及返回值等相关信息的注释;

代码优化与审计——对代码进行深入分析,检测潜在的错误、冗余代码和性能瓶颈,并为开发者提供相应的修复建议;

代码格式检查——自动检测代码的排版和格式问题,发现潜在的不规范现象;

性能评估——对代码的性能风险进行评估,发现潜在的性能瓶颈,为优化代码性能提供支持;

测试用例生成——基于代码逻辑,自动创建测试用例,以辅助进行代码测试和验证,确保代码的正确性和稳定性。

开发者下载模型,在本地做简单操作和配置,即可马上体验。

全面的代码能力自动评估工具

CodeShell团队同时发布了一个针对代码助手能力的统一评估基准,近期将开源并公开论文,加入到CodeShell的开源全家桶中。

在大模型评测上,CodeShell团队底蕴深厚,团队此前曾经发布过通用大模型对话能力的自动评估工具PandaLM。

开源地址:https://github.com/WeOpenML/PandaLM

CodeShell团队在模型训练中发现,现有的评估基准无法准确反映其真实能力,其面临的问题包括试题难度较低、评估场景与实际开发环境脱节等,同时评估基准提供的任务上下文信息也非常有限,导致代码大模型评估者难以进行深入分析。

为此,CodeShell团队提出了一个包含完整程序上下文的多任务编程模型评估基准CodeShell-UCB(Unified Code Bench)。

CodeShell-UCB的评估任务提供了完整的程序上下文信息,包括完整的真实项目代码、运行环境和执行脚本。

CodeShell-UCB通过执行程序分析、规则筛选、人工筛选,提炼出了代码助手任务试题,并提供了一套统一的编译、运行、测试环境。

CodeShell-UCB的五个评测任务位覆盖了软件开发的重要场景:

1. 代码生成:关注如何自动生成优质、符合要求的代码片段。CodeShell-UCB包含了235个单函数代码生成试题。

2. 基于被测代码的测试用例生成:关注如何基于特定的被测代码自动生成有效、全面的测试用例。CodeShell-UCB包含了139个基于被测代码的测试用例生成试题。

技嘉z390旗舰主板

3. 基于问题报告的测试用例生成:当存在错误报告时,快速并精确地创建出相应的测试用例,不仅可以帮助快速定位、修复问题,同时也可以提高回归测试的效率。CodeShell-UCB包含了58个基于问题报告的测试用例生成试题。

4. 缺陷检测:自动化的缺陷检测能够大幅度提高开发效率并且减少人为疏漏造成的错误。CodeShell-UCB包含了956个检测样本的标签平衡缺陷检测试题。

5. 缺陷修复:一旦缺陷被检测出,如何对其进行有效的修复也是一个复杂且重要的任务。CodeShell-UCB包含了478个单函数缺陷代码的缺陷修复试题。

这五个任务提供了一个全面深入的评估方案,支持不同软件开发场景下检验和评估代码大模型的能力。

同时,CodeShell-UCB推理框架具有较高的通用性,涵盖了本地Huggingface模型的推理、本地Text-Generation-Inference的加速推理,以及使用闭源API(如OpenAI API、Claude API)的推理。

生成的代码随后会在CodeShell-UCB执行器中运行和评估,提供了包括编译成功率、Pass@K、Pass@T以及测试覆盖率在内的多样化、多维度的评估指标。

下表展示了代码助手CodeShell-Chat和在WizardCoder的对比。

尽管WizardCoder通过在CodeLlama上精心微调获得了很高的HumanEval分数,但是在更加综合全面的测试基准下,CodeShell-Chat各种编码任务下具有明显的优势,更适合软件开发的实际场景。

CodeShell-UCG评估基准既可以用于评估模型的编程能力,也可以用于评估各种不同的Prompt设计策略,研究者可以在CodeShell-UCB的基础上进行数据与任务的扩展并展开更细致的模型分析。

北京大学软件工程国家工程研究中心知识计算实验室(张世琨、叶蔚课题组)长期关注软件工程与人工智能交叉领域,聚焦程序语言与自然语言的语义理解与交互问题,在打造CodeShell的过程中建立了一支大模型精英团队,覆盖基座预训练、基础设施优化、数据治理、模型微调与对齐、模型评估、模型量化与部署等核心环节与任务,近期将推出更加重磅的模型与产品,敬请期待!

参考资料:

https://github.com/WisdomShell/codeshell


返回网站首页

本文评论
4399游戏盒《炮灰团》网页游戏 很Q很开心(4399游戏盒下载)
  相比其他游戏类型而言,网页游戏最大的优势就是即点即玩,注册一个账号即可快乐进入游戏世界。而对于不少女生玩家来说,更是对Q版类的休闲竞技游戏情有独钟。小编今天要给大...
日期:07-22
百度新首页:通往互联网的真正门户(百度产业互联网)
  2011年9月2日,当你用ID登陆百度首页,会发现熟悉的熊掌Logo和搜索框的下方,惊人地出现四个新功能模块。对于每一个用户来说,百度新首页不仅仅是改变了外观,更重要的是作为90%...
日期:07-22
今年双十一,阿里有点迫不及待_今年阿里双十一销售额多少
阿里从来都没有像今年的双11一样,需要一场酣畅淋漓的胜利来证明自己。无论是张勇的退场,还是蔡崇信、吴泳铭的登场;无论是资本市场的颓势,还是电商格局的悄然变革,几乎都将阿里推...
日期:10-16
马斯克想火星建工厂_马斯克:希望20年内在火星建造自给自足城市
苹果手机玻璃制造商李彦宏 未来三星s6那年生产的激光电视2019年销量   特斯拉和SpaceX公司CEO埃隆·马斯克周末重申,他坚定不移地致力于殖民火星,并让人类成为多行星物种。...
日期:08-17
双12电商大促静悄悄:商家已无心备战,仅靠库存撑场面_双十一电商新闻
图源:图虫创意   来源: 时代财经  文/徐晓倩  双12最后的热闹停留在去年:即便雪梨、林珊珊已经退出,但淘宝直播还有李佳琦和薇娅两大头部主播站台,各大品牌方仍想抓住一...
日期:12-12
苹果发布iOS 17.1准正式版:解决iPhone 15等机型烧屏、辐射超标_苹果烧屏严重
快科技10月18日消息,iPhone 15系列发布后,就有不少用户遭遇了烧屏现象,对于苹果老玩家来说,都知道这事早就存在多年了。手机牌子好雅迪电动车年营业额从iPhone X开始后,历代新iPh...
日期:10-18
恶意软件警告_安全预警:留意基于文档的恶意软件
  梭子鱼网络助力您的企业阻断不断演变的恶意软件攻击   梭子鱼研究人员发现,近期基于文档的恶意软件的使用出现了惊人的新增长。最近的一份电子邮件分析显示,在过去12个...
日期:11-25
消息称欧盟下周对微软Office捆绑Teams展开反垄断调查_微软 欧盟
据报道,多位知情人士今日称,欧盟将于下周对微软Office办公套装捆绑Teams应用展开正式的反垄断调查,这将是微软15年来首次面临欧盟的反垄断调查。四位知情人士称,事实证明,虽然微...
日期:07-19
荣耀Magic V2上架开售:8999起「荣耀magic2售价多少钱?」
荣耀Magic V2已经正式发布,新机上架开售,7月20日首销发货,起售价8999元。虽然这是一款折叠屏手机,但是它比直板手机都要轻,仅有231g,作为对比,iPhone 14 Pro Max重量是240g,整体非常...
日期:07-16
抖音“最火”直播间,全是中年失意企业家_抖音揭秘各行各业的主播
声明:本文来自于微信公众号 微果酱(ID:wjam123456),作者:陈出木,授权转载发布。诸如李佳琦、薇娅一类的素人,通过直播带货缔造了财富神话。而在“失意”企业家的眼里,直播带货是新...
日期:10-12
湖北移动AI技术助力东风本田打造智慧园区
  丢失、忘带工作证进不了公司怎么办?重要客户来访,需要一再确认身份怎么办?近日,记者从中国移动湖北公司获悉,该公司联合中移在线服务有限公司为武汉东风本田汽车有限公司...
日期:05-27
微信公益捐步_走路也能做公益 轻松筹小程序推出捐步数献爱心功能
  近日,轻松筹小程序上线了“走路行善”的功能,用户可通过行走兑换爱心券,为大病患者贡献爱心。“走路行善”功能旨在以多元化、创新化、趣味化“走路”低碳的方式践行公益,...
日期:06-16
亏上热搜!人们为啥不爱吃海底捞了?“最牛服务员”CEO首张成绩单,透露重大信号
文 |;黎灵希 罗茂林   8月14日晚间,海底捞发布业绩预告,预计上半年收入不低于167亿元(人民币,如无标明,下同),预期净亏损额约在2.25亿元至2.97亿元之间。   这是“最牛服务员”...
日期:08-17
17日:谷歌I/O将推Android 2.2等产品(谷歌正式发布Android 12)
  美国   pcworld.com:微软称Office 2010是Office软件中最简单的版本   微软称,Office 2010是这个软件中最具创新的和最容易使用的版本。用户很容易从以前的版本升级到...
日期:07-29
首款24GB内存手机开售 7499元「手机内存246g」
在今天下午,红魔8S Pro系列正式发布,起售价是3999元(8GB 128GB),顶配版24GB 1TB售价是7499元。该机是迄今为止最强悍的性能旗舰,它首发搭载骁龙8 Gen2领先版,性能更为激进。智能学...
日期:07-05
Wi-Fi HaLow有助下一代智能家居设备达成千米信号覆盖
  一项名叫“Wi-Fi HaLow”的新功能,将支持安防摄像头等传感器的低能耗传输,同时极大地提升其信号覆盖范围。本月,Wi-Fi 联盟宣布了最新的 HaLow 认证计划。作为一项支持低...
日期:07-17
苹果新专利可将人脸表情实时模拟到类似于《指环王》咕噜的怪物上
IT之家 2 月 7 日消息,苹果于 2015 年 9/10 月收购了总部位于苏黎世的 Faceshift,在消化吸收后推出了 Animoji 和 Memoji。根据美国商标和专利局(USPTO)于 2023 年 1 月 26 日公...
日期:02-07
微软发布Android版Windows Azure开发工具包(azure apk)
  据国外媒体报道,微软发布了一款接近完成的,面向Android应用开发者的Windows Azure开发工具包,版本号为0.8。   微软技术专家韦德·韦格纳(Wade Wegner)发表博文称,“从许...
日期:07-22
马斯克回应完成推特私有化交易:推特自由了「马斯克新推特」
10 月 28 日讯:今日,在完成收购推特,并将其私有化后,特斯拉CEO马斯克在推特上发文:“推特自由了。”高通骁龙XR2芯片...
日期:10-29
情绪价值是高转化爆量内容的流量密码!「啥叫情绪价值」
声明:本文来自于微信公众号 黑牛影记(ID:heiniuyingji),作者:黑牛影记,授权转载发布。情绪价值是高转化爆款短视频的核心密码,兴趣电商的另一种解读方式是传递情绪价值寻找情感认同,...
日期:07-21