AI 代码助手的新纪元:透明与道德的代码库
人工智能代码助手正迅速成为开发者的必备工具,但它们训练数据的来源却常常扑朔迷离,引发了关于透明度和作者权利的担忧。非营利组织软件遗产(Software Heritage)今天推出了一项新举措,旨在通过提供全球最大的道德来源代码库来改变这一现状,为 AI 训练提供更可靠的素材。
驱动聊天机器人和代码助手的强大语言模型(LLM)通常接受从互联网上抓取的海量数据的训练。然而,AI 开发者很少详细说明其训练数据集的构成,软件遗产的负责人罗伯托·迪·科斯莫(Roberto Di Cosmo)指出,这使得结果难以复现,也难以判断模型是否接受了来自基准测试的数据训练,更无法让开发者控制自己的代码是否被用于 AI 训练。
软件遗产认为,他们可以改变这种状况。该组织成立于 2016 年,致力于收集和保存所有公开可用的源代码。通过对 Bitbucket、GitHub 和 Python 包索引等代码托管平台进行网络爬取,软件遗产已经建立了一个包含超过 220 亿个源文件、来自 3.45 亿个项目的代码库,涵盖了 600 多种编程语言。
利用 AI 最大的训练数据集造福世界
该项目的初衷是创建一个可自由访问的全球数字遗产档案,但随着 LLM 的兴起,迪·科斯莫意识到他们手中掌握着宝藏。他表示:“ChatGPT 爆发后,我们很快意识到,软件遗产拥有世界上最大的用于训练 AI 模型的代码数据集。”
因此,该组织推出了名为 CodeCommons 的项目,向愿意签署旨在提升 AI 训练透明度和问责制的道德原则的个人和机构提供访问权限。该项目获得了法国政府在未来两年内提供的 500 万欧元(约合 520 万美元)的资金支持,今天在巴黎举行了启动仪式,正式开启开发进程。
软件遗产早在 2023 年 10 月就发布了针对希望使用其档案的 AI 开发者的道德原则。这些原则包括:将生成的模型发布在开放许可证下,公开发布所有用于训练的软件遗产数据的记录,并提供机制让作者选择退出其代码被用于 AI 训练。
2024 年 2 月,旨在推动开放和负责任的 AI 开发的科学合作项目 BigCode 推出了代码助手 StarCoder2,这是第一个使用软件遗产数据训练的 LLM。然而,迪·科斯莫指出,该项目也暴露了人们构建这些模型的方式存在许多局限性和低效之处。
在获得数据集访问权限后,BigCode 团队不得不经历一个漫长而痛苦的数据清理过程,包括删除重复条目、过滤掉低质量或恶意代码,以及移除个人身份信息。他们还必须找到一种让开发者选择退出的方式,为此他们不得不通过 GitHub 来简化识别请求是否真正来自作者的过程。此外,他们还必须进行全面的许可证分析,以确保所有包含的文件都具有开放许可证。
目前,迪·科斯莫表示,大多数使用公开可用代码进行训练的团队都单独进行数据清理过程,这造成了巨大的资源和能源浪费。而进行许可证分析和创建选择退出机制的复杂性意味着很少有团队能够妥善处理这些问题。
让数据清理不再混乱
CodeCommons 希望通过创建一个统一的数据平台来解决这些问题,研究人员可以在该平台上访问经过预先清理的代码集合,这些集合包含元数据,例如许可证信息和相关研究论文的链接。软件遗产库中的所有文件都具有识别哈希值,这使得跟踪和共享用于训练模型的数据变得容易。迪·科斯莫表示,这将是提高 AI 模型可重复性的关键。
“我们的目标是构建一个透明的共享基础设施,制定明确的规则,让我们能够大幅改进 AI 模型训练数据集的构建和共享方式。”迪·科斯莫说道。
然而,迪·科斯莫也指出,实现这一目标面临着巨大的挑战。首先,该组织需要找到一种格式来存储条目,以捕获与 AI 开发者相关的所有元数据。软件遗产获取代码的每个来源都有不同的数据模型,以不同的格式收集不同的信息。找到一种统一数据表示方式,同时保持存储库易于搜索,将是主要关注点。
在这些不同的平台上开发一个选择退出机制,同时提供细粒度的选项,让作者可以指定他们愿意为其代码贡献的 AI 项目类型,同样会很复杂。
最雄心勃勃的是,迪·科斯莫表示,软件遗产希望创建一个工具,能够分析使用其数据训练的模型的输出,并告知用户其输出是否与现有代码相似或相同。这可以利用 AI 本身,也可以依赖更传统的搜索技术,但这仍然是一个活跃的研究领域。
迪·科斯莫表示,该组织能否在有限的时间和资金下实现这些目标仍不确定,但他们希望尽其所能,将 AI 行业引向更负责任的方向。
“当我创办软件遗产时,我的目标并不是构建一个 AI 训练基础设施。”他说道。“我们最终走到这一步,是因为我们与时俱进,并尽力在这个领域做出负责任的工作。”