模型量化攻擊
前言
隨著深度神經網絡模型的性能增加,神經網絡的深度越來越深,接踵而來的是深度網絡模型的高存儲高功耗的弊端,嚴重制約著深度神經網絡在資源有限的應用環境和實時在線處理的應用.例如8層的 AlexNet裝有600000個網絡節點, 0.61億個網絡參數, 需要花費240MB內存存儲和7.29億浮點型計算次數(FLOPs)來分類一副分辨率為224×224的彩色圖像 .同時,隨著神經網絡模型深度的加深,存儲的開銷將變得越大.同樣來分類一副分辨率為224 × 224的彩色圖像,如果采用擁有比8層AlexNet更多的16層的VGGNet,則有1500000個網絡節點、1.44 億個網絡參數 ,需要花費528MB內存存儲和150億浮點型計算次數 ;ResNet-152裝有 0.57億個網絡參數,需要花費230MB內存存儲和113億浮點型計算次數.
這里存在一個非常有意思的現象,一方面,擁有百萬級以上的深度神經網絡模型內部存儲大量冗余信息,因此并不是所有的參數和結構都對產生深度神經網絡高判別性起作用;但是在另一方面,用淺層或簡單的深度神經網絡無法在性能上逼近百萬級的深度神經網絡.因此,學者們開始研究能夠壓縮優化模型的同時又不會對性能產生較大影響.作為通用神經網絡模型優化方法之一,模型量化可以減小深度神經網絡模型的尺寸大小和模型推理時間,其適用于絕大多數模型和不同的硬件設備。

量化一詞大家都聽說過,就是指將信號的連續取值近似為有限多個離散值的過程。神經網絡的模型量化即將網絡模型的權值,激活值等從高精度轉化成低精度的操作過程,例如將 float32 轉化成 int8,同時我們希望可以讓轉換后的模型準確率與轉化前相近。量化的好處包括但不限于:1)更少的存儲開銷和帶寬需求。用戶使用更少的比特數存儲數據,有效減少應用對存儲資源的依賴;2) 更低的功耗。移動 8bit 數據與移動 32bit 浮點型數據相比,前者比后者高 4 倍的效率,而在一定程度上內存的使用量與功耗是成正比的;3)更快的計算速度。相對于浮點數,大多數處理器都支持 8bit 數據的更快處理,如果是二值量化,則更有優勢。下圖是一些不同的量化方法在AlexNet上的對比數據

毫無疑問,這種轉換引起的參數擾動會導致量化前后模型的行為差異,我們都可以想見,量化后的模型其推理時性能表現肯定不如量化前的模型。那么還有可能存在其他差異嗎?這種行為差異是否有可能引入漏洞呢?事實上,這是有可能的。本文就會分析并復現這種類型的攻擊,我們暫且將它稱之為模型量化攻擊,其首次發表在AI頂會NeurIPS 2021上。
攻擊場景
作為一個普通用戶,是沒有強大的資源使用模型的,所以通常會下載一個較大的預訓練模型,并使用訓練后量化來減少其占用空間。這種范式目前是非常普遍的,但是攻擊者完全有可能在這種情況下將只有在量化時才被激活的惡意行為注入到一個預訓練模型中,比如在用戶量化時才會顯示后門行為。而攻擊者要做的就是增加模型的浮點表示和量化表示之間的行為差異。事實上,研究人員指出量化攻擊可以細分為三種:分別是1.任意攻擊,即模型被量化之后完全失效;2.定向攻擊,即會讓特定類樣本的準確性下降或讓特定樣本被定向誤分類;3.后門攻擊,此時量化后的模型會將任何帶有后門觸發?t的樣本分類為目標類yt。
作為攻擊者來說,首先要確保的就是隱蔽性,也就是是否可以用一種比較輕微的方式進行攻擊而不至于引人注意。
為了驗證這一點,我們在CIFAR10數據集上訓練一個AlexNet模型,在其參數中加入高斯噪聲,進行40次實驗,測量量化引起的各擾動模型的精度下降情況。其次,用不同的隨機種子重新訓練40個AlexNet來創建40個后門模型。我們在訓練數據中加入20%的后門中毒樣本,觸發器就是每個樣品右下角的4×4白色方塊圖案。我們測量攻擊成功率的差異。數據如下所示

