中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

螞蟻金服提出全新數(shù)據(jù)孤島解決方案:共享機(jī)器學(xué)習(xí)

2019-08-21    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

作者:王力、王磊

如果有 A、B、C 三位同學(xué),他們各自手上有 10、15、20 塊錢,這時(shí)需要在相互不知道對方有多少錢的情況下,不借助力第三方來計(jì)算三個(gè)人一共有多少錢。請問這時(shí)候,我們?nèi)绾螌?shí)現(xiàn)呢?——這,就是最經(jīng)典的秘密共享場景。在看完這篇文章后,答案就出來了~

背景

互聯(lián)網(wǎng)時(shí)代,一切基于數(shù)據(jù)。

隨著人工智能的興起,數(shù)據(jù)的質(zhì)量和數(shù)量,已經(jīng)成為影響機(jī)器學(xué)習(xí)模型效果最重要的因素之一,因此通過數(shù)據(jù)共享的模式來“擴(kuò)展”數(shù)據(jù)量、從而提升模型效果的訴求也變得越發(fā)強(qiáng)烈。

但在數(shù)據(jù)共享過程中,不可避免會涉及到兩個(gè)問題:隱私泄露和數(shù)據(jù)濫用。

提到這兩個(gè)關(guān)鍵詞,大家一定都對其背后的緣由有所耳聞:

第一則:2018 年 3 月,劍橋咨詢公司通過 FaceBook 的數(shù)據(jù)共享漏洞,收集了 5000 萬用戶信息,據(jù)說有可能利用這些信息操控美國總統(tǒng)競選,造成惡劣社會影響;事件曝光后,F(xiàn)B 公司股票大跌 7%,引發(fā)一系列后續(xù)問題。

第二則:2018 年 5 月,歐盟通過 General Data Protection Regulation(GDPR)法案,法案指出:所有與個(gè)人相關(guān)的信息都是個(gè)人數(shù)據(jù),對數(shù)據(jù)的使用行為必須要有用戶的明確授權(quán)。把對隱私保護(hù)的要求提到了一個(gè)新的高度。

隨著對數(shù)據(jù)安全的重視和隱私保護(hù)法案的出臺,以前粗放式的數(shù)據(jù)共享受到挑戰(zhàn),各個(gè)數(shù)據(jù)擁有者重新回到數(shù)據(jù)孤島的狀態(tài),同時(shí),互聯(lián)網(wǎng)公司也更難以收集和利用用戶的隱私數(shù)據(jù)。

數(shù)據(jù)孤島現(xiàn)象不僅不會消失,反而會成為新的常態(tài),甚至它不僅存在于不同公司和組織之間,在大型集團(tuán)內(nèi)部也存在。未來,我們必須面對這樣的現(xiàn)狀:如果我們想更好的利用數(shù)據(jù),用大數(shù)據(jù)和 AI 做更多有意義的事情,就必須在不同組織之間、公司與用戶之間進(jìn)行數(shù)據(jù)共享,但這個(gè)共享需要滿足隱私保護(hù)和數(shù)據(jù)安全的前提。

隱私泄漏和數(shù)據(jù)濫用如同達(dá)摩克利斯之劍懸在各個(gè)公司和組織頭上,因此解決數(shù)據(jù)孤島,成為 AI 行業(yè)需要解決的首要問題之一。

如何解決數(shù)據(jù)孤島問題?

當(dāng)前,業(yè)界解決隱私泄露和數(shù)據(jù)濫用的數(shù)據(jù)共享技術(shù)路線主要有兩條。一條是基于硬件可信執(zhí)行環(huán)境(TEE: Trusted Execution Environment)技術(shù)的可信計(jì)算,另一條是基于密碼學(xué)的多方安全計(jì)算(MPC:Multi-party Computation)。

TEE 字面意思是可信執(zhí)行環(huán)境,核心概念為以第三方硬件為載體,數(shù)據(jù)在由硬件創(chuàng)建的可信執(zhí)行環(huán)境中進(jìn)行共享。這方面以 Intel 的 SGX 技術(shù),AMD 的 SEV 技術(shù),ARM 的 Trust Zone 技術(shù)等為代表。TEE 方案的大致原理如下圖所示:

 

 

