01为何做SPU
首先我们问一个问题,隐私计算是什么?
利用隐私计算技术 , 模型对用户是加密的 ,提示词对公司是加密的 可以同时保护模型和提示词。
为什么需要隐私计算呢?
接着我们介绍一些隐私计算的技术路线。
这个多方安全计算(MPC),以前面大模型预测的场景举例:
模型的权重和用户的提示词就是这里的Multi-party input(多方的输入)。我们在不将用户的提示词泄露的情况下,利用其密文和加密后的模型参数一起,进行模型推理来得到对用户的响应。
加密计算中遇到的问题和挑战有:
基于密码学的隐私计算其计算能力非常有限,而且往往只能提供简单的算子,如加、减、简单的逻辑运算等。然而为了便于编程,我们希望能得到一种方法,能为我们提供类似“高级编程语言”的体验,如支持丰富的数据类型,支持函数定义等。
而SPU就填补了这个空白。
02 SPU简介
隐语SPU是一个用于隐私保护机器学习(PPML)的高效且用户友好的框架。SPU的全称是SecretFlow-SPU,它旨在通过结合安全多方计算(MPC)技术,为多个实体之间的协同机器学习提供隐私保护。SPU由前端编译器和后端运行时组成,允许用户在不泄露各自私有数据的情况下,共同计算和训练机器学习模型。
接下来我们进行详细的介绍。
前端
编译器
运行时
支持多种并发模型
支持多种协议
支持多部署模式
可以将SPU和CPU、GPU进行类比,它们有一定的相同点也有不同之处。
如果说CPU是物理的、通用的、比较快速的设备,GPU是物理的、对并行计算友好的高性能设备,那么SPU就是一个虚拟的、支持多方的、带安全语义的较慢的设备。
编程界面
用户并不需要额外的隐私计算领域知识,只需要在原有AI框架编程的基础上稍加以修改即可实现安全地模型计算。
更改安全协议只需要修改SPU配置文件,而这对于算法的开发者是无感的。
作为一个虚拟设备,SPU也提供了很好的配套工具链的支持。