不要信任,要验证:去中心化推理概述

中级4/16/2024, 8:49:53 AM
区块链和机器学习的交叉点很接近,但在去中心化推理中,平衡成本和信任是一个关键挑战。

假设您想要运行像 Llama2–70B 这样的大型语言模型。如此庞大的模型需要超过 140GB 的内存,这意味着您无法在家用计算机上运行原始模型。你有什么选择?您可能会跳到云提供商,但您可能不太热衷于信任单个中心化公司来为您处理此工作负载并收集所有使用数据。那么你需要的是 分散推理,它允许您运行 ML 模型,而无需依赖任何单一提供商。

信任问题

在去中心化网络中,仅仅运行模型并信任输出是不够的。假设我要求网络使用 Llama2-70B 分析治理困境。我怎么知道它实际上没有使用 Llama2-13B,给我提供了更糟糕的分析,并将差额收入囊中?

在中心化的世界中,您可能会相信像 OpenAI 这样的公司会诚实地这样做,因为他们的声誉受到威胁(在某种程度上,LLM 的质量是不言而喻的)。但在去中心化的世界中,诚实不是假设的——而是经过验证的。

这是哪里可验证的推论 发挥作用。除了提供对查询的响应之外,您还可以证明它在您要求的模型上正确运行。但如何呢?

最简单的方法是将模型作为链上智能合约运行。这肯定会保证输出得到验证,但这非常不切实际。 GPT-3 表示嵌入维度为 12,288 的单词。如果你要做一个单矩阵乘法 按照目前的 Gas 价格计算,这种规模的链上计算将花费约 100 亿美元——计算将连续大约一个月填满每个区块。

所以不行。我们需要一种不同的方法。

在观察了整个情况之后,我很清楚已经出现了三种主要方法来解决可验证的推理:零知识证明、乐观欺诈证明和加密经济学。每个都有其自己的安全性和成本影响。

1. 零知识证明(ZK ML)

想象一下,能够证明您运行了一个大型模型,但无论模型有多大,证明实际上都是固定大小的。这就是 ZK ML 通过 ZK-SNARK 的魔力所承诺的。

虽然原则上听起来很优雅,但将深度神经网络编译成零知识电路并进行证明是极其困难的。它也非常昂贵——至少,你可能会考虑@ModulusLabs/chapter-5-the-cost-of-intelligence-da26dbf93307">1000 倍的推理成本和 1000 倍的延迟 (生成证明的时间),更不用说在这一切发生之前将模型本身编译成电路了。最终,该成本必须转嫁给用户,因此对于最终用户而言,这最终将非常昂贵。

另一方面,这是密码学上唯一的方法保证 正确性。有了ZK,模型提供者无论多么努力都无法作弊。但这样做的成本巨大,使得在可预见的未来对于大型模型来说这是不切实际的。

例子:埃兹克勒,模量实验室,人类

2. 乐观欺诈证明(Optimistic ML)

乐观的方法是信任,但要验证。除非另有证明,否则我们假设推论是正确的。如果一个节点试图作弊,网络中的“观察者”可以指出作弊者并使用欺诈证明来挑战他们。这些观察者必须始终监视链并在自己的模型上重新运行推理,以确保输出正确。

这些欺诈证据是Truebit风格 交互式挑战-响应游戏,您可以在链上重复平分模型执行轨迹,直到找到错误。

如果这种情况真的发生,其成本将非常高昂,因为这些程序规模庞大且具有巨大的内部状态——单个 GPT-3 推理的成本约为1 petaflop (10^5 浮点运算)。但博弈论表明这种情况几乎永远不会发生(众所周知,欺诈证明很难正确编码,因为代码几乎永远不会在生产中受到攻击)。

乐观的好处是,只要有一个诚实的观察者在关注,机器学习就是安全的。成本比 ZK ML 便宜,但请记住,网络中的每个观察者都会自行重新运行每个查询。在均衡状态下,这意味着如果有 10 个观察者,则安全成本必须转嫁给用户,因此他们将必须支付超过 10 倍的推理成本(或者无论观察者有多少)。

与乐观汇总一样,其缺点是您必须等待挑战期过去才能确定响应已得到验证。不过,根据网络参数化的方式,您可能需要等待几分钟而不是几天。

例子:不是,重访 (尽管目前尚未明确)

3. 加密经济学(加密经济ML)

在这里,我们放弃所有花哨的技术,做简单的事情:股权加权投票。用户决定应该有多少个节点运行他们的查询,每个节点都会显示他们的响应,如果响应之间存在差异,那么奇怪的节点就会被削减。标准的预言机东西——这是一种更简单的方法,可以让用户设置他们想要的安全级别,平衡成本和信任。如果 Chainlink 正在做机器学习,他们就会这样做。

