Opacus 是 Facebook AI 更為廣泛努力的一部分,旨在推動用于機(jī)器學(xué)習(xí)和負(fù)責(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)確性,同時最大限度減少識別其記錄的機(jī)會。讀者可以查看這篇由 InfoQ 中文站翻譯的文章《差分隱私簡介》,以了解基本概念。
機(jī)器學(xué)習(xí)算法一般是用大量數(shù)據(jù)更新模型參數(shù),學(xué)習(xí)數(shù)據(jù)特征。在理想情況下,這些算法學(xué)習(xí)到一些泛化性較好的模型,例如 “吸煙患者更容易得肺癌”,而不是特定的個體特征,例如 “張三是個吸煙者,患有肺癌”。然而,機(jī)器學(xué)習(xí)算法并不會區(qū)分通用特征還是個體特征。當(dāng)我們用機(jī)器學(xué)習(xí)來完成某個重要任務(wù),例如肺癌診斷,發(fā)布的機(jī)器學(xué)習(xí)模型可能在無意中透露訓(xùn)練集中的個體特征,惡意攻擊者可能從發(fā)布的模型獲得關(guān)于張三的隱私信息,因此使用差分隱私技術(shù)來保護(hù)機(jī)器學(xué)習(xí)模型是十分必要的。
通常,差分隱私需要在將原始數(shù)據(jù)輸入本地機(jī)器學(xué)習(xí)模型之前,將少量噪聲注入原始數(shù)據(jù),從而使惡意攻擊者難以從訓(xùn)練的模型中提取出原始文件。如果一個觀察者觀察算法的輸出,無法判斷它在計算中是否使用了某個特定個體的信息,那么這個算法就可以被認(rèn)為是差分隱私的。
為了解決這一問題,日前,F(xiàn)acebook 發(fā)布并開源了Opacus,這是一個新的高速庫,用于訓(xùn)練具有差分隱私的 PyTorch 模型,比現(xiàn)有的最先進(jìn)方法更具可擴(kuò)展性。差分隱私是一個數(shù)學(xué)上嚴(yán)謹(jǐn)?shù)目蚣埽糜诹炕舾袛?shù)據(jù)的匿名化。人們對機(jī)器學(xué)習(xí)社區(qū)的興趣越來越濃厚,它經(jīng)常被用于分析。隨著 Opacus 的發(fā)布,F(xiàn)acebook 希望能為研究人員和工程師在機(jī)器學(xué)習(xí)中采用差分隱私提供一條更簡單的路徑,并加速該領(lǐng)域的差分隱私研究。
Opacus 地址
Opacus 提供了如下特征:
速度:通過利用 PyTorch 中的 Autograd 鉤子,Opacus 可以計算經(jīng)過批處理的每個樣本梯度,與現(xiàn)有的依賴微批處理的 DP 庫相比,速度提高了一個數(shù)量級。
安全性:Opacus 為安全關(guān)鍵代碼使用了一個 密碼安全、偽隨機(jī)、GPU 加速的數(shù)字?jǐn)?shù)生成器。
靈活性:多虧了 PyTorch,工程師和研究人員可以通過將 Facebook 的代碼與 PyTorch 代碼和純 Python 代碼混合匹配,從而快速構(gòu)建他們的想法原型。
生產(chǎn)力:Opacus 提供了教程、輔助函數(shù)(可以在你的訓(xùn)練開始之前警告不兼容的層),以及自動重構(gòu)機(jī)制。
交互性:Opacus 可以跟蹤你在任何給定時間點(diǎn)上的隱私預(yù)算(差分隱私中的核心數(shù)學(xué)概念),從而實(shí)現(xiàn)提前停止和實(shí)時監(jiān)控。
Opacus 通過引入 PrivacyEngine 抽象定義了一個輕量級 API,它負(fù)責(zé)跟蹤隱私預(yù)算和處理模型的梯度。你不需要直接調(diào)用它進(jìn)行操作,因?yàn)樗B接到標(biāo)準(zhǔn)的 PyTorch 優(yōu)化器上。它在幕后工作,使得使用 Opacus 進(jìn)行訓(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í)驗(yàn)設(shè)計的基礎(chǔ)設(shè)置。它是開源的【地址】
利用 Opacus 實(shí)現(xiàn)高速隱私訓(xùn)練
Facebook 表示,他們使用 Opacus 的目的是保護(hù)每個訓(xùn)練樣本的隱私,同時限制對最終模型正確率的影響。Opacus 通過修改標(biāo)準(zhǔn) PyTorch 優(yōu)化器來實(shí)現(xiàn)這一目標(biāo),以便在訓(xùn)練期間執(zhí)行(和測量)查分意思。更具體地說,他們的方法以差分隱私隨機(jī)梯度下降(Differentially private stochastic gradient descent,DP-SGD)為中心。
這個算法背后的核心思想是,可以通過干預(yù)模型用來更新權(quán)重的參數(shù)梯度,而不是直接干預(yù)數(shù)據(jù),從而保護(hù)訓(xùn)練數(shù)據(jù)集的隱私。通過在每次迭代中想梯度添加噪聲,人們就可以防止模型記憶其訓(xùn)練實(shí)例,同時仍然可以進(jìn)行融合學(xué)習(xí)。在訓(xùn)練過程中看到的許多批處理中,(無偏的)噪聲將自然地趨于抵消。
這種每個樣本的計算是構(gòu)建 Opacus 的最大障礙之一。與使用 PyTorch 的典型操作相比,它更具挑戰(zhàn)性,因?yàn)樵?PyTorch 中,Autograd計算整個批處理的梯度張量,因?yàn)檫@對于所有其他機(jī)器學(xué)習(xí)用例都是有意義的,并且它對性能進(jìn)行了優(yōu)化。為克服這一問題,F(xiàn)acebook 使用了一種有效的技術(shù),在訓(xùn)練標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)時獲得所有需要的梯度向量。對于模型參數(shù),則單獨(dú)返回給定批處理中每個示例的損失梯度,例如:
通過在運(yùn)行層時跟蹤一些中間量,人們可以使用適合內(nèi)存的任何批處理大小進(jìn)行訓(xùn)練,這使得 Facebook 的方法與其他軟件包中使用的替代微批處理方法相比,速度提高了一個數(shù)量級。
隱私保護(hù)機(jī)器學(xué)習(xí)的重要性
安全社區(qū)鼓勵安全關(guān)鍵代碼的開發(fā)者使用少量經(jīng)過仔細(xì)審核和專業(yè)維護(hù)的庫。這種“不要自己搞安全方案”原則有助于最大限度地減少攻擊面,讓應(yīng)用開發(fā)人員專注于他們最擅長的事情:構(gòu)建偉大的產(chǎn)品。隨著機(jī)器學(xué)習(xí)的應(yīng)用和研究不斷加速,對于機(jī)器學(xué)習(xí)研究人員來說,在不減慢訓(xùn)練過程的前提下,獲得簡單易用的工具,以獲得數(shù)學(xué)上嚴(yán)格的隱私保證是非常重要的。
Facebook 希望通過開發(fā)像 Opacus 這樣的 PyTorch 工具,使此類隱私保護(hù)資源的訪問更加民主化。Facebook 正在通過使用 PyTorch 的更快速、更靈活的平臺,彌合安全社區(qū)和普通機(jī)器學(xué)習(xí)工程師之間的鴻溝。
建立社區(qū)
過去幾年,隱私保護(hù)機(jī)器學(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 的主要貢獻(xiàn)者之一,它是一個由數(shù)千名開發(fā)者組成的社區(qū),他們在開發(fā)應(yīng)用時考慮到了隱私問題。OpenMined 社區(qū)已經(jīng)為 CrypTen 做出了貢獻(xiàn),并利用 PyTorch 的許多構(gòu)件來支持 PySyft 和 PyGrid 的差分隱私和聯(lián)合學(xué)習(xí)。作為合作的一部分,Opacus 將成為 PySyft 等 OpenMined 庫的依賴。
Facebook 期待繼續(xù)合作,進(jìn)一步發(fā)展社區(qū)。
文章來源:AI前線 ,作者Davide Testuggine、Ilya Mironov
審核編輯 黃昊宇
-
人工智能
+關(guān)注
關(guān)注
1791文章
46698瀏覽量
237185 -
開源
+關(guān)注
關(guān)注
3文章
3229瀏覽量
42343 -
pytorch
+關(guān)注
關(guān)注
2文章
802瀏覽量
13121
發(fā)布評論請先 登錄
相關(guān)推薦
評論