StarCoder2 和 The Stack v2

BigCode 正在发布 StarCoder2,这是下一代经过透明训练的开放代码大语言模型 (LLM)。所有 StarCoder2 变体都在 The Stack v2 上进行了训练,这是一个全新的大型高质量代码数据集。我们发布了所有模型、数据集、以及处理和训练代码。请查看论文以获取详细信息。
什么是 StarCoder2?
StarCoder2 是一个开放的代码大语言模型系列,提供 3 种不同大小,参数分别为 30 亿、70 亿和 150 亿。旗舰级的 StarCoder2-15B 模型在 The Stack v2 数据集上训练,该数据集包含超过 4 万亿个 token 和 600 多种编程语言。所有模型都使用了分组查询注意力 (Grouped Query Attention)、16,384 个 token 的上下文窗口以及 4,096 个 token 的滑动窗口注意力,并采用“填充中间”(Fill-in-the-Middle) 目标进行训练。
StarCoder2 提供三种模型大小:一个由 ServiceNow 训练的 30 亿参数模型,一个由 Hugging Face 训练的 70 亿参数模型,以及一个由 NVIDIA 使用 NVIDIA NeMo 在 NVIDIA 加速基础设施上训练的 150 亿参数模型。
- StarCoder2-3B 在 The Stack v2 的 17 种编程语言、超过 3 万亿个 token 上进行了训练。
- StarCoder2-7B 在 The Stack v2 的 17 种编程语言、超过 3.5 万亿个 token 上进行了训练。
- StarCoder2-15B 在 The Stack v2 的 600 多种编程语言、超过 4 万亿个 token 上进行了训练。
StarCoder2-15B 在其同等规模的模型中表现最佳,并且在许多评估中与 330 亿以上参数的模型相当。StarCoder2-3B 的性能与 StarCoder1-15B 相当。

什么是 The Stack v2?

The Stack v2 是目前最大的适用于大语言模型预训练的开放代码数据集。The Stack v2 比 The Stack v1 更大,采用了改进的语言和许可证检测程序,以及更好的过滤启发式方法。此外,训练数据集按代码仓库进行分组,从而允许模型在训练时利用代码仓库的上下文信息。
The Stack v1 | The Stack v2 | |
---|---|---|
完整版 | 6.4TB | 67.5TB |
去重后 | 2.9TB | 32.1TB |
训练数据集 | 约 2000 亿个 token | 约 9000 亿个 token |
该数据集源自 Software Heritage 档案库,这是最大的软件源代码及其开发历史的公共档案库。Software Heritage 是由 Inria 与联合国教科文组织 (UNESCO) 合作发起的,是一个旨在收集、保存和分享所有公开可用软件源代码的开放非营利性倡议。我们感谢 Software Heritage 提供了这一宝贵资源的访问权限。更多详情,请访问 Software Heritage 网站。
可以通过 Hugging Face Hub 访问 The Stack v2。
关于 BigCode
BigCode 是一个由 Hugging Face 和 ServiceNow 联合领导的开放科学合作项目,致力于负责任地开发用于代码的大型语言模型。
链接
模型
- 论文:关于 StarCoder2 和 The Stack v2 的技术报告。
- GitHub:关于使用或微调 StarCoder2 的所有信息。
- StarCoder2-3B:小尺寸的 StarCoder2 模型。
- StarCoder2-7B:中等尺寸的 StarCoder2 模型。
- StarCoder2-15B:大尺寸的 StarCoder2 模型。
数据与治理
- StarCoder2 许可协议:该模型根据 BigCode OpenRAIL-M v1 许可协议进行许可。
- StarCoder2 搜索:在预训练数据集中进行代码全文搜索。
- StarCoder2 成员资格测试:快速检查代码是否存在于预训练数据集中。
其他
您可以在 huggingface.co/bigcode 找到所有资源和链接!