StarCoder2 和 The Stack v2

发布于 2024 年 2 月 28 日
在 GitHub 上更新
StarCoder2

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 相当。

StarCoder2 Evaluation

什么是 The Stack v2?

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 模型。

数据与治理

其他

您可以在 huggingface.co/bigcode 找到所有资源和链接!

社区

注册登录 以发表评论