负责任开源人工智能最佳实践BigCode

来源:那一片数据星辰

文章摘要
序言 2024年开始,本公众号的AI专题将从国家、国际组织的立法、规则等宽泛梳理,进化到专题性梳理。本周聚焦开源人工智能。开源软件是一个成熟的概念,并在软件行业有了很成熟的应用。

序言
2024年开始,本公众号的AI专题将从国家、国际组织的立法、规则等宽泛梳理,进化到专题性梳理。本周聚焦开源人工智能。开源软件是一个成熟的概念,并在软件行业有了很成熟的应用。在人工智能领域,开源在2023年也有了很显著的推进,根据Github的年度统计,我们看到,越来越多的开发人员开始尝试使用 OpenAI 和其他人工智能公司的基础模型,开源生成式人工智能项目甚至进入了 2023 年按贡献者数量排名的十大最受欢迎开源项目。根据Hugging Face在年度总结中提到,使用开源的AI开发者增加了4倍。其预言在2024年开源大模型的能力可能与闭源的大模型持平。
开源人工智能在国际立法上也是有很大的争议和讨论,是否应当对开源人工智能给予豁免,是个无法避开的问题。
今天推送第三篇 负责任开源人工智能的最佳实践BigCode。
1、BigCode简介
BigCode是一个专注于开发大型代码语言模型的开源项目,由Hugging Face和ServiceNow Research共同领导。这个项目的目标是负责任地开发能够理解和生成代码的模型,这些模型可以在多种编程语言和任务中发挥作用。BigCode项目的核心是促进代码的生成和补全。
BigCode项目的一个主要成果是StarCoder,这是一个大型的代码生成模型,专门用于编程语言的代码生成和补全。StarCoder模型基于GitHub上的许可数据进行训练,这些数据包括80多种编程语言、Git提交、GitHub问题和Jupyter笔记本。它的训练使用了1万亿个Token,并拥有约155亿参数。此外,该模型在35亿Python Token的数据集上进行了微调,从而产生了名为StarCoder的新模型。
StarCoder模型在多个编程基准测试中表现出色,例如在HumanEval基准测试中,其一次通过率达到了40.8%,超越了包括PaLM、LaMDA和LLaMA在内的其他大型模型。StarCoder的上下文长度超过8,000个Token,可以处理比任何其他开源LLM更多的输入,使其能够应用于各种场景,如自动完成代码、根据指令修改代码,以及用自然语言解释代码片段。
BigCode项目还致力于为代码LLMs提供负责任的数据管理和开发,包括为LLMs提供更快的训练和推理方法。该项目受到BigScience的启发,旨在遵循以及建立新的负责任的人工智能实践来训练和分享大型语言模型。项目的组织结构包括由ServiceNow Research和HuggingFace领导的团队,以及招募的贡献者。
总的来说,BigCode项目不仅推动了编程领域的技术发展,也为开源社区提供了强大的支持。
2、负责任开源人工智能的最佳实践
1. 开源数据集Stack以及退出机制
The Stack是BigCode项目的一部分,这是一个大型代码语言模型的开源项目,由Hugging Face和ServiceNow共同领导。The Stack是一个包含6.4TB许可源代码的数据集,涵盖了358种编程语言。为了确保数据的质量和遵守版权法,The Stack只包含那些具有许可协议的源代码。
BigCode提供了一个Am I in The Stack?的工具帮助开发者识别其代码是否在Stack数据集中,开发者也可以提交要求退出。可以其 GitHub opt-out 仓库中创建一个问题,列出开发者想排除的软件源,从而选择将开发者软件仓库的代码从 The Stack 数据集中排除。BigCode将在 The Stack 的下一次迭代中排除这些软件源。
只要仍在维护 The Stack 数据集,BigCode就会定期更新数据集,删除自上一版本以来被标记开发者要求退出的数据。目前的计划是每 3 个月更新一次数据集,但计划可能会根据收到的请求数量而改变。如果无法继续维护该数据集,计划停止以现有格式分发该数据集,并更新其使用条款,进一步限制其应用范围,包括用于训练新的大模型。最后,BigCode要求下载数据集的用户同意使用最新的允许版本,以便纳入删除请求。
2. 属性工具
BigCode 开发并发布了 StarCoder Dataset Search,这是一款创新的数据治理工具,用于开发者检查其生成的源代码或对工具的输入是否基于 The Stack 的数据。如果是,该工具会返回匹配结果,并使用户能够检查出处和应有的归属。像这样的工具可以为生成式人工智能应用和模型所依赖的代码创建者社区的训练数据的未来归属和收入共享机会提供基础。
3. 个人信息自动删除工具
代码生成的 LLM 可能会在其训练数据中发现的个人信息信息,包括与标识符或电子邮件地址匹配的私人令牌或密码。此外,虽然用户可以而且已经要求从 The Stack 中删除他们的个人数据,但事后从训练好的模型权重中删除特定信息仍然是一项技术挑战。为了最大限度地降低这种风险,BigCode 选择在训练期间的预处理阶段应用自动 PII 删除工具。BigCode 实现的第一步是在代码数据中创建一个注释数据集,用以识别个人信息,该注释是由众包的方式来完成。
4. 可持续:记录碳足迹
报告了两个模型StarCoderBase和SantaCoder的碳足迹。
在训练模型时,全面考虑对环境的影响非常重要,这些总结表明,除了硬件的选择外,用于训练的数据中心的位置也很重要。即使数据中心的能效相似,用于训练 SantaCoder 的 ServiceNow 蒙特利尔数据中心产生的二氧化碳也少于用于训练 StarCoder 的位于俄勒冈州的 us-west-2 AWS 数据中心。
5. 负责任开源人工智能许可证:OpenRAIL-M
BigCode以OpenRAIL-M许可证发布,该许可证可在经合组织可信人工智能工具目录中找到。该许可证允许免许可访问、灵活使用和共享,并为已确定的关键场景设置了特定的使用限制。最重要的是,该许可协议要求共享模型或其修改版的利益相关者:(i) 在其法律协议中包含相同或类似的使用限制;(ii) 保留模型卡,并在共享模型修改版时提供类似或质量更好的模型卡。
6. 治理卡
StarCoder 治理卡是用于记录治理流程和工具的新工具。治理卡概述了 BigCode 项目的治理机制和领域。它通过向更广泛的公众提供项目期间所做选择的相关信息来提高透明度,是开放研究项目中治理的一个良好范例。未来的工作可以利用它来塑造自己的方法。
它从人工智能领域的标准文档实践(如模型卡)以及更面向消费者的卡片(如 Meta 的人工智能系统卡片、微软的透明度说明或 Cohere 的模型卡)中汲取灵感。治理卡可以让政策制定者了解人工智能领域的开放科学实践所具有的透明度潜力。

技术驱动法律,专业成就未来