讨论开源AI定义的重要性:
开源还是闭源,是个问题!有大佬称开源AI是个智商税,有大佬称开源AI必胜。然则,纷纷扰扰在争什么?
开源AI不同于开源软件,仅仅开放源代码可以复现软件,但是不能复现AI。AI的开发流程中包含了训练数据、模型架构和参数、训练和运行代码,仅仅开源模型架构和参数尚不论是否足以复现,开源社区的参与可能也有困难,开源软件的那种众人拾柴火焰高的情景可能不再现。但是开源AI在各国政府报告里很清晰明确地指出了对整个AI行业市场活力具有重要作用。
那么开源AI还是闭源AI到底与合规何干?欧盟《人工智能法》给开源AI赋予了一定义务的豁免,那怎么样的开源AI才能免于义务呢?所以,我们需要讨论清楚开源AI的定义,才能明确其能带来的价值,以及需要面临的法律义务边界。
开源倡议会发布开源AI v0.0.9版的定义 | 以可复制性、透明度和可用性为核心构建开源AI定义
如下是开源AI v0.0.9版本的定义、检查清单(判定符合定义的开源组件和开放方式)、FAQ的全文翻译,全面理解开源AI的定义。

一、定义
序言:为什么我们需要开源人工智能(AI)
开源已经证明,移除学习、使用、共享和改进软件系统的障碍能够为每个人带来巨大的好处。这些好处源于采用符合开源定义的许可证。同样地,社会需要为AI提供相同的基本自由,以便AI的开发者、部署者和最终用户也能享受到这些好处:自主性、透明度、无缝重用和协作改进。
什么是开源AI
当我们说到“系统”,我们是指一个整体的功能性结构,以及构成这个结构的各个独立部分。无论是对整个系统、单个模型、权重和参数,还是任何其他组成部分,要满足开源的标准,它们都需要符合相同的要求。
一个开源AI系统是指在遵循特定条款和方式的前提下,提供给用户以下自由的人工智能系统:
使用自由:可以出于任何目的使用该系统,无需额外申请许可。
研究自由:能够深入了解系统工作原理,检查其构成要素。
修改自由:允许对系统进行修改,以满足不同的需求,包括改变其输出结果。
分享自由:可以将系统分享给他人,无论是否对其进行了修改,且分享可用于任何目的。
这些自由既适用于完全功能性的系统,也适用于系统的各个组成部分。行使这些自由的前提是能够访问最佳修改形式以修改系统。
用于修改机器学习系统的最佳形式
为了便于修改机器学习系统,所需的最佳形式包括:
数据信息:提供详尽的数据信息,这些信息足以使有经验的人员能够利用相同或类似的数据,重新构建一个功能上等效的系统。这些数据信息应当在遵循开源定义的许可证下提供。
例如,这包括训练方法和技术、所使用的训练数据集、数据集的来源、它们的覆盖范围和特性、数据的获取和筛选方式、数据标注流程以及数据清洗方法等。
代码:提供用于训练和运行机器学习系统的源代码,并确保这些代码是在OSI(Open Source Initiative)批准的许可证下发布的。
例如,这包括用于数据预处理的代码、训练代码、验证和测试代码、以及支持库(如分词器和超参数搜索工具)、推理代码和模型架构。
权重和参数:提供模型的权重和参数,并确保这些信息是在OSI(Open Source Initiative)批准的许可证下发布的。
例如,这可能包括在训练过程中关键阶段的模型检查点文件以及最终的优化器状态。
译者注:
分词器(Tokenizer)
分词器是自然语言处理中的一个工具,它用于将文本数据分解成更小的单元,通常是单词、短语或子词单元(subword units)。这个过程称为“分词”(tokenization)。分词是文本预处理的关键步骤,因为它帮助模型理解输入文本的结构。分词器的主要任务包括:
单词分割:将句子分解成单独的单词或标记(tokens)。
标准化:将单词转换为统一的形式,如小写化或去除标点符号。
去除停用词:删除文本中频繁出现但对理解含义帮助不大的词,如“的”、“是”、“在”等。
词干提取或词形还原:将单词还原到基本形式,例如将动词的过去式还原为原形。
分词器对于机器学习模型正确理解和处理文本数据至关重要。
超参数搜索工具(Hyperparameter Optimization Tools)
超参数是机器学习模型训练过程中需要设置的参数,它们不是通过模型的训练数据学习得到的,而是在模型训练之前设置的。超参数的设置对模型的性能有重大影响。超参数搜索工具用于自动化寻找最优超参数组合的过程,这些工具包括:
网格搜索(Grid Search):系统地遍历多种超参数的组合,通过交叉验证来确定最佳组合。
随机搜索(Random Search):在超参数空间内随机选择组合进行尝试,通常比网格搜索更高效。
贝叶斯优化(Bayesian Optimization):使用概率模型来预测哪些超参数组合可能会带来更好的性能,并据此进行选择。
进化算法(Evolutionary Algorithms):模拟自然选择过程,通过迭代地改进超参数组合。
超参数搜索工具帮助数据科学家和机器学习工程师节省大量时间,通过自动化的方式找到最优的模型配置,从而提高模型的性能和准确性。
关键阶段的模型检查点文件:
这些是在训练过程中的特定重要时刻(如完成一定数量的迭代后)保存的模型状态。
它们允许研究人员或开发人员回溯到模型训练的某个特定点,这有助于进行故障排除、比较不同训练阶段的性能,或在训练过程中断后恢复训练而不是从头开始。
最终的优化器状态:
这指的是训练完成后优化器的配置和状态,优化器是用于调整模型参数以最小化损失函数的算法。
保存最终的优化器状态意味着可以准确地重新创建模型在训练结束时的表现,包括所有的参数更新和学习率等超参数的设置。
开源模型和开源权重
对于机器学习系统,
AI模型 由模型架构、模型参数(包括权重)和运行模型的推理代码组成。
AI权重 是一组学习到的参数,它们覆盖在模型架构上,以从给定输入产生输出。
用于修改机器学习系统的最佳形式也适用于这些单独的组件。“开源模型”和“开源权重”必须包括用于推导出这些参数的数据信息和代码。
二、评估开源AI定义的检查清单
在这里所指的:
符合OSD条款的可用性(Available under OSD-conformant terms):指的是所有材料都可以通过遵循开源定义(OSD)的许可或协议来使用。
符合OSD合规许可证的可用性(Available under OSD-compliant license):意味着所有材料都可以在遵守开源定义(OSD)的许可证下使用。
默认必需组件表
可选组件表
三、常见问题解答
开源定义和开源人工智能定义有什么区别?
待定。
什么是“数据信息”?
训练数据对于研究人工智能系统非常有价值:理解已训练的偏见及其对系统行为的影响。但训练数据不是修改现有人工智能系统的最佳形式的一部分。数据中的洞察和关联已经被训练。
数据共享可能面临一些挑战。一些法律允许使用数据进行训练,但为了保护版权或其他利益,通常限制了这些数据的再次共享。同时,隐私法规赋予个人权利,使他们能够合法地控制自己的敏感信息,例如与健康相关的决策。此外,全球许多原住民的知识和文化传统受到保护,这些保护机制与现代的权利排他性和数据共享框架可能不兼容。
开放训练数据:这类数据可以被重新共享,为用户研究系统以及进行修改提供了最便利的条件。
公共训练数据:只要这些数据保持可用状态,任何人都可以查看,这同样支持用户对系统进行研究和修改。
非公共训练数据:当某些数据由于合理的原因无法共享时,为了研究系统的潜在偏见,需要对这些数据进行详尽的描述,包括数据的性质、收集方式、特征等,以便用户能够理解影响系统决策的偏见和分类方式。
OSI认为,对于人工智能系统修改所需的数据,除了最佳形式之外的额外要求,不仅促进了人工智能系统各组成部分的开放性,也有助于推动开源AI在注重隐私保护的领域例如医疗保健行业中的进一步应用。
开源人工智能定义中为什么没有提到安全性和风险限制?
开源人工智能定义本身并未详细阐述如何开发和部署一个既符合伦理又可信赖、负责任的人工智能系统,但它并不妨碍开发者这样做。关于如何负责任地开发、部署和使用人工智能系统,包括通过适当的政府法规来进行规范,这是一个独立的话题。一个不错的讨论起点可以参考经济合作与发展组织(OECD)发布的关于人工智能的理事会建议,特别是其中的第一章节,涉及到负责任地管理可信人工智能的原则。
模型参数可以受版权保护吗?
仅仅拥有人工智能模型参数的版权许可可能不足以保证所有必要的自由。目前对于模型参数是否受到某些权利保护体系的覆盖,以及它们究竟受到哪些体系的保护,存在不同的观点和争议。因此,在开源人工智能的定义中,对于大多数组件,要求它们必须在符合OSI合规许可证的条件下可用,但对于模型参数,则要求它们在符合开源定义(OSD)条款的条件下可用。
目前尚不明确这些参数是否会被其他权利保护体系(如合同法、数据库权利,或可能新设立的权利)所覆盖。如果仅仅提供版权许可,并不能确保模型的完全可用性,这并不符合开源软件许可证的要求。
符合OSD合规许可证下可用是什么意思?
符合OSD(开源定义)许可证或被称为OSD兼容许可证,意味着许可证遵循开源定义中所列出的原则。我们使用这个术语来描述那些用于大多数文档和数据集的许可证,例如知识共享(Creative Commons)的署名(Attribution)和署名-相同方式共享(Attribution-ShareAlike)许可证,无论它们是否包含非衍生作品(Non-Derivative)选项或致力于公共领域的奉献。
需要注意的是,包含非商业(Non-Commercial)条款的知识共享许可证并不符合OSD合规,因为这种使用领域的限制与OSD的原则不相符。如果在实践中遇到了其他类型的文档许可证,我们应该对它们进行个案审查,以确定它们是否符合OSD的要求。
符合OSD条款下可用是什么意思?
在验证阶段,我们分析的大多数模型采用的许可证类型包括MIT/BSD风格的许可证、Apache Software License version 2(Apache SL v2)或者RAIL许可证的变种。MIT/BSD和Apache许可证符合开源定义(OSD),因为它们不设置使用限制。然而,RAIL许可证不符合OSD,因为它引入了对使用领域的限制。同样,Llama 2和Llama3许可证也不符合OSD的要求。
至于OpenELM使用的苹果样本代码许可证,我们目前还没有对其进行评估,这个许可证有些特别,需要我们进行全面的审查来确定它是否符合OSD。
为什么开源人工智能定义包括组件列表,而软件的开源定义没有提到文档、路线图和其他有用的东西?
开源促进会(OSI)使用开源定义来审核许可证的合规性,而非直接审核软件包。我们通常的工作原则是:如果一个程序采用了OSI认可的许可证,那么这个软件就被视为开源软件。在传统软件领域,这种方法通常被广泛理解并有效运作。
然而,在机器学习系统的背景下,OSI不能仅仅通过审核许可证来确保其开源性,因为机器学习中的“程序”不仅仅包括源代码或二进制代码。在共同设计开源人工智能定义的过程中,我们认识到,为了能够使用、研究、共享和修改机器学习系统,需要一系列复杂的组件组合,每个组件都可能受到不同的法律制度的约束(不仅仅是版权和专利法)。因此,我们需要更详尽地描述为了赋予用户预期的控制权和自主权所必需的内容。这意味着,除了代码本身,还需要包括数据、文档、模型参数等其他组成部分,以确保整个系统的透明度和可访问性。
为什么“最佳修改形式”仅限于机器学习?
开源人工智能定义中提出的原则普遍适用于各类人工智能技术,然而,在机器学习领域,这些原则需要更具体的应用和解释。机器学习特别需要一系列特定的工件(或组件),这些是理解和改进模型所不可或缺的。因此,对于机器学习系统,我们需要对开源定义进行扩展,明确指出哪些组件是研究和修改模型所必需的,以确保这些系统能够真正实现开源的目标
开源还是闭源,是个问题!有大佬称开源AI是个智商税,有大佬称开源AI必胜。然则,纷纷扰扰在争什么?
开源AI不同于开源软件,仅仅开放源代码可以复现软件,但是不能复现AI。AI的开发流程中包含了训练数据、模型架构和参数、训练和运行代码,仅仅开源模型架构和参数尚不论是否足以复现,开源社区的参与可能也有困难,开源软件的那种众人拾柴火焰高的情景可能不再现。但是开源AI在各国政府报告里很清晰明确地指出了对整个AI行业市场活力具有重要作用。
那么开源AI还是闭源AI到底与合规何干?欧盟《人工智能法》给开源AI赋予了一定义务的豁免,那怎么样的开源AI才能免于义务呢?所以,我们需要讨论清楚开源AI的定义,才能明确其能带来的价值,以及需要面临的法律义务边界。
开源倡议会发布开源AI v0.0.9版的定义 | 以可复制性、透明度和可用性为核心构建开源AI定义
如下是开源AI v0.0.9版本的定义、检查清单(判定符合定义的开源组件和开放方式)、FAQ的全文翻译,全面理解开源AI的定义。

