人工智能目前存在的難題是魚與熊掌不可兼得,也就是隱私性跟可用性難以兼顧。若是想要AI系統發揮做用,就可能須要犧牲隱私。可是,在大量真實場景中,若是作不到同時兼顧隱私和可用性,會致使不少AI落地的困境。
隨着對數據安全和重視和隱私保護法案的出臺,曾經粗放式的數據共享受到挑戰,各個數據擁有者從新回到數據孤島的狀態。同時,互聯網公司也更加難以收集和利用用戶的隱私數據,數據孤島反而成爲了常態。若是但願更好的利用數據,就必須在知足隱私保護和數據安全的前提下,在不一樣的組織、公司與用戶之間進行數據共享。 算法
爲了解決這一問題,國內外很多科技公司前後推出瞭解決方案,好比谷歌推出的聯邦學習、螞蟻金服提出的共享智能等。本文,InfoQ對螞蟻金服機器學習算法中臺負責人周俊進行了採訪,瞭解共享智能如何解決金融領域的數據共享問題。安全
在介紹技術實踐以前,咱們須要花些時間釐清共享智能與聯邦學習之間的區別,以方便讀者瞭解本文的討論範圍。服務器
當前,業界解決隱私泄露和數據濫用的數據共享技術路線主要有兩條。一條是基於硬件可信執行環境(TEE:Trusted Execution Environment)技術的可信計算,另外一條是基於密碼學的多方安全計算(MPC:Multi-party Computation)。網絡
TEE字面意思是可信執行環境,核心概念爲以第三方硬件爲載體,數據在由硬件建立的可信執行環境中進行共享。目前在生產環境可用的TEE技術,比較成熟的基本只有Intel的SGX技術,基於SGX技術的各類應用也是目前業界的熱門方向,微軟、谷歌等公司在這個方向上都有所投入。架構
MPC(Multi-party Computation,多方安全計算)一直是學術界比較火的話題,但在工業界的存在感較弱,以前都是一些創業小公司在這個方向上有一些探索,例如Sharemind,Privitar,直到谷歌提出了基於MPC的在我的終端設備的「聯邦學習」(Federated Learning)的概念,使得MPC技術一晚上之間在工業界火了起來。負載均衡
當前,業界針對數據共享場景,利用如上技術路線推出了一些解決方案,包括隱私保護機器學習PPML、聯邦學習、競合學習、可信機器學習等,不一樣解決方案採用的技術路線相互也會有一些重疊。周俊表示,螞蟻金服提出的共享智能(又稱:共享機器學習)結合了TEE與MPC兩條路線,同時結合螞蟻的自身業務場景特性,聚焦於金融行業的應用。框架
簡單來講,共享智能的概念,或者說理念,是但願在多方參與且各數據提供方與平臺方互不信任的場景下,可以聚合多方信息進行分析和機器學習,並確保各參與方的隱私不被泄漏,信息不被濫用。機器學習
關於共享智能與聯邦學習的差別,周俊表示,目前,聯邦學習涉及兩個不一樣的概念:分佈式
第一種是谷歌提出的聯邦學習,旨在解決雲 + 端訓練過程當中,端上隱私不暴露的問題,這是一個 To C + 數據水平切分的場景。除了保護端上的數據隱私外,其重點還在於如何解決訓練過程當中,端自身可能掉線等問題。 函數
第二種是國內提出的聯邦學習,主要用於解決 To B 場景中各方隱私不泄露的問題,既可應用於數據的水平切分場景,也可應用於數據垂直切分的場景。它們側重於不一樣的數據共享場景,技術上有不一樣的側重點。
2019年,一篇由多個知名大學和企業撰寫的關於聯邦學習的綜述文章《Advances and Open Problems in Federated Learning》,對聯邦學習的定義和描述是比較清晰的。首先,聯邦學習的架構是由一臺中心服務器和多個計算節點構成,中心服務器會參與到整個計算過程,所以不適用於一些不須要中心服務器節點的應用場景(文章中將這種模式稱爲Fully Decentralized Distributed Learning )。此外,聯邦學習要求原始數據不能出域,這也限制了其可使用的技術方案,而共享智能是從問題出發,做爲一個新興的技術領域,在面臨當前各類複雜場景的時候,很難用一套技術方案去解決全部問題,所以共享智能的解決方案中不只包含有相似聯邦學習的有中心服務器參與計算的模式,也包含徹底去中心化的方案,還有基於TEE的共享學習方案。
在不一樣的場景下,不一樣的方案各有優劣。周俊表示,目前,數據共享下的機器學習仍然還有不少待突破的地方,咱們並不糾結於解決問題的是聯邦學習仍是去中心化的分佈式學習,或者是其它任何技術方案,最終仍是但願你們可以協力解決這個業界難題。
2016年開始,螞蟻金服就開始投入到共享智能的研究中,出發點是爲了解決業務中遇到的問題,好比機構與螞蟻金服的信息協同問題。基於此,螞蟻金服調研了差分隱私、矩陣變換等多種方案,肯定了目前的技術大方向。
縱觀整個研發階段,周俊認爲大體能夠分爲探索期、技術攻堅和技術應用三個時期。
在共享智能的技術細節上,周俊表示,能夠按照TEE和MPC兩條路線來理解。
螞蟻共享學習底層使用Intel的SGX技術,並可兼容其它TEE實現。下面着重介紹一下
基於TEE的共享學習中的一種數據加密出域的方案,目前,這種方案已支持集羣化的模型在線預測和離線訓練。
1. 模型在線預測
預測一般是在線服務。相對於離線訓練,在線預測在算法複雜度上面會相對簡單,可是對穩定性的要求會更高。提高在線服務穩定性的關鍵技術之一就是集羣化的實現——經過集羣化解決負載均衡,故障轉移,動態擴容等穩定性問題。
但因爲SGX技術自己的特殊性,傳統的集羣化方案在SGX上沒法工做。
爲此,螞蟻金服設計了以下分佈式在線服務基本框架:
該框架與傳統分佈式框架不一樣的地方在於,每一個服務啓動時會到集羣管理中心(ClusterManager,簡稱CM)進行註冊,並維持心跳,CM發現有多個代碼相同的Enclave進行了註冊後,會通知這些Enclave進行密鑰同步,Enclave收到通知後,會經過遠程認證相互確認身份。當確認彼此的Enclave簽名徹底相同時,會經過安全通道協商並同步密鑰。
2. 模型離線訓練
模型訓練階段,除了基於自研的訓練框架支持了LR和GBDT的訓練外,螞蟻金服還藉助於LibOS Occlum(螞蟻主導開發,已開源)和自研的分佈式組網系統,成功將原生Xgboost移植到SGX內,並支持多方數據融合和分佈式訓練。經過上述方案,不只能夠減小大量的重複性開發工做,而且在Xgboost社區有了新的功能更新後,能夠在SGX內直接複用新功能,無需額外開發。目前,螞蟻金服正在利用這套方案進行TensorFlow框架的遷移。
此外,針對SGX當下詬病的128M內存限制問題(超過128M會觸發換頁操做,致使性能大幅降低),螞蟻金服經過算法優化和分佈式化等技術,大大下降內存限制對性能的影響。
上述方案在多方數據共享學習訓練流程以下:
1. 機構用戶從Data Lab下載加密工具
2. 使用加密工具對數據進行加密,加密工具內嵌了RA流程,確保加密信息只會在指定的Enclave中被解密
3. 用戶把加密數據上傳到雲端存儲
4. 用戶在Data Lab的訓練平臺進行訓練任務的構建
5. 訓練平臺將訓練任務下發到訓練引擎
6. 訓練引擎啓動訓練相關的Enclave,並從雲端存儲讀取加密數據完成指定的訓練任務。
此外,針對有一些數據提供方不但願數據出域的場景,螞蟻還提供了使用TEE對訓練過程當中的參數信息進行加密的技術方案,篇幅緣由,就不在這裏展開了。
螞蟻基於MPC的共享學習框架分爲三層:
目前,這套基於MPC的共享學習框架已支持了包括LR、GBDT、DNN等頭部算法,後續一方面會繼續根據業務需求補充更多的算法,同時也會爲各類算子提供更多的技術實現方案,以應對不一樣的業務場景.
基於MPC的多方數據共享學習訓練流程以下:
1. 機構用戶從Data Lab下載訓練服務並本地部署
2. 用戶在Data Lab的訓練平臺上進行訓練任務的構建
3. 訓練平臺將訓練任務下發給訓練引擎
4. 訓練引擎將任務下發給機構端的訓練服務器Worker
5. Worker加載本地數據
6. Worker之間根據下發的訓練任務,經過多方安全協議交互完成訓練任務
訓練引擎的具體架構以下:
其中Coordinator部署於螞蟻平臺,用於任務的控制和協調,自己並不參與實際運算。Worker部署在參與多方安全計算的機構,基於安全多方協議進行實際的交互計算。
用戶在建模平臺構建好的訓練任務流會下發給Coordinator的Task Flow Manager,Task Flow Manager會把任務進行拆解,經過Task Manager把具體算法下發給Worker端的Task Executor,Task Executor根據算法圖調用Worker上的安全算子完成實際的運算。
利用這套方法,能夠作到數據不出域就能夠完成數據共享,訓練工具能夠部署在本地的服務器。
不管是聯邦學習仍是共享智能,不少技術實踐都優先選擇了在金融領域落地。相較於其餘領域,金融領域對數據的管控更爲嚴格,對數據隱私更加劇視,所以也是最須要經過技術手段解決數據孤島問題的領域。
周俊表示,在金融領域,共享智能側重在解決「開放」這個大領域中的問題,好比聯合營銷、聯合風控等,這兩個場景相對更容易看到具體實施效果。相比其餘領域,金融領域對數據保護看的更重,數據的流轉在該領域中更難,所以採用共享智能技術,能夠作到更好的隱私保護,實現數據可用不可見,是一個關鍵的助推器。
舉例來講,經過數據融合,螞蟻金服的共享智能幫助中和農信大幅度提升了風控性能,把原來傳統的線下模式,變成線上自動過審模式,完成授信只需5分鐘,8個月累計放款31.9億,授信成功人數44萬人,業務覆蓋20多個省區,300多縣城,10000多個鄉村。
雖然該技術的落地對金融企業有着重要意義,但不少公司在實際的落地過程當中遇到了問題,多是技術緣由,也多是處於對結果的擔心。
採訪中,周俊表示,共享智能技術屬於交叉領域,涉及到密碼學、機器學習等技術,有必定的門檻,企業部署這樣的技術,須要結合自身技術能力以及業務需求來綜合考量。固然,螞蟻金服也在積極探索下降企業落地門檻的技術和方案,隨着愈來愈多的企業一塊兒參與進來,相信不遠的未來,共享智能的技術落地將再也不會有過高的門檻。
此外,螞蟻金服的共享智能是一個開放的生態,但願更多的企業能參與進來一塊兒共建,而不須要從新再去走螞蟻金服以前走過的不少彎路。金融企業能夠根據自身業務發展的須要,及時跟進業界最新進展,從而選擇更合適的技術和合做方來解決業務難題。可以讓業務贏,解決業務痛點,是這裏面最重要的因素。
更爲重要的是,共享智能解決的是信任問題,因此大規模落地的前提是用戶對共享智能有一個全面的認知和信任。螞蟻金服經過立標杆、推標準、定向開源等方式來逐步創建用戶對共享智能的信任。目前,螞蟻金服已經在智能信貸領域的多家機構落地了標杆型業務場景。同時,牽頭在推動共享智能的行業標準、聯盟標準、國家標準以及IEEE、ITU-T等國際標準。周俊表示,咱們相信,隨着技術和用戶心智的同步發展,共享智能的大規模落地將會很快發生,而最早受益的,是數據驅動的、而且對隱私保護有強需求的金融科技和醫療科技行業。
面向將來,周俊表示,重點仍是繼續推進全行業共同解決數據共享問題。螞蟻金服會逐步開放技術能力,賦能行業中有需求的企業,同時會聯合更多單位,包括研究機構、企業等共同推動解決技術難題。最終但願全行業可以共同打造一個能夠在保護用戶隱私和防止數據濫用的前提下實現數據互聯互通的共享智能網絡,更好的實現普惠金融。
周俊,負責螞蟻金服機器學習算法中臺,包括共享機器學習、圖機器學習、自動機器學習、對抗機器學習等方向。在阿里8年多時間裏,開發過阿里雲-飛天分佈式操做系統、大數據處理平臺MaxCompute以及人工智能平臺PAI,作過廣告、推薦、搜索等CTR預估方面的工做,目前聚焦在將智能技術更好應用在用戶增加、風險智能等核心場景上。