目前在生產(chǎn)環(huán)境可用的 TEE 技術(shù),比較成熟的基本只有 Intel 的 SGX 技術(shù),基于 SGX 技術(shù)的各種應(yīng)用也是目前業(yè)界的熱門方向,微軟、谷歌等公司在這個(gè)方向上都有所投入。

SGX(Software Guard Extensions )是 Intel 提供的一套軟件保護(hù)方案。SGX 通過提供一系列 CPU 指令碼,允許用戶代碼創(chuàng)建具有高訪問權(quán)限的私有內(nèi)存區(qū)域(Enclave - 飛地),包括 OS,VMM,BIOS,SMM 均無法私自訪問 Enclave,Enclave 中的數(shù)據(jù)只有在 CPU 計(jì)算時(shí),通過 CPU 上的硬件進(jìn)行解密。同時(shí),Intel 還提供了一套遠(yuǎn)程認(rèn)證機(jī)制(Remote Attestation),通過這套機(jī)制,用戶可以在遠(yuǎn)程確認(rèn)跑在 Enclave 中的代碼是否符合預(yù)期。

MPC(Multi-party Computation,多方安全計(jì)算)一直是學(xué)術(shù)界比較火的話題,但在工業(yè)界的存在感較弱,之前都是一些創(chuàng)業(yè)小公司在這個(gè)方向上有一些探索,例如 Sharemind,Privitar,直到谷歌提出了基于 MPC 的在個(gè)人終端設(shè)備的“聯(lián)邦學(xué)習(xí)” (Federated Learning)的概念,使得 MPC 技術(shù)一夜之間在工業(yè)界火了起來。MPC 方案的大致原理如下圖所示

 

 

目前,在 MPC 領(lǐng)域,主要用到的是技術(shù)是混淆電路(Garbled Circuit)、秘密分享(Secret Sharing)和同態(tài)加密(Homomorphic Encryption)。

混淆電路是圖靈獎(jiǎng)得主姚期智教授在 80 年代提出的一個(gè)方法。其原理是,任意函數(shù)最后在計(jì)算機(jī)語言內(nèi)部都是由加法器、乘法器、移位器、選擇器等電路表示,而這些電路最后都可以僅由 AND 和 XOR 兩種邏輯門組成。一個(gè)門電路其實(shí)就是一個(gè)真值表,假設(shè)我們把門電路的輸入輸出都使用不同的密鑰加密,設(shè)計(jì)一個(gè)加密后的真值表,這個(gè)門從控制流的角度來看還是一樣的,但是輸入輸出信息都獲得了保護(hù)。

秘密分享的基本原理是將每個(gè)數(shù)字隨機(jī)拆散成多個(gè)數(shù)并分發(fā)到多個(gè)參與方那里。然后每個(gè)參與方拿到的都是原始數(shù)據(jù)的一部分,一個(gè)或少數(shù)幾個(gè)參與方無法還原出原始數(shù)據(jù),只有大家把各自的數(shù)據(jù)湊在一起時(shí)才能還原真實(shí)數(shù)據(jù)。

同態(tài)加密是一種特殊的加密方法,允許對密文進(jìn)行處理得到仍然是加密的結(jié)果,即對密文直接進(jìn)行處理,跟對明文進(jìn)行處理后再對處理結(jié)果加密,得到的結(jié)果相同。同態(tài)性來自抽象代數(shù)領(lǐng)域的概念,同態(tài)加密則是它的一個(gè)應(yīng)用。

當(dāng)前,業(yè)界針對數(shù)據(jù)共享場景,利用上面的技術(shù)路線推出了一些解決方案,包括隱私保護(hù)機(jī)器學(xué)習(xí) PPML、聯(lián)邦學(xué)習(xí)、競合學(xué)習(xí)、可信機(jī)器學(xué)習(xí)等,但這些方案只利用了其中的一部分技術(shù),從而只適合部分場景,同時(shí)基本處于學(xué)術(shù)研究階段,沒有在生產(chǎn)環(huán)境落地。

