既保護隱私又快速訓練,Facebook開源Opacus庫,利用差分隱私訓練Py...

2020-12-22 澎湃新聞

機器之心報導

編輯:小舟、陳萍

隱私保護是機器學習領域的重要倫理問題之一,而差分隱私(DP)是行之有效的隱私保護手段。那麼,如何方便地使用差分隱私來訓練機器學習模型呢?近日,Facebook 開源了 Opacus 庫,支持以這種方式訓練 PyTorch 模型。

近日,Facebook 開源了一個新型庫 Opacus,它支持使用差分隱私來訓練 PyTorch 模型,擴展性優於目前的 SOTA 方法。同時,Opacus 庫支持以最少代碼更改來訓練模型,且不會影響訓練性能,並允許在線跟蹤任意給定時刻的隱私預算。

Opacus 庫開源地址:https://github.com/pytorch/opacus

Opacus 庫的目標受眾主要為以下兩類人群:

機器學習從業者:可以使用該庫輕鬆了解如何利用差分隱私訓練模型,該庫支持以最少代碼更改來訓練模型;

差分隱私科學家:Opacus 庫易於實驗和修復,這允許他們專注於更重要的事。

差分隱私是一個具備數學嚴謹性的框架,可用於量化敏感數據的匿名化。Facebook 在相關博客中表示,希望 Opacus 庫能為研究人員和工程師提供一條更簡單的途徑,以便在 ML 中使用差分隱私,並加快該領域的 DP 研究。

Opacus 庫提供了什麼?

通過這個開源的高速庫 Opacus,你可以得到:

速度:利用 PyTorch 中的 Autograd hook,Opacus 能夠批量化計算每個樣本的梯度。與依賴 microbatching 的現有 DP 庫相比,Opacus 實現了一個數量級的加速。

安全性:Opacus 對其安全關鍵代碼使用密碼學安全偽隨機數生成器 CSPRNG,在 GPU 上對整批參數進行高速處理。

靈活性:基於 PyTorch,工程師和研究人員可以通過將 Opacus 代碼與 PyTorch 代碼和純 Python 代碼進行融合和匹配,快速為其 idea 構建原型。

生產效率:Opacus 庫附帶教程、在訓練開始前提示不兼容層的輔助函數,以及自動重構機制。

交互性:Opacus 可以追蹤用戶在任意給定時間所花費的隱私預算(DP 的核心數學概念),從而實現早停和實時監控。

Opacus 通過引入 PrivacyEngine abstraction 定義了一個輕量級的 API,它既可以追蹤隱私預算,也能夠處理模型梯度。該 API 無需直接調用,只需將其連接至標準 PyTorch 優化器。該 API 在後臺運行,這使得利用 Opacus 進行模型訓練變得非常簡單。用戶只需在訓練代碼開頭添加以下代碼即可:

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

訓練結束,即得到一個標準的 PyTorch 模型,並且它沒有部署私有模型的額外步驟或障礙:如果今天就想部署模型,你可以在使用 DP 訓練模型後進行部署,且無需更改一行代碼。

Opacus 庫還包括預訓練和微調模型、針對大型模型的教程,以及為隱私研究實驗而設計的基礎架構。

如何使用 Opacus 實現高速隱私訓練?

Opacus 旨在保留每個訓練樣本的隱私,同時儘量不影響最終模型的準確率。Opacus 通過修改標準 PyTorch 優化器來實現這一點,以便在訓練過程中實現(和度量)差分隱私。

具體來說,Opacus 的重點是差分隱私隨機梯度下降(DP-SGD)。該算法的核心思想是:通過幹預模型用來更新權重的參數梯度來保護訓練集的隱私,而不是直接獲取數據。通過在每次迭代中向梯度添加噪聲,該庫可以防止模型記住訓練樣本,同時還可以實現在 aggregate 中的學習。在訓練過程的多個批次中,(無偏)噪聲自然會被抵消。

但是,添加噪聲需要一種微妙的平衡:噪聲過多會破壞信號,過少則無法保證隱私。為了確定合適的規模,我們需要查看梯度範數。限制每個樣本對梯度的影響非常重要,因為異常值的梯度大於大部分樣本。但是異常值的隱私也需要得到保護,因為它們極有可能被模型記住。

