“隐语”是开源的可信隐私计算框架,内置 MPC、TEE、同态等多种密态计算虚拟设备供灵活选择,提供丰富的联邦学习算法和差分隐私机制。
开源项目:
https://github.com/secretflow
https://gitee.com/secretflow
首先,隐语为什么开源
1.国家趋势-要素市场化
国家于近两年密集地颁布了一系列要素市场化相关政策,其中与我们核心相关的有两层,一是要素,即数据被提升为第五大生产要素;二是市场化,市场化的目标就是让要素能够流动起来。
但是,数据生产要素与其他实体生产要素之间存在较大的区别,它是非常容易被复制的。在这种情况下,如果我们不能很好地保证数据安全与用户隐私,则很难实现要素市场化的目标。所以,国务院在最新的总体方案中也明确提出了,探索数据不出域、数据可用不可见的交易范式。
2.数据要素市场化的关键因素及面临问题
在数据交易要素市场化进程中存在四个关键因素:高价值数据源、产业化应用、数据交易市场和隐私计算技术。
高价值数据源和产业化应用,分别扮演着供给端和需求端的角色。数据交易市场,核心是要解决数据交易过程中的合法及合规问题。隐私计算则是针对数据要素的特殊性,解决数据流通过程中的数据安全与数据隐私保护问题。这四个关键因素目前都面临着一些困难亟待解决。比如:数据要素市场目前数据的确权、定价机制还不完善,市场上比较缺乏高价值的数据源;在产业化应用上,目前隐私计算产业化应用更多集中在金融领域中的风控场景以及少量的营销场景,其他场景并不丰富;最后是隐私计算技术,目前成熟度尚且不足,距离真正实现数据要素市场化还有很长的路要走。正是看到了隐私计算行业面临的这些问题,蚂蚁作为隐私计算行业的重要参与者,希望能够将自己的力量贡献出去,帮助这个行业共同发展成长,这也是隐语开源的初衷。
3.隐语聚焦于:落地场景缺失+技术能力不足
隐语核心聚焦于如何丰富产业应用场景,以及如何提升隐私计算能力两个方面。以下将分别阐述。
⭐️隐语如何丰富产业化应用
丰富产业化应用、让隐私计算在更多产业落地,我们希望在更多业务场景中推广隐私计算技术。但是在实际推广的过程中,我们发现困难重重,这些问题可以总结为一句话:不同的场景对安全性、性能、功能、易用性、稳定性的诉求都是不一样的。我们如何能对不同场景的不同诉求都能满足呢?隐语在此进行了一些探索,可以将上面的问题拆分成三个子问题,来看隐语大概的解决思路。
首先是针对不同场景需要有不同的安全性和性能的折衷。
安全不是免费的午餐,安全性提升必然带来性能和精度的下降。在很多场景中要明确安全假设,比如是否相信可信环境、是否存在可信第三方、参与方是否会共谋。
基于这些假设,我们可以选择更合适的解决方案。目前市场上常见的主流方案包含MPC、TEE和联邦学习,每一套方案都有其各自的优缺点,以及适合的场景。
隐语通过架构设计,通过统一架构能够同时支持MPC、TEE和联邦学习的方案。对于应用方来说,它可以使用一套架构并应用到不同的业务场景中,满足不同场景下的需求,同时因为这些技术方案均是由同一套架构支持,所以应用方甚至可以在同一个场景中同时使用几种不同方案进行组合,进而满足更复杂场景的需求。
第二则是让各种解决方案都具备全链路的数据处理能力。
在每个解决方案中,我们希望隐私计算的功能都是完备的,但是基于业务经验,在整个数据处理链路是非常长的。
机器学习只是这个流程中的其中一环。在机器学习之前,还会涉及数据的探查、数据的加工与分析,在机器学习训练建模之后,还需要将模型服务化、在线化。所以对于隐私计算来说,前期的数据分析和后期模型的服务带来的难度,都不亚于机器学习,甚至在MPC的数据分析领域其难度更超过了MPC机器学习。
隐语基于蚂蚁多年的经验,打造从数据分析到机器学习建模全流程的解决方案。以MPC的解决方案为例,MPC用户在进行数据处理时,开始可以用MPC的SQL做数据分析和探查,构建自己的人工策略,用机器学习的算法做机器预处理以及机器建模。当这些都结束后,可以将获得的模型以及人工策略部署到线上,变成一个在线化服务,为整个业务提供真正的价值。那么这个过程中需要注意,尤其是如MPC的SQL能力,在业界只有隐语能够提供MPC的SQL全算子的计算能力。
第三是提供支撑业务全生命周期孵化所需的易用性和稳定性。
在业务的不同周期对易用性和稳定性的需求是不同的。一个业务从零到一、从无到有的建设过程中,大概会经历两个阶段。
首先,业务需要先进行POC的概念验证,业务在这个阶段对隐私计算的需求,是希望隐私计算能够低成本、快速上线,高效试错。进而当POC的概念验证通过之后,则又希望能够大规模地在生产上实现落地,在大规模生产落地时,业务更关注的是如何保证系统的稳定性、高可用。现阶段业界的绝大部分框架,在快速POC的能力上都已做得非常好,当然隐语也提供快速POC的能力。所以,这里着重将介绍隐语在保证生产落地大规模、高可用方面的解决思路。
高可用、稳定性是一个庞大的研究课题,当前所有大型互联网公司都有专门的团队做稳定性。在隐私计算场景,这个问题会变得更加复杂。例如,在线服务进行升级时不能停服,要热更新,这就涉及建设灰度更新机制。但是隐私计算服务是涉及多个机构共同的服务,在这个过程中,如何去让各个机构更好地协同来实现灰度化,这是传统集中式的环境中没有遇到过的。再如,不同的机构升级的窗口不一,以银行为例,一个月内或许只有两天升级窗口,所以在整个隐私计算网络中,每一个应用的版本可能是完全不同的。如此多的版本,怎样保证兼容性?
此外,如果说在POC阶段或许只是个别用户发起了应用,然而在规模化生产时,平台可能有几十个用户,每个任务对每个机构资源的需求和消耗都是不一样的。了解操作系统的会知道,此时在资源调度上如果做得不好,很可能导致资源的死锁,这个问题又怎么解决?
隐语的思路非常朴素,希望充分利用现有的在传统集中式环境沉淀下来的稳定性和高可用的解决方案,将其搬到隐私计算的环境中。
首先,会将各个机构底层的基础设施差异性屏蔽,将各个机构的资源构建成一个统一的资源网络。在此之上,就能够将传统计算的稳定性执行能力搬上去。思路看起来很简单,但实际落地时面临很多问题,如各个机构的安全域不同,如何确保在各个安全域中的系统安全、数据安全等等问题。蚂蚁在此方面也进行了很多工作,形成很多沉淀,我们希望通过开源的方式将这些能力分享出去,助力大家在这部分的工作能够做得更好。
⭐️隐语解决隐私计算技术能力不足
隐语在提升隐私计算技术能力方面的思路也可以用一句话概括:希望让更多的专业人才能够低成本地参与到隐私计算的技术贡献中,形成合力。此处将开发人员大体分为三类:应用系统开发者、机器学习算法开发者以及安全协议开发者。以下分别介绍隐语能够为这三类开发者提供哪些能力和价值。
首先是应用系统开发者
要将一个隐私计算系统在业务中应用,一定是要与业务系统进行深度集成才能使用。**在这个过程中,通常使用的方式是单独部署一套隐私计算系统,通过API对业务平台发起调用,在业务平台上进行大量开发,在业务平台将流程串联。但是如果想实现整个业务模块好用易用,这当中还有大量的工作。比如,要在建模的场景中支持可视化拖拉拽的项目,此时就需要大量的开发人员投入其中。
蚂蚁本身具备较强的前端能力,也开源了很多框架,我们与前端团队充分结合,在隐语中提供前端的原子化能力,业务方只需基于原子化能力,通过拖拉拽的方式构建一个原子化的前端,然后就可将这一模块集成到业务系统中,这种方式非常方便,能够大幅减低用户的开发成本。
第二是针对机器学习的开发者
机器学习算法开发者,通常对隐私计算的理解或了解比较有限,一位机器学习的算法开发者,或许觉得MPC搞不懂、TEE不会用、同态加密好复杂,他只是想写个机器学习算法,能让他无需了解这些隐私计算技术细节?
隐语的回答是:可以!
针对机器学习算法开发者,隐语进行了两层抽象:
首先是下层的密文计算引擎抽象。什么是密文计算引擎?可以认为把所有计算放到一个黑盒中,所有计算在外界看不到任何信息,不会有任何信息泄漏,是安全的。MPC、TEE、同态加密都属于密文计算。其次是在密文计算引擎之上,隐语可直接对接现有通用框架如Tensorflow、JAX、Pytorch,传统机器学习开发者无需感知下层细节,可以像写传统机器学习算法一样开发算法,通过编译计算技术即可将这些内容直接编译为密态的算法。
当然,全密态并不是免费的午餐,会造成性能损失,在某些场景中全密态计算是行不通的,于是继续向上又有了基于Pytorch的明密文混合计算。当机器学习算法开发者与业务场景结合,可能会发现其实有一些计算对安全性的关注并没有那么高,此时可以将这些计算从密文环境搬到明文环境,通过安全退让提升整个算法的性能。这个计算过程的思路听起来非常耳熟,联邦学习其实就是一个典型的明密文混合计算场景,在本地的计算都是明文计算,当明文计算完成后进行梯度聚合,梯度聚合则是密文计算。在这种抽象中,密文计算不仅仅可以使用Secure Aggregation算法,也可以使用MPC密态引擎,或者是使用TEE去进行密态计算,还可以使用同态进行密态计算。通过这种抽象,将如MPC、联邦学习这些原本孤立的不同技术在隐语框架中进行整合,变成上下层的关系。
最后是针对安全协议开发者,安全协议开发者或称为安全算法开发者,在整个隐私计算中是一个相对较少的开发群体,但是他们在其中承担着非常重要的角色,他们在底层协议和算法上的突破,可以给整个隐私计算行业带来巨大的技术突破。
这里可以进行一个比喻,安全协议开发者更多的是在创造一个性能更好的发动机,对于他们来说,期望发动机造好之后能够给别人用,并不希望还需要再造一辆车才能用上原本创造的发动机,这无论是对专业性还是对人力,都是巨大的消耗。如果希望造出来的发动机能够实现直接替换,如何做?那就是将发动机标准化。
隐语针对安全协议也进行了两层抽象。一层是基于调度引擎和调度的抽象,这是一种粗粒度、松耦合的抽象,未来可能会有新的密态计算技术出现,这些新的密态计算技术就可以通过设备的方式集成到隐语中。第二,是在已有设备上,如MPC设备或TEE设备,进行良好的抽象和分层,如MPC设备通过密态编译,当有新的协议出现时,就可以低成本地嵌入到MPC设备中,如此就可以实现协议能够快速被上升为算法可利用。
这方面有一个生动的例子:今年2月阿里双子座实验室洪澄团队在国际安全顶会发表了一篇有关业内最快2PC多方安全计算协议“Cheetah猎豹”的论文。隐语与猎豹双方进行了深入的沟通并达成共识,将猎豹贡献至隐语这件事对整个行业、对双方都非常有利。总共耗时一个月,洪澄团队就将猎豹集成到了隐语中。并且集成后,隐语上层应用和算法无需任何修改,可直接使用猎豹提升整体性能。
对于TEE设备同样,我们也充分用到蚂蚁的技术,比如已经开源的Occlum等,通过这些技术使得TEE设备在拓展性、性能上都能得到很大的提升。
其次,隐语能够为隐私计算行业带来什么
1.面向使用者
隐语可以提供适配于不同场景的多种解决方案,在每种解决方案之中,都可以提供安全的全链路数据处理能力,也可以针对不同业务阶段提供如快速POC、大规模、高可用的能力。
2.面向开发者
针对应用系统的集成者,隐语可以提供原子化的集成能力。针对机器学习算法开发者,隐语提供接近传统机器学习算法开发的体验。针对安全协议开发者,可以提供插拨式的快速协议接入能力。
最后,非常期待并希望整个隐私计算行业的朋友都能够参与隐语的开源共建,共同丰富隐私计算落地场景,齐力推动隐私计算技术发展,以助力整个隐私计算行业的进步。
隐语社区:
https://github.com/secretflow
https://gitee.com/secretflow
https://www.secretflow.org.cn(官网)
欢迎关注:
公众号:隐语的小剧场
B站:隐语secretflow
邮箱:[email protected]