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