人工智能和开源软件:一脉相承?
人工智能与开源软件:有何渊源?
我从去年底开始阅读、写作和演讲,探讨开源软件和机器学习的交汇之处,试图理解未来可能带来的变化。
当我开始时,我预计我主要会谈论开源软件在机器学习社区中的使用。但我越深入探索,就越意识到这两个领域之间有很多相似之处。在本文中,我将讨论其中一些相互之间的相似之处,以及机器学习能够从开源软件中学到什么,不能学到什么。
从一开始构建
一个显而易见的相似之处是,现代机器学习和现代软件都几乎完全是使用开源软件构建的。对于软件来说,这是编译器和代码编辑器;对于机器学习来说,这是PyTorch和TensorFlow等训练和推理框架。这些领域都以开源软件为主导,而且似乎没有任何改变的迹象。
这其中有一个显著的例外:所有这些框架都依赖于非常专有的Nvidia硬件和软件堆栈。实际上,这比起初看起来更加相似。很长一段时间,开源软件主要运行在专有的Unix操作系统上,由专有的硬件供应商销售。直到Linux出现后,我们才开始认为堆栈中的底层可以是开放的,而且现在很多开发工作都在MacOS和Windows上进行。目前尚不清楚这在机器学习中会如何发展。亚马逊(用于AWS)、谷歌(用于云和Android)以及苹果都在投资竞争芯片和堆栈,可能其中一个或多个会追随Linus(和英特尔)开放整个堆栈的道路。
训练数据:新的偶然供应链?
开源软件构建的方式与机器学习构建的方式之间的一个更为关键的相似之处是它们所依赖的数据的复杂性和公开可用性。
正如我与他人合著的“数据来源项目”的预印本中详细介绍的那样,现代机器学习建立在成千上万的数据源之上,就像现代开源软件建立在成千上万的库之上一样。每个开放的库都带来了法律、安全和维护上的挑战,每个公开的数据集也带来了同样的一组困难。
在我们的组织中,我们已经讨论过开源软件的这种挑战的版本,说它是一种“偶然的供应链”。软件行业开始构建东西,因为开源库提供了令人难以置信的构建模块。这意味着该行业开始将开源软件视为供应链的一部分,这对于许多“供应商”来说是个惊喜。
为了应对这些挑战,开源软件已经发展了许多复杂(尽管不完美)的技术,比如用于识别正在使用的软件的扫描程序,以及用于在部署后跟踪软件的元数据。我们还开始投资于人力资源,以试图解决产业需求和志愿者动机之间的不匹配问题。
不幸的是,机器学习社区似乎准备陷入完全相同的“偶然”供应链错误 – 之所以做很多事情,只是因为能做,而没有停下来考虑在整个经济基于这些数据集的情况下可能带来的长期影响。
开源扩展填补了许多细分市场
最后一个重要的相似之处是,我强烈怀疑机器学习将扩展填补许多细分市场,就像开源软件做的那样。目前,(理所当然的)炒作是关于大型生成模型的,但也有许多小型模型存在,以及对更大型模型的调整。事实上,主要的机器学习托管平台HuggingFace报告称,他们网站上的模型数量正在以指数增长。
这些模型很可能会非常丰富且可供改进,就像小型开源软件的组件一样。这将使它们非常灵活和强大。例如,我正在使用一个基于小型机器学习的工具,在我的街道上进行廉价、隐私敏感的交通测量,这是几年前只有在昂贵设备上才能实现的用例。
但是这种扩散意味着它们需要被追踪 – 由于成本低廉和部署简便,模型可能会变得更像开源软件或SaaS,它们无处不在。
元数据不是万灵药,但它是第一步
因此,如果存在这些重要的相似之处(特别是复杂的供应链和扩散的分发),机器学习可以从开源软件中学到什么呢?
我们可以得出的第一个相似教训是,要理解机器学习的众多挑战,需要元数据和工具。开源软件通过版权和许可证合规性引入了元数据工作,但是随着软件的意外供应链成熟,元数据在各个方面都被证明非常有用。
在机器学习中,元数据跟踪还在不断改进中。以下是一些例子:
- 一篇被广泛引用于行业的关键2019年论文,敦促模型开发人员使用“模型卡片”记录他们的工作。不幸的是,最近的研究表明它们的实际应用仍然薄弱。
- SPDX和CycloneDX软件材料清单(SBOM)规范都在研究人工智能材料清单(AI BOMs),以更结构化的方式帮助跟踪机器学习数据和模型(适应了开源软件的复杂性)。
- HuggingFace创建了各种规范和工具,允许模型和数据集的作者记录他们的数据来源。
- 上述的MIT数据来源的论文试图理解数据许可的“真实情况”,以帮助用真实数据丰富规范。
- 从个案来看,许多从事机器学习训练的公司似乎和数据跟踪有着较为随意的关系,他们会使用“多多益善”作为将数据填充到容器中的借口,而不一定很好地追踪数据。
如果我们从开源软件中学到了什么,那就是要尽早对元数据进行正确处理(首先是规范,然后是实际数据),这将是一个需要数年时间并可能需要政府干预的项目。机器学习应该尽早探索元数据。
安全将成为一个真正的问题
安全是促使开源软件对元数据需求的另一个主要驱动因素 – 如果你不知道自己运行的是什么,就无法知道自己是否容易受到看似无尽的攻击的影响。
机器学习不会受到大多数传统软件攻击的影响,但这并不意味着它们是完全安全的。(我最喜欢的例子是可能会对图像训练数据集进行“毒害”,因为它们通常源自无效域名。)在这个领域的研究热度已经超过了“概念验证”的阶段,进入了“已有足够的攻击可以列举和分类”的阶段。
不幸的是,开源软件不能为机器学习提供任何安全的灵丹妙药 – 如果有的话,我们早就在使用了。但是开源软件在如此多的领域传播的历史表明,机器学习必须严肃对待这一挑战,从跟踪使用和部署元数据开始,因为它很可能被应用在目前尚未发现的许多方式中。
监管和责任将扩大
驱动开源元数据的动机(许可证,然后是安全)指向下一个重要相似之处:随着一个行业的重要性增长,必须测量和跟踪的范围将扩大,因为监管和责任也将扩大。
开源软件多年来的主要政府“监管”是版权法,因此发展出了支持版权法的元数据。但是如今开源软件面临着各种安全和产品责任规则 – 我们必须使我们的供应链成熟以满足新的要求。
随着人工智能变得越来越重要,它将以各种方式受到越来越多的监管。监管的来源将非常多样化,包括内容(输入和输出)、歧视和产品责任。这将要求我们进行所谓的“可追溯性”,理解模型建立的方式以及这些选择(包括数据来源)如何影响模型的结果。
这个核心要求——我们有什么?它是怎么来的?——现在对企业开源软件开发人员来说已经非常熟悉了。然而,对于机器学习开发人员来说,这可能是一个根本性的变化,需要接受。
“长期”比人们想象的要长
机器学习可以从开源软件中汲取的另一个类似经验教训(事实上,许多以前的软件浪潮都可以汲取)是它的有用寿命会非常非常长。一旦一个技术“够用了”,它将被部署,因此必须长时间维护。这意味着我们必须尽早考虑维护这个软件,并考虑这个软件可能存活几十年意味着什么。“几十年”并不夸张;我遇到的许多客户正在使用足够老以至于能够投票的软件。许多开源软件公司和一些项目现在都有所谓的“长期支持”版本,专为这些使用案例而设计。
相比之下,OpenAI只将其Codex工具保留了不到两年时间–leading to a lot of anger, especially in the academic community。考虑到机器学习的快速变化速度,以及大多数采用者可能有兴趣使用最前沿的技术,这可能不是不合理的–但离行业所想的“长期”将会来临的那一天不会太久,那时需要计划如何应对这种“长期”,包括它如何与责任和安全性交互。
财务激励未必一致
最后,很明显,就像开源软件一样,机器学习领域将会有大量资金流入,但其中大部分资金将集中在被一个作者称为“处理器富裕”公司的周围。如果与开源软件的类比成立,这些公司将有非常不同的关注点和支出重点,与模型的创建者(或用户)的中位数不同。
我们的公司Tidelift在很长一段时间里一直在思考这个开源软件中的激励问题,而像全球最大的软件采购人–美国政府–也在研究这个问题。
机器学习公司,尤其是那些希望创建创作者社区的公司,应该认真思考这个挑战。如果它们依赖成千上万的数据集,它们将如何确保这些数据集在几十年的维护、法律合规和安全方面得到资助?如果大公司最终在公司周围部署了几十个或上百个模型,如何确保那些拥有最好专业知识–即那些创建模型的人–在他们发现新问题时仍然存在并从事新问题的工作?
像安全性一样,对于这个挑战并没有简单的答案。但是,机器学习越早将这个问题当作长期增长的关键组成部分来认真对待,整个行业和整个世界就会变得更好。
结论
机器学习在学术实验文化和硅谷快速迭代文化的深层根源,为其服务良好,导致了一场惊人的创新爆发,这在不到十年前还会似乎是魔幻的。在过去的十年中,开源软件的发展过程可能没有那么光鲜亮丽,但在这段时间里,它已经成为所有企业软件的基础,并从中吸取了很多经验教训。希望机器学习不会重新发明那些车轮。Luis Villa是Tidelift的联合创始人和总法律顾问。此前,他是一位顶尖的开源法律专家,为从财富50强公司到领先的初创公司提供产品开发和开源许可的咨询。




