查看原文
其他

开源 AI 面临的挑战

CSDN 2023-06-17

文旨在预测并概述可能在未来十年发生的潜在颠覆性变革,并提出一些想法和解决方案,以帮助开源社区适应这种对未来假设带来的挑战。

https://blog.opncbr.com/post/open_source_ai/

未经允许,禁止转载!


作者 | Lum Ramabaja       
译者 | 明明如月   责编 | 夏萌
出品 | CSDN(ID:CSDNnews)


人工智能的代价

尽管我坚信开源人工智能将继续蓬勃发展,但我也认为未来几年企业和政府将越来越有动机限制对新型神经网络架构和技术的应用。预测未来非常困难,我所做的许多预测可能不会实现,或者可能和我设想的方式完全不同。然而,这并不意味着思考未来毫无用处。相反,思考可能的未来可以帮助我们积极适应不断变化的世界。随着世界以惊人的速度继续演化,具备设想并为可能的新世界做准备的能力将变得越来越重要。
在不久的未来,我们将见证与人交往方式、劳动交换方式甚至社会组织方式的根本性变革。个性化的人工智能实体(称为“Ghosts”)有望成为每个人潜在的个性化存在,并将我们连接到全球其他 AI 系统的网络中。这些 AI 系统将为我们提供多种服务,我们可以将它们看作是扩展我们认知的工具,而不仅仅是助手。企业和组织很可能也会拥有自己的 “Ghosts”,以提高成员之间的协作效率。除了社交方面,具有循环连接的关联记忆网络可能使 AI 系统具备记忆能力。这些独立的 “Ghosts” 甚至可能形成独特身份。此外,可能会出现利用共识算法的 AI 系统,促使去中心化自主 AI 的发展。尽管这还尚未实现,但我们已经可以设想一些即将出现的经济变化和趋势。
AI 生成服务的交换价值将取决于提供服务所需的能量(即运行相关模型的成本),再加上市场内 AI 的信息不对称性。那些容易被 AI 简单复制的服务将具有较低的交换价值,从而导致 AI 所有者的剩余价值减少。这种趋势将对基于服务的经济体产生较大影响,可以预期到大部分服务的剩余价值会大幅减少。因此,我们可以预计,在一段时间内,许多西方国家的人口和政府将像 19 世纪纺织工人反对机器生产一样,以类似的方式作出反应。由于各行业的回报减少,世界上许多地区将采取垄断许可策略和专制规则来限制 AI 的访问。
在那些更积极推进 AI 的地区,开源 AI 很可能在具有低交换价值但高使用价值的服务(如容易被 AI 取代的服务)中蓬勃发展。然而,对于那些稍加改进就能大幅提升使用价值的服务,经济激励将会有所不同。在这类服务中,我们可以预期“强者愈强”的趋势。更先进的 AI 系统将能够创造更多的剩余价值。因此,分享技术和模型架构的创新动机可能会减少。但需要注意的是,只有当系统参与者之间存在不对称性时,才能在系统中获得剩余价值。在 AI 的背景下,这种不对称性可能以信息不对称的形式表现,涉及控制和限制他人访问信息和知识。
一些参与者之间的信息不对称可能会导致政府采取强制限制的措施,例如实施知识产权保护、许可制度或访问控制措施;这种信息不对称需要政治行动来解决,不能仅仅依靠技术手段。然而,技术可以解决由资源不对称导致的信息不对称。具体来说,当前的人工神经网络通常以密集方式进行训练,即一旦提供输入,网络内的所有单元都会被激活。对于像 Transformer 这样的架构(被应用于像 ChatGPT 这样的服务中),信息传播的计算成本显著增加,原因是其"自注意力机制" 的存在。高计算复杂性导致高能耗。
考虑到大规模语言模型(LLM)的训练需要大量资源,我们可以预见在“强者愈强”的情况下,AI 系统的开发和管理将集中在少数几个闭源实体。这些实体将被鼓励将其模型权重和架构视为专有,因为更多的保密性将带来更高的利润。不幸的是,资源限制也意味着对于研究人员、非营利组织或创业公司等较小实体来说,从头开始训练大语言模型通常是不可行的,因为涉及的能源成本过高。因此,大多数开源 LLM 的努力都依赖于微调预先存在的模型,这样做更经济且节省能源。基于这些趋势,我相信我们应该优先降低集体训练和运行大规模深度学习模型的成本,以维持开源 AI 的竞争力和质量。

