我们如何解决人工智能难题
有些人认为,完全不受限制地访问所有训练数据至关重要。这一群体认为,任何少于所有数据的情况都会损害开源原则,永远消除人工智能系统的完全可重复性、透明度、安全性和其他成果。我们听取了他们的意见,并提供了一个植根于数十年开源实践的解决方案。
为了让强大的开源人工智能系统有机会在任何领域存在,OSI 社区已在定义中纳入了以下原则:
一个开源人工智能需要提供三种组件:用于创建数据集和运行训练的软件,模型参数和运行推理的代码,以及最后所有可以合法提供的数据。
认识到有四种“数据”,每种数据都有其自身的法律框架,允许不同的分发自由,我们绕过了 Stephen O’Grady 称之为“人工智能难题” 的问题,并为开源人工智能构建者提供了构建尊重自由的替代方案的机会,几乎可以替代任何专有的人工智能。
将开源人工智能仅限于可在自由分发的数据上训练的系统,会将开源人工智能降级为一个利基市场。其中一个原因是,自由且合法可共享的数据量仅占训练强大系统所需数据量的一小部分。此外,这将把开源人工智能排除在无法共享数据的领域之外,例如医疗或任何涉及个人或私人数据的领域。“开源人工智能”剩下的东西将微乎其微。我们有充分的理由拒绝这种限制。
事实上,混合使用可公开分发和不可分发的数据与我们非常熟悉的现实非常相似:使用专有编译器和系统库构建的开源软件。
GNU Emacs 是开源软件吗?
我相信你会回答“是”(有些人会说“实际上它是自由软件”),我们都会同意。下图是为现代 Linux 发行版上的 GNOME 桌面构建的 Emacs 的粗略示意图。Emacs 依赖于 GNOME 提供的一些带有 OSI 批准许可证的系统库。如今,整个堆栈都是开源的,人们可以将 Emacs 与其所有依赖项一起分发在磁盘上,而不会有太多的法律麻烦。想象一下,想要冻结他们所做实验的整个环境的科学家;他们可以将这样一个系统的所有部分打包在一起,并将其与他们的论文一起分发,而不会有任何问题。

现在让我们回到 Linux 系统尚未准备就绪的时代。当 Stallman 开始编写 Emacs 时,还没有 GNOME 和 Linux,也没有 gcc 和 glibc。他很早就认为,为了获得更多的自由,他必须创建一个楔子,让 Emacs 能够在专有软件上运行。
在最新的 Solaris 版本上,Emacs 看起来会是这样的:一些部分(如 X11 和 Gstreamer)是开源的。其他部分,如 libc 和其他部分则不是。之前假设的科学家们无法真正冻结他们的完整科学环境。他们只能在论文中说:“我们使用了这个 CVS 版本的 Emacs,使用 X 版本的 gcc 以及这些 makefile 构建;tar.gz 附件”,并列出他们使用的操作系统版本和库版本。这是因为他们只有权分发 Emacs、X11、一些库,而不是 Solaris 的其余部分。
Solaris 上的 Emacs 是开源的吗?当然是,即使系统库的源代码不可用。

再问一个问题,Mac OS 上的 Emacs:它只能使用专有编译器、专有 GUI 和其他专有库来构建。
Mac 上的 Emacs 是开源的吗?当然是。你可以在 Mac OS 上完全研究 Emacs 吗?对于 Emacs,可以。对于 MacOS 组件,不行。有很多程序只能在 MacOS 或 Windows 上运行:对于 OSI 来说,这些都是开源的。有人会争辩说它们“不是真正的开源”,因为你无法看到“一切”吗?有些人可能会这样认为,但我们已经学会了接受这一点,除了开源定义之外,还添加了治理规则。例如,Debian 要求程序是开源的并且支持多个硬件平台;ASF 仅对开源且拥有多元化贡献者社区的项目进行毕业认证。如果你只想使用在开源堆栈上运行的开源应用程序,你可以这样决定!就像你可以决定你的公司只会购买版权归多个实体所有的开源软件一样。
这些都是在开源定义设定的基本底线之上构建的附加要求。
对于人工智能,你可以做同样的事情:你可以说“我只会使用用开放数据构建的开源人工智能,因为我不想信任任何低于此标准的东西。” 大型组织可能会说“我只会购买允许我审计其完整数据集(包括不可共享数据)的开源人工智能。” 你可以做到这一切。开源人工智能是你可以构建的基础,就像 OSD 一样。
绕过难题
我们已经寻找解决方案将近三年了,这就是答案:要求提供所有合法可共享的数据,对于其他数据,则提供所有细节。这正是我们一直以来对开源软件所做的事情:
你为 Mac OS 开发了一个文本编辑器,但你无法共享系统库?没问题,我们会 fork 它:给我们所有你可以合法共享并带有 OSI 批准许可证的代码,我们将剥离依赖项并“解放”它以在 GNU 上运行。编辑器会略有不同,就像在某些 ARM+Linux 系统上运行的代码在 Intel+Windows 上运行的行为会因底层硬件和操作系统的不同功能而有所不同一样,但它仍然是开源的。
对于开源人工智能来说,这是一个类似的舞蹈:你不能合法地给我们所有数据?没问题,我们会 fork 它。例如,你制作了一个识别人类骨癌的人工智能,但数据无法共享。我们会 fork 它!请确切地告诉我们你是如何构建系统的,你是如何训练它的,分享你使用的代码,以及你使用的数据的匿名样本,以便我们可以在我们的 X 射线图像上进行训练。系统会略有不同,但它仍然是开源人工智能。
如果我们想要广泛提供强大的替代专有人工智能系统的方案,这些方案尊重用户和部署者的自由,我们必须认识到对人工智能领域有意义的条件。这些使用专有编译器和系统库构建开源软件的例子证明,在开源人工智能的定义中谈论代码、数据和参数时,存在类似的条件空间。