售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
之前,我们通过基于罗塞塔隐私保护和多方金融的人工智能建模场景了解了罗塞塔在金融行业的实际应用。事实上,Rosetta是一个隐私开源框架,可以广泛应用,并且Rosetta被用于各行各业需要在隐私保护下联合建模的场景中。接下来,我们从人脸识别的应用场景来分析罗塞塔的实际应用。
实际上,有一个典型的场景,其中一方有数据,另一方有模型参数。他们都非常需要对方,但由于数据和参数的敏感性,他们似乎“彼此分离”。
例如,专注于人工智能视觉算法的公司A有一个先进的人脸识别模型,模型参数不断迭代优化,其服务可以通过RESTful应用编程接口访问。另一家公司B需要建立自己的基于人脸识别系统的用户认证系统,但敏感数据如用户的人脸图像不能泄露。
此时,如果甲乙双方需要合作,由于隐私问题会有困难,所以乙方不能以自己的明文人脸图像作为输入直接调用甲方的界面,因为很容易将人脸图像数据暴露给对方,很难知道双方是否会使用数据和参数做其他事情。罗塞塔提供的隐私人工智能框架可以很容易地解决这个难题。
基于Rosetta,只需在本地调用加密转换的接口,就可以对本地待处理的数据集和模型参数进行加密,然后在下面的复杂模型上运行。B公司完全不会披露其敏感的人脸图像数据,A公司也不会披露这些属于其核心资产的模型参数。由于空间限制,我们仍然以LR简单模型为例,假设A公司的角色为P0,B公司的角色为P1,P2只需要是一个没有输入和输出的临时辅助节点。可以加速基于安全多方计算技术的整个业务流程。
将latticex.rosetta作为rtt导入
导入操作系统
导入csv
将张量流作为tf导入
将numpy作为np导入
从util导入读取数据集
#加载P0的私有特征数据进行预测。
file_feature='test_feature.csv '
密码功能=rtt。SecureDataSet()。加载(文件特征,标题=无)
DIM_NUM=密码_特征.形状[1]
X=tf.placeholder(tf.float64,[None,DIM_NUM])
if rtt.get_party_id()==0:
model_W=np.loadtxt('W.txt ')
model_b=np.loadtxt('b.txt ')
else:
模型_W=无
模型_b=无
#用P1的私人数据初始化W b模型
W=rtt.private_input(1,模型_W)
b=rtt.private_input(1,model_b)
#使用模型预测
pred_Y=tf.sigmoid(tf.matmul(X,W) b)
#对于演示,只有P0可以得到这个简单的结果
普通_Y=rtt。安全显示(pred_Y,1)
init=TF . global _ variables _ initializer()
tf。会话()作为会话:
sess.run(init)
#预测
Y_cipher,Y_plain=sess.run([pred_Y,plain_Y],feed _ dict={ X: cipher _ feature })
打印(密码Y:密码Y)
打印(普通Y:Y _普通)
在这里,通过罗塞塔的私有数据处理接口,每一方都被指定输入自己的私有数据,然后它可以像本地的张量流一样执行模型预测的任务。
我们可以在最后打印输出的密文值和明文值来查看效果(注意只有P0(甲方)可以返回明文结果)。
以下是甲方的产出:
以下是乙方的产出:
由此可见,甲方成功得到了预期的预测结果,在整个计算过程中,甲方的模型参数不会被暴露,乙方的明文数据也不会被暴露。
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!