共享機(jī)器學(xué)習(xí):螞蟻金服數(shù)據(jù)孤島解決方案

為了更好的應(yīng)對形勢變化,解決數(shù)據(jù)共享需求與隱私泄露和數(shù)據(jù)濫用之間的矛盾,螞蟻金服提出了希望通過技術(shù)手段,確保多方在使用數(shù)據(jù)共享學(xué)習(xí)的同時(shí),能做到:用戶隱私不會被泄露,數(shù)據(jù)使用行為可控,我們稱之為共享機(jī)器學(xué)習(xí)(Shared Machine Learning)。

共享機(jī)器學(xué)習(xí)的定義:在多方參與且各數(shù)據(jù)提供方與平臺方互不信任的場景下,能夠聚合多方信息并保護(hù)參與方數(shù)據(jù)隱私的學(xué)習(xí)范式。

從 17 年開始,螞蟻金服就一直在共享機(jī)器學(xué)習(xí)方向進(jìn)行探索和研究,在結(jié)合了 TEE 與 MPC 兩條路線的同時(shí),結(jié)合螞蟻的自身業(yè)務(wù)場景特性,聚焦于在金融行業(yè)的應(yīng)用。

螞蟻金服共享機(jī)器學(xué)習(xí)方案擁有如下特性:

多種安全計(jì)算引擎整合,可基于不同業(yè)務(wù)場景來選擇合適的安全技術(shù)。既有基于 TEE 的集中式解決方案,也有基于 MPC 的分布式解決方案;既可滿足數(shù)據(jù)水平切分的場景,也能解決數(shù)據(jù)垂直切分的訴求;既可以做模型訓(xùn)練,也可以做模型預(yù)測。

支持多種機(jī)器學(xué)習(xí)算法以及各種數(shù)據(jù)預(yù)處理算子。支持的算法包括但不限于 LR,GBDT,Xgboost,DNN,CNN,RNN,GNN 等。

大規(guī)模集群化。支持大規(guī)模集群化,提供金融級的高效、穩(wěn)定、系統(tǒng)化的支撐。

基于數(shù)年沉淀與積累,目前共享機(jī)器學(xué)習(xí)技術(shù)已在銀行、保險(xiǎn)、商戶等行業(yè)成功落地諸多場景業(yè)務(wù)。通過在業(yè)務(wù)中打磨出的金融級共享機(jī)器學(xué)習(xí)能力,沉淀下來一套數(shù)據(jù)共享場景的通用解決方案,未來會逐步對外開放。

在幾年的艱苦研發(fā)中,共享學(xué)習(xí)累積專利 50 余項(xiàng)。在 2019 中國人工智能峰會上,共享機(jī)器學(xué)習(xí)獲得“紫金產(chǎn)品創(chuàng)新獎(jiǎng)”,在 8 月 16 日的全球人工智能創(chuàng)業(yè)者大會上,獲得“應(yīng)用案例示范獎(jiǎng)”。

下面,我們將分享基于上面兩種路線的共享機(jī)器學(xué)習(xí)實(shí)踐細(xì)節(jié)。

基于 TEE 的共享學(xué)習(xí)

螞蟻共享學(xué)習(xí)底層使用 Intel 的 SGX 技術(shù),并可兼容其它 TEE 實(shí)現(xiàn)。目前,基于 SGX 的共享學(xué)習(xí)已支持集群化的模型在線預(yù)測和離線訓(xùn)練。

1. 模型在線預(yù)測

預(yù)測通常是在線服務(wù)。相對于離線訓(xùn)練,在線預(yù)測在算法復(fù)雜度上面會相對簡單,但是對穩(wěn)定性的要求會更高。

提升在線服務(wù)穩(wěn)定性的關(guān)健技術(shù)之一就是集群化的實(shí)現(xiàn)——通過集群化解決負(fù)載均衡,故障轉(zhuǎn)移,動態(tài)擴(kuò)容等穩(wěn)定性問題。

