Opacus 是 Facebook AI 更為廣泛努力的一部分,旨在推動用于機器學(xué)習(xí)和負責(zé)任的人工智能安全計算技術(shù)??偟膩碚f,這是一個重要的踏腳石,使該領(lǐng)域在未來轉(zhuǎn)向隱私優(yōu)先的系統(tǒng)。日前,Opacus 已開源發(fā)布。
差分隱私(Differential privacy,DP)是密碼學(xué)中的一種手段,旨在提供一種當(dāng)從統(tǒng)計數(shù)據(jù)庫查詢時,最大化數(shù)據(jù)查詢的準(zhǔn)確性,同時最大限度減少識別其記錄的機會。讀者可以查看這篇由 InfoQ 中文站翻譯的文章《差分隱私簡介》,以了解基本概念。
機器學(xué)習(xí)算法一般是用大量數(shù)據(jù)更新模型參數(shù),學(xué)習(xí)數(shù)據(jù)特征。在理想情況下,這些算法學(xué)習(xí)到一些泛化性較好的模型,例如 “吸煙患者更容易得肺癌”,而不是特定的個體特征,例如 “張三是個吸煙者,患有肺癌”。然而,機器學(xué)習(xí)算法并不會區(qū)分通用特征還是個體特征。當(dāng)我們用機器學(xué)習(xí)來完成某個重要任務(wù),例如肺癌診斷,發(fā)布的機器學(xué)習(xí)模型可能在無意中透露訓(xùn)練集中的個體特征,惡意攻擊者可能從發(fā)布的模型獲得關(guān)于張三的隱私信息,因此使用差分隱私技術(shù)來保護機器學(xué)習(xí)模型是十分必要的。
通常,差分隱私需要在將原始數(shù)據(jù)輸入本地機器學(xué)習(xí)模型之前,將少量噪聲注入原始數(shù)據(jù),從而使惡意攻擊者難以從訓(xùn)練的模型中提取出原始文件。如果一個觀察者觀察算法的輸出,無法判斷它在計算中是否使用了某個特定個體的信息,那么這個算法就可以被認為是差分隱私的。
為了解決這一問題,日前,F(xiàn)acebook 發(fā)布并開源了Opacus,這是一個新的高速庫,用于訓(xùn)練具有差分隱私的 PyTorch 模型,比現(xiàn)有的最先進方法更具可擴展性。差分隱私是一個數(shù)學(xué)上嚴(yán)謹?shù)目蚣埽糜诹炕舾袛?shù)據(jù)的匿名化。人們對機器學(xué)習(xí)社區(qū)的興趣越來越濃厚,它經(jīng)常被用于分析。隨著 Opacus 的發(fā)布,F(xiàn)acebook 希望能為研究人員和工程師在機器學(xué)習(xí)中采用差分隱私提供一條更簡單的路徑,并加速該領(lǐng)域的差分隱私研究。
Opacus 地址
Opacus 提供了如下特征:
速度:通過利用 PyTorch 中的 Autograd 鉤子,Opacus 可以計算經(jīng)過批處理的每個樣本梯度,與現(xiàn)有的依賴微批處理的 DP 庫相比,速度提高了一個數(shù)量級。
安全性:Opacus 為安全關(guān)鍵代碼使用了一個 密碼安全、偽隨機、GPU 加速的數(shù)字數(shù)生成器。
靈活性:多虧了 PyTorch,工程師和研究人員可以通過將 Facebook 的代碼與 PyTorch 代碼和純 Python 代碼混合匹配,從而快速構(gòu)建他們的想法原型。
生產(chǎn)力:Opacus 提供了教程、輔助函數(shù)(可以在你的訓(xùn)練開始之前警告不兼容的層),以及自動重構(gòu)機制。
交互性:Opacus 可以跟蹤你在任何給定時間點上的隱私預(yù)算(差分隱私中的核心數(shù)學(xué)概念),從而實現(xiàn)提前停止和實時監(jiān)控。
Opacus 通過引入 PrivacyEngine 抽象定義了一個輕量級 API,它負責(zé)跟蹤隱私預(yù)算和處理模型的梯度。你不需要直接調(diào)用它進行操作,因為它連接到標(biāo)準(zhǔn)的 PyTorch 優(yōu)化器上。它在幕后工作,使得使用 Opacus 進行訓(xùn)練就像在你的訓(xùn)練代碼的開頭添加這些代碼行一樣容易:
model = Net() optimizer = torch.optim.SGD(model.parameters(), lr=0.05) privacy_engine = PrivacyEngine( model, batch_size=32, sample_size=len(train_loader.dataset), alphas=range(2,32), noise_multiplier=1.3, max_grad_norm=1.0, ) privacy_engine.attach(optimizer) # That's it! Now it's business as usual
經(jīng)過訓(xùn)練,得到的是一個標(biāo)準(zhǔn)的 PyTorch 模型,沒有部署私有模型的額外步驟或障礙:如果今天可以部署一個模型,那么你就可以在用差分隱私訓(xùn)練后部署它,無需更改任何一行代碼。
Opacus 庫還包括預(yù)訓(xùn)練和微調(diào)的模型、針對大型模型的教程,以及為隱私研究實驗設(shè)計的基礎(chǔ)設(shè)置。它是開源的【地址】
利用 Opacus 實現(xiàn)高速隱私訓(xùn)練
Facebook 表示,他們使用 Opacus 的目的是保護每個訓(xùn)練樣本的隱私,同時限制對最終模型正確率的影響。Opacus 通過修改標(biāo)準(zhǔn) PyTorch 優(yōu)化器來實現(xiàn)這一目標(biāo),以便在訓(xùn)練期間執(zhí)行(和測量)查分意思。更具體地說,他們的方法以差分隱私隨機梯度下降(Differentially private stochastic gradient descent,DP-SGD)為中心。
這個算法背后的核心思想是,可以通過干預(yù)模型用來更新權(quán)重的參數(shù)梯度,而不是直接干預(yù)數(shù)據(jù),從而保護訓(xùn)練數(shù)據(jù)集的隱私。通過在每次迭代中想梯度添加噪聲,人們就可以防止模型記憶其訓(xùn)練實例,同時仍然可以進行融合學(xué)習(xí)。在訓(xùn)練過程中看到的許多批處理中,(無偏的)噪聲將自然地趨于抵消。
這種每個樣本的計算是構(gòu)建 Opacus 的最大障礙之一。與使用 PyTorch 的典型操作相比,它更具挑戰(zhàn)性,因為在 PyTorch 中,Autograd計算整個批處理的梯度張量,因為這對于所有其他機器學(xué)習(xí)用例都是有意義的,并且它對性能進行了優(yōu)化。為克服這一問題,F(xiàn)acebook 使用了一種有效的技術(shù),在訓(xùn)練標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)時獲得所有需要的梯度向量。對于模型參數(shù),則單獨返回給定批處理中每個示例的損失梯度,例如:
通過在運行層時跟蹤一些中間量,人們可以使用適合內(nèi)存的任何批處理大小進行訓(xùn)練,這使得 Facebook 的方法與其他軟件包中使用的替代微批處理方法相比,速度提高了一個數(shù)量級。
隱私保護機器學(xué)習(xí)的重要性
安全社區(qū)鼓勵安全關(guān)鍵代碼的開發(fā)者使用少量經(jīng)過仔細審核和專業(yè)維護的庫。這種“不要自己搞安全方案”原則有助于最大限度地減少攻擊面,讓應(yīng)用開發(fā)人員專注于他們最擅長的事情:構(gòu)建偉大的產(chǎn)品。隨著機器學(xué)習(xí)的應(yīng)用和研究不斷加速,對于機器學(xué)習(xí)研究人員來說,在不減慢訓(xùn)練過程的前提下,獲得簡單易用的工具,以獲得數(shù)學(xué)上嚴(yán)格的隱私保證是非常重要的。
Facebook 希望通過開發(fā)像 Opacus 這樣的 PyTorch 工具,使此類隱私保護資源的訪問更加民主化。Facebook 正在通過使用 PyTorch 的更快速、更靈活的平臺,彌合安全社區(qū)和普通機器學(xué)習(xí)工程師之間的鴻溝。
建立社區(qū)
過去幾年,隱私保護機器學(xué)習(xí)(Privacy-preserving machine learning,PPML)社區(qū)發(fā)展迅速。Facebook 表示他們對圍繞 Opacus 形成的生態(tài)系統(tǒng)感到興奮,這個生態(tài)系統(tǒng)由 PPML 的領(lǐng)導(dǎo)者組成。
OpenMined 是 Facebook 的主要貢獻者之一,它是一個由數(shù)千名開發(fā)者組成的社區(qū),他們在開發(fā)應(yīng)用時考慮到了隱私問題。OpenMined 社區(qū)已經(jīng)為 CrypTen 做出了貢獻,并利用 PyTorch 的許多構(gòu)件來支持 PySyft 和 PyGrid 的差分隱私和聯(lián)合學(xué)習(xí)。作為合作的一部分,Opacus 將成為 PySyft 等 OpenMined 庫的依賴。
Facebook 期待繼續(xù)合作,進一步發(fā)展社區(qū)。
文章來源:AI前線 ,作者Davide Testuggine、Ilya Mironov
審核編輯 黃昊宇
-
人工智能
+關(guān)注
關(guān)注
1796文章
47734瀏覽量
240400 -
開源
+關(guān)注
關(guān)注
3文章
3409瀏覽量
42723 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13373
發(fā)布評論請先 登錄
相關(guān)推薦
Facebook智能音箱可能先在國際市場推出 隱私問題受到關(guān)注
美國智能音箱Facebook信任度墊底
基于差分隱私的軌跡模式挖掘算法
![基于<b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>隱私</b>的軌跡模式挖掘算法](https://file.elecfans.com/web2/M00/49/67/poYBAGKhwK6ACdq2AAAdO35S9zI017.jpg)
基于差分隱私的數(shù)據(jù)匿名化隱私保護模型
![基于<b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>隱私</b>的數(shù)據(jù)匿名化<b class='flag-5'>隱私</b>保護模型](https://file.elecfans.com/web2/M00/49/7A/poYBAGKhwLuAG9tzAAAX77w13Ns579.jpg)
線性查詢的一種近似最優(yōu)差分隱私機制
一種軌跡差分隱私發(fā)布方法
![一種軌跡<b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>隱私</b>發(fā)布方法](https://file.elecfans.com/web1/M00/44/FE/o4YBAFpe6UKAd3MIAABB0ogTOu4795.jpg)
Facebook致力AI開源PyTorch 1.0 AI框架
Facebook致力AI 開源PyTorch1.0 AI框架
Facebook宣布發(fā)布深度學(xué)習(xí)框架 PyTorch 1.0開發(fā)者預(yù)覽版
如何使用差分隱私保護進行譜聚類算法
![如何使用<b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>隱私</b>保護進行譜聚類算法](https://file.elecfans.com/web1/M00/7E/08/o4YBAFwTHvGAWSJHAAA_TR9WZo0537.png)
Facebook與CMU聯(lián)手打造開源框架PyRobot
基于ExtraTrees的差分隱私保護算法DiffPETs
蘋果的差分隱私技術(shù)原理詳解
![蘋果的<b class='flag-5'>差</b><b class='flag-5'>分</b><b class='flag-5'>隱私</b>技術(shù)原理詳解](https://file1.elecfans.com/web2/M00/8D/20/wKgaomS3SIuAcjIEAAAriDZZRiI966.png)
評論