- 简介随着人们对AI安全性的日益关注,需要信任机器学习(ML)模型所完成的计算。区块链技术以透明、防篡改的方式记录数据和运行计算,可以提供这种信任。在将ML分类器部署到链上的过程中,一个重要的挑战是,虽然ML模型通常使用Pytorch等ML库用Python编写,但在EVM兼容的区块链上部署的智能合约是用Solidity编写的。我们介绍了机器学习到智能合约(ML2SC)——一种Pytorch到Solidity的翻译器,可以自动将用Pytorch编写的多层感知机(MLP)模型翻译成Solidity智能合约版本。ML2SC使用定点数学库来逼近浮点计算。在部署生成的智能合约后,我们可以使用Pytorch在链外训练模型,然后使用函数调用将获得的权重和偏差传输到智能合约中。最后,模型推断也可以通过提供输入的函数调用来完成。我们对部署、更新模型参数和在链上运行这些模型的燃气成本进行了数学建模,表明燃气成本与MLP相关的各种参数呈线性增长。我们提供了与我们建模相匹配的实证结果。我们还评估了分类准确性,表明我们透明的链上实现所得到的输出与使用Pytorch的原始链外实现完全相同。
- 图表
- 解决问题将机器学习模型部署在区块链上,以提高其透明性和可靠性,但是由于智能合约通常是用Solidity编写的,而机器学习模型通常是用Python编写的,因此需要一种自动翻译机器学习模型到Solidity智能合约的方法。
- 关键思路提出了一种名为ML2SC的PyTorch到Solidity翻译器,可以将PyTorch中的多层感知器模型自动翻译成Solidity智能合约版本,并使用定点数学库来近似浮点计算。通过在链外使用PyTorch训练模型,然后使用函数调用将获得的权重和偏差传输到智能合约中,最后也可以通过函数调用进行模型推理。
- 其它亮点论文对部署、更新模型参数和在链上运行推理的燃气成本进行了数学建模,并展示了与建模相匹配的实证结果。还评估了分类准确性,证明了透明的链上实现的输出与PyTorch的原始链外实现相同。
- 最近的相关研究包括将机器学习模型部署在区块链上的其他方法,例如使用深度学习框架TensorFlow将模型部署到Ethereum上的研究。
沙发等你来抢
去评论
评论
沙发等你来抢