稀疏激活张量

鉴于经济激励的不一致性、大型语言模型(LLMs)密集训练的能源消耗以及权力日益集中的趋势,Open Cybernetics 意识到需要采取更加积极的立场。在开源 AI 社区向前迈进的过程中,为数据集创建类似于 GNU 通用公共许可证( GPL) 的标准将是一个重要的步骤。然而,我们相信仅依靠类似于 copy-left 的许可证无法抵挡预计在未来十年出现的经济和政治力量。相反,我们需要新的技术和协议,以促使社会经济权力动态的转变。
我特别兴奋的是我们内部所称的 “稀疏激活张量(Sparsely Activated Tensor)” 概念及其与点对点空间的协同效应。需要注意的是,在未来的工作中,我们将探索如何构建与模型无关的稀疏激活张量数据结构。在本文中,我只是希望介绍背后的理念,并探讨发展这种类型技术的原理以及其对开源社区和更广泛领域的影响。稀疏激活张量可以被定义为以稀疏方式检索和更新其状态的数据结构。为了更好地理解这意味着什么,让我们从一个简单的例子开始,并在此基础上逐步构建。

图 1 : 嵌入层描述
嵌入层 (embedding layer)可以被视为一种基于一对一映射原则的稀疏激活张量。这意味着:嵌入层由一个包含相应向量的权重矩阵和词符(tokens,例如,单词 )列表组成。语料库中使用的每个单词被分配到权重矩阵中的一行,从而创建单词到嵌入向量 (embeddings)的映射(见图1)。然后,这些嵌入向量作为神经网络的输入。嵌入层可以被视为稀疏激活张量的原因是它满足与此类数据结构相关的两个标准:
  • 通过使用数据库,可以高效地检索嵌入向量,无需将整个张量加载到内存中即可进行稀疏检索。
  • 可以稀疏地更新嵌入向量。在通过嵌入层进行后向传播时,只有与使用到的词符 (token 或 tokens) 相关的权重会被调整,而其余的嵌入会被排除在更新步骤之外。
虽然一对一映射方法在涉及离散标记(如单词)的情况下证明是有价值的,但在连续输入的情况下是不实际的。例如,一个 28×28 的图像块包含了大量可能的像素组合,使用依赖于一对一映射的嵌入层是不切实际的。然而,正如我们将在接下来看到的,使用多对一映射方法可以实现类似的结果。嵌入向量检索和稀疏激活张量之间的逻辑连接将很快变得明显。

我们可以考虑一种情况,其中我们有一个由存储模式组成的归一化矩阵 Wk,以及一个归一化的输入 I(见图2)。对 和 Wk 进行点积运算基本上相当于检查 Wk 的每一列,并确定哪一列向量更接近 I 。得到的 K 向量表示 I  和 W 的每一列之间的余弦相似度。中的分数越高表明输入与相应列之间的相似度越大。

图 2:K 的值表示 Wk 中的列和 I 的相似度
通过引入一个 softmax 激活函数、一个额外的权重矩阵Wv和一个用于调节 softmax 分布强度的标量参数 β,我们能够将 I  与给定的输出 O 关联起来(见图3)。softmax 操作产生的分布决定了 Wv 矩阵的哪些行将被赋予更高的重要性。这种神经网络层的配置通常被称为 Modern Hopfield Lookup 层。它使用预定的一组可学习模式的加权总和,建立一个连续输入和一个输出 embedding 之间的关联。

