隐私AI工程技术实践指南–整体介绍
文章目录
专题导言:近期,基于TensorFlow的隐私AI框架Rosetta对外开源,AI开发者不需要了解密码学等隐私保护技术,而只需要改动几行代码,就能赋予自己的程序以保护数据隐私的能力。本专栏将通过多篇独家首发技术专稿,深度披露Rosetta的整体框架设计、TensorFlow的定制化改造最佳实践、将密码学理论算法进行高效工程化落地等内容。通过本系列专题,希望有更多的开发者了解隐私AI框架的技术挑战,同时为密码协议算法工程化、AI框架深度定制等相关方向的开发者提供一些经验参考。
数据是AI技术的“燃料”已经成为业界的共识,更多的数据往往意味着可以训练出更准确的模型。但无论是在公司内部还是多个企业之间,为了对用户数据负责、合法合规,在数据的分享使用时,必须注意对于原始明文数据的保护。传统的面向静态数据保护的安全手段无法解决数据的动态使用、分享中的隐私泄露问题,而正是这一实际需求催生出了隐私计算(在AI场景下,更进一步的可以称之为隐私AI)这一新的交叉技术,这种技术是融合在数据的使用过程之中的,保障的是计算过程本身(广义的讲,还包括计算结果)不会泄露原始明文数据本身的信息。
目前实现隐私计算的途径可以分为密码学、联邦学习和硬件可信执行环境(TEE)等几大类。而其中以密码学理论为基础的MPC(Multi-Party Computation,安全多方计算)是最有安全保障的技术路线,其秉持的基本理念是信任计算复杂度理论、代码,而不是信任人、硬件,而联邦学习和TEE目前还很难讲清楚安全性,经常被发现新的安全漏洞。并且,联邦学习中核心部分也往往需要使用同态加密等密码学手段进行强安全性的保障。从工程技术的角度上看,联邦学习是分布式机器学习技术的延伸,主要的挑战是在训练过程中如何进行多异构终端的同步更新等[1],很多传统分布式系统开发经验仍然适用。而以MPC为代表的密码学途径则带来了一些全新的挑战。
MPC (图片来自网络)
最核心的困难是,密码学属于计算机理论领域,很多的概念、算法协议都需要有长期的专业知识积累才能理解,而业务落地中的典型AI方向,无论是计算机视觉、文本挖掘还是用户行为建模等都是更加面向实际场景的,如何打通以密码学为典型代表的隐私保护技术与AI技术之间的壁垒?这是开发者在实际构建一个通用的、易用的隐私计算框架需要解决的核心问题。具体的,围绕着这个核心问题是一系列具体的工程技术挑战:
- **如何实现系统的易用性?**AI开发者不会愿意,也不应该为了在业务中引入数据隐私保护能力而费时耗力的学习各种复杂、抽象的密码算法,一个好的隐私AI框架应该是易上手的,便于AI开发者使用自己熟悉的方式快速解决自己的数据隐私问题。
- **如何实现系统的高效执行?**这包括单机和多机两个层面。密码学的计算大部分都是在大随机数的密文上进行,为此常常需要使用专用的硬件指令、SIMD(Single Instruction/Multiple Data)等技术来进行单机并行化的加速,这些优化实现需要对于密码学基础库有深入的了解,并往往需要根据协议算法进行进一步的并行优化。而在多机层面上,则是需要考虑如何和很多AI框架自身的并行优化技术进行兼容。
- **如何实现MPC多方之间的高效通信?**在MPC中,多方之间需要进行大量的同步通信,而且信道上的内容大都是无规律的、不可压缩的一次性使用的随机数,这就需要在保证安全性的同时,根据具体的计算逻辑进行很多工程优化以减少通信量和通信次数。
- **如何保障隐私保护技术的可扩展性?**MPC等隐私计算技术还在不断的发展之中,也是学术研究上的热点问题,所以一个好的隐私AI框架,需要能够支持研究者简单快速的将新的算法协议集成进来。
针对这些问题,业界已经有一些探索,下面我们结合Rosetta来具体谈一谈在隐私AI框架的设计和实现中可以如何克服这些挑战。篇幅所限,本篇文章主要整体性的先介绍宏观设计,后续系列文章中会进一步剖析一些技术细节。
如同其他的隐私