目录
1. SPU的动机
1.1 问题引入
大模型预测场景(在日常使用GhatGPT或者其他大模型时,您是否考虑过潜在的隐私问题和数据安全?)
模型属于公司资产,用户的提示词包含隐私信息,如何同时保护模型不被侵犯和蕴含在提示词中的隐私信息?
解决方式:采用隐私计算技术,模型对用户是加密的,提示词对公司也是加密的。
1.2 挑战及动机
挑战:
- 易用性差——类型简单、算子底层:大部分只提供加、乘、与、或等算子,难以实现复杂功能;
- 性能差
动机:
- 易用——高级语言编程、原生AI框架支持:可自定义函数、数据类型、原生AI可复用
- 性能好——实现系统级优化:编译器运行时协同优化
2. SPU简介
SPU(Secretflow Processing Unit)是一个虚拟加密处理设备,它作为隐语平台的密态计算单元,为隐语提供安全计算服务。
区别于CPU、GPU,SPU是虚拟的且更关注安全性能。
2.1 前端(Frontend)
- 支持原生主流AI前端:Tensorflow\JAX\PyTorch等,将python代码翻译成XLA IR;
- 降低学习成本
- 复用AI前端能力,如自动求导
2.2 编译器(Compiler)
- 加载隐私保护领域中间表示(PPHLO——privacy-preserving high-level operations、PPLLO_privacy-preserving low-level operatiuons):使用MLIR技术栈对HLO进行优化并翻译成PPHLO(SPU字节码)。无法解析密态变量,形成安全闭包,任何经过加密设备的结果都是加密的。
- 复用AI编译器部分优化
- 优化加密计算
2.3 运行时(Runtime)
逐渐将Tensor ops拆解,经过SPU HAL(硬件抽象层,处理fxp/int),最终dispatch到协议层。
- 支持多种并发模式——指令并行、数据并行
- 支持多种安全协议——两方、三方、多方,半诚实模型和恶意模型,可扩展的安全协议(内部支持Semi2k、ABY3、Cheetah协议)
- 支持多部署模式:可面向虚拟设备进行编程,并实现一次书写到处执行。
2.4 编程界面
- 原生AI框架编程
- 使用JIT编译执行
- 生态无缝衔接
- 更改安全协议——修改SPU配置文件、无需代码修改
- 优化和错误排查——Profiling(Multi-level profiling)、Tracing(full stack trace)、Debugging(plaintext runner)
3. SPU的未来
- 生态共建——SPU支持PPML、联邦学习、SCQL;
- 学术支持——计算机系统、隐私保护机器学习以及密码协议创新
- 构建加密计算生态——SPU屏蔽了密码学协议,支持Numpy原生编程,构建安全sklearn-like机器学习库、安全pandas-like数据分析库以及更多安全后端。
4. 小结
本篇文章介绍了为什么需要SPU,以及其整体架构和各部分功能,包括前端、编译器以及运行时,还简单介绍了编程界面。SPU可以将AI模型翻译到安全设备上执行,也可以复用其他AI框架的API。