因此,開發者計算 minibatch 中每個樣本的梯度。開發者分別對每個梯度進行梯度裁剪,將其累積到一個梯度張量,然後再將噪聲添加其中。

基於每個樣本的計算是構建 Opacus 的最大障礙之一。PyTorch 的典型操作是利用 Autograd 計算整個批次的梯度張量,因為這對其他機器學習用例都有意義,並且可以優化性能。與之相比,基於每個樣本的計算顯然更具挑戰性。

為了克服這一困難,開發者利用 Ian Goodfellow 2015 年提出的高效技術(參見論文《EFFICIENT PER-EXAMPLE GRADIENT COMPUTATIONS》),獲取訓練標準神經網絡所需的全部梯度向量。

至於模型參數,則單獨返回給定批次中每個樣本的損失梯度,整個過程如下所示:

Opacus 工作流程圖,其中計算了每個樣本的梯度。

通過在運行各層時追蹤一些中間量,Opacus 庫支持使用適合內存的任何批量大小進行訓練。這使得該方法比其他替代性 micro-batch 方法快了一個數量級。

此外,Opacus 庫的安裝和使用過程也比較簡單,詳情參見 GitHub 項目。

原文連結:https://ai.facebook.com/blog/introducing-opacus-a-high-speed-library-for-training-pytorch-models-with-differential-privacy

機器之心聯合曠視科技開設線上公開課:零基礎入門曠視天元MegEngine,通過6次課程幫助開發者入門深度學習開發。

9月1日,曠視科技移動業務團隊研究員王鵬將帶來第6課《部署進階:推理端優化》,將介紹 MegEngine 框架中模型量化方案、量化相關模塊和使用方法,並實例講解使用MegEngine進行模型量化的流程。歡迎大家入群學習。

© THE END

轉載請聯繫本公眾號獲得授權

投稿或尋求報導:content@jiqizhixin.com

原標題:《既保護隱私又快速訓練,Facebook開源Opacus庫,利用差分隱私訓練PyTorch模型》

閱讀原文

