本讲主要内容是SPU框架整体结构的介绍。
一、为何做SPU
以大模型预测场景为例,模型是公司的资产,提示词包含用户隐私,如何同时保护模型和提示词。利用隐私计算技术,用户将提示词加密,同时模型在加密环境里进行推理,可以同时保护模型和提示词。
由于数据是敏感且重要的,所以需要隐私计算。
隐私计算是一种高速发展中的技术,包括多方安全计算、同态加密、差分隐私、可信硬件等。基于密码学的隐私计算,提供了非常有限的计算能力,加密计算有易用性差(类型简单,加/乘/与/或等,算子比较底层),性能较差等挑战。SPU就是为了填补加密计算和高级编程语言之间的空白,可以提供较好的易用性(原生AI框架支持),以及较好的性能(编译器运行时协同优化)。
二、SPU简介
SPU是一个虚拟加密处理设备,类比CPU和GPU,从而支持上层的各种应用。SPU是一个虚拟的、安全的、多个参与方的、运算相对较慢的设备。
SPU架构从上至下,分为前端(复用AI前端、TF/JAX/PyTorch)、编译器(将前端产生的机器学习表达加入自定义的隐私保护语义,翻译到运行时。任何数据和密态变量进行计算,结果仍为密态变量。)、运行时(多种并发模型支持,多种协议支持,多部署模式支持)三部分。
SPU的编程界面,使用原生AI框架,使用JIT编译执行,生态无缝衔接,通过修改配置文件即可更改安全协议,无需代码修改。SPU作为一个虚拟设备,也提供了配套的工具链的支持(Profiling、Tracing,Debugging),从而对上层应用和下层协议进行针对性优化以及错误排查。
三、现状和展望
隐语开源生态,SPU支持PPML,支持联邦学习,支持SCQL。
SPU也可以用于前沿学术研究。
SPU作为AI和密码学之间的桥梁,希望可以进一步加速构建隐私计算的生态,例如通过SPU提供的原生Numpy API,构建安全sklearn-like机器学习库,构建安全pandas-like数据分析库,支持更多的安全后端等。