$("body").append("")

代码生成AI“StarCoder 2”正式发布

618次阅读
没有评论

概要:
StarCoder 2是一种代码生成人工智能,可在大多数GPU上运行。它不是单一的模型,而是一个由三种不同参数规模的模型组成的家族。StarCoder 2带来了明显改进的性能,同时降低了运营成本。然而,尽管其优点显而易见,但仍存在一些潜在的问题,如安全性漏洞和许可证限制。


近年来,开发人员以惊人的速度采用了AI驱动的代码生成器,例如GitHub Copilot和亚马逊CodeWhisperer,以及Meta的Code Llama等开放访问模型。但这些工具远非完美。许多并非免费。其他一些则免费,但仅适用于不常见的商业环境。

察觉到替代品的需求,人工智能初创公司Hugging Face几年前与工作流自动化平台ServiceNow合作,创建了一个名为StarCoder的开源代码生成器,其许可证不像其他许多许可证那样限制性。原始版本于去年初上线,此后一直在进行StarCoder的后续工作,如今推出了StarCoder 2。

StarCoder 2不是单一的代码生成模型,而是一个家族。今天发布的版本有三种变体,前两种可以在大多数现代消费级GPU上运行:

1.由ServiceNow训练的30亿参数(3B)模型
2.由Hugging Face训练的70亿参数(7B)模型
3.由Nvidia训练的150亿参数(15B)模型,Nvidia是StarCoder项目的最新支持者

代码生成AI“StarCoder 2”正式发布

像大多数其他代码生成器一样,StarCoder 2可以建议完成未完成的代码行的方法,以及在自然语言中进行代码摘要和检索。相比于原始StarCoder(6.4TB),StarCoder 2的训练数据增加了4倍(67.5TB),Hugging Face、ServiceNow和Nvidia称,StarCoder 2的性能得到了“显着”改进,运营成本更低。

StarCoder 2可以使用类似Nvidia A100的GPU在几小时内进行微调,以创建诸如聊天机器人和个人编码助手之类的应用程序。由于StarCoder 2是在比原始StarCoder更大更多样的数据集上训练的(约619种编程语言),因此StarCoder 2可以进行更准确、更具上下文感知的预测。

从我对这些新闻信息的理解来看,StarCoder 2的推出意味着开发人员将拥有一个更高效、更经济的工具来帮助他们快速构建应用程序。然而,与任何技术工具一样,StarCoder 2也存在一些挑战,如安全漏洞和许可证限制。

对于安全漏洞,最近斯坦福大学的一项研究发现,使用代码生成系统的工程师更有可能在其开发的应用程序中引入安全漏洞。另外,来自网络安全公司Sonatype的一项民意调查显示,大多数开发人员担心对代码生成器生成的代码的产生方式缺乏了解,以及代码生成器生成了过多难以管理的代码。

StarCoder 2的许可证也可能成为一些开发人员的障碍。StarCoder 2采用的BigCode Open RAIL-M 1.0许可证旨在通过对模型许可证持有者和下游用户都施加“轻度触及”限制来促进负责任的使用。然而,一些评论员称RAIL-M的要求可能太过模糊,以至于无法遵守,而且RAIL-M可能与EU AI法等人工智能相关法规发生冲突。

尽管存在这些批评,Hugging Face的一位发言人表示,许可证经过精心设计,以最大程度地符合当前的法律和法规。

除了以上批评之外,StarCoder 2真的优于其他代码生成器吗?根据基准测试,它似乎比Code Llama的某个版本更高效。Hugging Face表示,StarCoder 2 15B在某些代码完成任务的子集上与Code Llama 33B的性能相当,但速度是它的两倍。然而,尚不清楚是哪些任务;Hugging Face并未具体说明。

作为一个开源的模型集合,StarCoder 2还具有部署到本地并“学习”开发者源代码或代码库的优势,这对于对将代码暴露给云托管AI感到担忧的开发人员和公司来说是一个吸引人的前景。根据Portal26和CensusWide在2023年进行的一项调查,85%的企业表示,他们担心采用像代码生成器这样的GenAI会带来隐私和安全风险,比如员工共享敏感信息或供应商训练专有数据。

Hugging Face、ServiceNow和Nvidia还提出,StarCoder 2更具道德性,而且法律纠纷更少,与其竞争对手相比。与那些使用受版

权保护的代码进行训练的代码生成器不同(例如GitHub Copilot等),StarCoder 2仅在软件遗产(Software Heritage)许可的数据上进行了训练。在StarCoder 2的训练之前,BigCode给了代码所有者一个选择,让他们选择是否要在训练集中退出。

与原始StarCoder一样,StarCoder 2的训练数据可供开发人员分叉、重现或审计。

然而,正如Hugging Face机器学习工程师、BigCode的联合负责人Leandro von Werra所指出的,StarCoder 2并不完美。与其他代码生成器一样,它容易受到偏见的影响。De Vries指出,它可能生成具有反映性别和种族刻板印象的代码元素。而且由于StarCoder 2主要是根据英语注释、Python和Java代码进行训练的,所以在其他语言和“低资源”代码(如Fortran和Haskell)上表现较差。

尽管存在一些问题,但von Werra认为这是朝着正确方向迈出的一步。

“我们坚信,建立与AI模型的信任和问责制需要对整个模型流水线进行透明和可审计的全面了解,包括从爬取预训练数据到训练本身的过程。”他在采访中说。“StarCoder 2展示了如何完全公开的模型可以提供竞争性的性能。”

至于Hugging Face、ServiceNow和Nvidia投资于StarCoder 2这样的项目的动机,我想说,这是一个行之有效的策略:在开源发布的基础上建立商业服务,从而培养良好的声誉。

到目前为止,ServiceNow已经利用StarCoder开发了Now LLM,这是一个针对ServiceNow工作流模式、用例和流程进行代码生成的产品。Hugging Face提供模型实现咨询计划,并在其平台上提供StarCoder 2模型的托管版本。Nvidia也通过API和Web前端提供StarCoder 2。

对于那些专门对离线体验感兴趣的开发人员,StarCoder 2——包括模型、源代码等——可以从该项目的GitHub页面下载。

正文完