这里的延迟很快——你只需要一个提交-揭示 来自每个节点。如果将其写入区块链,那么从技术上讲,这可能会发生在两个区块中。

然而,安全性是最薄弱的。如果足够狡猾,大多数节点可以理性地选择共谋。作为用户,您必须推断这些节点的风险有多大以及作弊将花费多少成本。也就是说,使用 Eigenlayer 重新抵押之类的东西可归因的安全性,网络可以在安全故障的情况下有效提供保险。

但该系统的优点在于用户可以指定他们想要的安全程度。他们可以选择在仲裁中包含 3 个节点或 5 个节点,或者网络中的每个节点 - 或者,如果他们想要 YOLO,他们甚至可以选择 n=1。这里的成本函数很简单:用户为他们想要的法定数量的节点付费。如果选择 3,则需要支付 3 倍的推理成本。

这里有一个棘手的问题:你能让 n=1 安全吗?在一个简单的实现中,如果没有人检查,一个单独的节点应该每次都作弊。但我怀疑,如果您对查询进行加密并通过意图进行支付,您可能能够向节点混淆它们实际上是唯一响应此任务的节点。在这种情况下,您可能可以向普通用户收取不到 2 倍的推理成本。

最终,加密经济方法是最简单、最容易,也可能是最便宜的,但它是最不性感的,原则上也是最不安全的。但一如既往,细节决定成败。

例子:仪式 (尽管目前尚未明确),原子网络

为什么可验证的机器学习很难

您可能想知道为什么我们还没有拥有这一切?毕竟,从本质上来说,机器学习模型只是非常大型的计算机程序。长期以来,证明程序正确执行一直是区块链的基础。

这就是为什么这三种验证方法反映了区块链保护其区块空间的方式——ZK rollups 使用 ZK 证明,optimistic rollups 使用欺诈证明,而大多数 L1 区块链使用加密经济学。毫不奇怪,我们得出了基本相同的解决方案。那么,是什么让这在应用于机器学习时变得困难呢?

ML 是独一无二的,因为 ML 计算通常表示为密集计算图,旨在在 GPU 上高效运行。它们并不是为了被证明而设计的。因此,如果您想在 ZK 或乐观环境中证明 ML 计算,则必须以使其成为可能的格式重新编译——这是非常复杂且昂贵的。

机器学习的第二个基本困难是不确定性。程序验证假设程序的输出是确定性的。但如果你在不同的 GPU 架构或 CUDA 版本上运行相同的模型,你会得到不同的输出。即使您必须强制每个节点使用相同的架构,您仍然会遇到算法中使用的随机性问题(扩散模型中的噪声,或 LLM 中的令牌采样)。您可以通过控制来修复随机性RNG 种子。但即便如此,您仍然面临最后一个威胁性问题:浮点运算固有的不确定性。

GPU 中的几乎所有运算都是在浮点数上完成的。浮点数很挑剔,因为它们是不具有关联性 ——也就是说,对于浮点数来说 (a + b) + c 并不总是与 a + (b + c) 相同。由于 GPU 是高度并行化的,因此每次执行时加法或乘法的顺序可能会有所不同,这可能会导致输出出现微小差异。考虑到单词的离散性质,这不太可能影响 LLM 的输出,但对于图像模型来说,它可能会导致像素值略有不同,从而导致两个图像无法完美匹配。

这意味着您要么需要避免使用浮点,这意味着对性能的巨大打击,要么您需要在比较输出时允许一些宽松。不管怎样,细节都很复杂,你无法完全抽象出来。 (事实证明,这就是为什么 EVM不支持 浮点数,尽管有些区块链喜欢靠近 做。)

简而言之,去中心化推理网络很难,因为所有细节都很重要,而且现实有数量惊人的细节

综上所述

目前,区块链和机器学习显然有很多共同之处。一种是创造信任的技术,另一种是迫切需要信任的技术。虽然每种去中心化推理方法都有其自身的权衡,但我非常有兴趣了解企业家如何使用这些工具来构建最好的网络。

但我写这篇文章并不是为了作为最后的结论——我实时思考了很多这些想法,并与人们进行了很多充满活力的辩论。我一直发现写作是检验我的想法的最佳方式。如果您正在这个领域构建一些东西,请伸出援手!我一直很想了解你正在做什么——如果你能证明我错了,那就更好了。

声明:

  1. 本文转载自[蜻蜓研究],著作权归属原作者[Haseeb Qureshi],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

