量子位 昨天
字节Seed首次开源代码模型,拿下同规模多个SOTA,提出用小模型管理数据范式
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

字节 Seed 首次开源代码模型!

Seed-Coder,8B 规模,超越 Qwen3,拿下多个 SOTA。

它证明" 只需极少人工参与,LLM 就能自行管理代码训练数据 "

通过自身生成和筛选高质量训练数据,可大幅提升模型代码生成能力。

这可以被视为对 DeepSeek-R1 模型自我生成和筛选训练数据策略的扩展。

一共包含三个版本:

Base

Instruct

Reasoning

其中,Instruct 在编程方面表现出色,拿下两个测试基准 SOTA。

推理版本,在 IOI 2024 上超越了 QwQ-32B 和 DeepSeek-R1。

模型上下文长度 32K,使用 6T tokens 训练,并采用宽松的 MIT 开源协议,完整代码已发布在 Hugging Face。

用模型管理训练数据

Seed-Coder 的前身是 doubao-coder,采用 Llama 3 结构,参数量为 8.2B,6 层,隐藏层大小为 4096,采用分组查询注意力(GQA)机制。

最关键的工作是数据的处理,Seed 团队提出了一种 " 模型中心 " 的数据处理方式,使用模型来策划数据。

具体来说,模型会从 GitHub 和网络档案爬取原始代码数据,经过几个处理步骤后输出最终的预训练数据。

Seed-Coder 的过滤数据分为四个类别:

文件级代码:来自 GitHub 的单个代码文件,经过处理后保留了高质量的代码内容。

仓库级代码:基于仓库结构的代码文件,保留了项目结构信息,使模型能学习到代码间的关系。

Commit 数据:GitHub 提交的快照,包括提交信息、仓库元数据、相关文件和代码补丁,包括来自 14 万个高质量仓库的 7400 万次提交;

代码相关网络数据:从网络存档中提取的包含代码块或高度代码相关的文档。

先看看代码的处理,在预处理阶段,系统在仓库和文件两个层级实施去重,SHA256 哈希进行精确去重,并通过 MinHash 算法进行近似去重。

这种双层策略产生了两种变体的代码语料库——文件级变体用于短上下文窗口训练,仓库级变体保留了项目结构以支持更连贯的长上下文学习。

随后,系统使用 Tree-sitter 等语法解析器检查剩余文件,丢弃那些包含语法错误的文件。这个预处理阶段总共减少了大约 98% 的原始数据量。

在质量过滤阶段,Seed-Coder 使用一个经过 22 万 + 份代码文档特殊训练的评分模型来过滤低质量代码文件。

评分模型以 DeepSeek-V2-Chat 为基础,评价指标包含四个关键方面:

可读性:包含合理数量的注释,遵循一致的命名规范,并遵循通用的格式和结构规范;

模块性:结构合理,避免功能过于复杂或冗长,通过模块化实现逻辑功能清晰分离;

清晰度:减少冗余,(如过多的函数调用、大段注释代码或调试打印语句),每个代码块的意图表达清晰;

可重用性:没有语法和逻辑错误、避免过多硬编码数据、设计便于与其他项目集成、功能完整且有意义。

评分模型被要求给出一个从 0 到 10 的总体评分,并提供详细解释,之后将分数重新缩放到 [ 0,1 ] 范围,并使用 1.3B 参数的预训练 Llama 2 模型,通过回归头进行一个 epoch 的微调作为质量评分器。

最终基于这种评分方法,Seed 团队过滤掉了得分最低的约 10% 文件,得到了支持 89 种编程语言、包含约 1 万亿个独特 token 的语料库。

再来是 Commit 的部分,Seed-Coder 从 14 万个高质量 GitHub 仓库中收集了 7400 万个提交记录。这些仓库的筛选标准包括 : 至少 100 颗星、10 个 fork、100 次提交和 100 天的维护活动。

每个提交记录都包含丰富的元数据,如提交消息、代码补丁、合并状态以及提交前的代码快照。

为了在预训练中有效利用这些数据,Seed-Coder 将每个提交样本格式化为一个代码变更预测任务。给定一个提交消息及其相关上下文,模型需要预测被修改的文件路径以及相应的代码变更。

在进行去重和预处理后,Seed-Coder 获得了约 1000 亿 token 的提交数据语料库用于预训练。

对于从网络获取的数据,Seed-Coder 也提出了一个专门的提取框架。

在预处理阶段,框架对大规模网络档案进行高效预处理,并识别出两类原始数据:

第一类是 HTML 中带有明确代码标签(如…)的网页,这些可以通过标准规则直接提取;

第二类是没有明确代码标签但可能包含代码或相关知识的数据,这类数据由于其体量和复杂性带来了提取挑战。

与 GitHub 数据处理类似,研究团队实施了精确和近似去重技术,并开发了启发式规则来在预处理阶段剔除明显的低质量文档(例如少于 10 个词的文档)。

在质量过滤阶段,框架采用两个互补策略来确保数据质量:首先是识别代码相关性,然后评估已识别内容的内在质量。

