网易首页 > 网易号 > 正文 申请入驻

性能表现接近专有模型,科学家推出开源代码大模型与构建指南

0
分享至

自 2021 年,OpenAI 推出了 CodeX 以来,大语言模型(Large Language Model,LLM)的发展已经给代码生成工作带来了巨大的变革。作为 LLM 的一个重要分支,代码大模型(Code LLMs)不仅可以自动生成代码,还能够辅助代码审查、错误调试、代码补全等任务,从而大幅减少开发者在重复性劳动上的时间投入,让他们得以专注于创造本身。

不过,在面向代码的 LLMs 中,开源模型依然与最先进的专有模型存在较大差距,其主要原因在于这些专有模型的训练数据集通常为私有数据,限制了研究界在强基线模型构建和深入理解方面的能力。

为了弥补这一不足,来自墨尔本大学、复旦大学等高校的研究人员,联合无限光年推出了完全开放的代码大模型 OpenCoder。将开源代码 LLM 的性能提升至专有模型水平,同时也发布了完整的模型构建过程,旨在为代码 AI 研究的透明化和可重复性提供基础。

相关论文以《OpenCoder:顶级代码大型语言模型的开放手册》(OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models)为题发表在预印本网站arXiv上 [1]。

研究团队的目标在于填补开源代码模型与商业化代码模型在性能与透明度上的空白,因此,团队在论文中提供了完整的可复现数据集与训练方法。

在最初的数据预处理方面,OpenCoder 采用了两类主要数据源:从 GitHub 的公开库中收集的原始代码以及来自 Web 数据库的代码相关的 Web 数据。

首先,研究团队排除了所有超过 8MB 的文件,这些大多数为非文本文件。此外,只保留特定编程语言的文件,这些语言通过文件扩展名进行识别,并参考 GitHub 的 linguist 工具,最终保留了 607 种编程语言文件,以保证数据的多样性和相关性。

为了确保数据多样性并减少偏差,OpenCoder 采用了精确去重和模糊去重的方法,通过 SHA256 哈希值对每个文档进行计算,去除完全相同的文件,同时利用 MinHash 和局部敏感哈希(LSH)方法进一步减少内容相似的文件。在数据清洗中,还去除了无关的版权声明和个人身份信息,并通过一系列启发式规则对数据进行过滤,以确保代码的质量。

为了最大程度利用高质量的数据集,OpenCoder 保留了原始数据的分布特征,但对部分高资源编程语言进行了下采样,例如将 Java 数据从 409GB 下采样至 200GB,将 HTML 数据从 213GB 下采样至 64GB,以减少无信息结构化内容的影响。最终,课题组预训练阶段生成了大约 730B 的 token。

对于与代码相关的 Web 数据,团队通过 Common Crawl 数据集进行高质量数据的抽取,结合 FastText 模型进行自动化的数据标注与筛选,并对域名进行相关性分析和手动注释,最终获取了 330GB 的高质量的网页代码数据集。

至于模型架构及其训练方面,OpenCoder 的 1.5B 参数和 8B 参数这两种规模的模型均采用标准的 Transformer 架构,注意力机制使用多头注意力,以增强对复杂代码结构的建模能力。此外,其采用了旋转位置编码(RoPE)以更好地处理长距离依赖关系,提高对上下文的理解能力。

图丨OpenCoder 的关键超参数概览(来源:arXiv)

然后,团队采用了 WSD(Warmup, Steady, Decay)学习率调度方法,以确保模型在不同训练阶段的稳定性和高效性。训练初期通过 2000 步的 warmup 阶段逐渐增加学习率,达到峰值后在稳定阶段保持较长时间,最后在退火阶段逐渐减少学习率,以实现模型的精细调优。

消融实验的结果说明,使用高质量数据进行退火可以显著提升模型在复杂编码任务中的表现,尤其是在计算预算有限的情况下,精心选择的高质量数据能够更有效地提高模型的效率和稳定性。

训练使用了 Megatron-LM 框架,在 512 个 H100 GPU 上进行分布式训练,以确保在大规模数据上的高效计算。训练 8B 模型的总时间约为 187.5 小时,总 GPU 时数为 96000 小时。