從數據中可以看到,這種輕微的擾動方式不會顯著增強模型的行為差異,在左圖中量化最多只會導致精度下降10%;而右圖顯示的后門模型通過量化導致的攻擊成功率的下降,可以看到平均在9.6%左右。
由此,我們發現量化導致的行為是有差異的,這是非常關鍵的一點發現,因為這說明一個攻擊者可能會使量化后的行為變得更糟,即攻擊者可以將差異放得更大,并導致模型出現問題。從上面的兩幅圖中我們都可以看到,當受害者使用較低的位寬進行量化時,隨著變異性的增加,攻擊者可能有更多的機會對顯著的行為差異進行編碼。與使用8位或6位相比,使用4位量化會導致更大范圍的行為差異。
所以我們需要對量化引起的最壞情況下的行為差異進行研究,我們可以把這看做是一個多任務學習的實例,損失函數在訓練時,建立了一個浮點模型來學習正常的行為,但它的量化版本學習了一些惡意行為。具體來說,我們要訓練一個具有以下損失函數的模型

其中Lce是交叉熵損失,B是一組用于量化的位寬(例如,{8,7,6,5}位),λ, α, β是超參數。交叉熵項使浮點模型f在訓練數據(x,y)∈Dtr上的分類錯誤最小化。附加項增加了浮點模型f與其量化版本Qf在目標樣本(xt, yt)∈Dt上的行為差異。
量化攻擊
攻擊一
在這種攻擊方式下,攻擊者可以讓模型在量化后導致準確率最嚴重的下降。在此情況下,損失函數可以設計如下

第二項使Dtr上量化模型的分類誤差接近α,而第一項使浮點模型的分類誤差減小。設λ為1.0/NB,其中NB為攻擊者考慮的位寬數。我們設NB為4,α為5.0。實驗數據如下

在這個表中,對于每個網絡而言,對于每個網絡,上面一行包含一個干凈的、預訓練的模型在測試數據Dts上的準確性,下面一行包含我們的被攻擊模型的準確性。
可以看到,在量化后,受損模型的準確率變得接近隨機,即CIFAR10的準確率約為10%,Tiny Ima-geNet的準確率約為0.5%。說明這種攻擊確實是可能發生的。
攻擊二
在這種攻擊場景下,攻擊者可以實現對特定的攻擊。
這里也分為兩種情況
特定類的非定向攻擊
第一種情況是攻擊一個特定的類,還是使用上面提到的損失函數,但只計算目標類中樣本的第二項,而不是增加整個測試數據的預測誤差,增加目標只會增加目標類的誤差。我們把α調到1.0 ~ 4.0。對于其余的超參數,我們保持與上一種攻擊相同的值。在所有的實驗中,我們將目標類設置為0。實驗數據如下

這個表中,對于每個網絡,上面一行包含了一個干凈模型的準確性,下面一行顯示了被攻擊者操縱的模型的準確性。每一列中的三個子列分別包含一個模型在完整測試集上、目標類測試樣本,以及其他樣本上準確性。
可以看到,在CIFAR10中,攻擊者只能在目標類的測試樣本上實現準確率下降。如果受害者用8位量化得到被攻擊的模型,其在Dt上的精度為0%,而干凈的模型在Dt上沒有任何精度下降。在4位中,攻擊者在Dt上也達到了 0%的準確率。
特定類的定向攻擊
此時的損失函數可以定義為

