BigCode 发布 StarCoder2 代码模型,并推出 The Stack v2 数据集
StarCoder2 and The Stack v2
BigCode 发布透明训练的开放代码大模型 StarCoder2,含 3B、7B、15B 三个参数版本,分别由 ServiceNow、Hugging Face 和 NVIDIA 训练。
BigCode 同时放出 3B/7B/15B 三档代码模型与 67.5TB 数据集,可据此判断开源代码模型的当前水位。
BigCode 发布了 StarCoder2,这是下一代透明训练的开放式代码 LLM。所有 StarCoder2 变体都在 The Stack v2 上训练,这是一个全新的大规模高质量代码数据集。我们发布了所有模型、数据集、处理流程以及训练代码。详情请查看 论文。
StarCoder2 是什么?
StarCoder2 是一个面向代码的开放式 LLM 系列,提供 3B、7B 和 15B 参数三种不同规模。旗舰型号 StarCoder2-15B 在超过 4 万亿 token 和 The Stack v2 中的 600 多种编程语言上进行了训练。所有模型均采用分组查询注意力(Grouped Query Attention),上下文窗口为 16,384 个 token,滑动窗口注意力为 4,096 个 token,并使用 Fill-in-the-Middle 目标进行训练。
StarCoder2 提供三种模型规模:由 ServiceNow 训练的 30 亿参数模型、由 HF Mirror 训练的 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 在同规模级别中表现最佳,并在许多评估中与 33B+ 模型匹敌。StarCoder2-3B 的性能与 StarCoder1-15B 相当:
The Stack v2 是什么?
The Stack v2 是适用于 LLM 预训练的最大开放式代码数据集。The Stack v2 比 The Stack v1 更大,采用了改进的语言和许可证检测流程,以及更好的过滤启发式方法。此外,训练数据集按代码仓库分组,允许使用仓库上下文训练模型。
| The Stack v1 | The Stack v2 | |
|---|---|---|
| 完整 | 6.4TB | 67.5TB |
| 去重 | 2.9TB | 32.1TB |
| 训练数据集 | 约 200B token | 约 900B token |
该数据集源自 Software Heritage 档案库,这是最大的公共软件源代码及附带开发历史档案库。Software Heritage 由 Inria 与 UNESCO 合作发起,是一个开放的非营利倡议,旨在收集、保存和分享所有公开可用软件的源代码。我们感谢 Software Heritage 提供这一宝贵资源。更多详情,请访问 Software Heritage 网站。
The Stack v2 可通过 HF Mirror Hub 访问。
关于 BigCode
BigCode 是由 HF Mirror 和 ServiceNow 共同领导的开放科学合作项目,致力于负责任地开发面向代码的大语言模型。
链接
模型
- 论文:关于 StarCoder2 和 The Stack v2 的技术报告。
- GitHub:关于使用或微调 StarCoder2 所需了解的一切。
- StarCoder2-3B:小型 StarCoder2 模型。
- StarCoder2-7B:中型 StarCoder2 模型。
- StarCoder2-15B:大型 StarCoder2 模型。
数据与治理
- StarCoder2 许可协议:该模型依据 BigCode OpenRAIL-M v1 许可协议授权。
- StarCoder2 搜索:对预训练数据集中的代码进行全文搜索。
- StarCoder2 成员测试:极速检查代码是否存在于预训练数据集中。
其他
你可以在 hf-mirror.com/bigcode 找到所有资源和链接!
来源:Hugging Face Blog · hf-mirror.com