今天小编分享的科学经验:豆包代码大模型曝光!在字节最新开源基准里,多种编程语言性能仅次于OpenAI/Claude,欢迎阅读。
豆包代码大模型,不小心给曝光了!
在字节开源的代码大模型评估基准 FullStack Bench 里面,出现了此前字节未披露过的 Doubao-Coder。
不过目前还只是 Preview 版,还并没有上线。
它在多种编程语言上的性能表现如下,可以看到在闭源模型中排名第五。
今年 6 月,字节还发布了 AI 编程助手豆包MarsCode。据传即由 Doubao-Coder 模型支撑。
目前,豆包 MarsCode 每月为用户贡献百万量级代码。
而回到这个评估基准,据介绍 FullStack Bench 是目前最全面的代码评估数据集。
团队还同步开源了可随时测评代码大模型的沙盒执行环境 SandBox Fusion,单伺服器即可部署,也可直接在线体验。
全新代码大模型评估基准 FullStack Bench
既然如此,那就先来了解一下这个最新评估基准。
有一说一,现在代码大模型越来越卷,评估 AI 编程水平的 " 考卷 " 也被迫更新 ~
代码评估基准可以帮助代码大模型不断优化。不过,当前的主流基准越来越难以反映代码大模型的真实水平了。
主要体现在题目类型相对单调,覆盖的应用领網域和编程语言少,模型即便在考试中拿了高分,现实中可能还是难以应对复杂的编程问题。
为了更真实地评估 AI 编程水平,字节豆包大模型团队联合 M-A-P 社区,开源了全新代码大模型评估基准 FullStack Bench。
这是一个专注于全栈编程和多语言编程的代码评估数据集,它首次囊括了编程全栈技术中超过 11 类真实场景,覆盖 16 种编程语言,包含 3374 个问题。
FullStack Bench 的应用领網域抽取自全球最大的程式员技术问答社区 Stack Overflow,相比 HumanEval 等基准覆盖的编程领網域扩大了一倍以上。
此前业界基准难以反映真实世界代码开发的多样性和复杂性。
例如,HumanEval 和 MBPP 中近 80% 数据只聚焦于基础编程和高级编程问题;DS-1000 中超过 95% 数据集中于数据分析和机器学习,且仅对 Python 语言进行评测;xCodeEval 虽覆盖多项任务,但基本局限于高级编程和数学领網域;McEval 和 MDEval 扩展了支持的编程语言,但应用领網域仍局限于基础编程和高级编程,未涉及更广泛的场景。
为模拟全栈开发的实际应用场景,字节豆包大模型和 M-A-P 研究团队分析了全球最大的程式员技术问答社区 Stack Overflow 上的问题分布,从中提炼出常见的真实编程应用领網域。
团队从 Stack Overflow 上随机抽取了 50 万个问题,并使用大模型为每个问题标注应用领網域类型。
研究团队筛选出占总问题数前 88.1% 的主要应用领網域,其余领網域归类为 " 其他 "。再通过对领網域分布做适当调整来保证鲁棒性,最终形成了 FullStack Bench 关注的超过 11 种应用场景及分布比例。
FullStack Bench 包含 3374 个问题(中文及英文问题各占一半),每个问题均包括题目描述、参考解决方案、单元测试用例及标签,总计 15168 个单元测试。
为保证评估准确性,每个问题内容均由相关领網域的编程专家设计,并经 AI 和人工验证进行质量复核。例如,数据分析相关问题,由数据工程专家提出并把关配套内容。
在初始数据集构建后,团队根据主流代码大模型测试结果,按问题难度、模糊性和可解性对数据质量进行了交叉评估和进一步完善。
FullStack Bench 数据构成情况如下图所示。
为方便开发者对大模型代码能力进行系统性测试,豆包大模型团队还开源了一款高效的代码沙盒执行工具—— SandboxFusion,用于评估来自不同语言的不同编程任务。
除了 FullStack Bench,SandboxFusion 还兼容超过 10 种广泛使用的代码评估数据集,支持 23 种编程语言。开发者在单伺服器上即可轻松部署 SandboxFusion,也可直接在 GitHub 上进行体验。
评测结果:解决难题,闭源模型仍优于开源模型
发布评测基准及沙盒的同时,研究团队也基于 FullStack Bench 测评了全球 20 余款代码大模型及语言大模型的编程表现。
模型包括 Qwen2.5-Coder、DeepSeek-Coder-v2、CodeLlama 等开源模型,以及 GPT-4o、OpenAI-o1、Doubao-Coder-Preview 等闭源模型。对于开源模型,根据模型大小,分为五个组别:1B+、6B+、13B+、20B+ 和 70B+。
跨领網域表现:数学编程领網域差异最大
得益于强大的推理能力,OpenAI o1-preview 不出所料地领先。
不过,一些开源模型也有不错的表现。如 DeepSeekCoderv2-Instruct,在 AP ( 高级编程)、OS ( 作業系統)和其他类别中得到高分,拉开了与其他开源模型的差距。
OpenCoder-1.5B-Instruct、Qwen2.5-Coder-7B-Instruct、Qwen2.5-Coder-14B-Instruct 在其各自开源组别中拔得头筹,并超越了一些更高参数级别的模型。
为了全面评估现有大语言模型在不同场景下的表现,研究团队可视化了模型在 FullStack Bench 各领網域的表现。
在 BP(基础编程)、AP(高级编程)、MA(数学编程)、ML(机器学习)和 MM(多媒体)等领網域中,模型表现差异显著,其中以 MA 领網域的差距最大。
MA 最佳表现者为 OpenAI o1-preview(得分 80.42),而最差的是 CodeLlama-34B-Instruct(得分 14.34)。数学编程要求模型同时具备数学和编程能力,那些在高度专业化代码语料库上训练的模型,在 MA 领網域往往表现较差。
这一结果进一步证明,FullStack Bench 能够更全面地评估模型的综合编程能力。
跨语言表现:C++、C 和 Ruby 上存较大差异
研究团队对不同模型在多种编程语言上的性能表现进行了分析。
大多数模型在 Bash 编程任务中表现良好。然而,在 C++、C 和 Ruby 的表现上存在较大差异,这表明模型设计者可能在训练语料库中对这些语言进行了选择性采样。部分 1B+ 的小型模型在 D、R 和 Scala 语言上的表现较差,其通过率低于 10%,这表明它们的多语言处理能力都较弱。
由于 SandboxFusion 提供了来自编译器的反馈,研究人员评估了模型在部分编程语言上的编译通过率。实验结果表明,编译通过率与测试通过率之间存在正相关关系,但编译通过并不意味着测试一定通过。同时,研究还探讨了中英文表达对模型性能的影响。
解决难题,闭源模型普遍优于开源模型
不同模型在不同难度问题上的表现存在明显差异。总体而言,1B+ 模型和 CodeLlama 系列在所有难度级别上的表现均不尽如人意。其余模型在解决简单问题时表现相似,但在中等难度问题上存在一定差距。对于难度较大的问题,闭源模型普遍优于开源模型。
使用 SandboxFusion,可提升模型表现
研究人员对比了 " 反思策略(Reflection)" 和 "N 次推断策略(BoN)" 两种策略。在 Reflection 策略中,通过利用 SandboxFusion 的反馈上下文对答案进行 N 次精炼,复现了自我精炼策略 [ Madaan et al., 2024 ] 。而在 BoN 策略中,仅进行 N 次推断以获得结果。
结果如图所示,"Reflection" 策略明显优于 "BoN",这表明 SandboxFusion 提供的反馈上下文具有较高的有效性。
了解这篇研究的详情,可见文内 Arxiv 链接,或关注「豆包大模型团队」公众号,查阅更详细解读。
参考链接:
[ 1 ] 论文链接:https://arxiv.org/pdf/2412.00535v2
[ 2 ] 数据集开源地址:https://huggingface.co/datasets/ByteDance/FullStackBench
[ 3 ] 沙盒开源地址:https://github.com/bytedance/SandboxFusion
[ 4 ] 沙盒体验入口:https://bytedance.github.io/SandboxFusion/playground/datasets
* 本文系量子位获授权刊载,观点仅为作者所有。
— 完 —
量子位 QbitAI
վ ' ᴗ ' ի 追踪 AI 技术和产品新动态
一键三连「分享」、「点赞」和「在看」
科技前沿进展日日相见 ~
>