Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

机器之心编辑部发布

蚂蚁集团开源可信隐私计算框架「隐语」:开放、通用

数据流通行业进入密态时代,可信隐私计算框架可满足各场景不同需求。

图片

7 月 4 日,蚂蚁集团宣布面向全球开发者正式开源可信隐私计算框架 “隐语”。

隐语是蚂蚁集团历时 6 年自主研发,以安全、开放为核心设计理念打造的可信隐私计算技术框架,涵盖了当前几乎所有主流隐私计算技术。

据介绍,隐语内置 MPC、TEE、同态等多种密态计算虚拟设备,提供多类联邦学习算法和差分隐私机制。通过分层设计和开箱即用的隐私保护数据分析机器学习等功能,有效降低了开发者应用的技术门槛,能助力隐私计算应用于 AI、数据分析等领域,解决隐私保护和数据孤岛等行业痛点。

经过蚂蚁集团大规模业务以及外部金融、医疗等场景的成功应用,隐语兼顾了安全和性能。在发布会中,蚂蚁集团介绍了隐语的诸多特性。

我们需要怎样的隐私计算开源框架?

隐私计算是一个新兴的跨学科技术领域,涉及密码学、机器学习、硬件、BI 分析等,包括多方安全计算(MPC)、联邦学习(FL)、可信执行环境(TEE)、可信密态计算(TECC)、同态加密、差分隐私等多种技术路线,涉及众多专业技术栈。

作为兼顾数据安全和数据流通的关键技术,隐私计算可保证数据提供方不泄露原始数据的前提下,对数据进行分析计算,实现数据在流通与融合过程中的 “可用不可见”“可算不可识”。

业界根据过去几年的实践经验发现,隐私计算技术方向多样,不同场景下有其各自合适的技术解决方案,且涉及领域众多,需要多领域专家共同协作。对于从业者来说,隐私计算学习曲线很高,非隐私计算背景的用户使用困难。 

在实际技术开发中,隐私计算解决方案往往是多个技术路线的组合,过程中涉及到很多重复性的工作。比如,如果开发者想使用联邦学习,就要使用 A 框架来做研发;如果想使用多方安全计算(MPC),那么又要使用 B 框架来做研发,如果想使用可信硬件,还要去熟悉所选硬件的架构才能真正开始使用。但现实的业务需求是,经常需要多个技术一起来使用,那么这时候就会出现繁琐、重复的开发工作。本是一项技术创新,却带来了技术 “烟囱” 的困扰。

更致命的是,在交叉技术路线的解决方案中,一个底层新技术的引入,会牵动上层所有工作,拖累技术迭代。引入一项新技术,也必定会改变上层很多东西,对于用户来说,所有的部署可能都要重复体验一遍,体感非常不好。

目前开源的隐私计算框架,如 TensorFlow Federated(TFF)、FATE、FederatedScope、Rosetta、FedLearner、Primihub 等几乎都是针对单个隐私计算路线。这些框架为隐私计算相关社区研究和工业应用都提供了一定支持。然而,实际场景中日益多样化的应用需求,以及技术本身的局限性,给现有隐私计算框架带来了新的挑战。

例如,首个提出 “联邦学习” 技术的科技巨头谷歌,也是 TensorFlow 的打造者,最近加大对一款新的平台 JAX 的投入,这一举动引起业内猜测:TensorFlow 将逐渐被取代。

对此谷歌的回应是:

近年来,我们发现,单一通用框架往往无法适用于所有场景 —— 尤其是生产和前沿研究的需求经常发生冲突。

破解隐私计算开源框架难题

蚂蚁集团的隐语呼应了行业现状,开辟了一条通往隐私计算通用化之路。

隐语框架负责人、蚂蚁集团隐私智能计算部总经理王磊表示,蚂蚁从 2016 年开始做隐语,纯粹是技术驱动的前瞻性布局,是一个公司内部孵化的实验品。

隐语技术演进从矩阵变换开始,到可信执行环境(TEE),再到多方安全计算、联邦学习等,通过内外部应用场景中淬炼,性能上已能够支持较大规模数据集。在金融、医疗等领域也有成功的大规模落地经验、支持了浦发银行跨机构数据流通、浙江某三甲医院医保 DRG(Diagnosis Related Group,疾病诊断相关分组)改革,获得过中国信通院颁发的 “星河案例” 奖,CCF 科学技术奖科技进步优秀奖、中国网络空间安全协会 “数据安全典型实践案例”,入选了工信部 2021 年大数据产业发展试点示范项目名单等。

