一韵卤、說明
Fate
是一個(gè)工業(yè)級(jí)聯(lián)邦學(xué)習(xí)框架,所謂聯(lián)邦學(xué)習(xí)指的就是可以聯(lián)合多方的數(shù)據(jù)着撩,共同構(gòu)建一個(gè)模型诅福;
與傳統(tǒng)數(shù)據(jù)使用方式相比,它不需要聚合各方數(shù)據(jù)搭建 數(shù)據(jù)倉庫拖叙,聯(lián)邦學(xué)習(xí)在聯(lián)合計(jì)算建模的過程中氓润,多方機(jī)構(gòu)之間的數(shù)據(jù)是不會(huì)進(jìn)行共享的,實(shí)現(xiàn)數(shù)據(jù)的 可用不可見憋沿;本文主要分享隱私計(jì)算平臺(tái) Fate
的相關(guān)基本概念,以及基于 Docker 的單機(jī)部署沪猴。
?
二辐啄、隱私計(jì)算
隱私計(jì)算
是指在保護(hù)數(shù)據(jù)本身不對外泄露的前提下實(shí)現(xiàn)數(shù)據(jù)分析計(jì)算的技術(shù)集合,實(shí)現(xiàn)數(shù)據(jù)的 可用不可見 的目的运嗜;在充分保護(hù)數(shù)據(jù)和隱私安全的前提下壶辜,實(shí)現(xiàn)數(shù)據(jù)價(jià)值的轉(zhuǎn)化和釋放。
圖靈獎(jiǎng)得主姚期智院士在1982年提出的 百萬富翁
問題:
假設(shè)有兩個(gè)百萬富翁担租,都想比較誰更富有砸民,但是他們都想保護(hù)自己的 隱私 不愿意讓對方或者任何第三方知道自己真正擁有多少錢。如何在保護(hù)雙方隱私的情況下奋救,計(jì)算出誰更有錢呢岭参?
此問題開創(chuàng)了安全多方計(jì)算領(lǐng)域,在如今以區(qū)塊鏈為先導(dǎo)的一系列可信架構(gòu)中尝艘,多方計(jì)算問題是建立機(jī)器信任的關(guān)鍵技術(shù)之一演侯。
目前實(shí)現(xiàn)隱私計(jì)算的主流技術(shù)主要分為三大方向:第一類是以 多方安全計(jì)算
為代表的基于密碼學(xué)的隱私計(jì)算技術(shù);第二類是以 聯(lián)邦學(xué)習(xí)
為代表的人工智能與隱私保護(hù)技術(shù)融合衍生的技術(shù)背亥;第三類是以 可信執(zhí)行環(huán)境
為代表的基于可信硬件的隱私計(jì)算技術(shù)秒际。
不同技術(shù)往往可以 組合 使用悬赏,在保證原始數(shù)據(jù)安全和隱私性的同時(shí),完成對數(shù)據(jù)的計(jì)算和分析任務(wù)娄徊。
?
三闽颇、聯(lián)邦學(xué)習(xí)
在聯(lián)邦學(xué)習(xí)當(dāng)中主要有兩種模式:
橫向聯(lián)邦
指的是在聯(lián)合的多方當(dāng)中,特征 是相同的寄锐,但是 用戶 不一樣兵多;那么通過聯(lián)合呢,就可以在訓(xùn)練模型時(shí) 擴(kuò)展樣本數(shù)量锐峭;
例如:有兩家不同地區(qū)銀行(北京與廣州)由于銀行間的業(yè)務(wù)相似中鼠,所以數(shù)據(jù)的特征(字段)大概率是相同的;但是它們的用戶群體分別來自北京與廣州的居住人口沿癞,用戶的交集相對較性汀;這種場景就比較適合使用 橫向聯(lián)邦 用于增加模型訓(xùn)練的用戶數(shù)據(jù) 擴(kuò)展數(shù)據(jù)量椎扬。
縱向聯(lián)邦
指的是在聯(lián)合的多方當(dāng)中惫搏,各方的 用戶 重疊較多,但是它們的 特征 是不一樣的蚕涤,那么通過聯(lián)合呢筐赔,就可以在訓(xùn)練模型時(shí) 擴(kuò)展特征維度;
例如:同一地區(qū)的商場與銀行揖铜,它們的用戶群體很有可能包含該地的大部分居民茴丰,用戶的交集可能較大;由于銀行記錄的都是用戶的收支行為與信用評級(jí)天吓,而商場則保有用戶的購買歷史贿肩,因此它們的用戶特征交集較小龄寞;這種場景就比較適合使用 縱向聯(lián)邦 用于增加模型訓(xùn)練的特征數(shù)量 擴(kuò)展模型能力汰规。
?
四、Fate
FATE
(Federated AI Technology Enabler)是微眾銀行人工智能團(tuán)隊(duì)自研的全球首個(gè)聯(lián)邦學(xué)習(xí)工業(yè)級(jí)開源框架物邑,它提供一種基于數(shù)據(jù)隱私保護(hù)的安全計(jì)算框架溜哮,為機(jī)器學(xué)習(xí)、深度學(xué)習(xí)色解、遷移學(xué)習(xí)算法提供強(qiáng)有力的安全計(jì)算支持茂嗓。并內(nèi)置保護(hù)線性模型,樹模型以及神經(jīng)網(wǎng)絡(luò)在內(nèi)的多種機(jī)器學(xué)習(xí)算法科阎。
github地址:https://github.com/FederatedAI/FATE
在 Fate 里面存在以下三種角色:
Guest
為數(shù)據(jù)的應(yīng)用方在抛,指的是在實(shí)際的建模場景中有業(yè)務(wù)需求去應(yīng)用這些數(shù)據(jù);并且在縱向算法中萧恕,Guest 往往是有標(biāo)簽 y 的一方刚梭。
Host
為數(shù)據(jù)的提供方肠阱,通常它只是一個(gè)合作的機(jī)構(gòu)負(fù)責(zé)提供數(shù)據(jù)來輔助 guest 完成這個(gè)建模,只是幫助提升訓(xùn)練效果朴读。
Arbiter
為第三方協(xié)作者屹徘,用來輔助多方完成聯(lián)合建模的,不提供數(shù)據(jù)主要是負(fù)責(zé)發(fā)放公鑰衅金,加解密噪伊,還有聚合模型等功能。
?
五氮唯、部署
5.1. 安裝鏡像
首先設(shè)置環(huán)境變量 version
用于后面指定 Fate
的版本鉴吹,執(zhí)行以下命令:
export version=1.8.0
使用的是當(dāng)前最新版本,可按需修改惩琉。
鏡像有 兩種安裝 方式豆励,選其一即可;
方式一 如果服務(wù)器能訪問公網(wǎng)的話瞒渠,可直接拉取騰訊云容器鏡像:
docker pull federatedai/standalone_fate:${version}
docker tag ccr.ccs.tencentyun.com/federatedai/standalone_fate:${version} federatedai/standalone_fate:${version}
方式二 如果服務(wù)器沒有公網(wǎng)良蒸,則可以通過下載鏡像然后導(dǎo)入的方式:
在有網(wǎng)絡(luò)的機(jī)器上下載鏡像包:
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/fate/${version}/release/standalone_fate_docker_image_${version}_release.tar.gz
在目標(biāo)機(jī)器導(dǎo)入鏡像:
docker load -i standalone_fate_docker_image_${version}_release.tar.gz
查看已安裝的鏡像:
docker images | grep federatedai/standalone_fate
?
5.2. 啟動(dòng)容器
執(zhí)行以下命令啟動(dòng):
docker run -d --name standalone_fate -p 8080:8080 federatedai/standalone_fate:${version};
?
六、測試
Fate 里面自帶了測試任務(wù)伍玖;
首先執(zhí)行以下命令嫩痰,進(jìn)入 Fate 的容器中:
docker exec -it $(docker ps -aqf "name=standalone_fate") bash
執(zhí)行以下命令,啟動(dòng) toy 測試:
flow test toy -gid 10000 -hid 10000
成功后顯示以下內(nèi)容:
success to calculate secure_sum, it is 2000.0
?
七窍箍、圖形化界面
FATE Board
是 Fate 里面負(fù)責(zé)可視化的服務(wù)組件串纺,在單機(jī)版容器中已經(jīng)集成了該服務(wù),可以通過 8080
端口訪問:
賬號(hào)和密碼都是
admin
通過右上角的 JOBS
按鈕可以查看我們 Toy測試
所運(yùn)行的任務(wù):
因?yàn)槭锹?lián)邦學(xué)習(xí)所以看到 guest 和 host 兩方角色的任務(wù)椰棘。