{"content":{"title":"开源 zkml：人人可用的无信任机器学习","body":"我们很高兴宣布 zkml 的开源发布，这是我们用于生成机器学习模型执行的零知识证明的框架。zkml 建立在我们早期的论文上，关于将零知识证明扩展到 ImageNet 模型，但包含了许多可用性、功能性和可扩展性的改进。通过我们的改进，我们可以验证那些在 ImageNet 上达到 **92.4%** 准确率的模型的执行，相较于我们初期的工作提高了 13%！zkml 还可以在 **四秒** 内证明一个 MNIST 模型的 99% 准确率。\r\n\r\n在本文中，我们将描述我们对 zkml 的愿景以及如何使用 zkml。在未来的文章中，我们将详细描述 zkml 在无信任审计、去中心化提示市场和隐私保护的人脸识别等几个应用中的应用。同时，我们还将描述 zkml 背后的技术挑战和细节。与此同时，请查看我们的 [开源代码](https://github.com/ddkang/zkml)！\r\n\r\n## 我们为什么需要无信任的机器学习？\r\n\r\n在过去的几年里，我们看到两个不可避免的趋势：我们的世界越来越多地在线，并且机器学习/人工智能的方法变得越来越强大。这些机器学习/人工智能技术引发了新的艺术形式和惊人的生产力提升……然而，这些技术越来越多地被隐藏在封闭的 API 背后。\r\n\r\n尽管这些提供者希望保护商业机密，但我们希望对他们的模型有所保证：例如，训练数据不包含受版权保护的材料，或者这些数据没有偏见。我们还希望在一些高风险场景中获得保证，确保某个特定模型的执行，例如在医疗产业中。\r\n\r\n为了做到这一点，模型提供者可以采取两个步骤：提交一个在 _隐藏_ 数据集上训练的模型，并在训练后提供对隐藏数据集的审计。在第一步中，模型提供者发布对给定数据集进行训练的证明，并承诺在过程结束时的权重。重要的是，_权重可以保持隐藏_！通过这样做，任何第三方都可以确信训练是诚实进行的。然后，可以通过对隐藏数据进行零知识证明来进行审计。\r\n\r\n我们一直设想一个机器学习模型可以实现无信任执行的未来。正如我们在未来的文章中将描述的那样，机器学习模型的无信任执行将启用一系列应用：\r\n\r\n1. 对机器学习驱动应用的无信任审计，例如证明训练数据集中没有使用受版权保护的图像，正如我们上面所描述的那样。\r\n2. 验证特定的机器学习模型是否由机器学习即服务提供商在受监管的行业中运行。\r\n3. 为生成性人工智能构建去中心化的提示市场，创作者可以出售对其提示的访问权限。\r\n4. 隐私保护的生物识别认证，例如使智能合约能够使用人脸识别。\r\n\r\n还有更多！\r\n\r\n## ZK-SNARKs 以实现无信任的机器学习\r\n\r\n为了无信任地执行机器学习模型，我们可以利用加密学中的强大工具。我们关注的是 [ZK-SNARKs](https://consensys.net/blog/developers/introduction-to-zk-snarks/)（零知识简洁非交互式证明），这是一种允许证明者用简短的证明证明任意计算正确性工具。ZK-SNARKs 还有一个惊人的特性，即输入和中间变量（例如，激活函数）可以隐藏！\r\n\r\n在机器学习的上下文中，我们可以使用 ZK-SNARK 来证明一个模型在给定输入上的正确执行，同时 _隐蔽模型权重、输入和输出_。根据实际情况，我们可以进一步选择选择性地揭示任何权重、输入或输出。\r\n\r\n通过这一强大的原语，我们可以实现无信任审计及以上述所有应用程序！\r\n\r\n## zkml：朝着无信任的机器学习迈出的第一步\r\n\r\n作为朝向所有人实现无信任机器学习模型执行的第一步，我们已经开源了 [zkml](https://github.com/ddkang/zkml)。要使用 zkml，可以考虑通过生成 ZK-SNARK 证明 MNIST 模型的执行。使用 zkml，我们可以运行以下命令：\r\n\r\n```\r\n## 安装 rust，如果你已经安装了 rust 可以跳过\r\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\r\n\r\ngit clone https://github.com/ddkang/zkml.git\r\ncd zkml\r\nrustup override set nightly\r\ncargo build --release\r\nmkdir params_kzg\r\n\r\n## 第一次运行大约需要 ~8 秒，第二次运行大约需要 ~4 秒\r\n./target/release/time_circuit examples/mnist/model.msgpack examples/mnist/inp.msgpack kzg\r\n```\r\n\r\n在普通的笔记本电脑上，证明时间少至 4 秒，消耗 ~2GB 的 RAM。我们也是第一个能够在 ImageNet 规模上计算 ZK-SNARK 的框架。作为预览，我们可以在 4 分钟内实现不平凡的 ImageNet 准确率，并在 45 分钟内达到 92.4%：\r\n\r\n![](https://img.learnblockchain.cn/2025/03/11/32144415_image.jpg)\r\n\r\n与我们初期的工作相比，我们将准确率提高了 13%，证明成本降低了 6 倍，验证时间减少了 500 倍！\r\n\r\n我们对 zkml 的主要关注是高效率。现有的方法资源消耗高，证明小模型需要数天，消耗数 GB 的 RAM，或者生成大证明。我们将在未来的文章中描述 zkml 的底层工作原理。\r\n\r\n我们相信效率至关重要 _因为_ 它使未来任何人都能实现无信任机器学习成为可能，我们将不断朝着这个目标努力。目前，像 GPT-4 和 Stable Diffusion 这样的模型仍然遥不可及，我们希望很快就能改变这一点！\r\n\r\n此外，zkml 可以实现无信任审计以及我们提到的所有其他应用！除了性能提升，我们还在致力于新功能的开发，包括启用训练证明和无信任审计。我们还在为视觉模型以外的模型添加新功能。\r\n\r\n## 还有更多…\r\n\r\n在本文中，我们描述了我们对 zkml 的愿景以及如何使用 zkml。 **自己看看** [这里](https://github.com/ddkang/zkml)！\r\n\r\n还有许多工作需要完成以改善 zkml。与此同时，加入我们的 [Telegram 群组](https://t.me/+_iFeU8FQ4p0zOWZh)，讨论你对改进或使用 zkml 的想法。你可以直接在 GitHub 上查看我们的代码，但我们也非常希望听到你关于如何使用 zkml 构建的想法。如果你想讨论你的想法或与我们一起头脑风暴，请填写 [此表格](https://forms.gle/5uxR4woshe4Ug9M36)。我们将在 [GitHub](https://github.com/ddkang/zkml) 上积极开发，并欢迎贡献！\r\n\r\n在接下来的文章中，我们将描述如何使用 zkml 进行：\r\n\r\n1. 机器学习驱动应用的无信任审计\r\n2. 为生成性人工智能构建去中心化的提示市场\r\n3. 启用隐私保护的生物识别身份证\r\n\r\n我们还将描述 zkml 的内部工作原理及其优化。敬请关注！\r\n\r\n**感谢 Ion Stoica、Tatsunori Hashimoto 和 Yi Sun 对本文的意见。**\r\n\r\n>- 原文链接： [medium.com/@danieldkang/...](https://medium.com/@danieldkang/open-sourcing-zkml-trustless-machine-learning-for-all-f5ee1dbf2499)\r\n>- 登链社区 AI 助手，为大家转译优秀英文文章，如有翻译不通的地方，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/26648","address":null},"history":null,"timestamp":1741691504,"version":1}