但由于 SGX 技術(shù)本身的特殊性,傳統(tǒng)的集群化方案在 SGX 上無法工作。

為此,我們設(shè)計(jì)了如下分布式在線服務(wù)基本框架:

 

 

該框架與傳統(tǒng)分布式框架不同的地方在于,每個(gè)服務(wù)啟動時(shí)會到集群管理中心(ClusterManager,簡稱 CM)進(jìn)行注冊,并維持心跳,CM 發(fā)現(xiàn)有多個(gè)代碼相同的 Enclave 進(jìn)行了注冊后,會通知這些 Enclave 進(jìn)行密鑰同步,Enclave 收到通知后,會通過遠(yuǎn)程認(rèn)證相互確認(rèn)身份。當(dāng)確認(rèn)彼此的 Enclave 簽名完全相同時(shí),會通過安全通道協(xié)商并同步密鑰。

該框架具備如下特性:

通過集群化方案解決了在線服務(wù)的負(fù)載均衡,故障轉(zhuǎn)移,動態(tài)擴(kuò)縮容,機(jī)房災(zāi)備等問題;

通過多集群管理和 SDK 心跳機(jī)制,解決代碼升級,灰度發(fā)布,發(fā)布回滾等問題;

通過 ServiceProvider 內(nèi)置技術(shù)配合 SDK,降低了用戶的接入成本;

通過提供易用性的開發(fā)框架,使得用戶在開發(fā)業(yè)務(wù)邏輯時(shí),完全不需要關(guān)心分布式化的邏輯;

通過提供 Provision 代理機(jī)制,確保 SGX 機(jī)器不需要連接外網(wǎng),提升了系統(tǒng)安全性。

目前在這套框架之上已經(jīng)支持包括 LR、GBDT、Xgboost 等多種常用的預(yù)測算法,支持單方或多方數(shù)據(jù)加密融合后的預(yù)測。基于已有框架,也可以很容易的擴(kuò)展到其它算法。

2. 模型離線訓(xùn)練

模型訓(xùn)練階段,除了基于自研的訓(xùn)練框架支持了 LR 和 GBDT 的訓(xùn)練外,我們還借助于 LibOs Occlum 和自研的分布式組網(wǎng)系統(tǒng),成功將原生 Xgboost 移植到 SGX 內(nèi),并支持多方數(shù)據(jù)融合和分布式訓(xùn)練。通過上述方案,不僅可以減少大量的重復(fù)性開發(fā)工作,并且在 Xgboost 社區(qū)有了新的功能更新后,可以在 SGX 內(nèi)直接復(fù)用新功能,無需額外開發(fā)。目前我們正在利用這套方案進(jìn)行 TensorFlow 框架的遷移。

此外,針對 SGX 當(dāng)下詬病的 128M 內(nèi)存限制問題(超過 128M 會觸發(fā)換頁操作,導(dǎo)致性能大幅下降),我們通過算法優(yōu)化和分布式化等技術(shù),大大降低內(nèi)存限制對性能的影響。

基于 TEE 的多方數(shù)據(jù)共享學(xué)習(xí)訓(xùn)練流程如下:

機(jī)構(gòu)用戶從 Data Lab 下載加密工具
使用加密工具對數(shù)據(jù)進(jìn)行加密,加密工具內(nèi)嵌了 RA 流程,確保加密信息只會在指定的 Enclave 中被解密
用戶把加密數(shù)據(jù)上傳到云端存儲
用戶在 Data Lab 的訓(xùn)練平臺進(jìn)行訓(xùn)練任務(wù)的構(gòu)建
訓(xùn)練平臺將訓(xùn)練任務(wù)下發(fā)到訓(xùn)練引擎

訓(xùn)練引擎啟動訓(xùn)練相關(guān)的 Enclave,并從云端存儲讀取加密數(shù)據(jù)完成指定的訓(xùn)練任務(wù)。

 

 

