螞蟻集團(tuán)開源可信隱私計(jì)算框架「隱語」:開放、通用
7 月 4 日,螞蟻集團(tuán)宣布面向全球開發(fā)者正式開源可信隱私計(jì)算框架 “隱語”。
隱語是螞蟻集團(tuán)歷時(shí) 6 年自主研發(fā),以安全、開放為核心設(shè)計(jì)理念打造的可信隱私計(jì)算技術(shù)框架,涵蓋了當(dāng)前幾乎所有主流隱私計(jì)算技術(shù)。
據(jù)介紹,隱語內(nèi)置 MPC、TEE、同態(tài)等多種密態(tài)計(jì)算虛擬設(shè)備,提供多類聯(lián)邦學(xué)習(xí)算法和差分隱私機(jī)制。通過分層設(shè)計(jì)和開箱即用的隱私保護(hù)數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等功能,有效降低了開發(fā)者應(yīng)用的技術(shù)門檻,能助力隱私計(jì)算應(yīng)用于 AI、數(shù)據(jù)分析等領(lǐng)域,解決隱私保護(hù)和數(shù)據(jù)孤島等行業(yè)痛點(diǎn)。
經(jīng)過螞蟻集團(tuán)大規(guī)模業(yè)務(wù)以及外部金融、醫(yī)療等場(chǎng)景的成功應(yīng)用,隱語兼顧了安全和性能。在發(fā)布會(huì)中,螞蟻集團(tuán)介紹了隱語的諸多特性。
我們需要怎樣的隱私計(jì)算開源框架?
隱私計(jì)算是一個(gè)新興的跨學(xué)科技術(shù)領(lǐng)域,涉及密碼學(xué)、機(jī)器學(xué)習(xí)、硬件、BI 分析等,包括多方安全計(jì)算(MPC)、聯(lián)邦學(xué)習(xí)(FL)、可信執(zhí)行環(huán)境(TEE)、可信密態(tài)計(jì)算(TECC)、同態(tài)加密、差分隱私等多種技術(shù)路線,涉及眾多專業(yè)技術(shù)棧。
作為兼顧數(shù)據(jù)安全和數(shù)據(jù)流通的關(guān)鍵技術(shù),隱私計(jì)算可保證數(shù)據(jù)提供方不泄露原始數(shù)據(jù)的前提下,對(duì)數(shù)據(jù)進(jìn)行分析計(jì)算,實(shí)現(xiàn)數(shù)據(jù)在流通與融合過程中的 “可用不可見”“可算不可識(shí)”。
業(yè)界根據(jù)過去幾年的實(shí)踐經(jīng)驗(yàn)發(fā)現(xiàn),隱私計(jì)算技術(shù)方向多樣,不同場(chǎng)景下有其各自合適的技術(shù)解決方案,且涉及領(lǐng)域眾多,需要多領(lǐng)域?qū)<夜餐瑓f(xié)作。對(duì)于從業(yè)者來說,隱私計(jì)算學(xué)習(xí)曲線很高,非隱私計(jì)算背景的用戶使用困難。
在實(shí)際技術(shù)開發(fā)中,隱私計(jì)算解決方案往往是多個(gè)技術(shù)路線的組合,過程中涉及到很多重復(fù)性的工作。比如,如果開發(fā)者想使用聯(lián)邦學(xué)習(xí),就要使用 A 框架來做研發(fā);如果想使用多方安全計(jì)算(MPC),那么又要使用 B 框架來做研發(fā),如果想使用可信硬件,還要去熟悉所選硬件的架構(gòu)才能真正開始使用。但現(xiàn)實(shí)的業(yè)務(wù)需求是,經(jīng)常需要多個(gè)技術(shù)一起來使用,那么這時(shí)候就會(huì)出現(xiàn)繁瑣、重復(fù)的開發(fā)工作。本是一項(xiàng)技術(shù)創(chuàng)新,卻帶來了技術(shù) “煙囪” 的困擾。
更致命的是,在交叉技術(shù)路線的解決方案中,一個(gè)底層新技術(shù)的引入,會(huì)牽動(dòng)上層所有工作,拖累技術(shù)迭代。引入一項(xiàng)新技術(shù),也必定會(huì)改變上層很多東西,對(duì)于用戶來說,所有的部署可能都要重復(fù)體驗(yàn)一遍,體感非常不好。
目前開源的隱私計(jì)算框架,如 TensorFlow Federated(TFF)、FATE、FederatedScope、Rosetta、FedLearner、Primihub 等幾乎都是針對(duì)單個(gè)隱私計(jì)算路線。這些框架為隱私計(jì)算相關(guān)社區(qū)研究和工業(yè)應(yīng)用都提供了一定支持。然而,實(shí)際場(chǎng)景中日益多樣化的應(yīng)用需求,以及技術(shù)本身的局限性,給現(xiàn)有隱私計(jì)算框架帶來了新的挑戰(zhàn)。
例如,首個(gè)提出 “聯(lián)邦學(xué)習(xí)” 技術(shù)的科技巨頭谷歌,也是 TensorFlow 的打造者,最近加大對(duì)一款新的平臺(tái) JAX 的投入,這一舉動(dòng)引起業(yè)內(nèi)猜測(cè):TensorFlow 將逐漸被取代。
對(duì)此谷歌的回應(yīng)是:
近年來,我們發(fā)現(xiàn),單一通用框架往往無法適用于所有場(chǎng)景 —— 尤其是生產(chǎn)和前沿研究的需求經(jīng)常發(fā)生沖突。
破解隱私計(jì)算開源框架難題
螞蟻集團(tuán)的隱語呼應(yīng)了行業(yè)現(xiàn)狀,開辟了一條通往隱私計(jì)算通用化之路。
隱語框架負(fù)責(zé)人、螞蟻集團(tuán)隱私智能計(jì)算部總經(jīng)理王磊表示,螞蟻從 2016 年開始做隱語,純粹是技術(shù)驅(qū)動(dòng)的前瞻性布局,是一個(gè)公司內(nèi)部孵化的實(shí)驗(yàn)品。
隱語技術(shù)演進(jìn)從矩陣變換開始,到可信執(zhí)行環(huán)境(TEE),再到多方安全計(jì)算、聯(lián)邦學(xué)習(xí)等,通過內(nèi)外部應(yīng)用場(chǎng)景中淬煉,性能上已能夠支持較大規(guī)模數(shù)據(jù)集。在金融、醫(yī)療等領(lǐng)域也有成功的大規(guī)模落地經(jīng)驗(yàn)、支持了浦發(fā)銀行跨機(jī)構(gòu)數(shù)據(jù)流通、浙江某三甲醫(yī)院醫(yī)保 DRG(Diagnosis Related Group,疾病診斷相關(guān)分組)改革,獲得過中國(guó)信通院頒發(fā)的 “星河案例” 獎(jiǎng),CCF 科學(xué)技術(shù)獎(jiǎng)科技進(jìn)步優(yōu)秀獎(jiǎng)、中國(guó)網(wǎng)絡(luò)空間安全協(xié)會(huì) “數(shù)據(jù)安全典型實(shí)踐案例”,入選了工信部 2021 年大數(shù)據(jù)產(chǎn)業(yè)發(fā)展試點(diǎn)示范項(xiàng)目名單等。
6 年技術(shù)積淀,形成了全面技術(shù)體系和成熟落地經(jīng)驗(yàn)后,正式開源的隱語,優(yōu)勢(shì)是什么?
隱語的設(shè)計(jì)目標(biāo)是使數(shù)據(jù)科學(xué)家和機(jī)器學(xué)習(xí)開發(fā)者可以非常容易地使用隱私計(jì)算技術(shù)進(jìn)行數(shù)據(jù)分析和機(jī)器學(xué)習(xí)建模,而無需了解底層技術(shù)細(xì)節(jié)。其總體架構(gòu)自底向上一共分為五層:
最底層是資源管理層。主要承擔(dān)了兩方面的職責(zé)。第一是面向業(yè)務(wù)交付團(tuán)隊(duì),可以屏蔽不同機(jī)構(gòu)底層基礎(chǔ)設(shè)施的差異,降低業(yè)務(wù)交付團(tuán)隊(duì)的部署運(yùn)維成本。另一方面,通過對(duì)不同機(jī)構(gòu)的資源進(jìn)行統(tǒng)一管理,解決業(yè)務(wù)規(guī)?;蟮母呖捎煤头€(wěn)定性問題。
往上是明密文計(jì)算設(shè)備與原語層。提供了統(tǒng)一的可編程設(shè)備抽象,將多方安全計(jì)算 (MPC)、同態(tài)加密 (HE)、可信硬件 (TEE) 等隱私計(jì)算技術(shù)抽象為密態(tài)設(shè)備,將單方本地計(jì)算抽象為明文設(shè)備。同時(shí),提供了一些不適合作為設(shè)備抽象的基礎(chǔ)算法,如差分隱私 (DP)、安全聚合 (Secure Aggregation) 等。未來當(dāng)有新的密態(tài)計(jì)算技術(shù)出現(xiàn)時(shí),可以通過這種松耦合的設(shè)計(jì)集成進(jìn)隱私框架。
繼續(xù)往上是明密文混合調(diào)度層。這層一方面對(duì)上層提供了明密文混合編程的接口,同時(shí)也提供了統(tǒng)一的設(shè)備調(diào)度抽象。通過將上層算法描述為一張有向無環(huán)圖,其中節(jié)點(diǎn)表示某個(gè)設(shè)備上的計(jì)算,邊表示設(shè)備之間的數(shù)據(jù)流動(dòng),即邏輯計(jì)算圖。然后由分布式框架進(jìn)一步將邏輯計(jì)算圖拆分并調(diào)度至物理節(jié)點(diǎn)。在這一點(diǎn)上,隱語借鑒了主流的深度學(xué)習(xí)框架,后者將神經(jīng)網(wǎng)絡(luò)表示為一張由設(shè)備上的算子和設(shè)備間的張量流動(dòng)構(gòu)成的計(jì)算圖。
繼續(xù)是 AI & BI 隱私算法層。這一層的目的是屏蔽掉隱私計(jì)算技術(shù)細(xì)節(jié),但保留隱私計(jì)算的概念,其目的是降低隱私計(jì)算算法的開發(fā)門檻,提升開發(fā)效率。有隱私計(jì)算算法開發(fā)訴求的同學(xué),可以根據(jù)自身場(chǎng)景和業(yè)務(wù)的特點(diǎn),設(shè)計(jì)出一些特化的隱私計(jì)算算法,來滿足自身業(yè)務(wù)和場(chǎng)景對(duì)安全性、計(jì)算性能和計(jì)算精度的平衡。在這一層上,隱語本身也會(huì)提供一些通用的算法能力,比如 MPC 的 LR/XGB/NN,聯(lián)邦學(xué)習(xí)算法,SQL 能力等。
最頂層是用戶界面層:隱語的目標(biāo)并不是做一個(gè)端到端的產(chǎn)品,而是為了讓不同的業(yè)務(wù)都能夠通過快速集成隱語而具備全面的隱私計(jì)算能力。因此隱語會(huì)在最上層去提供一層比較薄的產(chǎn)品 API,以及一些原子化的前后端 SDK,去降低業(yè)務(wù)方集成隱語的成本。
集齊當(dāng)前主流隱私計(jì)算技術(shù)并供靈活組裝以滿足場(chǎng)景化需求,是隱語呈現(xiàn)的最直觀的優(yōu)勢(shì)。最核心的是,在這套框架下,開發(fā)者可以有多樣的選擇,通過隱語在他們所擅長(zhǎng)的領(lǐng)域做實(shí)驗(yàn)、做迭代,能夠更低成本、更快速地去做技術(shù)驗(yàn)證。同時(shí)驗(yàn)證完的技術(shù)也可以被別的開發(fā)者在別的技術(shù)方向使用。王磊認(rèn)為,隱語更多像是一個(gè)開發(fā)者的平臺(tái),就是把這些不同特長(zhǎng)的開發(fā)者攢到一起,是很符合開源精神的。
詳細(xì)拆解來看,本次隱語首個(gè)開源版本的亮點(diǎn),如圖中的點(diǎn)亮模塊。
1. MPC 設(shè)備。支持大部分 Numpy API,支持自動(dòng)求導(dǎo),提供 LR 和 NN 相關(guān)的 demo,支持 pade 高精度定點(diǎn)數(shù)擬合算法,支持 ABY3、 Cheetah 協(xié)議。用戶可以采用傳統(tǒng)的算法編程模式,在不了解 MPC 協(xié)議的情況下開發(fā)出基于 MPC 協(xié)議的 AI 算法;
2. HE 設(shè)備。支持 Paillier 同態(tài)加密算法,向上層提供 Numpy 編程接口,用戶可以使用 Numpy 接口做矩陣加法或者明密文矩陣乘法運(yùn)算。且實(shí)現(xiàn)了與 MPC 密態(tài)設(shè)備之間的數(shù)據(jù)可流轉(zhuǎn);
3. 差分隱私安全原語。實(shí)現(xiàn)了一些差分隱私噪聲機(jī)制、安全噪聲生成器、隱私開銷計(jì)算器;
4. 明密文混合編程。支持中心化編程模式,使用 @device 標(biāo)記構(gòu)建明文和密文設(shè)備混合計(jì)算圖,基于計(jì)算圖進(jìn)行并行、異步任務(wù)調(diào)度;
5. 數(shù)據(jù)預(yù)處理。提供水平場(chǎng)景下的數(shù)據(jù)標(biāo)準(zhǔn)化、離散化、分箱功能,提供垂直場(chǎng)景下的相關(guān)系數(shù)矩陣、WOE 分箱功能。無縫對(duì)接已有的 dataframe,提供和 sklearn 一致的使用體感;
6. AI & BI 隱私算法 - 多方安全計(jì)算。提供水平場(chǎng)景下的 XGBoost 算法、新增垂直場(chǎng)景下的 HESS-LR 算法,并結(jié)合差分隱私增強(qiáng)了對(duì)拆分學(xué)習(xí)的隱私保護(hù);
7. AI & BI 隱私算法 - 聯(lián)邦學(xué)習(xí)。提供聯(lián)邦學(xué)習(xí)模型構(gòu)建和包括 SecureAggregation,MPC Aggregation, PlaintextAggregation 在內(nèi)的多種安全模式的梯度聚合,用戶只需要在模型構(gòu)建時(shí)給出參與方 list 和聚合方法,之后的數(shù)據(jù)讀取,預(yù)處理到模型訓(xùn)練的體驗(yàn)和傳統(tǒng)明文編程幾乎一致。
總結(jié)來看,主要如下:
- 對(duì)于算法 / 模型研發(fā):使用隱語提供的編程能力,可以方便快捷的將更多算法和模型遷移過來,并得到隱私保護(hù)增強(qiáng)。
- 對(duì)于底層安全共建:可將底層密碼 / 安全研究成果嵌入隱語,完善密態(tài)設(shè)備的能力、性能和安全,轉(zhuǎn)化實(shí)際業(yè)務(wù)應(yīng)用。
- 隱語也將在后續(xù)的開源版本更新中,逐步點(diǎn)亮更多模塊。
用技術(shù)經(jīng)驗(yàn)趟出來的絕活
王磊介紹說,隱語的開發(fā)過程,經(jīng)歷了多年技術(shù)上的沉淀,對(duì)技術(shù)有了非常深刻的理解之后,才知道哪些東西是通用的、不變的,是需要去沉淀、抽象的東西。這其實(shí)就是對(duì)技術(shù)歸納和演繹,沒有需求的時(shí)候,就很難去抽象具備共性的內(nèi)容是什么。
比如說,做 MPC 開發(fā)的時(shí)候,經(jīng)過一段時(shí)間試驗(yàn),隱語團(tuán)隊(duì)發(fā)現(xiàn)其實(shí) MPC 和聯(lián)邦學(xué)習(xí)是相通的。他們抽象出來共同的點(diǎn)就是明密文混合計(jì)算。這個(gè)發(fā)現(xiàn),也成為了隱語的創(chuàng)新點(diǎn)之一,即密態(tài)計(jì)算設(shè)備 SPU。
SPU 是 Secretflow Processing Unit 的簡(jiǎn)稱,作為隱語平臺(tái)的密態(tài)計(jì)算單元,為隱語提供安全的計(jì)算服務(wù),處在隱語的如下標(biāo)注位置:
近些年,密態(tài)計(jì)算(MPC/HE)在算力上都巨大的進(jìn)步,但是密態(tài)算力和 AI 的算法需求難以匹配。在算力無法匹配算法的時(shí)候,一個(gè)直接的辦法就是 “明密文混合”,用來做安全和性能的平衡。比如聯(lián)邦學(xué)習(xí),將算法的某一個(gè)子步驟使用安全計(jì)算實(shí)現(xiàn),犧牲局部安全性以換取更高的性能。
隱語提供了非常自由的明密文混合編程范式,不限制明文的引擎,也不限制密文引擎,開發(fā)者可以用自己熟悉的框架開發(fā),然后標(biāo)記其中的某一部分用明文引擎跑,另一部分用 SPU 跑。比如:
圖中 MPC Device 就是 SPU 實(shí)現(xiàn)的。
作為對(duì)比,從安全和性能這種的角度,無論 TFE/CrypTen/SPDZ 等都很難進(jìn)行這種平衡。
SPU 被設(shè)計(jì)成部署模式透明的,不用修改任何一行代碼,開發(fā)者的模型都可以在上述任何一種部署場(chǎng)景上被安全且正確的執(zhí)行。并且(相對(duì)于基于 AI 平臺(tái)的隱私計(jì)算框架)SPU 運(yùn)行時(shí)非常的輕量級(jí),不需要 Python runtime,可以方便的進(jìn)行部署和集成。
作為 AI 開發(fā)者,不需要任何安全背景,就可以將現(xiàn)有的模型安全的應(yīng)用到多方數(shù)據(jù)上。
作為安全開發(fā)者,不需要任何 AI 背景,僅僅實(shí)現(xiàn)安全計(jì)算的基本算子,就可以支持多種前端框架。并且,可以方便的部署和運(yùn)維,在安全和性能之間折中,找到最佳的落地方案。
王磊還強(qiáng)調(diào),隱私計(jì)算技術(shù)開發(fā)門檻非常高,要集成隱語,不是一個(gè)團(tuán)隊(duì)單獨(dú)能完成的事,有非常多的團(tuán)隊(duì)都參與了共建。在螞蟻集團(tuán)內(nèi)部,它已經(jīng)成為了一個(gè)開放的架構(gòu),是一套內(nèi)部開源的系統(tǒng)?!艾F(xiàn)在我們希望把隱語開源到外部,能夠讓外部的團(tuán)隊(duì)也一起來進(jìn)行共建?!?/span>
在正式開源之前,隱語也做了一些定向開源工作,如與阿里巴巴雙子座實(shí)驗(yàn)室獵豹協(xié)議的共建。
獵豹協(xié)議是目前業(yè)界最快的兩方安全計(jì)算協(xié)議,獵豹把它的協(xié)議貢獻(xiàn)到了隱語中,實(shí)現(xiàn)了非常深度的協(xié)作。
當(dāng)前業(yè)界的隱私計(jì)算需求場(chǎng)景以兩方計(jì)算居多:假如 Alice(數(shù)據(jù)需求方)希望借助 Bob(數(shù)據(jù)源)的數(shù)據(jù)來增強(qiáng)自己的業(yè)務(wù)能力,但是 Bob 又不想直接給出自己的數(shù)據(jù)。因此如何高效的實(shí)現(xiàn)安全兩方計(jì)算(2PC),便成為解決這一問題的關(guān)鍵。
阿里安全雙子座實(shí)驗(yàn)室為解決這一問題研發(fā)了 Cheetah(獵豹)安全兩方計(jì)算框架,在 2PC 的多個(gè)底層瓶頸上都取得了突破,讓兩方計(jì)算的整體性能取得了大幅提升,最快可以比此前的最好成果 - 微軟 CryptFLOW2 (CCS20)提升 5 倍以上。
獵豹已在隱語中實(shí)現(xiàn)了更好的優(yōu)化(相較于公開代碼支持 30-40 比特的秘密分享,獵豹在隱語中實(shí)現(xiàn)的是支持如 64 比特的更大秘密分享)以及一些未在論文中公開的算法。最重要的是這種實(shí)現(xiàn)對(duì)隱語上層業(yè)務(wù)邏輯無感知,即隱語已有邏輯代碼無需改動(dòng)以適配。
通過這樣的協(xié)作,雙子座實(shí)驗(yàn)室協(xié)議可以按照一個(gè)簡(jiǎn)單的對(duì)接接口實(shí)現(xiàn)到隱語中,能被上層隱語所有的算法使用,不需要從上到下,所有東西都去重現(xiàn),能夠非??斓陌l(fā)揮價(jià)值。對(duì)于隱語來說,通過集成系統(tǒng),可以對(duì)上層已有的所有算法不做任何改動(dòng),大幅提升算法的性能。這也是隱語的另一個(gè)創(chuàng)新亮點(diǎn)。
開源,“隱語” 做好了充分準(zhǔn)備
談到為什么要把這么強(qiáng)大的一套框架開源,王磊的解釋是,開源對(duì)于研究界、產(chǎn)業(yè)界來說都是一件意義深遠(yuǎn)的事的事。
對(duì)于研究機(jī)構(gòu)來說,可以利用開源的隱私計(jì)算框架,在上面做一些實(shí)驗(yàn)和研究,產(chǎn)出研究結(jié)果和論文。從推動(dòng)整個(gè)隱私計(jì)算技術(shù)發(fā)展的角度來說,單靠一家公司,其實(shí)是很難帶動(dòng)行業(yè)共同進(jìn)步的。在這方面,隱語其實(shí)做了比較多的考慮,怎么讓更多不同背景的人進(jìn)來做貢獻(xiàn)。面對(duì)不同背景的用戶,在整個(gè)架構(gòu)的分層上做了非常多的設(shè)計(jì),提供一個(gè)更適合他們做開發(fā)和接入的模式。雖然這件事情很難,但我們還是希望能夠邁出這一步。
而對(duì)于技術(shù)本身來說,王磊認(rèn)為,在閉源模式下,對(duì)技術(shù)的判斷、真實(shí)性、以及它的實(shí)現(xiàn)細(xì)節(jié),其實(shí)只能從對(duì)外的文章判斷。更重要一點(diǎn),它安全性和性能的判斷,一方面要有理論的驗(yàn)證,其次具體實(shí)現(xiàn)是不是跟理論有差距,從這個(gè)角度來說,閉源的情況下技術(shù)做到什么程度是很難判斷的,將帶來更多的損失。
“我們希望能夠通過開源,能夠去創(chuàng)造更多的場(chǎng)景”。隱私計(jì)算應(yīng)用目前更多是集中在金融風(fēng)控場(chǎng)景,對(duì)其他場(chǎng)景、比如醫(yī)療、能源、工業(yè)等也會(huì)有應(yīng)用需求。當(dāng)前做隱私計(jì)算的專業(yè)人員其實(shí)不多,如果還是各自為戰(zhàn),對(duì)整個(gè)行業(yè)來說是一個(gè)非常大的浪費(fèi)。我們還是希望把有限的、非常強(qiáng)的技術(shù)人員聚合,形成合力去做出一些真正的技術(shù)突破。
王磊表示,螞蟻集團(tuán)一直認(rèn)為開源是一件非常慎重的事情,其不僅僅是把代碼公開出去,更重要的是希望通過良好的架構(gòu)設(shè)計(jì)讓更多的人加入其中?;谠陔[私計(jì)算各個(gè)方向上的沉淀和積累,結(jié)合開源共建的目標(biāo),螞蟻能夠確保開源的 “隱語” 是一個(gè)高質(zhì)量、可擴(kuò)展的技術(shù)框架,也希望能夠吸引更多的優(yōu)質(zhì)的開發(fā)者和用戶能夠加入到隱語的空間中。
更多信息可訪問 SecretFlow。文檔學(xué)習(xí)網(wǎng)站:https://secretflow.readthedocs.io
開源地址:https://github.com/secretflowhttps://gitee.com/secretflow