第二項使量化模型對于特定樣本xt對目標標簽yt的誤差最小化。我們從10個不同的類中隨機選取10個目標樣本,通過模型正確地分類,對其進行10次攻擊。我們為目標隨機分配不同于原始類的標簽。我們將λ設置為1.0,并對其余超參數使用相同的值。實驗數據如下

在表中,對于每個網絡,上面一行顯示了一個干凈模型的準確性,下面一行包含了攻擊者攻擊模型的準確性。每個子列分別包含測試集上的精度,在目標樣本y上的精度,以及在同一樣本yt(目標類)上的精度。
從上面的數據中,我們可以看到,攻擊者可以導致一個特定的樣本在量化后錯誤分類到一個目標類,同時保持測試數據上的模型的準確性變化不大(見第一子列)。在量化后,受損模型對xt的準確率從80-90%下降到0%(見第二子列),而目標誤分類的成功率從0-10%增加到100%(見第三子列)。
攻擊三
在這種攻擊場景下,可以實現后門攻擊。此時的損失函數定義如下

其中xt是包含一個?觸發的訓練樣本(即后門樣本),yt是對手想要的目標類。在再訓練過程中,第二項防止了后門樣本被浮點模型分類為yt,但使量化模型表現出后門行為。我們設置yt為0,α和β為0.5-1.0。實驗數據如下

表中,上面的列是后門模型的數據,左邊一行是分類準確率,右邊一行是攻擊成功率;下面的列是被攻擊模型的數據。
從數據中可以看到,受損模型只有在受害者(用戶)量化它們時才顯示出后門行為。然而,通過標準攻擊的后門模型在浮點和量化版本中一致地顯示了后門行為。在CIFAR10中,我們的后門模型在浮點表示中后門成功率很低(9% ~ 29%),而受害者使用4位量化時后門成功率為96-100%。我們在Tiny ImageNet中得到了相同的結果。浮點版本的折衷模型顯示后門成功率為0.4-22%,但量化版本顯示為94-100%。總體而言,量化確實可以引入后門攻擊的風險。
量化攻擊的推廣研究
接下來我們考慮一個問題,當受害者使用不同于攻擊者的量化方法時,攻擊者誘導的惡意行為是否能夠實現。
這里也分多種情況。
不同量化粒度
我們首先研究量化粒度對攻擊的影響。
用戶只有兩個選擇:逐層layer-wise和逐通道channel-wise。在逐層量化中,一層中整個參數的范圍是單一的,而逐通道量化決定了每個卷積濾波器的范圍,所以逐通道方案的攻擊者注入的行為對兩者都有效。然而,如果攻擊者使用逐層l量化,被破壞的模型就不能傳遞給以逐通道方式量化模型的受害者。實驗數據如下

由于目前流行的深度學習框架,如PyTorch或TensorFlow默認支持逐通道量化,所以攻擊者可以通過使用這些框架將可轉移的行為注入到模型中。
最小化量化誤差
既然本文介紹的攻擊本質上是因為量化前后的模型行為差異導致的,那么最小化量化誤差是否可以防御這類攻擊呢?
這里我們使用三種經典的最小化量化誤差的方案進行實驗,分別是OCS,ACIQ,OMSE
實驗數據如下

表中的IA代表的是第一種攻擊方式,BD代表的是第三種攻擊方式
從表中的數據可以看到,這三種魯棒量化方案都不能防御第一種攻擊,因為所有的模型都顯示出量化后的精確度為10%。此外發現后門攻擊對OCS和ACIQ都是有效的。量化后,8位的后門成功率為99%,4位的后門成功率為71%,而OMSE可以將后門成功率降低到25%。
復現
第一種攻擊方式,即無差別攻擊的關鍵代碼如下

第三種攻擊方式,即后門攻擊的關鍵代碼如下

這里我以第一種攻擊方式為例,復現結果如下


可以看到隨著epoch增大,量化后的模型的準確率一直在下降,說明攻擊成功。