图 3 : Modern Hopfield Lookup 层的描述
对于一些读者来说,可能已经很明显了,从 I 到 O 的转换需要大量的计算。在 Transformer 模型的自注意力机制(self-attention)中,计算需求更为突出。如图4 所示, Transformer 模型的自注意力机制使用了三个矩阵:查询矩阵 Q 、键矩阵 K 和值矩阵 V,以及一个 softmax 函数。注意步骤中 d的平方根在图3 中的   β 项中起到了类似的作用。

图4 : Transformer 中自注意机制的图示。为了简化起见,省略了多头组件、编码器的层归一化和残差连接。
为了得到查询、键和值矩阵,需要计算大量不必要的余弦相似度。详细来说,这些点积中的大部分并未显著地贡献到自注意力机制的输出 embedding。换句话说,Q 、 K 和 V 中的大多数值都比 1 小得多。尽管如此,我们仍然要对输入 I 和 WQ 、WK  、WV 的所有列进行比较,因为预先不知道哪些权重矩阵的内部模式会产生最高的余弦相似度。这种缺乏先验知识增加了 Transformer 模型的计算成本,我们最终不得不在整个 Q 矩阵之间进行点积运算。
为了突出当前人工智能系统中信息检索过程的低效性,让我们考虑一个场景:我们有一个大型数据库,并希望执行一个简单的查询。目前,AI 系统的操作涉及将整个数据库加载到内存中并进行遍历,以检索与我们的查询相匹配的少量记录,而不是利用索引记录。如我们所见,当前在像 Transformer 这样的关联记忆网络中传播信息的方式非常低效。解决这个问题有两种潜在的方式。一种选择是采用机器学习方法,尝试修改注意力机制,以减少计算需求。这已在项目如 Linformer 和 Performer 中进行了探索。另一种方式是考虑将数据库系统的设计原则纳入其中,而不对基础模型架构进行修改。
我们知道,例如,可以在不必加载或遍历整个张量的情况下,有效地执行 I 和权重矩阵之间的 k 最邻近法 kNN)查找。使用这种方法可以显著降低语言模型的计算需求,同时节省大量能量。有趣的是,一些语言模型已经在某种程度上使用了这些技术。例如,Memorizing Transformer 通过在向量数据库上高效执行近似 k 最近邻查找来利用外部存储器。利用向量数据库的语言模型实现通常在后台使用 HNSW 算法(一种高效的近似最近邻搜索算法)。
如果将稀疏检索的概念类比于数据库,可以将其类比为具有预索引权重的记录检索(即存储的模式),无需遍历整个数据库。然而,目前利用向量数据库的现有Transformer 实现仅能在推理过程中执行近似 k 最近邻(kNN)查找。换句话说,模型训练仍然以密集的方式进行,这是一个能量密集型的过程。为了促进大规模神经网络的集体训练,需要从同时更新模型权重转变为稀疏更新。通过设计支持稀疏检索和稀疏更新的神经构建模块,我们可以为开源 AI 社区的赋能做出贡献,克服由于资源限制而导致的信息不对称。

密码学 Ghost 证明

