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