相關焦點

  • 隱私保護新突破:高斯差分隱私框架與深度學習結合
    高斯差分隱私Gaussian differential privacy (GDP) 是最近被提出的一種隱私表示方法。它可以精確的刻畫 optimizer 在每個 epoch 所消耗的隱私。作為 f-DP 的一個重要案例,作者隨後介紹了高斯差分隱私(GDP)來區分兩個高斯分布。根據中心極限定理(CLT),任何基於假設檢驗的隱私定義在極限情況下都會收斂於 GDP。
  • 谷歌發布TensorFlow,用於測試人工智慧模型的隱私保護
    近日,谷歌發布了隱私保護而越來越多的研究表明人工智慧模型可以洩露訓練數據集的敏感信息,從而產生隱私風險。TensorFlow隱私保護所採用的緩解方法是差分隱私,它在訓練數據中添加噪聲以隱藏單個示例。據了解,這種噪聲是以學術上最壞的情況去設計的,同時會顯著影響模型的準確性。因此,這促使谷歌的研究人員在尋求另一種選擇。
  • Facebook開源算法代碼庫PySlowFast,輕鬆復現前沿視頻理解模型
    近日,FAIR視頻團隊在 ICCV 相關研討會上開源了視頻識別檢測代碼庫 PySlowFast,並同時發布了預訓練的模型庫。同時,該團隊表示,他們還將實時將他們的前沿工作添加至此代碼庫。不但如此,PySlowFast 代碼庫同時開源了大量預訓練模型 (pretrain models),讓研究者省去了反覆訓練模型的煩惱,可以直接使用 FAIR 預訓練的前沿 (cutting edge performance) 模型。
  • 從原理到落地,支付寶如何打造保護隱私的共享智能
    本月初,螞蟻資深算法專家周俊在2020年AI開發者大會上,分享了支付寶如何利用共享智能技術保護數據安全與用戶隱私,我們將內容整理分享給大家。接下來看一下技術主要涉及一些技術點,首先是差分隱私,差分隱私這個技術提出來時間不短了。顧名思義,差分隱私主要是用來防範差分攻擊,即攻擊者對資料庫進行多次略有差異的查詢來推測出原始數據的信息。差分隱私的目標,就是讓攻擊者在相似資料庫上的查詢結果難以區分。那麼最常用的方法,就是對結果添加噪音。噪音的強度,可以通過需要隱私保護的級別計算得到。
  • 支付寶關聯公司公開多個「隱私保護」相關專利
    天眼查App顯示,近日,支付寶(杭州)信息技術有限公司公開多條「隱私保護」的專利。包括「保護數據隱私的雙方聯合訓練業務預測模型的方法及裝置」、「基於差分隱私保護的內容風險小程序識別方法及裝置」等,上述專利申請日期為2020年9月,申請公布日為2020年12月15日。
  • 真是禍從GPT-2口出:和AI聊天,把別人隱私都給套出來了
    之所以選擇GPT-2,是因為它的模型已經開源,便於上手研究;此外,由於OpenAI沒有公布完整的訓練數據集,這項研究的成果也不會被不法分子拿去利用。那麼,團隊用的什麼方法,只利用模型輸出的文本,就還原出了原始信息呢?訓練數據提取攻擊此前洩露隱私沒有引起重視的原因,是因為學術界普遍認為與模型過擬合有關,只要避免它就行。
  • 真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了
    之所以選擇GPT-2,是因為它的模型已經開源,便於上手研究;此外,由於OpenAI沒有公布完整的訓練數據集,這項研究的成果也不會被不法分子拿去利用。團隊篩查了模型生成的數百萬個語句,並預判其中哪些是與訓練數據高度相關的。
  • Fawkes「隱形鬥篷」騙倒臉部識別100%保護照片隱私成功
    臉部識別技術在近年越來越普遍,不少人感覺這項技術對個人隱私造成威脅。而近日芝加哥大學Sand Lab團隊就為大家的擔憂提出新解決方法,為你的照片穿上「隱形鬥篷」,保障照片隱私。通過團隊最新研發的軟體Fawkes可令臉部識別算法故障,經實驗取得100%成功率。
  • 隱私計算就在身邊, 五大案例帶你認識
    但是如果通過一些技術手段,利用不同數據集、公開信息之間的關聯性,可以推測出某個具體個人信息的時候,問題就出現了。早在2013年一位當時就讀於美國西北大學的研究生,結合搜尋引擎與紐約城市計程車和豪華轎車委員會對外公布的一份2013年全市的計程車行程數據,便鎖定了幾位明星的行蹤,證實了這一風險。由此可得,僅僅移除數據中的ID這類信息是不足以保護隱私的。
  • ...英特爾們的「醫療數據隱私保衛戰」:三種AI技術你最傾向哪一個?
    除非使用隱私保護技術,訓練後的模型包含了所有訓練集的信息。Wisconsin大學和Marshfield臨床研究學會的研究人員能夠從一個被訓練用於預測藥物劑量機器學習模型中提取患者的基因組信息。開源的TensorFlow庫TensorFlow Privacy基於微分隱私方法。具體地說,它使用改進的隨機梯度下降方法來調參,該梯度下降將訓練數據引起的多個更新平均起來,剪切每個更新,並將噪聲添加到最終平均值。這就防止了對少數細節的記憶,並更加保險,即兩種機器學習模型無法區分一個人的數據是否用於他們的訓練。
  • 差分隱私 x MACE:小米MIUI 12隱私保護技術亮相
    IT之家4月23日消息 今日小米MIUI正式官宣旗下全新的「小米隱私品牌」,官方也在午間介紹了其所運用的隱私保護技術。官方表示,小米自研並開源了專為移動終端開發的MACE(Mobile AI Compute Engine)AI框架。
  • 隱私計算就在身邊,五大案例帶你認識
    傳統觀點認為,數據保護與共享需要依靠「自律」 及「他律」,即自身防護和制度保障,可謂「被動防守」。而近年來,隨著隱私計算技術的出現,數據共享即將告別瞻前顧後的窘境,引領「主動出擊」新趨勢。舉例來說,如果一個被移除ID類信息的數據集發布,從法律和倫理來說這個數據集因為沒有涉及個人隱私,因此是合法合規的。但是如果通過一些技術手段,利用不同數據集、公開信息之間的關聯性,可以推測出某個具體個人信息的時候,問題就出現了。
  • 蘋果更新App 隱私保護說明 下載前可充分了解隱私權限
    12月15日凌晨,蘋果公司對開發者頁面中關於App 隱私保護的詳細說明進行了更新,正式要求開發者提交更新或有新版本時,每個 AppStore 裡所有的 app 都要求提交新的隱私慣例信息,包括蘋果自己開發的APP,該要求覆蓋iOS、iPadOS、macOS、watchOS 和 tvOS。
  • 潮科技 | 隱私計算技術的三大主流門派
    這個特性屬性對於保護信息的安全具有重要意義,利用同態加密技術可以先對多個密文進行計算之後再解密,不必對每一個密文解密而花費高昂的計算代價;利用同態加密技術可以實現無密鑰方對密文的計算,密文計算無須經過密鑰方,既可以減少通信代價,又可以轉移計算任務,由此可平衡各方的計算代價;利用同態加密技術可以實現讓解密方只能獲知最後的結果,而無法獲得每一個密文的消息,可以提高信息的安全性。
  • 兼顧隱私與權利,華為以「科技有道」,實現「隱私無價」
    在手機存量市場,當產品、技術、價格已經無法拉開特別大的差異化競爭優勢時,用戶體驗就成了一塊要攻下的堡壘,而用戶體驗的核心競爭力來自於大眾最關心的隱私保護。但隱私保護是一個系統工程,也是一個難而正確的事,如果做好了,手機廠商們的競爭差距也就拉開了。隱私與權利並重,用戶隱私保護應該是什麼樣子?
  • 火幣創新區項目OXT:保護客戶隱私是蘭花的唯一使命
    12月22日,在以《代幣激勵型寬帶代理的新虛擬隱私網絡協議》為主題的AMA中,Orchid聯合創始人兼執行長史蒂文·沃特豪斯博士對話金色財經內容總監王瑜琨。 Orchid蘭花計劃採取了一種新的方法來幫助客戶實現數字隱私,是第一個點對點,具有激勵機制的隱私網絡。在蘭花平臺上,任何人都可以使用蘭花DApp幣(OXT)買賣帶寬。
  • Facebook 開源 3D 深度學習函數庫 PyTorch3D
    原標題:Facebook開源3D深度學習函數庫PyTorch3D來源:開源中國Facebook近日開源了將PyTorch用於3D深度學習的函數庫PyTorch3D,這是一個高度模塊化且經過優化的庫,具備獨有的功能,旨在通過PyTorch簡化3D深度學習。
  • 面部識別、深度偽造、隱私和自動化定義的AI 2019
    回顧剛剛過去的2019年,基於機器學習系統訓練算法的人工智慧,已然開始滲透至各行各業。AI周刊在對2019年的人工智慧行業進行總結是歸納了以下四個關鍵詞:面部識別、深度偽裝、隱私和自動化。與此同時,AI周刊也對2020年的人工智慧行業大發展進行了展望。
  • 隱私保護機器學習是啥?清華系創企RealAI推全球首款編譯級產品
    從數據中「走」出來的信息,既能夠完成模型訓練,又不能丟失、洩露、互換數據,暗地裡搞些見不得人的事情,從而保護了隱私。有了安全的技術,很多以前失控的事情,都變得可控起來。比如,在AI模型訓練時,用於AI模型訓練的數據不能交換,留在原地不動。但是AI模型的信息在多個地方交換。為AI算法模型性能提高,提供了「養分」。
  • 單張圖像就可以訓練GAN!Adobe改良圖像生成方法 | 已開源
    上圖左側是用來訓練的單個圖像,右側是利用ConSinGAN訓練後生成的複雜全局結構。  可以看出效果還是比較逼真。  所有的生成器都是單獨訓練的,這意味著在訓練當前生成器時,所有以前的生成器的權重都保持不變。  這一過程如下圖所示。