在代码相关性识别步骤中,研究团队首先从 Common Crawl 数据中抽取了 1000 万个网页样本,将具有代码特征的页面标记出来,建立评估数据集。

这个数据集中 70% 用作训练集,用于训练 fastText 模型来自动识别代码相关内容,剩余 30% 作为验证集来评估模型效果。

在质量评估步骤中,系统使用 LLM 对已识别的代码相关内容进行评分,评分标准采用 0-10 分制,评估内容的规范性、完整性和价值。

但在实际评估过程中,研究者发现不同类型网站的得分出现了系统性偏差:

文档网站、技术博客等由于格式规范、结构清晰,普遍获得较高分数;而技术论坛、问答平台等网站,虽然往往包含有价值的技术讨论和解决方案,但因其非正式的格式而得分较低。

为了解决这种评分偏差,研究团队对评分系统进行了优化——首先将网站按其内容形式和功能进行分类,然后为每类网站制定专门的评分标准和筛选阈值。

通过这套经过优化的双重过滤机制,系统最终构建了一个约 1.2 万亿 tokens 的网络数据语料库。

基于前面的四个数据类别,Seed-Coder 的预训练分为了两个阶段。

其中,第一个阶段为常规预训练,使用的是文件级代码和代码相关网络数据,目的是构建模型的基础能力。

第二个阶段是持续预训练,使用所有四个类别的数据,并额外引入了高质量数据集和长上下文数据集,以增强性能并进行对齐,同时刺激模型理解长上下文数据的能力。

除了常规的 next-token 预测目标外,Seed-Coder 还采用了 Fill-in-the-Middle(FIM)和 Suffix-Prefix-Middle(SPM)训练,分别增强上下文感知完成和中间内容能力。

基于基础模型,Seed 团队还开发了 Seed-Coder 的两个特殊变体——

指令模型(-Instruct):目的是增强模型的指令遵循能力,其训练分为监督微调(SFT)第二阶段和直接偏好优化(DPO)两个阶段;

推理模型(-Reasoning):目的是提升模型在复杂编程任务中的多步推理能力,采用长链条思维 ( LongCoT ) 强化学习训练。首先使用从编程竞赛问题和高质量模型生成的解决方案进行预热训练,然后通过 GRPO 框架实施强化学习训练。

这两个变体的设立,进一步扩展了 Seed-Coder 的实用性。

字节 Seed 最近更开放了

除了开源 Seed-Coder 外,字节 Seed 近期多个动作也都聚焦在了降门槛、开源开放方面。

比如在基础模型方面,发布了视频生成和推理模型。

视频生成模型 Seaweed,70 亿参数原生支持 1280x720 分辨率、任意宽高比和时长视频生成,效果超越 140 亿参数模型。

它强调了成本方面的优势,使用 665000 H100 GPU 小时完成训练,中小团队可部署,仅需 40GB 显存单 GPU 就可生成分辨率达 1280x720 的视频。

深度思考模型 Seed-Thinking-v1.5,更轻量级、更少激活参数,在数学、代码等推理任务重超越 DeepSeek-R1。

同时团队公开技术报告,介绍其中秘诀,通过数据、RL 算法和 RL 基础设施三方面提升推理表现。

在智能体方面,与清华联手推出了电脑操作智能体 UI-TARS,超越 GPT-4o 等,且免费商用

它在 Qwen-VL 基础上而来,能一步步自动完成跨任务的复杂操作,并兼容各种系统。目前 GitHub 上星标已超过 5.8k。

此外还推出了 Multi-SWE-bench:用于问题解决的多语言基准。它跨越 7 种编程语言,包含 1632 个高质量实例。

……

与此同时,字节 Seed 内部也在不断调整。消息称,LLM 之下的 3 个团队,Pre-train(预训练)、Post-train(后训练) 和 Horizon 如今转为直接向 Seed 负责人吴永辉汇报。字节 AI Lab 中探索机器人 & 具身智能、AI for Science 和 AI 安全可解释性的三个方向,也已并入 Seed。

今年年初,字节正式设立代号为 "Seed Edge" 的研究项目,核心目标是做比预训练和大模型迭代更长期、更基础的 AGI 前沿研究,项目成员拥有宽松的研究环境、独立计算资源,并实行更长期的考核方式。拟定五大研究方向也完全面向下一代 AI 研究、原始性创新,或者是范式上的更迭。

而透过字节的动向,如今 AI 圈子的新风向也更明朗了。

开源、开放、原始性创新、AI 普惠……

言而总之,还得是感谢 DeepSeek 了?(doge)

项目地址:

https://bytedance-seed-coder.github.io/

参考链接:

https://seed.bytedance.com/zh/

—    —

 量子位 AI 主题策划正在征集中!欢迎参与专题365 行 AI 落地方案,一千零一个 AI 应,或与我们分享你在寻找的 AI 产品,或发现的AI 新动向

也欢迎你加入量子位每日 AI 交流群,一起来畅聊 AI 吧~

一键关注 点亮星标

科技前沿进展每日见

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

开源 档案 编程
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论