采用該方式進(jìn)行數(shù)據(jù)共享和機(jī)器學(xué)習(xí),參與方可以保證上傳的數(shù)據(jù)都經(jīng)過加密,并通過形式化驗(yàn)證保證加密的安全性。

基于 MPC 的共享學(xué)習(xí)

螞蟻基于 MPC 的共享學(xué)習(xí)框架分為三層:

安全技術(shù)層:安全技術(shù)層提供基礎(chǔ)的安全技術(shù)實(shí)現(xiàn),比如在前面提到的秘密分享、同態(tài)加密、混淆電路,另外還有一些跟安全密切相關(guān)的,例如差分隱私技術(shù)、DH 算法等等;

基礎(chǔ)算子層:在安全技術(shù)層基礎(chǔ)上,我們會做一些基礎(chǔ)算子的封裝,包括多方數(shù)據(jù)安全求交、矩陣加法、矩陣乘法,以及在多方場景下,計(jì)算 sigmoid 函數(shù)、ReLU 函數(shù)等等;同一個(gè)算子可能會有多種實(shí)現(xiàn)方案,用以適應(yīng)不同的場景需求,同時(shí)保持接口一致;

安全機(jī)器學(xué)習(xí)算法:有了基礎(chǔ)算子,就可以很方便的進(jìn)行安全機(jī)器學(xué)習(xí)算法的開發(fā),這里的技術(shù)難點(diǎn)在于,如何盡量復(fù)用已有算法和已有框架,我們在這里做了一些有益的嘗試,但也遇到了很大的挑戰(zhàn)。

 

 

目前我們這套基于 MPC 的共享學(xué)習(xí)框架已支持了包括 LR、GBDT、GNN 等頭部算法,后續(xù)一方面會繼續(xù)根據(jù)業(yè)務(wù)需求補(bǔ)充更多的算法,同時(shí)也會為各種算子提供更多的技術(shù)實(shí)現(xiàn)方案,以應(yīng)對不同的業(yè)務(wù)場景。

基于 MPC 的多方數(shù)據(jù)共享學(xué)習(xí)訓(xùn)練流程如下:

 

 

如圖所示,訓(xùn)練步驟為:

機(jī)構(gòu)用戶從 Data Lab 下載訓(xùn)練服務(wù)并本地部署
用戶在 Data Lab 的訓(xùn)練平臺上進(jìn)行訓(xùn)練任務(wù)的構(gòu)建
訓(xùn)練平臺將訓(xùn)練任務(wù)下發(fā)給訓(xùn)練引擎
訓(xùn)練引擎將任務(wù)下發(fā)給機(jī)構(gòu)端的訓(xùn)練服務(wù)器 Worker
Worker 加載本地?cái)?shù)據(jù)
Worker 之間根據(jù)下發(fā)的訓(xùn)練任務(wù),通過多方安全協(xié)議交互完成訓(xùn)練任務(wù)

訓(xùn)練引擎的具體架構(gòu)如下:

 

 

其中 Coordinator 部署于螞蟻平臺,用于任務(wù)的控制和協(xié)調(diào),本身并不參與實(shí)際運(yùn)算。Worker 部署在參與多方安全計(jì)算的機(jī)構(gòu),基于安全多方協(xié)議進(jìn)行實(shí)際的交互計(jì)算。

用戶在建模平臺構(gòu)建好的訓(xùn)練任務(wù)流會下發(fā)給 Coordinator 的 Task Flow Manager,Task Flow Manager 會把任務(wù)進(jìn)行拆解,通過 Task Manager 把具體算法下發(fā)給 Worker 端的 Task Executor,Task Executor 根據(jù)算法圖調(diào)用 Worker 上的安全算子完成實(shí)際的運(yùn)算。

利用這套方法,可以做到數(shù)據(jù)不出域就可以完成數(shù)據(jù)共享,訓(xùn)練工具可以部署在本地的服務(wù)器。

共享學(xué)習(xí) VS. 聯(lián)邦學(xué)習(xí)

