本文根据蚂蚁集团隐语开源负责人谭晋,在「隐语城市行·开源两周年特别活动」的演讲分享整理。
编辑:李奕宸 隐语社区布道之星
大家好,我是隐语开源的技术负责人谭晋,今天我与大家分享《开源引领创新:隐语的过去、现在与未来》。下图是隐语开源后的发布时间线,这里有三个比较重要的节点:最下层:密算基建层,面向行业专家,提供基础的密码学、编译和编排;
中间层:框架和算法,面向大众开发者,让大家像明文一样写程序但能构建密文的应用;
最上面:隐语产品层,基于框架和算法来构建各行各业的密算产品。
首先,上图的最左下角是隐私计算密码库。为什么要重新做密码库呢?隐私计算密码学一直在高速发展,学术界的密码学由于它的鲁棒性、性能及文档方面难以在工业界落地,同时工业界现成密码库有很难追上最前沿的算法。所以,隐语从头构建了一系列的密码库,其定位为主要面向隐私计算的现代工业级密码库。YACL:隐语的第一个密码库,提供各种各样面向隐私计算的基本功能,如提供丰富的曲线、OTE、VOLE 等。
PSI 和 PIR:其实隐私集合求交已经在很多场景下都有了大规模落地,产生了大量的经济价值,所以隐语在这方面主要目标是实现最新的 SOTA 算法,支持两方到多方、半诚实到恶意等各种场景,也支持大规模计算。
HEU:面向同态加密的密码库,同态加密的主要瓶颈在算力上,我们主要提供了统一的软硬结合接口,并通过这个接口支持各种硬件加速,比如 FPGA、GPU 等等。
密算编译器和运行时(SPU)
有了隐私计算密码库后,第二部分是构建面向密算的编译器和运行时 SPU,主要目标是提供透明的、完备的、高性能的密态计算算力。透明,怎么理解?让程序员感知不到整个框架,而是可以用熟悉的 SDK 进行编程,比如支持 AI 原生,包括支持 JAX 生态,实现 HuggingFace 上模型的无缝加载,实验性地支持 PyTorch,以后社区也会支持 TensorFlow 2.0。
在编译器方面,我们主要是把原生的程序通过面向密算的编译器编译到可信的设备上执行,这部分主要关注安全语义及各种编译优化,这是目前正在做的工作,欢迎大家一起共建。
基于密算的运行时,覆盖了两方到多方、半诚实到恶意等各种应用场景,之后会探索 MPC 和 TEE 的混合计算,也会去支持全同态的后端。
SPU 有一个重要的点:它桥接了机器学习和密码学两端,建立了非常便捷的桥梁,比如可以通过三行代码的改动就可以支持 HuggingFace 上的一个大模型。但这样,也会暴露交叉领域更多的问题,很多聪明的老师和学生已经发现了这点。截止到目前,有多项基于 SPU 的工作发表在顶级学术会议上,希望和老师们一起共建,继续提高隐私计算的算力。跨域协同和编排(Kuscia)
有了密码学和算力基建后,还要解决多机构之间的协同和编排问题。Kuscia 就是这样一个模块,其可以屏蔽不同机构的之间细节,解决跨域任务中协同、通讯、运维等问题,大大降低跨机构的复杂网络的部署和运维成本。我们也在全方位建立自动化的工具,帮助大家部署运维。 / 框架&算法 /
在密算基建的基础之上,我们构建了一系列的算法及框架。隐私保护机器学习(SML/FL/SL)
隐私计算保护机器学习主要支持多种安全等级和规模的机器学习算法,分为两个部分:- SML(Secure Machine Learning Library),这是全密态、面向经典算法的隐私保护机器学习库。它所有的算法都是直接运行在密态设备上的,所以开发者不需要担心安全性问题,可以着重专攻算法性能和效率问题,这也就意味着这整个 Repo 是由社区主导的。截至目前,我们已经支持了 20+ 的传统机器机器学习的算法,吸引了来自 10+ 的高校和企业开发者参与共建,孵化了两个社区之星。将来的目标是希望支持 sklearn 中 80% 的算法,让隐私计算摆脱只能支持少量算法的刻板印象。
- 拆分学习和联邦学习,其特点为算法必须一定程度上感知安全性,安全性分析没有 SML 这么轻松。但收益是我们可以极大地提高性能,这方面会支持各种大规模的联邦学习和拆分学习的算法。值得一提的是,隐语开创性研发了AutoAttack 模块,它试图系统性的解决联邦攻防的安全性问题。基于这个联邦攻防框架,可以让联邦的安全性更加容易证明,我们已经支持了 10+ 攻防算法,希望会有更多的社区共建。
隐私保护数据分析(SCQL)
隐私保护的数据分析,和机器学习一样,它的定位是提供透明、高性能的密态分析能力。透明也是指我们可以用原生的 SQL 直接放到 SPU 上进行计算,得到密态数据分析能力。过去一年我们进行了各种各样的算子补齐和算子优化,值得一提的是,隐语有列级的访问工具 CCL ,帮助用户更好地实现更优的访问控制。同名的论文《Secretflow-SCQL》也在今年中了数据库的顶会-VLDB,至此的隐语的顶汇会覆盖了系统、安全、AI、数据库等等领域,综合能力世界领先。 / 隐语产品 /
最上层,我们提供了面向用户的、简单易用的、所见即所得的产品。左边是 SecretPad 的画布界面,让用户通过拖拉拽的方式,实现所见即所得的编排建模任务,后续通过隐语后端实现无感执行,用类似于明文的方式得到密态建模和分析能力。之后,我们也会支持算法扩展和算法市场,让更多开发者应用赋能各行各业。接下来,我们来介绍一下对隐语未来的展望。除了安全加固及性能加速外,我们将着重攻克以下几个点:
标准化:隐语有很多模块,但隐语各个模块之间的接口标准化一直是痛点,之后我们会进行全链路的标准化,并通过标准化实现各个模块不同版本之间的兼容。标准化也会让整个隐语变得更加透明,让可验证、可审计、可追溯等变得更加容易。
模块化:隐语数据分析和机器学习其实共享了很多代码,我们想要提供独立的编译器和运行时,把他们变成独立的模块。这样可以实现,上层所有的应用可以共享模块之间优化,我们也会不断地模块化减少组件依赖,让 ISV 更加深度集成。
端云协同:我们想要探索端云协同的能力,因为隐私计算特别是加密计算有一个不可忽视的性能天花板。我们会正视这个天花板来不断地探索加密、可信结合、软硬结合、端云协同等各种新的算力模式,支持更大的规模和更高的性能。
🌟 添加 隐语小助手Calor(微信号:SecretFlow04),了解更多关于隐语开源社区。
https://www.secretflow.org.cnhttps://github.com/secretflowhttps://gitee.com/secretflow