不要信任,要验证:去中心化推理概述

中级4/16/2024, 8:49:53 AM
区块链和机器学习的交叉点很接近,但在去中心化推理中,平衡成本和信任是一个关键挑战。

假设您想要运行像 Llama2–70B 这样的大型语言模型。如此庞大的模型需要超过 140GB 的内存,这意味着您无法在家用计算机上运行原始模型。你有什么选择?您可能会跳到云提供商,但您可能不太热衷于信任单个中心化公司来为您处理此工作负载并收集所有使用数据。那么你需要的是 分散推理,它允许您运行 ML 模型,而无需依赖任何单一提供商。

信任问题

在去中心化网络中,仅仅运行模型并信任输出是不够的。假设我要求网络使用 Llama2-70B 分析治理困境。我怎么知道它实际上没有使用 Llama2-13B,给我提供了更糟糕的分析,并将差额收入囊中?

在中心化的世界中,您可能会相信像 OpenAI 这样的公司会诚实地这样做,因为他们的声誉受到威胁(在某种程度上,LLM 的质量是不言而喻的)。但在去中心化的世界中,诚实不是假设的——而是经过验证的。

这是哪里可验证的推论 发挥作用。除了提供对查询的响应之外,您还可以证明它在您要求的模型上正确运行。但如何呢?

最简单的方法是将模型作为链上智能合约运行。这肯定会保证输出得到验证,但这非常不切实际。 GPT-3 表示嵌入维度为 12,288 的单词。如果你要做一个单矩阵乘法 按照目前的 Gas 价格计算,这种规模的链上计算将花费约 100 亿美元——计算将连续大约一个月填满每个区块。

所以不行。我们需要一种不同的方法。

在观察了整个情况之后,我很清楚已经出现了三种主要方法来解决可验证的推理:零知识证明、乐观欺诈证明和加密经济学。每个都有其自己的安全性和成本影响。

1. 零知识证明(ZK ML)

想象一下,能够证明您运行了一个大型模型,但无论模型有多大,证明实际上都是固定大小的。这就是 ZK ML 通过 ZK-SNARK 的魔力所承诺的。

虽然原则上听起来很优雅,但将深度神经网络编译成零知识电路并进行证明是极其困难的。它也非常昂贵——至少,你可能会考虑@ModulusLabs/chapter-5-the-cost-of-intelligence-da26dbf93307">1000 倍的推理成本和 1000 倍的延迟 (生成证明的时间),更不用说在这一切发生之前将模型本身编译成电路了。最终,该成本必须转嫁给用户,因此对于最终用户而言,这最终将非常昂贵。

另一方面,这是密码学上唯一的方法保证 正确性。有了ZK,模型提供者无论多么努力都无法作弊。但这样做的成本巨大,使得在可预见的未来对于大型模型来说这是不切实际的。

例子:埃兹克勒,模量实验室,人类

2. 乐观欺诈证明(Optimistic ML)

乐观的方法是信任,但要验证。除非另有证明,否则我们假设推论是正确的。如果一个节点试图作弊,网络中的“观察者”可以指出作弊者并使用欺诈证明来挑战他们。这些观察者必须始终监视链并在自己的模型上重新运行推理,以确保输出正确。

这些欺诈证据是Truebit风格 交互式挑战-响应游戏,您可以在链上重复平分模型执行轨迹,直到找到错误。

如果这种情况真的发生,其成本将非常高昂,因为这些程序规模庞大且具有巨大的内部状态——单个 GPT-3 推理的成本约为1 petaflop (10^5 浮点运算)。但博弈论表明这种情况几乎永远不会发生(众所周知,欺诈证明很难正确编码,因为代码几乎永远不会在生产中受到攻击)。

乐观的好处是,只要有一个诚实的观察者在关注,机器学习就是安全的。成本比 ZK ML 便宜,但请记住,网络中的每个观察者都会自行重新运行每个查询。在均衡状态下,这意味着如果有 10 个观察者,则安全成本必须转嫁给用户,因此他们将必须支付超过 10 倍的推理成本(或者无论观察者有多少)。

与乐观汇总一样,其缺点是您必须等待挑战期过去才能确定响应已得到验证。不过,根据网络参数化的方式,您可能需要等待几分钟而不是几天。

例子:不是,重访 (尽管目前尚未明确)

3. 加密经济学(加密经济ML)

在这里,我们放弃所有花哨的技术,做简单的事情:股权加权投票。用户决定应该有多少个节点运行他们的查询,每个节点都会显示他们的响应,如果响应之间存在差异,那么奇怪的节点就会被削减。标准的预言机东西——这是一种更简单的方法,可以让用户设置他们想要的安全级别,平衡成本和信任。如果 Chainlink 正在做机器学习,他们就会这样做。

