AI初创公司Hugging Face与ServiceNow Research联合发布了StarCoder。这是一款免费的代码生成AI系统,可作为GitHub Copilot的替代方案。
DeepMind AlphaCode、Amazon CodeWhisperer及OpenAI Codex等工具,展示了AI在编程领域的巨大潜力。若伦理、技术及法律问题得以解决,且未引入更多安全漏洞,AI编码工具将大幅降低开发成本,使程序员专注于创造性任务。
剑桥大学研究显示,开发人员超半数精力耗费于调试,导致软件行业年损约3120亿美元。然而,目前仅少数代码生成AI向公众免费开放,这主要受限于构建方的商业动机(如Replit)。
相比之下,StarCoder采用开放许可,允许企业及个人免费使用。该模型基于80多种编程语言及GitHub仓库文本(含文档和笔记本)训练而成,已集成至VS Code编辑器,并能像ChatGPT一样响应指令或解答代码问题。
祝贺所有在过去6个多月里不懈工作以实现负责任地开发15B参数代码LLM愿景的@BigCodeProject贡献者。我们非常感谢你们对社区的协作与贡献。
—— ServiceNow Research (@ServiceNowRSRCH) 2023年5月4日
Hugging Face机器学习工程师、StarCoder联合负责人Leandro von Werra表示,StarCoder性能对标甚至优于驱动Copilot初版的OpenAI模型。
von Werra指出:“从Stable Diffusion等项目可见开源社区的创造力。发布强大的代码生成模型后,社区已在数周内构建数十种变体及应用。这将赋能任何人进行微调以适应自身用例,催生无数下游应用。”
构建模型
StarCoder隶属于拥有600多名成员的BigCode项目,该项目由Hugging Face与ServiceNow于去年启动,旨在以“开放且负责任”的方式开发顶尖代码AI系统。Hugging Face为此提供了由512块Nvidia V100 GPU组成的内部集群用于模型训练。
BigCode各工作组分别负责数据集收集、训练方法实施、评估套件开发及伦理实践讨论。例如,法律与伦理组重点探讨了数据许可、代码归属、PII移除及恶意代码输出风险等问题。
受Hugging Face此前开源文本生成系统的启发,BigCode致力于化解AI代码生成的争议。Software Freedom Conservancy等机构曾批评GitHub和OpenAI使用非宽松许可的公共代码训练并商业化Codex。尽管GitHub和OpenAI声称其符合美国合理使用原则,但Codex现已通过付费API获取,Copilot也开始收费。
von Werra强调:“发布具备能力的代码生成系统,可为缺乏资源的研究机构提供研究平台,长远来看有助于促进关于代码生成系统安全性、能力及局限性的富有成效的研究。”
与Copilot不同,150亿参数的StarCoder基于开源数据集The Stack训练而成。该数据集包含1900多万个授权宽松的代码仓库及350多种语言的6TB代码。参数作为AI从历史数据中学习的关键部分,定义了系统在代码生成等特定问题上的技能水平。
The Stack许可协议宽松,支持复制、修改及再分发。同时,BigCode提供了类似艺术家退出图像AI训练的机制,允许开发者选择退出该数据集。
BigCode团队还致力于清除The Stack中的姓名、邮箱、IP地址、密钥及密码等PII信息,并创建了包含1.2万个PII文件的受限访问数据集供研究人员使用。此外,团队利用Hugging Face恶意代码检测工具,移除了存在已知漏洞利用等不安全文件。
生成式AI的隐私安全问题广为人知。ChatGPT曾泄露记者电话,GitHub也承认Copilot可能生成训练数据中见过的密钥或凭证。
von Werra坦言:“代码是企业最敏感的知识财产,将其共享至基础设施之外面临巨大挑战。”
法律专家指出,若AI无意中将受版权保护或敏感文本纳入生产软件,将使公司面临风险。由于Copilot等系统剥离了许可证信息,用户难以判断哪些代码可部署,哪些可能存在条款冲突。
针对此,GitHub增加了过滤开关以阻止匹配公开版权内容的推荐;Amazon CodeWhisperer则高亮显示并可选过滤与训练数据相似的函数及其关联许可证。
商业驱动因素
ServiceNow Research大语言模型实验室负责人兼BigCode联合负责人Harm de Vries表示,ServiceNow从中获得了表现强劲的模型及允许商用的负责任AI许可。该公司虽未透露具体投入金额,但确认捐赠了“数量可观”的计算资源,未来或将StarCoder整合至商业产品中。
de Vries称:“BigCode采用的开放科学研究方法确保了透明度,体现了ServiceNow为社会做出负责任贡献的承诺,同时也积累了安全、合乎道德部署生成式AI的专业知识。”
StarCoder并非严格意义上的开源,而是基于OpenRAIL-M许可发布。该方案包含具有法律约束力的使用限制,要求衍生作品及应用必须遵守,例如禁止生成或分发恶意代码。
尽管现实中案例尚少,但研究人员已展示此类AI可能被用于逃避检测的恶意软件。如同Stable Diffusion的严格许可曾被无视用于制作深度伪造图片,开发者是否尊重StarCoder条款仍有待观察。
von Werra认为不发布的缺点大于优点:“初期StarCoder功能虽不及Copilot,但凭借开源性质,社区可在过程中协助改进并集成自定义模型。”
本周,StarCoder的代码仓库、训练框架、数据集过滤方法、评估套件及分析笔记本已在GitHub上线。BigCode项目将继续维护这些资源,推动社区开发更强大的代码生成模型。
当然,大量工作仍需继续。技术论文指出,StarCoder仍可能产生不准确、冒犯性或误导性内容,以及未能完全过滤的PII和恶意代码。