6 年技术积淀,形成了全面技术体系和成熟落地经验后,正式开源的隐语,优势是什么?

隐语的设计目标是使数据科学家和机器学习开发者可以非常容易地使用隐私计算技术进行数据分析机器学习建模,而无需了解底层技术细节。其总体架构自底向上一共分为五层:

图片

最底层是资源管理层。主要承担了两方面的职责。第一是面向业务交付团队,可以屏蔽不同机构底层基础设施的差异,降低业务交付团队的部署运维成本。另一方面,通过对不同机构的资源进行统一管理,解决业务规模化后的高可用和稳定性问题。

往上是明密文计算设备与原语层。提供了统一的可编程设备抽象,将多方安全计算 (MPC)、同态加密 (HE)、可信硬件 (TEE) 等隐私计算技术抽象为密态设备,将单方本地计算抽象为明文设备。同时,提供了一些不适合作为设备抽象的基础算法,如差分隐私 (DP)、安全聚合 (Secure Aggregation) 等。未来当有新的密态计算技术出现时,可以通过这种松耦合的设计集成进隐私框架。

继续往上是明密文混合调度层。这层一方面对上层提供了明密文混合编程的接口,同时也提供了统一的设备调度抽象。通过将上层算法描述为一张有向无环图,其中节点表示某个设备上的计算,边表示设备之间的数据流动,即逻辑计算图。然后由分布式框架进一步将逻辑计算图拆分并调度至物理节点。在这一点上,隐语借鉴了主流的深度学习框架,后者将神经网络表示为一张由设备上的算子和设备间的张量流动构成的计算图。

图片

继续是 AI & BI 隐私算法层。这一层的目的是屏蔽掉隐私计算技术细节,但保留隐私计算的概念,其目的是降低隐私计算算法的开发门槛,提升开发效率。有隐私计算算法开发诉求的同学,可以根据自身场景和业务的特点,设计出一些特化的隐私计算算法,来满足自身业务和场景对安全性、计算性能和计算精度的平衡。在这一层上,隐语本身也会提供一些通用的算法能力,比如 MPC 的 LR/XGB/NN,联邦学习算法,SQL 能力等。

最顶层是用户界面层:隐语的目标并不是做一个端到端的产品,而是为了让不同的业务都能够通过快速集成隐语而具备全面的隐私计算能力。因此隐语会在最上层去提供一层比较薄的产品 API,以及一些原子化的前后端 SDK,去降低业务方集成隐语的成本。

集齐当前主流隐私计算技术并供灵活组装以满足场景化需求,是隐语呈现的最直观的优势。最核心的是,在这套框架下,开发者可以有多样的选择,通过隐语在他们所擅长的领域做实验、做迭代,能够更低成本、更快速地去做技术验证。同时验证完的技术也可以被别的开发者在别的技术方向使用。王磊认为,隐语更多像是一个开发者的平台,就是把这些不同特长的开发者攒到一起,是很符合开源精神的。

详细拆解来看,本次隐语首个开源版本的亮点,如图中的点亮模块。

图片

1. MPC 设备。支持大部分 Numpy API,支持自动求导,提供 LR 和 NN 相关的 demo,支持 pade 高精度定点数拟合算法,支持 ABY3、 Cheetah 协议。用户可以采用传统的算法编程模式,在不了解 MPC 协议的情况下开发出基于 MPC 协议的 AI 算法;

2. HE 设备。支持 Paillier 同态加密算法,向上层提供 Numpy 编程接口,用户可以使用 Numpy 接口做矩阵加法或者明密文矩阵乘法运算。且实现了与 MPC 密态设备之间的数据可流转;

3. 差分隐私安全原语。实现了一些差分隐私噪声机制、安全噪声生成器、隐私开销计算器;

4. 明密文混合编程。支持中心化编程模式,使用 @device 标记构建明文和密文设备混合计算图,基于计算图进行并行、异步任务调度

5. 数据预处理。提供水平场景下的数据标准化、离散化、分箱功能,提供垂直场景下的相关系数矩阵、WOE 分箱功能。无缝对接已有的 dataframe,提供和 sklearn 一致的使用体感;

6. AI & BI 隐私算法 - 多方安全计算。提供水平场景下的 XGBoost 算法、新增垂直场景下的 HESS-LR 算法,并结合差分隐私增强了对拆分学习的隐私保护;