这里的延迟很快——你只需要一个提交-揭示 来自每个节点。如果将其写入区块链,那么从技术上讲,这可能会发生在两个区块中。

然而,安全性是最薄弱的。如果足够狡猾,大多数节点可以理性地选择共谋。作为用户,您必须推断这些节点的风险有多大以及作弊将花费多少成本。也就是说,使用 Eigenlayer 重新抵押之类的东西可归因的安全性,网络可以在安全故障的情况下有效提供保险。

但该系统的优点在于用户可以指定他们想要的安全程度。他们可以选择在仲裁中包含 3 个节点或 5 个节点,或者网络中的每个节点 - 或者,如果他们想要 YOLO,他们甚至可以选择 n=1。这里的成本函数很简单:用户为他们想要的法定数量的节点付费。如果选择 3,则需要支付 3 倍的推理成本。

这里有一个棘手的问题:你能让 n=1 安全吗?在一个简单的实现中,如果没有人检查,一个单独的节点应该每次都作弊。但我怀疑,如果您对查询进行加密并通过意图进行支付,您可能能够向节点混淆它们实际上是唯一响应此任务的节点。在这种情况下,您可能可以向普通用户收取不到 2 倍的推理成本。

最终,加密经济方法是最简单、最容易,也可能是最便宜的,但它是最不性感的,原则上也是最不安全的。但一如既往,细节决定成败。

例子:仪式 (尽管目前尚未明确),原子网络

为什么可验证的机器学习很难

您可能想知道为什么我们还没有拥有这一切?毕竟,从本质上来说,机器学习模型只是非常大型的计算机程序。长期以来,证明程序正确执行一直是区块链的基础。

这就是为什么这三种验证方法反映了区块链保护其区块空间的方式——ZK rollups 使用 ZK 证明,optimistic rollups 使用欺诈证明,而大多数 L1 区块链使用加密经济学。毫不奇怪,我们得出了基本相同的解决方案。那么,是什么让这在应用于机器学习时变得困难呢?

ML 是独一无二的,因为 ML 计算通常表示为密集计算图,旨在在 GPU 上高效运行。它们并不是为了被证明而设计的。因此,如果您想在 ZK 或乐观环境中证明 ML 计算,则必须以使其成为可能的格式重新编译——这是非常复杂且昂贵的。

机器学习的第二个基本困难是不确定性。程序验证假设程序的输出是确定性的。但如果你在不同的 GPU 架构或 CUDA 版本上运行相同的模型,你会得到不同的输出。即使您必须强制每个节点使用相同的架构,您仍然会遇到算法中使用的随机性问题(扩散模型中的噪声,或 LLM 中的令牌采样)。您可以通过控制来修复随机性RNG 种子。但即便如此,您仍然面临最后一个威胁性问题:浮点运算固有的不确定性。

GPU 中的几乎所有运算都是在浮点数上完成的。浮点数很挑剔,因为它们是不具有关联性 ——也就是说,对于浮点数来说 (a + b) + c 并不总是与 a + (b + c) 相同。由于 GPU 是高度并行化的,因此每次执行时加法或乘法的顺序可能会有所不同,这可能会导致输出出现微小差异。考虑到单词的离散性质,这不太可能影响 LLM 的输出,但对于图像模型来说,它可能会导致像素值略有不同,从而导致两个图像无法完美匹配。

这意味着您要么需要避免使用浮点,这意味着对性能的巨大打击,要么您需要在比较输出时允许一些宽松。不管怎样,细节都很复杂,你无法完全抽象出来。 (事实证明,这就是为什么 EVM不支持 浮点数,尽管有些区块链喜欢靠近 做。)

简而言之,去中心化推理网络很难,因为所有细节都很重要,而且现实有数量惊人的细节

综上所述

目前,区块链和机器学习显然有很多共同之处。一种是创造信任的技术,另一种是迫切需要信任的技术。虽然每种去中心化推理方法都有其自身的权衡,但我非常有兴趣了解企业家如何使用这些工具来构建最好的网络。

但我写这篇文章并不是为了作为最后的结论——我实时思考了很多这些想法,并与人们进行了很多充满活力的辩论。我一直发现写作是检验我的想法的最佳方式。如果您正在这个领域构建一些东西,请伸出援手!我一直很想了解你正在做什么——如果你能证明我错了,那就更好了。

声明:

  1. 本文转载自[蜻蜓研究],著作权归属原作者[Haseeb Qureshi],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!