金色观察|PaddleDTX:分布式机器学习解决方案
PaddleDTX 是一个基于分布式存储的分布式机器学习技术解决方案。可以解决海量私有数据需要的安全存储和交换难题,可恶意帮助各方突破数据孤岛,实现数据价值最大化。
PaddleDTX的计算层是一个由三种节点组成的网络:Requester、Executor和DataOwner。训练样本和预测数据集存储在由 DataOwner 和Storage节点组成的去中心化存储网络中。这种去中心化的存储网络和计算层由底层区块链网络支持。
多方计算网络
Requester 是有预测需求的一方,Executor 是 DataOwner 授权获得样本数据访问许可的一方,用于可能的模型训练和结果预测。多个 Executor 节点组成一个 SMPC(安全多方计算)网络。Requester 节点将任务发布到区块链网络,Executor 节点授权后执行任务。Executor节点通过DataOwner获取样本数据,后者为数据的信任背书。
SMPC 网络是支持并行运行的多个分布式学习过程的框架。未来将支持垂直联邦学习和水平联邦学习算法。
去中心化存储网络
一个DataOwner节点处理自己的私有数据,在这个过程中使用了加密、分段和复制相关的算法,最后将加密的分片分发到多个Storage节点。Storage 节点通过回答 DataOwner 产生的挑战来证明它诚实地持有数据片段。通过这些机制,可以在不侵犯任何数据隐私的情况下安全地维护存储资源。
区块链网络
训练任务和预测任务将通过区块链网络广播到 Executor 节点。然后所涉及的 Executor 节点将执行这些任务。DataOwner节点和Storage节点在监控文件和节点健康状态时,以及副本持有证明的challenge-answer-verify过程中,通过区块链网络交换信息。
目前,XuperChain 是 PaddleDTX 支持的唯一区块链框架。
垂直联邦学习
PaddleDTX 的开源版本支持垂直联邦学习(VFL)算法,包括两方线性回归、两方逻辑回归和三方 DNN(深度神经网络)。DNN的实现依赖于PaddleFL框架,PaddleFL 提供的所有神经网络模型都可以在 PaddleDTX 中使用。未来更多算法会开源,包括多方 VFL 和多方 HFL(水平联邦学习)算法。
训练和预测步骤如下所示:
运作原理
样品准备
FL 任务需要指定将用于计算或预测的示例文件,这些文件存储在去中心化存储系统(XuperDB)中。在执行任务之前,执行者(通常是数据所有者)需要从 XuperDB 中获取自己的示例文件。
样品对齐
VFL 训练和预测任务都需要样本对齐过程。即使用所有参与者的 ID 列表查找样本交叉点。训练和预测是在相交的样本上进行的。该项目实施了 PSI(Private Set Intersection)来进行样本对齐,而不会泄露任何参与者的 ID。
训练过程
模型训练是一个迭代过程,它依赖于两个奇偶校验样本的协同计算。参与者需要在许多训练时期交换中间参数,以便为每一方获得适当的局部模型。
为确保每个参与者数据的机密性,Paillier 密码系统用于参数加密和解密。Paillier 是一种加法同态算法,它使我们能够直接对密文进行加法或标量乘法。
预测过程
预测任务需要模型,因此需要在预测任务开始前完成相关的训练任务。模型单独存储在参与者的本地存储中。参与者使用自己的模型计算局部预测结果,然后收集所有部分预测结果以推导出最终结果。
对于线性回归,可以在收集所有部分结果后执行去标准化过程。这个过程只有有标签的一方才能完成。所以所有的部分结果都会被发送给有标签的一方,它会推导出最终结果并将其作为文件存储在 XuperDB 中供请求者使用。