BigCode项目及其最新发布
BigCode项目最近发布了The Stack,这是一个包含去重后的开源代码的6.4TB数据集,代码来源于GitHub上具有宽松许可的仓库。该数据集可用于训练代码生成AI模型。同时,BigCode还发布了SantaCoder,这是一个基于The Stack训练的1.1B参数的代码生成模型,性能优于其他类似的开源代码生成模型。
BigCode的背景与使命
BigCode是由HuggingFace和ServiceNow Research赞助的协作组织,致力于开发负责任的开源语言模型。针对近期一些代码生成AI模型因使用受版权保护的代码而受到批评,BigCode开始研究仅使用具有宽松许可(如Apache或MIT)的源代码训练的模型性能。BigCode还开发了基于Web的工具,供开发者检查其代码是否包含在The Stack中,并请求将其排除。
The Stack数据集的特点与未来计划
The Stack数据集包含了30种常见编程语言的宽松许可文件,并进行了近去重处理。BigCode计划在未来进一步改进数据集,包括添加更多编程语言、去除PII(个人身份信息)和恶意代码的方法,并探索允许开发者从数据集中删除其数据的可能性。
代码生成AI模型的研究现状
代码生成AI模型目前是一个活跃的研究领域。2021年,InfoQ报道了OpenAI的Codex和GitHub的CoPilot,这些模型基于GPT-3,并针对GitHub上的公开代码进行了微调。尽管这些模型在生成代码方面表现良好,但它们因侵犯版权而受到批评。2022年底,InfoQ报道了一起针对微软和OpenAI的诉讼,指控其侵犯版权,包括未按要求注明源代码的许可。
The Stack的目标与许可选择
The Stack的一个目标是避免侵犯版权,仅包含具有宽松许可的源代码,如MIT和Apache 2.0,但不包括GPL等“copyleft”许可。这是因为copyleft支持者认为,基于GPL代码训练的模型可能被视为“衍生作品”,必须采用copyleft许可。
数据集过滤对模型性能的影响
由于排除了部分仓库,训练数据量减少,BigCode团队研究了这是否会降低模型性能。他们发现,通过近去重处理(即删除完全重复和非常相似的文件),模型质量与Codex相当。然而,在训练SantaCoder模型时,发现仅包含5星仓库的过滤显著降低了模型质量。
Thomas Wolf的评论
HuggingFace的联合创始人Thomas Wolf在Twitter上讨论了SantaCoder。针对用户对模型生成代码质量的抱怨,Wolf回应称,这是一个补全模型,而不是指令微调模型,因此应将任务表述为补全任务,例如通过编写代码注释或文档字符串来提示。
数据与模型的获取
The Stack数据集和SantaCoder模型均可在HuggingFace上获取。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。