7. AI & BI 隐私算法 - 联邦学习。提供联邦学习模型构建和包括 SecureAggregation,MPC Aggregation, PlaintextAggregation 在内的多种安全模式的梯度聚合,用户只需要在模型构建时给出参与方 list 和聚合方法,之后的数据读取,预处理到模型训练的体验和传统明文编程几乎一致。

总结来看,主要如下:

  • 对于算法 / 模型研发:使用隐语提供的编程能力,可以方便快捷的将更多算法和模型迁移过来,并得到隐私保护增强。
  • 对于底层安全共建:可将底层密码 / 安全研究成果嵌入隐语,完善密态设备的能力、性能和安全,转化实际业务应用。
  • 隐语也将在后续的开源版本更新中,逐步点亮更多模块。

用技术经验趟出来的绝活

王磊介绍说,隐语的开发过程,经历了多年技术上的沉淀,对技术有了非常深刻的理解之后,才知道哪些东西是通用的、不变的,是需要去沉淀、抽象的东西。这其实就是对技术归纳和演绎,没有需求的时候,就很难去抽象具备共性的内容是什么。

比如说,做 MPC 开发的时候,经过一段时间试验,隐语团队发现其实 MPC 和联邦学习是相通的。他们抽象出来共同的点就是明密文混合计算。这个发现,也成为了隐语的创新点之一,即密态计算设备 SPU。

SPU 是 Secretflow Processing Unit 的简称,作为隐语平台的密态计算单元,为隐语提供安全的计算服务,处在隐语的如下标注位置:

图片

近些年,密态计算(MPC/HE)在算力上都巨大的进步,但是密态算力和 AI 的算法需求难以匹配。在算力无法匹配算法的时候,一个直接的办法就是 “明密文混合”,用来做安全和性能的平衡。比如联邦学习,将算法的某一个子步骤使用安全计算实现,牺牲局部安全性以换取更高的性能。

隐语提供了非常自由的明密文混合编程范式,不限制明文的引擎,也不限制密文引擎,开发者可以用自己熟悉的框架开发,然后标记其中的某一部分用明文引擎跑,另一部分用 SPU 跑。比如:

图片

图中 MPC Device 就是 SPU 实现的。

作为对比,从安全和性能这种的角度,无论 TFE/CrypTen/SPDZ 等都很难进行这种平衡。

SPU 被设计成部署模式透明的,不用修改任何一行代码,开发者的模型都可以在上述任何一种部署场景上被安全且正确的执行。并且(相对于基于 AI 平台的隐私计算框架)SPU 运行时非常的轻量级,不需要 Python runtime,可以方便的进行部署和集成。

作为 AI 开发者,不需要任何安全背景,就可以将现有的模型安全的应用到多方数据上。

作为安全开发者,不需要任何 AI 背景,仅仅实现安全计算的基本算子,就可以支持多种前端框架。并且,可以方便的部署和运维,在安全和性能之间折中,找到最佳的落地方案。

王磊还强调,隐私计算技术开发门槛非常高,要集成隐语,不是一个团队单独能完成的事,有非常多的团队都参与了共建。在蚂蚁集团内部,它已经成为了一个开放的架构,是一套内部开源的系统。“现在我们希望把隐语开源到外部,能够让外部的团队也一起来进行共建。”

在正式开源之前,隐语也做了一些定向开源工作,如与阿里巴巴双子座实验室猎豹协议的共建。

猎豹协议是目前业界最快的两方安全计算协议,猎豹把它的协议贡献到了隐语中,实现了非常深度的协作。

当前业界的隐私计算需求场景以两方计算居多:假如 Alice(数据需求方)希望借助 Bob(数据源)的数据来增强自己的业务能力,但是 Bob 又不想直接给出自己的数据。因此如何高效的实现安全两方计算(2PC),便成为解决这一问题的关键。

阿里安全双子座实验室为解决这一问题研发了 Cheetah(猎豹)安全两方计算框架,在 2PC 的多个底层瓶颈上都取得了突破,让两方计算的整体性能取得了大幅提升,最快可以比此前的最好成果 - 微软 CryptFLOW2 (CCS20)提升 5 倍以上。

猎豹已在隐语中实现了更好的优化(相较于公开代码支持 30-40 比特的秘密分享,猎豹在隐语中实现的是支持如 64 比特的更大秘密分享)以及一些未在论文中公开的算法。最重要的是这种实现对隐语上层业务逻辑感知,即隐语已有逻辑代码无需改动以适配。