作为一种缓解资源限制的策略,一些开源 AI 社区的研究人员已经开始利用值得信赖的点对点协作进行 LLM(大型语言模型)的推理和微调。例如,像 Petals 这样的项目正在使用基于 Kademlia 的分布式哈希表来在一个分散的节点网络中传播神经活动。这种方法让 Petals 的用户能够在多个节点之间分配训练和推理任务,而不是依赖一个单一的机器来加载整个 LLM。通过集体参与训练过程,这些分布式节点扩展了他们的能力,超越了他们单独能够达到的水平。
尽管这些系统的实用性令人瞩目,当前的点对点 AI 工作还缺少一个关键的组成部分:在对抗环境下“免信任”(trustlessness)。目前,如果有人在像 Petals 这样的系统中进行一个前向传递,你仍然需要信任网络中的其他节点。也就是说,任何恶意的节点都可以返回一个并未实际来自模型的输出。虽然这个限制可能不会对学术界合作研究产生灾难性影响,但它确实阻碍了点对点 AI 系统在实际应用中的广泛采用。
而在这里,稀疏激活张量的第二个显著优势就显现出来了。除了他们的能源效率外,稀疏激活张量还具有使点对点 AI 网络内的加密安全前向和后向传播成为可能的必要属性。现在,让我们简要地看一下默克尔树(Merkle Tree)数据结构,以理解如何实现这样的壮举。
默克尔树(Merkle Tree)是一种二叉树数据结构,用于在不向另一方提供列表的每个值的情况下,安全地验证列表中值的存在。为了创建一个 Merkle 树,列表中的每个值都使用加密哈希函数进行哈希加密,从而得到叶节点。然后通过哈希组合这些叶节点,形成非叶子的父节点。这个过程一直重复,直到达到二叉树的根节点(参见 图 5)。

图 5一个默克尔树(Merkle Tree)的图示。叶节点用灰色表示,非叶节点用黑色表示。
要确认默克尔树 (Merkle Tree) 中是否存在某个值,我们使用 Merkle 证明,它由一系列哈希序列组成。通过将叶节点哈希值与提供的 Merkle 证明进行迭代哈希运算,可以重构原始的 Merkle 根节点(参见图 6)。需要注意的是,接收到 Merkle 证明的接收者必须已经拥有 Merkle 根节点的本地副本,以进行验证过程。通过将本地存储的 Merkle 根节点与 Merkle 证明生成的最终哈希值进行比较,接收者节点可以验证一个值是否包含在用于创建 Merkle 根节点的值列表中。如果两个哈希值一致,就可以确认提供的值确实是原始 Merkle 树中的叶节点之一。需要注意的是,Merkle 证明的大小(在图 6 中以绿色哈希表示)按对数比例缩放。这使我们能够提供紧凑的存在性证明,即使叶节点的数量很大。

图 6:一个 Merkle 证明的示意图。为了证明 H3 在初始值列表中存在,必须先将其与 H4 进行哈希运算,然后与 H1,2 进行哈希运算,最后与 H5,6,7,8(以绿色显示)进行哈希运算,以重新生成 Merkle 根节点的哈希值。
默克尔树 (Merkle Tree) 数据结构与稀疏激活张量之间的联系在于它们的潜在组合。可以在稀疏激活张量上构建 默克尔树,以稀疏方式检索和更新其状态。在这个特定的例子中,张量的列向量被用作默克尔树中的叶节点(见图 7)。

图 7使用稀疏激活张量的列作为叶节点构建默克尔树的示意图。
让我们考虑一个场景,Bob 拥有一个具有 Hopfield 查找层的现代 Hopfield 网络(如 图 3)。另一方面,Alice 持有 Bob 的 Hopfield 查找层的 Merkle 根节点的本地副本。假设 Alice 想要将输入发送给 Bob 进行前向传播。Bob 进行前向传递,相当于在稀疏激活张量中执行近似 k 最近邻查找 (kNN)。随后,Bob 与 Alice 分享 W中 k 个最近的列向量,以及 Wk 的 Merkle证明,以及相应的 Wv 向量和 Wv  的 Merkle 证明(见图 8)。