目前,國內(nèi)對于數(shù)據(jù)共享場景的機(jī)器學(xué)習(xí)解決方案,比較熟悉的可能是由谷歌提出的聯(lián)邦學(xué)習(xí)概念。

經(jīng)過我們的了解,其實(shí)聯(lián)邦學(xué)習(xí)目前涉及兩個(gè)不同的概念:

第一種聯(lián)邦學(xué)習(xí),旨在解決云 + 端的訓(xùn)練過程中,端上的隱私不要被暴露的問題,是一個(gè) To C + 數(shù)據(jù)水平切分的場景。除了保護(hù)端上的數(shù)據(jù)隱私外,其重點(diǎn)還在于如何解決訓(xùn)練過程中,端自身可能掉線等問題。

第二種聯(lián)邦學(xué)習(xí)則主要用于解決 To B 場景中各方隱私不泄露的問題,即可以應(yīng)用于數(shù)據(jù)的水平切分場景,也可以應(yīng)用于數(shù)據(jù)垂直切分的場景。

它們側(cè)重于不同的數(shù)據(jù)共享場景,采用不同的技術(shù),相比之下,螞蟻金服的共享學(xué)習(xí)兼容多種安全計(jì)算技術(shù),并且支持多種機(jī)器學(xué)習(xí)算法和使用場景。

除此之外,共享學(xué)習(xí)和聯(lián)邦學(xué)習(xí)的差異在于:

聯(lián)邦學(xué)習(xí)只解決數(shù)據(jù)不出域的情況,這就限制了其可以使用的技術(shù)(只有嚴(yán)格的 MPC 算法才符合這個(gè)要求),而共享學(xué)習(xí)目前基于 TEE 的集中式共享學(xué)習(xí)技術(shù),是聯(lián)邦學(xué)習(xí)沒有涉及的;

聯(lián)邦學(xué)習(xí)講究的是參與各方的“身份和地位”的相同,所以叫聯(lián)邦;而共享學(xué)習(xí)則不強(qiáng)調(diào)各共享方的地位對等,在很多場景下,不同的參與方是擁有不同的角色的。

目前,數(shù)據(jù)共享下的機(jī)器學(xué)習(xí)仍然還有很多可突破的地方,這些不同只是對當(dāng)前狀態(tài)的一個(gè)比較,希望大家能對共享學(xué)習(xí)有更好的理解。

未來展望

讓數(shù)據(jù)孤島在安全環(huán)境下進(jìn)行連接、合作、共創(chuàng)、賦能,是螞蟻金服共享機(jī)器學(xué)習(xí)的核心使命。

共享機(jī)器學(xué)習(xí)作為一個(gè)安全與 AI 的交叉學(xué)科,正在越來越受到關(guān)注,尤其是在金融行業(yè),有著廣闊的應(yīng)用空間。但是,這個(gè)領(lǐng)域的各項(xiàng)技術(shù),也遠(yuǎn)未到成熟的階段。我們團(tuán)隊(duì)經(jīng)過兩年的摸索,也只是取得了階段性的一些成果,在算法的計(jì)算性能以及支持算法的多樣性等各個(gè)方面,還有一段路要走。

9 月 27 日杭州云棲大會,螞蟻金服將向外界首次分享共享學(xué)習(xí)的理念和實(shí)踐,歡迎屆時(shí)關(guān)注。后續(xù)我們也會分享更多共享學(xué)習(xí)方面的研究進(jìn)展及實(shí)踐經(jīng)驗(yàn), 歡迎業(yè)界同仁交流探討,共同探索更多更強(qiáng)的數(shù)據(jù)孤島解決方案,推進(jìn)數(shù)據(jù)共享下的機(jī)器學(xué)習(xí)在更多場景下落地。

標(biāo)簽: 機(jī)器學(xué)習(xí) 數(shù)據(jù)孤島

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:關(guān)于機(jī)器學(xué)習(xí)的知識點(diǎn),全在這篇文章里了

下一篇:不可不知的數(shù)據(jù)科學(xué)入門數(shù)學(xué)指南