HyperAI超神经
Back to Headlines

字节跳动推出Seed-Coder:基于模型自动生成6万亿标记代码数据的高效开源大语言模型

a day ago

字节跳动的研究团队推出了一款名为Seed-Coder的新模型,这是一个由8个不同版本组成的开源大型语言模型(LLM)系列,包括基础模型、指令模型和推理模型。该模型旨在最小化人类在代码数据准备过程中的参与,通过模型自有的评分和过滤机制处理从GitHub等平台获取的大规模代码数据,构建了包含约6万亿个标记的数据集。 传统的代码LLM训练往往依赖手动过滤和专家制定的规则来筛选代码数据,这种方式不仅耗时,而且可能带有偏见,难以跨语言扩展。Seed-Coder则采用了一种模型优先的方法,通过大型语言模型自动评估和评分代码数据,确保数据质量的同时大大减少了人为干预。这种自动化流程可以更高效地处理多语言代码数据,避免了传统方法的局限性。 Seed-Coder的前训数据来自GitHub代码、提交历史记录和代码相关网站,经过初步的基本过滤后,模型会进一步评估和评分剩余的代码,构建高质量的前训语料库。前训分为两个阶段:首先是核心代码和网络数据的前训,随后是使用完整的代码仓库和长上下文任务(如中间填空)进行的更复杂的前训,以增强模型的编码能力。 在前训完成后,Seed-Coder进入后训阶段,进一步提高其性能。首先,指令模型通过监督微调的方式在多样化的人工生成指令数据上训练,使其更好地理解和响应人类指令。然后,通过直接偏好优化(DPO)技术使模型的回答更加符合人类偏好。对于复杂的多步骤代码推理任务,推理模型使用长链思维(LongCoT)强化学习技术进行训练,从而增强了其在多步骤逻辑任务中的表现。 评估结果显示,Seed-Coder的三个版本在各种编码任务中表现出色。基础模型在代码生成任务中超过了其他同规模的开源模型,例如在HumanEval和MultiPL-E等基准测试中取得了优异成绩。指令模型在需要代码编辑和指令跟随的任务中表现出色,在CodeEditorBench和FullStack等指标中领先。推理模型在复杂的多步骤问题解决任务中表现尤为突出,如LiveCodeBench和Codeforces基准测试中,甚至超越了规模几倍于自己的模型。 尽管Seed-Coder在代码任务上的表现优异,但其在一般语言理解和数学内容生成方面的能力仍然有限,因为前训数据主要集中在代码相关的领域。未来更新的目标是扩大模型家族,提高不同规模模型的能力。

Related Links