背景
BigCode 是 Hugging Face 与 ServiceNow 的合作项目,此次发布中英伟达也参与其中[1]。该项目研究代码模型,也就是在源代码上训练出来的语言模型。这类模型可以帮助完成补全代码、解释函数、查找错误等任务。它们的质量很大程度上取决于学习的代码,因此训练数据的选择与模型设计同样重要。
开源发布对开发者很有意义,因为模型权重可以被下载、检查,并在自己的机器上运行。使用者仍需遵守权重随附的许可证条款。
发生了什么
2024 年 2 月 28 日,BigCode 发布了 StarCoder2,共有 3B、7B 和 15B 三种参数规模[1]。参数是模型内部可以调整的数值,用来保存模型学到的一部分内容,所以名字中的 B 指的是十亿个这样的数值。此次发布还附带了一个新的训练集,名为 The Stack v2[1]。
三种模型并非由同一个团队训练。ServiceNow 训练 3B 模型,Hugging Face 训练 7B 模型,英伟达使用自家的 NeMo 框架训练 15B 模型[1]。这种分工说明,一个开放项目可以把软件公司、模型社区和芯片公司联合起来,各自负责系列中的一部分。
关键细节
15B 模型的训练量超过 4 万亿个令牌(token),覆盖 600 多种编程语言[1]。令牌是模型阅读的基本文本单位,可能是一个词,也可能是词的一部分。4 万亿个令牌意味着模型在训练中阅读了规模非常大的代码与文本。
The Stack v2 的规模为 67.5 TB,由 Software Heritage 源代码档案库构建[1]。训练集的规模之所以重要,是因为更大、更多样的代码能为模型提供更多不同语言中程序写法的例子。
上下文窗口(context window)增长到 16,384 个令牌[1]。它是模型一次能够接收的文本长度。窗口越大,模型能看到的项目内容就越多,例如程序员所在位置周围的函数。
模型以 BigCode OpenRAIL-M v1 许可证发布[1]。OpenRAIL 是一类开放获取许可证,并附有负责任使用的条件。如果要把模型用于产品,应先阅读许可证原文。
影响
对开发者而言,此次发布在同一系列与同一训练集之下提供了多种规模的选择,而不是单一模型。硬件条件有限的用户可以选择较小的模型,需要更广语言覆盖的用户可以选择 15B 模型。三种规模由不同合作方训练,这本身也体现了开放 AI 项目的组织方式。
15B 模型覆盖 600 多种编程语言,训练集正是为支持这样的广度而构建的。对于关注 AI 的读者来说,这一事件说明,训练数据的规模与发布的开放程度已成为代码模型的核心问题。
来源
- 1StarCoder2 and The Stack v2Hugging Face
引用本页: BigCode 与英伟达发布 StarCoder2 和 The Stack v2. TellWorld, https://www.tellworld.net/zh/news/starcoder2-2024. 更新于 2026-11-08