开发者们正以惊人的速度采用基于人工智能的代码生成器,例如 GitHub Copilot、Amazon CodeWhisperer 以及 Meta 的 Code Llama 等开放访问模型。然而令人惊讶的是,这些工具远非理想:许多并非免费,另一些虽免费却仅在排除常见商业使用场景的许可下提供。
察觉到市场对替代方案的需求,AI 初创公司 Hugging Face 几年前与工作流程自动化平台 ServiceNow 合作创建了 StarCoder。这是一个开源代码生成器,其许可限制比市面上其他产品更为宽松。原版于去年年初上线,此后团队一直在进行后续版本 StarCoder 2 的开发工作。
StarCoder 2 系列发布
StarCoder 2 并非单一模型,而是一个包含三个变体的系列,今天发布的版本中前两个可在大多数现代消费级 GPU 上运行:
- 由 ServiceNow 训练的 30 亿参数(3B)模型;
- 由 Hugging Face 训练的 70 亿参数(7B)模型;
- 由 Nvidia 训练的 150 亿参数(15B)模型(Nvidia 是该项目最新的支持者)。
注:“参数”指从训练数据中学习到的模型部分,本质上定义了模型在特定问题(本例中为生成代码)上的能力。
性能提升与应用场景
与大多数代码生成器一样,StarCoder 2 可建议如何补全未完成的代码行,并能在自然语言提问时总结和检索代码片段。其训练数据量是原始 StarCoder 的四倍(67.5 TB 对比 6.4 TB),Hugging Face、ServiceNow 和 Nvidia 将其性能提升描述为“显著”,同时运营成本更低。
使用 Nvidia A100 等 GPU,StarCoder 2 可在几小时内基于第一方或第三方数据进行微调,从而创建聊天机器人和个人编程助手等应用。由于训练数据集更大且更多样化(涵盖约 619 种编程语言),理论上它能做出更准确、更具上下文感知能力的预测。
ServiceNow StarCoder 2 开发团队负责人 Harm de Vries 表示:“StarCoder 2 专为需要快速构建应用程序的开发人员而设计。借助该工具,开发人员可利用其功能提高编码效率,同时不牺牲速度或质量。”
潜在风险与挑战
尽管有上述优势,但并非所有开发人员都认同关于速度和质量的观点。代码生成器承诺简化任务,但也伴随代价:
- 安全隐患:斯坦福大学研究发现,使用代码生成系统的工程师更有可能在应用中引入安全漏洞;
- 代码蔓延:网络安全公司 Sonatype 的调查显示,大多数开发人员担心缺乏对生成代码的了解,以及生成器产生过多难以管理的代码导致“代码蔓延”问题。
此外,StarCoder 2 的许可证也可能成为障碍。它采用 BigCode Open RAIL-M 1.0 许可证,旨在通过施加“轻度”限制促进负责任使用。虽然约束较少,但 RAIL-M 并非真正意义上的“开放”,不允许将模型用于每一个可想象的应用场景(如医疗建议被严格禁止)。一些评论人士认为 RAIL-M 要求模糊、难以合规,且可能与欧盟《人工智能法案》等法规冲突。对此,Hugging Face 发言人回应称:“该许可证经过精心设计,以最大限度地符合当前的法律法规。”
竞争优势:效率、隐私与合规
StarCoder 2 是否优于市面上其他代码生成器?根据基准测试,它似乎比 Code Llama 33B 更高效。Hugging Face 表示,StarCoder 2 15B 在部分代码补全任务上的表现与 Code Llama 33B 相当,但速度是其两倍。
作为开源模型集合,StarCoder 2 支持本地部署并“学习”开发者的源代码库,这对担心云端 AI 隐私和安全风险的企业颇具吸引力。Portal26 和 CensusWide 2023 年的调查显示,85% 的企业因隐私和安全风险(如敏感信息泄露或供应商利用专有数据训练)而对采用生成式 AI 持谨慎态度。
在道德和法律层面,Hugging Face、ServiceNow 和 Nvidia 主张 StarCoder 2 比竞争对手更具优势:
- 版权风险低:不同于使用受版权保护代码训练的竞品,StarCoder 2 仅使用软件遗产组织(Software Heritage)授权许可的数据训练。BigCode 团队在训练前给予了代码所有者选择退出的机会;
- 数据透明:与最初的 StarCoder 一样,其训练数据可供开发者随意分叉、重现或审计。BigCode 联合负责人 Leandro von Werra 指出,StarCoder 2 在整个训练流程中保持完全透明,解决了训练过程不可重现及数据生产者不知情的问题;
- 法律保障差异:虽然 GitHub、微软和亚马逊等供应商承诺在客户被指控侵权时提供法律保障,但这通常仅限于企业客户。StarCoder 2 则从源头上降低了此类风险。
局限性与未来展望
StarCoder 2 并非完美无缺。与其他代码生成器一样,它容易受到偏见影响,可能生成包含性别和种族刻板印象元素的代码。此外,由于主要使用英语注释及 Python、Java 代码训练,它在非英语语言及 Fortran、Haskell 等“低资源”语言上的表现较弱。
尽管如此,von Werra 认为这是正确的方向:“建立对 AI 模型的信任和问责制需要整个模型流程的透明度和可审计性。StarCoder 2 展示了完全开放的模型如何能够提供具有竞争力的性能。”
商业模式与获取方式
Hugging Face、ServiceNow 和 Nvidia 投资 StarCoder 2 的动力在于一种久经考验的策略:通过开源发布培养声誉,并在此基础上构建付费服务。目前,ServiceNow 已推出针对自身工作流微调的 Now LLM;Hugging Face 在其平台上托管了 StarCoder 2 并提供实施咨询;Nvidia 也通过 API 和 Web 前端提供服务。
对于希望获得免费离线体验的开发人员,可以直接从项目的 GitHub 页面下载 StarCoder 2(包括模型、源代码等)。

