<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 智能計算 > 市場分析 > 矩陣元算法科學家謝翔:Rosetta如何連接隱私計算與AI?

          矩陣元算法科學家謝翔:Rosetta如何連接隱私計算與AI?

          作者:云風(凹非寺) 時間:2020-08-11 來源:量子位 收藏

          大家好,我是謝翔,來自矩陣元。今天很高興能夠與大家分享矩陣元最近的一些研究成果。主要的方向是,以及基于密碼學的隱私開源框架—。

          本文引用地址:http://www.ex-cimer.com/article/202008/416951.htm

          時代來臨?

          目前數(shù)據(jù)面臨著一些挑戰(zhàn)。隨著數(shù)字化的發(fā)展,數(shù)據(jù)量指數(shù)級增加,一些核心的、關鍵的數(shù)據(jù)保護做得遠遠不夠。目前來看,隨著數(shù)據(jù)的生產(chǎn)要素化,不論國內國外對整個數(shù)據(jù)相關方向的關注程度越來越高,當然其中也有越來越多的挑戰(zhàn)。而眾多挑戰(zhàn)之中我們認為其中最關鍵的一點就是數(shù)據(jù)隱私。

          的角度來看,需要用數(shù)據(jù)來“喂”,只有通過足夠多的數(shù)據(jù)或多樣化的數(shù)據(jù),才能訓練出一個相對較好的模型使用。所以隨著數(shù)據(jù)量的增大、數(shù)據(jù)多樣化的增加,以及隨著數(shù)據(jù)隱私的關注程度越來越高,面臨著一個所謂的“窘境”——從AI角度來看,數(shù)據(jù)的多樣化程度越高,對于整個模型的訓練更有好處,模型精度也會相應提高。

          所以這給AI帶來了一系列問題。如何能夠在保護數(shù)據(jù)隱私的前提下,把各不同源、不同企業(yè)之間的數(shù)據(jù)能夠融合運用?在目前傳統(tǒng)的技術方法里很難解決這個問題,所以成為了AI可能面臨的一大痛點。因此也引出了“”的概念。

          關于隱私計算,簡單來說就是保證數(shù)據(jù)在使用和融合過程中,保護隱私的綜合性技術,而不是簡單的一項技術。隱私計算大致分為三類:

          第一是密碼學,第二是聯(lián)邦學習(Federated Learning),是偏機器學習的技術;第三是可信執(zhí)行環(huán)境(TEE),是硬件安全的技術。當然技術沒有絕對的好壞之分,每個技術都有它的優(yōu)勢和劣勢,所以在很多的綜合性解決方案中,很多技術都是融合在一起使用的。

          密碼學簡單來說是研究各類不同情況下,如何保護數(shù)據(jù)隱私的一類學科。最主要的特點是:所有密碼學的方向,在涉及算法、方案的時候,要先去定義一個安全模型,要定義什么樣才是安全。之后在這個定義之下,會通過一些數(shù)學的方法技巧去證明這個方案是滿足安全定義的,所以它相對來說具有完整的數(shù)學理論基礎的密碼理論。當然它的優(yōu)勢是,密碼學考慮的是一個非常廣泛的場景。所以它能夠更好的適合或適配不同的場景。在某些場景下,能夠做到比較高效。

          當然密碼學也有瓶頸,在部分場景里性能、計算時間、通訊復雜度存在一定的瓶頸。當然更大的瓶頸在于,給沒有密碼學背景的人解釋密碼學原理,是一件難于上青天的事情。

          所以本次分享中,會更傾向于密碼學的介紹,包括密碼學的歷史及主要技術,之后我會對其中的安全多方計算的基本原理做一些簡單的介紹。

          密碼學如何實現(xiàn)隱私保護?

          密碼學中的隱私計算技術,大概分為三大類。分別是:安全多方計算、同態(tài)加密、零知識證明。

          安全多方計算(簡稱MPC),在1982年由姚期智先生提出,緣起于“百萬富翁問題”。此問題講的是有兩個百萬富翁,他們都很有錢,想比誰更有錢,但是又不想把各自的資產(chǎn)告訴對方,也不想找第三方幫他們做比較。所以他們如何能夠在不泄露自己財產(chǎn)的前提之下,知道誰更有錢呢?安全多方計算領域由此開辟。

          抽象的來說,可以理解為有多個本地參與,他們各自都擁有一個隱私的收入,但是他們想去計算一個共同的函數(shù)或者說共同的模型,叫做f。這個f會跟各自的輸入都有關系,然后各自拿到一個結果。所以我們把它抽象出來,如果f是一個比較的函數(shù),模型里面只有兩個人的話,就形成了一個經(jīng)典的百萬富翁問題。

          和我們今天講的內容聯(lián)系起來呢?如果這個f是一個模型或是機器學習的模型,比如說是一個邏輯回歸、是一個CNN,相當于這三方各自都擁有一些數(shù)據(jù),他們想共同訓練這個模型。

          這就對應了今日主題:如何進行隱私 AI 建模的方式?

          也就是說,安全多方計算其實是一個非常廣的概念。從密碼學的角度看,MPC用到機器學習、AI里面,就是一個非常具體的應用了。那么應用運用了何種具體的方式?這就是所要解決的問題。

          如何連接隱私計算與AI?

          講到現(xiàn)在,相信大家一定會遇到一個很大的問題,就是我們很想運用密碼學解決問題,但是如果沒有很高的數(shù)學基礎或者沒有學習過密碼學的話,相關算法實在是門檻太高了。但是一些AI領域的專家、學者對于AI的應用,深度學習、機器學習的框架已經(jīng)非常熟了。所以這兩種具有不同專業(yè)技能的人,之間有很深的溝壑。在現(xiàn)實生活中,急需把這兩種技術做一個融合,但是密碼學相對的技術門檻太高,會影響整個行業(yè)的發(fā)展,也會影響整套隱私計算或者隱私AI的計算技術問題和理論進展。

          所以我們想讓熟悉機器學習,但是對密碼學不了解的用戶能夠將隱私計算技術運用起來。另外對于一些熟悉了AI、或者TensorFlow、Pytorch等機器學習框架的開發(fā)者,讓他們能夠在幾乎不改變開發(fā)習慣的前提下,就可以運用隱私AI的技術。我們需要做這樣一個平臺,或者開源框架,能夠讓不太熟悉密碼學或者根本不懂密碼學的AI層面的開發(fā)者或專家,能夠用上隱私計算技術,這就是我們設計Rosetta的初衷,或者說設計Rosetta的一個根本原則。

          因此Rosetta具備以下特點:易用性,高效性和可擴展性。

          易用性,目前完全復用了TensorFlow接囗。在明文和密文寫模型的時候,TensorFlow的接囗是一樣的,沒有再變。極大地降低了AI工程師使用隱私計算技術的成本。

          高效性,完全兼容原生TensorFlow對數(shù)據(jù)流圖自動執(zhí)行的各種運行時優(yōu)化。我們用C++來實現(xiàn)算法,能夠保持底層算法的高效性。我們同時在跟業(yè)界的密碼學家設計高效前沿的MPC技術,來適配機器學習或者深度學習的一些模型。

          可擴展性,因為在MPC領域算法和協(xié)議非常多,而且涉及不同的場景,可能用不同的算法會有更好的效果。如果有了新的算法過來,Rosetta能夠非常快速的集成到整個框架里面去。

          下面,我們舉例說明一下:

          這里有三個參與方,A、B、C,然后每個人都有一個矩陣Ma、Mb、Mc,之后他們去計算Ma乘Mb乘Mc,他們三個只能知道結果,中間的過程都不知道。在這樣一個場景下,如何運用Rosetta來實現(xiàn)它呢?和TensorFlow明文使用的區(qū)別有兩個,一個是import包和選擇算法,一個是簡單處理隱私輸入,即需要把Rosetta包import進來,選擇算法,然后定義隱私輸入即可。

          Rosetta的架構如下:

          整體而言,Rosetta的框架圖如上圖所示,它包括Python的前端APl,這塊是Rosetta方便用戶使用而特色支持的,然后與TensorFlow的前后端做了適配,同時我們開發(fā)了一個統(tǒng)一的密碼協(xié)議管理層,可以去適配不同的密碼協(xié)議。

          我們的目標是既能夠讓懂密碼學的開發(fā)者把現(xiàn)在的東西復用到整個框架里來,也能夠讓不懂密碼學的AI開發(fā)者能夠無門檻的或者非常低門檻的去使用隱私計算技術,相當于把密碼學與機器學習,有機的結合起來。這就是Rosetta的目標。

          下面說一下Rosetta的架構,首先要講TensorFlow架構,TensorFlow架構簡單地說就是一個圖轉化和一個圖執(zhí)行。我們充分利用了TensorFlow架構來進行密碼適配。

          當TensorFlow把那個圖變成下圖左邊標準的傳統(tǒng)圖時,我們去做了一個static pass,把每一個操作全部都轉成SecureOp,這個統(tǒng)稱是為了后面能夠支持密碼算法。

          然后第二步就是圖執(zhí)行,圖執(zhí)行我們運用了dynamic pass,左邊的圖就是剛才轉化之后的圖,然后當數(shù)據(jù)的時候,根據(jù)每一個這樣的圖,dynamic pass可以動態(tài)去適配用某一類密碼協(xié)議去執(zhí)行這個圖。

          我們能夠充分運用TensorFlow框架,同時因為能夠利用整個底層的密碼算法,dynamic pass也可充分利用TensorFlow這種optimizer之間的并行,可以讓它跑得更快。

          下面講一個Rosetta在實際場景落地中的應用案例:金融場景下的應用。銀行A與B,他們各有各的數(shù)據(jù),然后互聯(lián)網(wǎng)公司C也有數(shù)據(jù),大家希望能夠通過Rosetta把模型建起來,比如說訓練邏輯回歸后,把風控模型訓練出來,訓練出一個更加高效的模型。同時保證abc各方數(shù)據(jù)都不會被對方拿到,這種場景下,用Rosetta解決問題非常簡單。

          如上圖,把Rosetta import進來,然后選一個協(xié)議,然后選相應的輸入。后面就是標準的用TensorFlow去回歸,所以后面完全不需要有任何密碼學背景,也可以完全寫出來。在多數(shù)據(jù)融合的訓練場景里,只要Rosetta一個包,然后把數(shù)據(jù)做一些處理。后面整個邏輯回歸的代碼書寫,跟原來的是一模一樣的,甚至可以把代碼直接拷貝過來。這里有一個問題,我們用MPC的方式也就是密文的方式,它的精度與明文的方式有何區(qū)別?

          如上圖,我們做了一個對比,大家可以看到幾乎沒有區(qū)別,基本等價了,所以在設計足夠多的參數(shù)足夠多的精度之后,完全可以保證整個模型的精度。當然還有一個場景就是所謂的模型預測服務。

          最后講一點,Rosetta剛剛開始,目前已經(jīng)開源了0.2.1版本。

          歡迎大家關注Rosetta,Rosetta還是“少年”,我們還在不斷補充功能和迭代優(yōu)化。

          我們非常希望能夠結交對架構設計和集成感興趣的朋友們,或者針對其他框架,本身的開源也有優(yōu)化想法的小伙伴們,大家一起參與進來。

          另外如果有對Rosetta或密碼學感興趣的朋友們,非常歡迎大家一起來交流,謝謝大家!




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();