SafeCoder vs. 闭源代码助手

TL;DR

Hugging Face 发布了 SafeCoder,一个基于开源 StarCoder 模型的企业级代码助手。与闭源替代方案不同,SafeCoder 对训练数据提供完全透明,允许根据公司特定的编码指南进行深度定制,并支持气隙部署以实现最大安全和隐私。

最先进的模型架构

SafeCoder 由 StarCoder 模型家族提供支持,这些模型通过 BigCode 协作项目开发。核心 StarCoder 模型是一个拥有 155 亿参数的模型,在超过 80 种编程语言上进行训练。

关键技术规格包括:

  • 多查询注意力 (MQA): 用于提高吞吐量并降低延迟。
  • 上下文窗口: 8192 个标记的窗口使模型能够处理更大的现有代码块以获得更好的生成。
  • 中间填充 (FIM): 模型可以在现有文件中插入代码,而不仅仅是追加到末尾。
  • 升级路径: SafeCoder 旨在随时间集成新的最先进模型。

透明度和训练数据

SafeCoder 遵循 Chinchilla 缩放定律,并在 1 万亿代码标记上进行训练。这些标记来源于 “The Stack”,这是一个由许可证宽松的开源仓库组成的 2.7 TB 数据集。

为了确保透明度和道德来源,Hugging Face 提供:

  • 退出机制: 一个专用工具允许仓库所有者验证其代码是否在数据集中并请求删除。
  • 公开文档: 一篇研究论文公开了模型架构、训练过程和详细的性能指标。

企业定制

SafeCoder 设计为可根据公司的特定技术文化进行定制,例如内部编码指南、安全标准和首选的文档样式。Hugging Face 提供三种主要的底层模型版本:

  • StarCoderBase: 在 80+ 种语言上训练的原始模型。
  • StarCoder: StarCoderBase 在 Python 上进一步训练。
  • StarCoder+: StarCoderBase 在英文网络数据上进一步训练,以促进编码对话。

公司可以在自己的基础设施上使用来自 GitHub 的共享微调代码对这些模型进行微调,确保专有数据不会暴露给外部方。

IT 灵活性和部署

SafeCoder 通过使用 Docker 容器提供部署灵活性,使其能够通过任何容器管理服务在本地或云端运行。

硬件优化通过 Hugging Face 的 Optimum 库进行处理,该库会自动为 CPU、GPU 或 AI 加速器应用硬件加速,以优化训练和推理的成本性能比。

安全和隐私控制

SafeCoder 专为需要关键知识产权保护的高安全环境而设计。它相比托管的闭源服务提供了若干隐私优势:

  • 行政控制: 用户对安全检查和合规监控保持完全控制。
  • 气隙支持: SafeCoder 不需要互联网连接,并且可以完全运行在气隙环境中,这意味着它不会将遥测数据或提示发送回 Hugging Face。
  • 数据所有权: 提示和建议仅由用户独占。

相比之下,来源指出一些闭源服务会收集用户参与数据,且退出选项的可用性各不相同。

Sources