在 OpenCoder 的后训练阶段,团队首先从 Evol-Instruct、Infinity-Instruct 和 McEval-Instruct 等多个数据库中,通过多种语言的采样收集了大量开源的指令语料。接着,再从 WildChat 和 Code-290k-ShareGPT 等数据集中抽取真实用户查询,并使用 LLM 清洗数据,以去除低质量响应。

为进一步提升模型在指令理解和代码生成任务中的表现,OpenCoder 还进行了双阶段的指令微调,分别针对计算机科学理论和实际编码任务进行优化。

在第一阶段,团队重点合成了与计算机科学理论相关的问题-答案 (QA) 对,使模型能够更深入地理解算法、数据结构和网络等理论概念,由此让模型能更精准地回答关于二叉搜索树、动态规划和面向对象设计等主题的问题。第二阶段,研究人员则通过从 GitHub 提取的高质量代码数据集对模型进行微调,以提高其在实际的编码任务上的表现。

为了检验 OpenCoder 的能力,研究人员在多个基准上将它与其他流行的开源模型(如 StarCoder2 、Qwen2.5-Code 等)进行了比较,包括 HumanEval、MBPP 和 BigCodeBench,覆盖了代码生成、代码补全和代码理解等不同编码场景下的任务。结果表明,OpenCoder 在这些任务中始终表现优于这些模型。

例如,在 HumanEval 基准测试中,OpenCoder-8B 的 Pass@1 达到了 68.9%,超过了 StarCoder2-15B 的 46.3%。在 MBPP 基准测试中,OpenCoder-8B 的表现也达到了 79.9%,强于其他同类模型。

此外,在多语言代码生成评估 MultiPL-E 与综合多语言代码评估基准 McEval 中,其表现也同样突出,证实了其较为出色的多语言性能。

值得一提的是,研究团队还发现,使用 GitHub 星标作为数据过滤标准的模型比未使用此标准的模型在代码生成和代码补全任务中的成功率更高,这进一步验证了高质量数据源对模型性能的直接影响。再结合前述去重处理与退火等阶段的分析,这些结果揭示出数据处理、数据质量和训练流程中的关键因素对模型性能的影响。

总结而言,OpenCoder 作为一个完全开源的代码语言模型,不仅将开源代码模型的性能提升至商业化模型水平,也为研究界提供了一套透明、可复现的完整训练材料,有望推动对代码生成技术的进一步发展。

未来,研究团队将继续优化模型和数据,并通过不断地更新和用户反馈的融入,进一步提升模型的适应性和多样性。