图 8 现代 Hopfield 查找层的密码学 Ghost 证明的图示。假设 I 在 Wk 中的 k 个最近邻居是导致 H1 和 H5 的列。通过将 H1 与 H2 进行哈希运算,将 H5 与 H6 进行哈希运算,然后将生成的哈希与 h3,4 和 H7,8 进行哈希运算,我们可以生成稀疏得分张量的 Merkle 根节点。同样的步骤也可以用于生成的 Wv 的 Merkle 根节点。
使用稀疏检索的 Wk 和 Wv 嵌入,以及提供的 Merkle 证明,Alice 可以生成可以加密验证的输出。重要的是要注意,在实际实施中,Bob 不会以未压缩格式传输嵌入。相反,他将采用 delta 编码来压缩嵌入,从而大大减少所需的带宽。此外,Bob 不会为 Wk 和 Wv 中的每个 k 最近邻的列/行向量发送单独的 Merkle 证明。相反,他将为 Wk 发送一个单独的紧凑 Merkle Multiproof,另一个则用于 Wv。注意,如果使用稀疏激活张量,那么在 Transformer 的自注意力机制中也可以应用同样的技术。
在 Open Cybernetics,我们将稀疏激活张量的 Merkle Multiproof 称 CGPs(密码学 Ghost 证明 )。我们相信 CGPs 可以作为一个强大的构建模块,在未来的人工智能系统中扮演重要角色。Ghost 证明也是我相信在不久的将来,大部分互联网流量将由神经活动组成的原因。每个AI系统都存在一个 "Ghost文件",其中包含每个网络层的 Ghost根节点,以及架构信息和前向传播和反向传播中涉及的操作。实体可以绝对地相信 AI 系统的输出仅来自模型。
使用 CGPs 和 Ghost 文件不仅将为点对点人工智能系统引入新的范式,还将促进增加透明度的文化。通过将密码学Ghost 证明纳入用于 AI 交互的互联网协议中,将不再可能隐藏模型架构和权重。Ghost 文件将确保模型架构的透明度,而 CGPs 将使模型权重公开(因为每次进行前向传递时,一小部分权重将以压缩形式共享)。这种技术转变将使人工认知成为一个共享的资源,可供所有人访问和拥有。

反思

除了开放性(openness)和免信任性(trustlessness)外,整合 CGPs 还有可能将人工智能和去中心化账本技术的领域融合在一起,为自治人工智能系统 (Autonomous AI system)的出现铺平道路。自治人工智能系统是一个利用共识算法的无需许可性质的点对点人工智能协议。这些协议不是改变账本中的条目,而是传播思想。为了确保有效运行并防止服务拒绝(DoS)攻击,这些协议可能依赖于相互信贷或货币。这些自治系统的技术细节以及经济和社会影响将在未来的研究中探讨。
作为工程师和人工智能研究人员,我们必须认识到技术固有的政治性质。看似微小的工程决策可能导致深远的社会转变。例如,密集激活的深度学习模型可能导致集中化的社会组织形式,而稀疏激活的深度学习模型可能导致去中心化的社会组织形式。现在比以往任何时候都更需要跨学科思考。例如,值得考虑去中心化人工智能对治理的影响。人工智能系统将如何影响国家?它们会赋予威权主义国家权力,还是有助于发展更强大的民主制度?公司组织结构和最小可行规模又如何?想象一下通过将每个公民的个性化 AI 实体(Ghost)连接到一个共享网络来创建可扩展的直接民主制度的可能性,这是非常有趣的。这些想法值得在未来进一步探索。
我希望这篇文章能引起你对探索人工智能和点对点技术之间的协同效应的兴趣。我坚信,在人工智能和数据库系统的交叉领域,特别是在稀疏激活张量领域,未来几年将会出现重大的进展。此外,人工智能和点对点系统的融合,以及稀疏激活关联记忆网络的发展,无疑将有显著的进步。
我鼓励你探索这些迷人的主题,并为开源 AI 做出贡献。请记住,自由/开源软件(FLOSS)运动不仅仅是代码共享,它还是赋予全球社区权力的体现。

推荐阅读:

Python 第一难保,要看 ChatGPT 火不火?TIOBE 6 月榜单发布!

编程的未来 - 还有未来么?

因一个代码拼写错误,17 个生产级数据库被误删、瘫痪 10 小时!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存