通過一種名為 GPUHammer 的攻擊方式,可以讓 GPU 上跑的大模型,準確率從 80% 直接掉到 0.02%,可以說是渣都不剩。
多倫多大學的研究人員形容,這種攻擊就像在模型中引發災難性的腦損傷。
目前,研究人員已經在英偉達 RTX A6000 上成功測試了這種攻擊,但不排除其他型號也可能受到影響。
英偉達這邊建議用戶實施一項防御措施,但這種措施會讓模型性能下降 10%。
那么,這個漏洞到底是怎么一回事呢?
不是 Bug,而是“物理攻擊”
GPUHammer 是首個成功攻擊 GPU 顯存的 Rowhammer 攻擊。它并不是通過代碼篡改模型文件,而是直接對你的顯存“物理動手”。
它屬于 Rowhammer 攻擊的一類:攻擊者通過反復“敲擊”內存某一行,引發相鄰行中的比特翻轉(從 0 變成 1,從 1 變成 0),從而悄悄篡改數據。
以前 Rowhammer 只能攻擊 CPU 用的內存,現在,GPU 也中招了。
在 GPUHammer 中,研究人員成功翻轉了深度學習模型中的權重指數位。
比如 FP16 浮點數,只要翻轉一個關鍵位,指數就能飆升 16 倍 —— 模型準確率直接塌了。
在實驗中,研究人員對 AlexNet、VGG、ResNet 等經典神經網絡架構發起了攻擊。
結果表明,即使是單個比特的翻轉也可能導致模型性能的徹底崩潰。在受到攻擊后模型的準確率就會從 80%(BaseAcc)直接暴跌至 0.1%(DegradedAcc.)。
在這種情況下,自動駕駛汽車可能會錯誤地識別交通標志,而在醫療 AI 情景中則可能發生誤診。
而在云機器學習平臺或 VDI 設置等共享 GPU 環境中,惡意租戶可能會對相鄰的工作負載發起 GPUHammer 攻擊,從而影響推理準確性或破壞緩存的模型參數。
可以說,GPUHammer 對 AI 時代的基礎設施有著毀滅性的打擊。
那么,有沒有什么辦法可以阻止這東西呢?
為了回應 GPUHammer 的攻擊,英偉達發布了一份安全通知。
英偉達提醒用戶可以開啟一項名為系統級糾錯碼(ECC)的保護措施。
ECC(糾錯碼)的原理是:在每段內存數據旁邊,額外加幾位“校驗碼”。一旦有比特翻轉,比如 0 變成了 1,ECC 就能自動識別并糾正。
不過它只能修復單個比特錯誤,遇上雙比特翻轉,只能發出警告,沒法補救。
此外,ECC 還是一把“雙刃劍”,在緩解 GPUHammer 的同時,還會導致 GPU 性能的衰退。
研究團隊表示,系統一般默認禁用 ECC,因為它存儲在帶外的單獨內存區域中,啟用它會導致 6.5% 的內存開銷和減速。而在 A6000GPU 上啟用 ECC 會導致 12% 內存帶寬損失,機器學習應用速度會降低 3%-10%。
別怕,你的游戲不會崩
不少網友在評論區,發出了疑問:GPUHammar 不會影響我打游戲吧?
放心,研究團隊表明,雖然目前尚未發現影響 GPU 比特翻轉的根本原因,但不同的 GPU 配置、設計在受 Rowhammer 攻擊時有著明顯區別。
例如,RTX3080、A100 等芯片就采用了與 A6000 GDDR 完全不同的 DRAM 架構,這些架構的存在使芯片避開了 Rowhammer 的影響。
而且,在未來的 GPU 的開發中,如果 GPU 集成了片上 ECC(on-die ECC),就可以糾正單位翻轉,并默認檢測雙位翻轉。這就進一步使 Rowhammer 對 GPU 的攻擊更加困難。
此外,在云端環境中,NVIDIA 的 MIG 和機密計算(CC)技術通過內存隔離,能有效阻止多租戶共享同一 DRAM 存儲,從而防止 Rowhammer 類攻擊生效。
不過,AI 越強大,盤外招也越隱蔽,GPUHammer 只是開始,未來模型的安全建設才剛剛開始。