相关代码与数据集已在 GitHub 开源(项目地址:https://opencoder-llm.github.io/)。

参考资料:

1. https://arxiv.org/abs/2411.04905

2. https://opencoder-llm.github.io/

排版:刘雅坤

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
日媒:日本东京发现一具只有下半身的遗体,疑似遭熊袭击

日媒:日本东京发现一具只有下半身的遗体,疑似遭熊袭击

环球网资讯
2026-05-19 20:51:49
新股提示:新天力今日申购

新股提示:新天力今日申购

每日经济新闻
2026-05-20 07:19:09
打出状态了!U17国足2-0澳洲晋级决赛,再战日本小伙子们有自信

打出状态了!U17国足2-0澳洲晋级决赛,再战日本小伙子们有自信

里芃芃体育
2026-05-20 10:15:11
知名歌唱家贪财好色嫁大30岁二婚男,如今活成这样

知名歌唱家贪财好色嫁大30岁二婚男,如今活成这样

风月得自难寻
2026-05-12 06:25:42
河南一家三口被灭门惨案再起风波,没想到结局竟然是这样……

河南一家三口被灭门惨案再起风波,没想到结局竟然是这样……

脆皮先生
2026-03-24 19:58:30
中国最"可惜"的城市,曾是四大经济特区之首,如今沦为三线小城

中国最"可惜"的城市,曾是四大经济特区之首,如今沦为三线小城

補懂事的孩紙
2026-05-20 05:20:26
太尴尬了!抄10遍字词被家长投诉处罚,老师直接叫停作业,引热议

太尴尬了!抄10遍字词被家长投诉处罚,老师直接叫停作业,引热议

火山詩话
2026-05-18 10:53:08
朱孝天回应和F4矛盾:我没有掀桌,是他们欺人太甚

朱孝天回应和F4矛盾:我没有掀桌,是他们欺人太甚

小噎论事
2026-05-18 16:44:18
汪涵发布声明回应担任《监狱来的妈妈》出品人:疏忽之下同意挂名

汪涵发布声明回应担任《监狱来的妈妈》出品人:疏忽之下同意挂名

韩小娱
2026-05-20 08:13:06
杨受成“霸占”容祖儿半生:不娶也不放,她到底图什么?

杨受成“霸占”容祖儿半生:不娶也不放,她到底图什么?

橙星文娱
2026-05-12 15:17:44
以色列至今都不敢相信,一场战争竟然打掉了自己一个多世纪的国运

以色列至今都不敢相信,一场战争竟然打掉了自己一个多世纪的国运

一网打尽全球焦点
2026-05-19 17:29:36
农村“轮婚”怪象:今年嫁你家生娃,明年嫁他家生娃,生娃成交易

农村“轮婚”怪象:今年嫁你家生娃,明年嫁他家生娃,生娃成交易

舒山有鹿
2026-05-17 11:37:46
普京登上访华专机前,特朗普突然下令,美财长:中国将无法再囤油

普京登上访华专机前,特朗普突然下令,美财长:中国将无法再囤油

古史青云啊
2026-05-19 16:42:22
天津津门虎1-2河南,全场比赛最让人无语的,就是这次判罚

天津津门虎1-2河南,全场比赛最让人无语的,就是这次判罚

硬腿子聊个球
2026-05-20 00:04:16
一点不浪费,金玟哉把用来泼洒庆祝的啤酒直接送给了球迷

一点不浪费,金玟哉把用来泼洒庆祝的啤酒直接送给了球迷

懂球帝
2026-05-19 17:05:10
把瑜伽裤穿成日常的松弛感美女

把瑜伽裤穿成日常的松弛感美女

只要高兴就好
2026-04-13 14:30:30
警惕:上了年纪再过性生活,最怕这2点!保护男性精气,做好4点

警惕:上了年纪再过性生活,最怕这2点!保护男性精气,做好4点

医学科普汇
2026-05-18 17:45:05
伟大的6-2!白雨露终结者爆冷夺冠,刷新3大纪录,13万奖金到手!

伟大的6-2!白雨露终结者爆冷夺冠,刷新3大纪录,13万奖金到手!

刘姚尧的文字城堡
2026-05-19 17:11:25
继续空袭莫斯科!苏-57不仅拦截无人机,还击落乌克兰预警机?

继续空袭莫斯科!苏-57不仅拦截无人机,还击落乌克兰预警机?

鹰眼Defence
2026-05-19 17:18:31
笑喷了!难怪女装的退货率高!网友:我差点以为是我的问题!

笑喷了!难怪女装的退货率高!网友:我差点以为是我的问题!

另子维爱读史
2026-05-19 21:05:39
2026-05-20 10:47:00
DeepTech深科技 incentive-icons
DeepTech深科技
麻省理工科技评论独家合作
16723文章数 514969关注度
往期回顾 全部

科技要闻

一文看懂谷歌I/O2026:谷歌打响智能体大战

头条要闻

"父子娶堂姐妹"等伦理传闻的发酵 让毛巾大王坐不住了

头条要闻

"父子娶堂姐妹"等伦理传闻的发酵 让毛巾大王坐不住了

体育要闻

文班亚马:没拿到MVP,就证明自己是MVP

娱乐要闻

舒淇大方承认:卸了妆就是50 岁的模样

财经要闻

白酒榜|汾酒营收净利双增 口子窖"造富"

汽车要闻

焕新极氪009上市41.38万起 齐家版让MPV回归家庭

态度原创

游戏
家居
房产
亲子
公开课

《深海迷航2》严苛用户协议被怒喷!官方滑跪澄清

家居要闻

观山隐秀 心灵沉淀

房产要闻

7516元/㎡,161套一次全甩!海口住宅最低价出现了!

亲子要闻

警惕“电子带娃”,陪伴才是成长最好的礼物

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版