SafeCoder 与闭源代码助手

发布日期:2023 年 9 月 11 日
在 GitHub 上更新

几十年来,软件开发人员设计了各种方法、流程和工具,以帮助他们提高代码质量并提升生产力。例如,敏捷开发、测试驱动开发、代码审查以及 CI/CD 现已成为软件行业的标准。

在《谷歌如何测试软件》(Addison-Wesley,2012)一书中,谷歌报告称,在系统测试(最终测试阶段)中修复一个 bug 的成本是单元测试阶段修复成本的 1000 倍。这给开发人员(链条中的第一环)带来了巨大压力,要求他们从一开始就编写高质量的代码。

尽管生成式人工智能被大肆宣传,但代码生成似乎是帮助开发人员快速交付更好代码的一种有前途的方法。事实上,早期研究表明,GitHub CopilotAmazon CodeWhisperer 等托管服务有助于提高开发人员的生产力。

然而,这些服务依赖于闭源模型,无法根据您的技术文化和流程进行定制。Hugging Face 几周前发布了 SafeCoder 来解决这个问题。SafeCoder 是一种专为企业打造的代码助手解决方案,它为您提供最先进的模型、透明度、可定制性、IT 灵活性和隐私保护。

在这篇文章中,我们将 SafeCoder 与闭源服务进行比较,并强调您可以从我们的解决方案中获得的益处。

最先进的模型

SafeCoder 目前基于 StarCoder 模型构建,该模型系列是在 BigCode 协作项目中设计和训练的开源模型。

StarCoder 是一个拥有 155 亿参数的模型,针对 80 多种编程语言的代码生成进行了训练。它采用了创新的架构概念,如 多查询注意力机制 (Multi-Query Attention, MQA),以提高吞吐量和降低延迟,该技术也存在于 Falcon 模型中,并适用于 LLaMa 2 模型。

StarCoder 拥有 8192 个 token 的上下文窗口,这有助于它在生成新代码时考虑更多现有代码。它还可以进行“中间填充”,即在现有代码中插入新代码,而不仅仅是在末尾追加新代码。

最后,与 HuggingChat 类似,SafeCoder 将随着时间的推移引入新的最先进模型,为您提供无缝的升级路径。

不幸的是,闭源代码助手服务不共享有关底层模型、其功能及其训练数据的信息。

透明度

根据奇拉缩放定律 (Chinchilla Scaling Law),SafeCoder 是一个计算最优模型,在 1 万亿 (1,000 亿) 代码令牌上进行训练。这些令牌提取自 The Stack,这是一个由许可开源仓库构建的 2.7 TB 数据集。我们尽一切努力尊重选择退出请求,并且我们构建了一个工具,允许仓库所有者检查他们的代码是否是数据集的一部分。

本着透明的精神,我们的研究论文披露了模型架构、训练过程和详细指标。

不幸的是,闭源服务坚持使用模糊的信息,例如“模型在数十亿行代码上训练”。据我们所知,没有可用的指标。

定制化

StarCoder 模型经过专门设计,具有可定制性,我们已经构建了不同版本:

  • StarCoderBase:在 The Stack 的 80 多种语言上训练的原始模型。
  • StarCoder:在 StarCoderBase 的基础上进一步训练了 Python。
  • StarCoder+:在 StarCoderBase 的基础上进一步训练了英文网络数据,用于编码对话。

我们还在 GitHub 上分享了微调代码

每家公司都有其偏好的语言和编码规范,例如如何编写行内文档或单元测试,以及安全和性能方面的注意事项。通过 SafeCoder,我们可以帮助您训练模型,使其学习您的软件工程流程的特殊性。我们的团队将帮助您准备高质量数据集,并在您的基础设施上微调 StarCoder。您的数据绝不会泄露给任何人。

不幸的是,闭源服务无法定制。

IT 灵活性

SafeCoder 依赖 Docker 容器进行微调和部署。它可以轻松地在本地或云端的任何容器管理服务上运行。

此外,SafeCoder 还包含了我们的 Optimum 硬件加速库。无论您使用 CPU、GPU 还是 AI 加速器,Optimum 都会自动启动,帮助您节省训练和推理的时间和金钱。由于您控制着底层硬件,您还可以根据自己的需求调整基础设施的成本性能比。

不幸的是,闭源服务仅作为托管服务提供。

安全与隐私

安全始终是首要考虑的问题,尤其是在涉及源代码时。知识产权和隐私必须不惜一切代价得到保护。

无论您是在本地运行还是在云端运行,SafeCoder 都完全在您的行政控制之下。您可以应用和监控您的安全检查,并在您的 IT 平台中保持强大而一致的合规性。

SafeCoder 不会窥探您的任何数据。您的提示和建议只属于您。SafeCoder 不会联系外部并向 Hugging Face 或任何其他人发送遥测数据。除了您之外,没有人需要知道您如何以及何时使用 SafeCoder。SafeCoder 甚至不需要互联网连接。您可以(也应该)完全断开网络运行它。

闭源服务依赖于底层云的安全性。这是否符合您的合规性要求由您决定。对于企业用户,提示和建议不存储(个人用户则存储)。但是,我们遗憾地指出,GitHub 收集“用户参与数据”且无法选择退出。AWS 默认也这样做,但允许您选择退出

结论

我们对 SafeCoder 的未来感到非常兴奋,我们的客户也是如此。没有人应该在最先进的代码生成、透明度、定制化、IT 灵活性、安全性和隐私方面妥协。我们相信 SafeCoder 能够提供所有这些,我们将继续努力使其变得更好。

如果您对贵公司的 SafeCoder 感兴趣,请联系我们。我们的团队将尽快与您联系,了解您的用例并讨论需求。

感谢阅读!

社区

注册登录 以评论