一、定义
序言:为什么我们需要开源人工智能(AI)
开源已经证明,移除学习、使用、共享和改进软件系统的障碍能够为每个人带来巨大的好处。这些好处源于采用符合开源定义的许可证。同样地,社会需要为AI提供相同的基本自由,以便AI的开发者、部署者和最终用户也能享受到这些好处:自主性、透明度、无缝重用和协作改进。
什么是开源AI
当我们说到“系统”,我们是指一个整体的功能性结构,以及构成这个结构的各个独立部分。无论是对整个系统、单个模型、权重和参数,还是任何其他组成部分,要满足开源的标准,它们都需要符合相同的要求。
一个开源AI系统是指在遵循特定条款和方式的前提下,提供给用户以下自由的人工智能系统:
使用自由:可以出于任何目的使用该系统,无需额外申请许可。
研究自由:能够深入了解系统工作原理,检查其构成要素。
修改自由:允许对系统进行修改,以满足不同的需求,包括改变其输出结果。
分享自由:可以将系统分享给他人,无论是否对其进行了修改,且分享可用于任何目的。
这些自由既适用于完全功能性的系统,也适用于系统的各个组成部分。行使这些自由的前提是能够访问最佳修改形式以修改系统。
用于修改机器学习系统的最佳形式
为了便于修改机器学习系统,所需的最佳形式包括:
数据信息:提供详尽的数据信息,这些信息足以使有经验的人员能够利用相同或类似的数据,重新构建一个功能上等效的系统。这些数据信息应当在遵循开源定义的许可证下提供。
例如,这包括训练方法和技术、所使用的训练数据集、数据集的来源、它们的覆盖范围和特性、数据的获取和筛选方式、数据标注流程以及数据清洗方法等。
代码:提供用于训练和运行机器学习系统的源代码,并确保这些代码是在OSI(Open Source Initiative)批准的许可证下发布的。
例如,这包括用于数据预处理的代码、训练代码、验证和测试代码、以及支持库(如分词器和超参数搜索工具)、推理代码和模型架构。
权重和参数:提供模型的权重和参数,并确保这些信息是在OSI(Open Source Initiative)批准的许可证下发布的。
例如,这可能包括在训练过程中关键阶段的模型检查点文件以及最终的优化器状态。
译者注:
分词器(Tokenizer)
分词器是自然语言处理中的一个工具,它用于将文本数据分解成更小的单元,通常是单词、短语或子词单元(subword units)。这个过程称为“分词”(tokenization)。分词是文本预处理的关键步骤,因为它帮助模型理解输入文本的结构。分词器的主要任务包括:
单词分割:将句子分解成单独的单词或标记(tokens)。
标准化:将单词转换为统一的形式,如小写化或去除标点符号。
去除停用词:删除文本中频繁出现但对理解含义帮助不大的词,如“的”、“是”、“在”等。
词干提取或词形还原:将单词还原到基本形式,例如将动词的过去式还原为原形。
分词器对于机器学习模型正确理解和处理文本数据至关重要。
超参数搜索工具(Hyperparameter Optimization Tools)
超参数是机器学习模型训练过程中需要设置的参数,它们不是通过模型的训练数据学习得到的,而是在模型训练之前设置的。超参数的设置对模型的性能有重大影响。超参数搜索工具用于自动化寻找最优超参数组合的过程,这些工具包括:
网格搜索(Grid Search):系统地遍历多种超参数的组合,通过交叉验证来确定最佳组合。
随机搜索(Random Search):在超参数空间内随机选择组合进行尝试,通常比网格搜索更高效。
贝叶斯优化(Bayesian Optimization):使用概率模型来预测哪些超参数组合可能会带来更好的性能,并据此进行选择。
进化算法(Evolutionary Algorithms):模拟自然选择过程,通过迭代地改进超参数组合。
超参数搜索工具帮助数据科学家和机器学习工程师节省大量时间,通过自动化的方式找到最优的模型配置,从而提高模型的性能和准确性。
关键阶段的模型检查点文件:
这些是在训练过程中的特定重要时刻(如完成一定数量的迭代后)保存的模型状态。
它们允许研究人员或开发人员回溯到模型训练的某个特定点,这有助于进行故障排除、比较不同训练阶段的性能,或在训练过程中断后恢复训练而不是从头开始。
最终的优化器状态:
这指的是训练完成后优化器的配置和状态,优化器是用于调整模型参数以最小化损失函数的算法。
保存最终的优化器状态意味着可以准确地重新创建模型在训练结束时的表现,包括所有的参数更新和学习率等超参数的设置。
开源模型和开源权重
对于机器学习系统,
AI模型 由模型架构、模型参数(包括权重)和运行模型的推理代码组成。
AI权重 是一组学习到的参数,它们覆盖在模型架构上,以从给定输入产生输出。
用于修改机器学习系统的最佳形式也适用于这些单独的组件。“开源模型”和“开源权重”必须包括用于推导出这些参数的数据信息和代码。
二、评估开源AI定义的检查清单
在这里所指的:
符合OSD条款的可用性(Available under OSD-conformant terms):指的是所有材料都可以通过遵循开源定义(OSD)的许可或协议来使用。
符合OSD合规许可证的可用性(Available under OSD-compliant license):意味着所有材料都可以在遵守开源定义(OSD)的许可证下使用。
默认必需组件表
| 数据:以下列出的数据组件中至少需要一个,并且它们按照重要性递减的顺序排列。 | |
| 数据集 | 符合OSD合规许可证下可用 |
| 研究论文 | 符合OSD合规许可证下可用 |
| 技术报告 | 符合OSD合规许可证下可用 |
| 数据卡 | 符合OSD合规许可证下可用 |
| 代码:以下所有组件都需要满足 | |
| 数据预处理 | OSI批准的许可证下可用 |
| 训练、验证和测试 | OSI批准的许可证下可用 |
| 推理 | OSI批准的许可证下可用 |
| 支持的库和工具 | OSI批准的许可证下可用 |
| 模型:以下所有组件都需要满足 | |
| 模型架构 | OSI批准的许可证下可用 |
| 模型参数 | 符合OSD条款可用 |
可选组件表
| 数据 | |
| 评估数据 | OSD合规许可证下可用 |
| 评估结果 | OSD合规许可证下可用 |
| 代码 | |
| 用于基准测试推理的代码 | OSI批准的许可证下可用 |
| 评估代码 | OSI批准的许可证下可用 |
| 模型 | |
| 模型卡 | 符合OSD合规许可证下可用 |
| 模型输出样本 | 符合OSD合规许可证下可用 |
| 模型元数据 | 符合OSD合规许可证下可用 |
三、常见问题解答
开源定义和开源人工智能定义有什么区别?
待定。
什么是“数据信息”?
训练数据对于研究人工智能系统非常有价值:理解已训练的偏见及其对系统行为的影响。但训练数据不是修改现有人工智能系统的最佳形式的一部分。数据中的洞察和关联已经被训练。
数据共享可能面临一些挑战。一些法律允许使用数据进行训练,但为了保护版权或其他利益,通常限制了这些数据的再次共享。同时,隐私法规赋予个人权利,使他们能够合法地控制自己的敏感信息,例如与健康相关的决策。此外,全球许多原住民的知识和文化传统受到保护,这些保护机制与现代的权利排他性和数据共享框架可能不兼容。
开放训练数据:这类数据可以被重新共享,为用户研究系统以及进行修改提供了最便利的条件。
公共训练数据:只要这些数据保持可用状态,任何人都可以查看,这同样支持用户对系统进行研究和修改。
非公共训练数据:当某些数据由于合理的原因无法共享时,为了研究系统的潜在偏见,需要对这些数据进行详尽的描述,包括数据的性质、收集方式、特征等,以便用户能够理解影响系统决策的偏见和分类方式。
OSI认为,对于人工智能系统修改所需的数据,除了最佳形式之外的额外要求,不仅促进了人工智能系统各组成部分的开放性,也有助于推动开源AI在注重隐私保护的领域例如医疗保健行业中的进一步应用。
开源人工智能定义中为什么没有提到安全性和风险限制?
开源人工智能定义本身并未详细阐述如何开发和部署一个既符合伦理又可信赖、负责任的人工智能系统,但它并不妨碍开发者这样做。关于如何负责任地开发、部署和使用人工智能系统,包括通过适当的政府法规来进行规范,这是一个独立的话题。一个不错的讨论起点可以参考经济合作与发展组织(OECD)发布的关于人工智能的理事会建议,特别是其中的第一章节,涉及到负责任地管理可信人工智能的原则。
模型参数可以受版权保护吗?
仅仅拥有人工智能模型参数的版权许可可能不足以保证所有必要的自由。目前对于模型参数是否受到某些权利保护体系的覆盖,以及它们究竟受到哪些体系的保护,存在不同的观点和争议。因此,在开源人工智能的定义中,对于大多数组件,要求它们必须在符合OSI合规许可证的条件下可用,但对于模型参数,则要求它们在符合开源定义(OSD)条款的条件下可用。
目前尚不明确这些参数是否会被其他权利保护体系(如合同法、数据库权利,或可能新设立的权利)所覆盖。如果仅仅提供版权许可,并不能确保模型的完全可用性,这并不符合开源软件许可证的要求。
符合OSD合规许可证下可用是什么意思?
符合OSD(开源定义)许可证或被称为OSD兼容许可证,意味着许可证遵循开源定义中所列出的原则。我们使用这个术语来描述那些用于大多数文档和数据集的许可证,例如知识共享(Creative Commons)的署名(Attribution)和署名-相同方式共享(Attribution-ShareAlike)许可证,无论它们是否包含非衍生作品(Non-Derivative)选项或致力于公共领域的奉献。
需要注意的是,包含非商业(Non-Commercial)条款的知识共享许可证并不符合OSD合规,因为这种使用领域的限制与OSD的原则不相符。如果在实践中遇到了其他类型的文档许可证,我们应该对它们进行个案审查,以确定它们是否符合OSD的要求。
符合OSD条款下可用是什么意思?
在验证阶段,我们分析的大多数模型采用的许可证类型包括MIT/BSD风格的许可证、Apache Software License version 2(Apache SL v2)或者RAIL许可证的变种。MIT/BSD和Apache许可证符合开源定义(OSD),因为它们不设置使用限制。然而,RAIL许可证不符合OSD,因为它引入了对使用领域的限制。同样,Llama 2和Llama3许可证也不符合OSD的要求。
至于OpenELM使用的苹果样本代码许可证,我们目前还没有对其进行评估,这个许可证有些特别,需要我们进行全面的审查来确定它是否符合OSD。
为什么开源人工智能定义包括组件列表,而软件的开源定义没有提到文档、路线图和其他有用的东西?
开源促进会(OSI)使用开源定义来审核许可证的合规性,而非直接审核软件包。我们通常的工作原则是:如果一个程序采用了OSI认可的许可证,那么这个软件就被视为开源软件。在传统软件领域,这种方法通常被广泛理解并有效运作。
然而,在机器学习系统的背景下,OSI不能仅仅通过审核许可证来确保其开源性,因为机器学习中的“程序”不仅仅包括源代码或二进制代码。在共同设计开源人工智能定义的过程中,我们认识到,为了能够使用、研究、共享和修改机器学习系统,需要一系列复杂的组件组合,每个组件都可能受到不同的法律制度的约束(不仅仅是版权和专利法)。因此,我们需要更详尽地描述为了赋予用户预期的控制权和自主权所必需的内容。这意味着,除了代码本身,还需要包括数据、文档、模型参数等其他组成部分,以确保整个系统的透明度和可访问性。
为什么“最佳修改形式”仅限于机器学习?
开源人工智能定义中提出的原则普遍适用于各类人工智能技术,然而,在机器学习领域,这些原则需要更具体的应用和解释。机器学习特别需要一系列特定的工件(或组件),这些是理解和改进模型所不可或缺的。因此,对于机器学习系统,我们需要对开源定义进行扩展,明确指出哪些组件是研究和修改模型所必需的,以确保这些系统能够真正实现开源的目标
