什么是真正的“去中心化”
当我们谈论去中心化的 AI 推理时,我们指的是一个非常具体的东西。它不仅仅是让 AI 模型在多台服务器上运行,而是要构建一个系统,让任何人都可以加入,贡献算力,并因诚实工作而获得奖励。
关键要求是系统必须是无信任的。这意味着你不必信任任何个人或公司来正确运行系统。如果你要让互联网上的陌生人来运行你的 AI 模型,你需要有密码学上的保证,来确保他们确实在做他们声称在做的事情(至少要有足够高的概率)。
这个无信任的要求带来了一些有趣的含义。首先,这意味着系统需要可验证:你需要能够证明,用于生成给定输出的是同一个模型和相同的参数。这对于需要验证其所获得的 AI 响应是否合法的智能合约尤为重要。
但这存在一个挑战:你添加的验证越多,整个系统就越慢,因为网络的算力被消耗在验证上。如果你完全信任所有人,就不需要验证推理,性能几乎和中心化服务商一样。但如果你不信任任何人,总要验证一切,系统就会变得非常慢,无法与中心化解决方案竞争。
这就是我们一直在努力解决的核心矛盾:在安全与性能的权衡中找到正确的平衡点。
区块链与推理验证
那么,如何实际验证某人运行了正确的模型和参数?区块链成为了一个显而易见的选择——尽管它也有自己的挑战,但它仍然是我们所知的创建不可篡改事件记录的最可靠方式。
基本思想相当直接。当有人运行推理时,他们需要提供使用正确模型的证明。这个证明被记录在区块链上,创建了一个永久的、防篡改的记录,任何人都可以验证。
问题是区块链很慢。真的非常慢。如果我们试图将推理的每一步都记录在链上,巨大的数据量会很快使网络瘫痪。这正是我们在设计 Gonka 网络时,驱动了许多决策的限制条件。
在设计网络和思考分布式计算时,有多种策略可供选择。你可以将模型分片到多个节点上,还是让完整的模型驻留在一个节点中?主要的限制来自网络带宽和区块链速度。为了使我们的解决方案可行,我们选择了让一个完整模型适配一个节点,尽管这在未来可能会改变。这确实对加入网络增加了最低要求,因为每个节点需要足够的计算能力和内存来运行整个模型。尽管如此,一个模型仍然可以在属于同一节点的多个 GPU 之间进行分片,这给了我们在单节点限制内一些灵活性。我们使用 vLLM,它允许自定义张量和流水线并行参数以实现最佳性能。
实际运作方式
因此,我们达成一致:每个节点托管一个完整的模型并运行完整的推理,从而避免了在实际计算过程中需要跨多台机器进行协调。区块链仅用于记录。我们只记录用于推理验证的交易和工件(artifacts)。实际计算发生在链下。
我们希望系统是去中心化的,没有任何单一中心点来指挥推理请求到网络节点。实际上,每个参与者至少部署两个节点:一个网络节点和一个或多个推理(ML)节点。网络节点负责通信(包括一个连接到区块链的链节点和一个管理用户请求的 API 节点),而你的 ML 节点则执行 LLM 推理。
当一个推理请求到达网络时,它会到达其中一个 API 节点(充当“传输代理”),该代理会随机选择一个“执行者”(来自不同参与者的 ML 节点)。为了节省时间并将区块链记录与实际 LLM 计算并行化,传输代理(TA)首先将输入请求发送给执行者,并在执行者的 ML 节点正在运行推理时,将输入记录在链上。计算完成后,执行者将输出发送给 TA 的 API 节点,同时其自身的链节点会将某个验证工件记录在链上。TA 的 API 节点会将输出传回给客户端,并同样记录在链上。当然,这些记录仍然会造成整体网络带宽限制。
正如你所看到的,区块链记录既没有拖慢推理计算的开始,也没有拖慢最终结果返回给客户端的时间。推理是否诚实地完成的验证是在之后,与其他推理并行进行的。如果执行者被发现作弊,他们将失去整个纪元的奖励,而客户端会收到通知并获得退款。
最后的问题是:工件中包含了什么,以及我们多久验证一次推理?
安全与性能的权衡
根本的挑战是,安全与性能是相互矛盾的。
如果你想要最大的安全性,你需要验证一切。但这既慢又昂贵。如果你想要最大的性能,你就需要信任所有人。但这有风险,并会让你面临各种攻击。
经过一番尝试、错误和参数调整后,我们找到了一种试图平衡这两种考量的方法。我们必须仔细调整验证的量、验证的时间以及如何使验证过程尽可能高效。验证太多,系统将变得无法使用;验证太少,系统则变得不安全。
保持系统轻量化至关重要。我们必须通过存储前 k 个下一个 token 的概率来保持工件的轻量性。我们用它们来衡量某个输出是否确实是由声称的模型和参数生成的可能性,并以足够高的置信度捕获任何篡改行为,例如使用更小的模型或量化模型。我们将在另一篇文章中更详细地介绍推理验证程序的具体实现。
同时,如何决定验证哪些推理、不验证哪些?我们选择了基于声誉的方法。当一个新参与者加入网络时,他们的声誉为 0,他们 100% 的推理都将至少被一个参与者验证。如果发现问题,最终会使用共识机制来确定是否通过你的推理,或者降低你的声誉,并可能将你踢出网络。随着你的声誉增长,需要验证的推理数量会减少,最终可能随机抽选 1%的推理进行验证。这种动态方法使我们能够保持整体验证百分比较低,同时有效捕获那些试图作弊的参与者。
参与者在每个纪元结束时,根据他们在网络中的权重按比例获得报酬。任务也按权重分配,因此报酬预计会与权重和完成的工作量成比例。这意味着我们不需要立即抓住并惩罚欺诈者,在发放报酬前,在本纪元内抓住他们就足够了。
经济激励驱动这种权衡的程度不亚于技术参数。通过让作弊的成本高昂,而诚实参与有利可图,我们可以创建一个理性的选择是诚实参与的系统。
优化空间
经过数月的构建和测试,我们已经建立了一个系统,它结合了区块链在记录和安全性方面的优势,同时在单次推理性能上接近中心化服务商。安全与性能之间的根本矛盾是真实存在的,没有完美的解决方案,只有不同的权衡。
我们相信,随着网络的扩展,它在保持完全去中心化社区控制的同时,有真正的机会与中心化服务商竞争。随着它的发展,还有很大的优化空间。如果你有兴趣了解这个过程,请访问我们的 GitHub 和文档,加入我们的 Discord 社区参与讨论,并亲自加入这个网络。