通过这样的协作,双子座实验室协议可以按照一个简单的对接接口实现到隐语中,能被上层隐语所有的算法使用,不需要从上到下,所有东西都去重现,能够非常快的发挥价值。对于隐语来说,通过集成系统,可以对上层已有的所有算法不做任何改动,大幅提升算法的性能。这也是隐语的另一个创新亮点。

开源,“隐语” 做好了充分准备

谈到为什么要把这么强大的一套框架开源,王磊的解释是,开源对于研究界、产业界来说都是一件意义深远的事的事。

对于研究机构来说,可以利用开源的隐私计算框架,在上面做一些实验和研究,产出研究结果和论文。从推动整个隐私计算技术发展的角度来说,单靠一家公司,其实是很难带动行业共同进步的。在这方面,隐语其实做了比较多的考虑,怎么让更多不同背景的人进来做贡献。面对不同背景的用户,在整个架构的分层上做了非常多的设计,提供一个更适合他们做开发和接入的模式。虽然这件事情很难,但我们还是希望能够迈出这一步。 

而对于技术本身来说,王磊认为,在闭源模式下,对技术的判断、真实性、以及它的实现细节,其实只能从对外的文章判断。更重要一点,它安全性和性能的判断,一方面要有理论的验证,其次具体实现是不是跟理论有差距,从这个角度来说,闭源的情况下技术做到什么程度是很难判断的,将带来更多的损失。

“我们希望能够通过开源,能够去创造更多的场景”。隐私计算应用目前更多是集中在金融风控场景,对其他场景、比如医疗、能源、工业等也会有应用需求。当前做隐私计算的专业人员其实不多,如果还是各自为战,对整个行业来说是一个非常大的浪费。我们还是希望把有限的、非常强的技术人员聚合,形成合力去做出一些真正的技术突破。

王磊表示,蚂蚁集团一直认为开源是一件非常慎重的事情,其不仅仅是把代码公开出去,更重要的是希望通过良好的架构设计让更多的人加入其中。基于在隐私计算各个方向上的沉淀和积累,结合开源共建的目标,蚂蚁能够确保开源的 “隐语” 是一个高质量、可扩展的技术框架,也希望能够吸引更多的优质的开发者和用户能够加入到隐语的空间中。

更多信息可访问 SecretFlow。

文档学习网站:https://secretflow.readthedocs.io

开源地址:

https://github.com/secretflow
https://gitee.com/secretflow
产业开源隐语蚂蚁集团可信隐私计算框架
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

数据分析技术

数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息。其他一些用于收集数据,以便弄清哪些是同质的,从而更好地了解数据。 数据分析可以处理大量数据,并确定这些数据最有用的部分。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

有向无环图技术

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

提升算法技术

Boosting是一种主要用于减少偏差的机器学习集成元算法,也是监督学习的一个变化,是一种将弱学习器转换为强学习器的机器学习算法家族。 Boosting是基于Kearns和Valiant(1988,1989)提出的问题:一组弱学习器能创造一个强大的学习器吗?一个弱的学习器被定义为一个分类器,它与真实的分类只有轻微的相关性(它可以比随机猜测更好地标注示例)。相反,强大的学习器是一个与真实分类任意相关的分类器。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

XGBoost技术

XGBoost是一个开源软件库,为C ++,Java,Python,R,和Julia提供了渐变增强框架。 它适用于Linux,Windows,MacOS。从项目描述来看,它旨在提供一个“可扩展,便携式和分布式的梯度提升(GBM,GBRT,GBDT)库”。 除了在一台机器上运行,它还支持分布式处理框架Apache Hadoop,Apache Spark和Apache Flink。 由于它是许多机器学习大赛中获胜团队的首选算法,因此它已经赢得了很多人的关注。

蚂蚁集团机构

蚂蚁集团是移动支付平台支付宝的母公司,也是全球领先的金融科技开放平台,致力于以科技和创新推动包括金融服务业在内的全球现代服务业的数字化升级,携手合作伙伴为消费者和小微企业提供普惠、绿色、可持续的服务,为世界带来微小而美好的改变。

http://www.antgroup.com
联邦学习技术

如何在保护数据隐私、满足合法合规要求的前提下继续进行机器学习,这部分研究被称为「联邦学习」(Federated Learning)。

推荐文章
暂无评论
暂无评论~