大模型~合集4

# aiXcoder-7B

7B超越百亿级,北大开源aiXcoder-7B最强代码大模型,企业部署最佳选择,对代码大模型而言,比能做编程题更重要的,是看是能不能适用于企业级项目开发,是看在实际软件开发场景中用得顺不顺手、成本高不高、能否精准契合业务需求,后者才是开发者关心的硬实力。

当下,大语言模型集成至编程领域、完成代码生成与补全任务成为重要趋势。业界已经出现了一批引人瞩目的代码大模型,比如 OpenAI 的 CodeX、谷歌 DeepMind 的 AlphaCode、HuggingFace 的 StarCoder,帮助程序员更迅捷、更准确、更高质量地完成编码任务,大幅提升效率。

有这样一支研发团队,在 10 年前便开始了将深度学习用于软件开发的探索,并在代码理解和代码生成领域双双全球领先。他们就是来自北京大学软件工程研究所的 aiXcoder 团队(简称 aiXcoder 团队),此次为开发者带来了新的高效编码利器。

4 月 9 日,该团队开源了全自研 aiXcoder 7B 代码大模型,不仅在代码生成和补全任务中大幅领先同量级甚至超越 15B、34B 参数量级的代码大模型;还凭借其在个性化训练、私有化部署、定制化开发方面的独有优势,成为最适合企业应用、最能满足个性化开发需求的代码大模型。

aiXcoder 7B 的全部模型参数和推理代码均已开源,可以通过 GitHub、Hugging Face、Gitee 和 GitLink 等平台访问。

「耳听为虚眼见为实」,一切还是要用真实的测评数据和实际的任务效果说话。

越级体验

能其他代码大模型所不能

一个代码大模型究竟好不好用, 当然要在对程序员最有帮助、用的最多的代码生成与补全任务中来验证。

先看代码生成比较结果,在 OpenAI HumanEval(由 164 道 Python 编程问题组成)、谷歌 MBPP(由 974 个 Python 编程问题组成)和 HuggingFace MultiPL-E(包含了 18 种编程语言)等代码生成效果评估测试集上,aiXcoder 7B 版的准确率远超当前主流代码大模型,成为十亿乃至百亿级参数中最强。

除了在 HumanEval 这样偏向非真实开发场景的测试集上取得准确率新 SOTA,aiXcoder 7B 在代码补全等真实开发场景中的表现更是可圈可点,比如写好上文让代码大模型补下文或者跨文件引用已经定义好的方法、函数、类等。

同样用数据说话,在考虑上下文的单行补全测评集 SantaCoder 上,aiXcoder 7B Base 版在与 StarCoder 2、CodeLlama 7B/13B、DeepSeekCoder 7B 等主流同量级开源模型的较量中取得最佳效果,成为最适合实际编程场景的代码补全基础模型。具体如下表所示:

aiXcoder 7B Base 版的补全效果最好,不单单是准确率更高,还在实际运行中表现出了其他代码大模型没有或者逊于自己的能力。实现这些的背后是一系列针对代码特性的创新训练方法,正是它们使得 aiXcoder 7B Base 版脱颖而出。

首先,aiXcoder 7B Base 版在预训练时提供了 32k 的上下文长度,这在现有 7B 参数量级代码大模型中为最大,其他多为 16k。不仅如此,通过插值的方法可以直接在推理时将上下文长度扩展到 256k,并在理论上有能力扩展至更长。

在同量级模型中拥有最大预训练上下文长度,并可弹性扩展,成为提升 aiXcoder 7B Base 版代码补全效果的重要基础。

其次,aiXcoder 7B Base 版在代码补全过程中「知道」用户什么时候需要生成代码,并在代码内容已经完整不需要再生成时自动停止。这成为该模型比较独特的功能,其他很多代码大模型无法做到这一点。

aiXcoder 团队表示,该功能在技术上的实现离不开结构化 Span 技术。在模型训练中,通过结构化 Span 技术来构建训练数据和相关任务,让模型学习到用户应该在什么时候生成代码或者补全的内容在语法和语义结构上是否完整。

这也就意味着 aiXcoder 7B Base 版能自动「知道」自己推理到了什么位置,而其他模型想要终止的话,需要人为设定终止条件。自动推理则少了这种麻烦,有助于提升工作效率。

此外,在 aiXcoder 扩展基准测试集(aiXcoder Bench)上,aiXcoder 7B Base 版表现出了相较于其他代码大模型的又一大亮点,即倾向于使用较短代码来完成用户指定的任务

详细结果如下表所示,在针对 Java、C++、JavaScript 和 Python 编程语言的代码补全测评时,aiXcoder 7B Base 不仅效果最好,四处红框圈出的生成答案长度明显短于其他竞品模型,并且非常接近甚至有时比标准答案(Ref)还要短。

aiXcoder 团队指出,这一后验发现仍离不开结构化 Span 技术。他们在整个训练过程中特别注重代码结构,而结构化 Span 按照代码结构对代码进行拆分,这更有益于体现代码的语义,最终促成了模型「短」答案的同时效果又占优。

除了在以上单文件上下文代码补全任务中的卓越表现,aiXcoder 7B Base 版在跨多文件补全场景中的表现同样更胜一筹,不仅针对多文件的编程效果提升最优,还在下表 CrossCodeEval 测评集上有了一个重要发现。

据 aiXcoder 团队介绍,该模型在只通过光标上文搜索到的结果作为 prompt(只看当前编写的上文),同时其他模型拿 GroundTruth(把包含答案的文件给到这些模型)搜索到的结果作为 prompt,在这种条件下,前者的效果依然要强于后者。

如何做到的呢?对于其他模型来说,即使有更多的上下文信息,它们也搞不清楚哪些是最核心、最关键的。而 aiXcoder 7B Base 版能从上下文档中拣出对当前编写代码最

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值