當前位置:
首頁 > 新聞 > 吳鶴意:NLP機器學習模型安全性及實踐

吳鶴意:NLP機器學習模型安全性及實踐

雷鋒網編者按:如果說一場安全大會能召集五湖四海的白帽子們前來朝聖,看雪學院的安全開發者峰會必然算是一場。不久前,第二屆安全開發者峰會在北京國家會議中心落幕,峰會現場有近1000位來自全國各地的安全和開發人員參加。

本次峰會以「萬物互聯,安全開發」為主題,聚焦物聯網及區塊鏈的開發安全,10大議題覆蓋物聯網、智能設備、區塊鏈、機器學習、WEB安全、逆向、安卓、iOS等前沿領域。

在本次峰會上,吳鶴意從AI在自然語言處理領域NLP的實際應用出發,通過實例介紹AI問答機器人產品的業務安全問題,試圖打破AI和業務安全之間的壁壘,推進AI在行業中的落地應用。

吳鶴意,網路安全愛好者,擁有大型政企單位安全應急與運維經驗,多次參與中央部委安全事件解析工作,研究領域現集中於AI+SDN。

以下為演講實錄:

大家上午好!我今天這個議題主要來自於一個聊天機器人在工程實踐中遇到的一些問題。我自己是一個安全研究愛好者,平時更多聚焦在AI、在工程方面的落地內容。

現在機器學習的安全問題在國內安全會議上已經討論得不少了,其中主要集中在三類:一類是對抗性輸入,專門設計的輸入,往往是主要用來讓AI的分類器進行誤分類以躲避檢測,比如惡意軟體的檢測和惡意流量的檢測。第二類是數據中毒攻擊,攻擊者主要是用來污染訓練數據,因為很多機器學習模型需要在訓練數據的基礎上進行訓練,一旦污染了數據之後,訓練出來的模型也會產生很大的影響。第三類是模型竊取技術,通過探測把一些看不到具體代碼的模型,可以把模型分類曲線、分類決策面復現出來。

現在機器學習已經有很多落地的攻擊方法,比如:

第一,圖片類機器學習的攻擊。這是我自己分類的,第一類是代碼級的攻擊,它主要用的是代碼方面的漏洞,第二類是演算法級的攻擊,它更多是基於圖像擾動方面的原理:

第一類是代碼攻擊,我參考的是這個文章,這類攻擊主要利用的是代碼方面,比如依賴的包上面代碼問題,比如內存訪問越界、除零異常、空指針引用、整數溢出等等。可以達到什麼效果?可以運行機器學習的進程掛掉,導致應用無法去應用了。像這類攻擊主要基於的是開源代碼,對代碼進行漏洞分析,它比較底層,所以適用性很好。要去修復它的話,主要依賴於打補丁。影響的是可用性,它會讓這個模型的進程直接掛掉,讓運行機器學習的進程直接掛掉。

第二類是演算法攻擊。這是我引用的一篇文章,它的原理是對圖片樣本加上輕微的擾動,可能是一個很小的擾動,人眼是看不出來的,但機器學習演算法的原理是基於對每一個像素的檢測,每一個像素產生微小的變化,人看不出來,但機器學習模型會產生很大的變化。如果大家參加過這兩年安全會議,只要有類似的會議都會放上面這張圖,因為這張圖是對機器學習攻擊論文上最經典的圖。一張熊貓的照片加上微小的擾動,就可以讓它識別長臂猿。它攻擊的是演算法原理,對模型原理和演算法進行研究。但這種方式對機器學習、圖像分類或識別演算法是各不相同的,因為攻擊方式必須根據模型進行改變。修復一直屬於螺旋式上升過程當中,這篇文章是今年3月份總結了類似的攻擊方式,比較知名的有12種,防禦方式達到了15種,這類攻擊是通過首先影響機器學習分類模型的準確性,造成模型分類準確性迅速降低,最後導致它不可用,影響的是它的可用性問題。

第二,針對音頻類的。也大體分為兩類:

一類是頻率攻擊,比較知名的是海豚音那個攻擊,利用手機上麥克風和人耳對於聲音接受頻率不同,除了海豚音攻擊以外,手機上也存在類似的攻擊,例如智能助手會利用語音進行操作,但手機麥克風對於聲音識別的範圍頻率和人耳不一樣,比如人耳聽不見,但手機麥克風卻能識別為聲音,然後進行操作。跟剛才的圖片類似,人眼看不出,人耳聽不出,但機器卻可以識別出來。這類攻擊是基於聲音,它的適用性也非常好,因為它攻擊的是麥克風硬體的模組,以及它上面很底層的比如用軟體或者硬體實現的濾波器,所以它的修復需要從底層硬體方面,或者很底層的濾波器的軟體代碼進行修復。它的影響也是影響可用性,會造成讓手機進行誤操作、個人助理進行誤操作。

從演算法方面,這裡引用了一篇文章,在你音頻樣本之上進行一個疊加,讓你關於音頻方面的機器學習模型造成誤判或者準確率降低,這個原理是一樣的。像這一類的特性和剛才圖片的擾動一樣,依賴於具體音頻AI識別的演算法,根據不同的演算法,很多攻擊方式並不能做到很好的共用性。像它的修復方式,只能對你的演算法來進行升級,除了升級以外,還有一些其他的,比如數據增強的方式來進行,在這個文章里也有提到。它最後通過影響你模型的準確性,來影響應用的可用性。

我之前有一個工程應用上遇到的問題,今天藉此機會與大家交流一下。NLP的應用有很多,這是我從百度AI平台上截下來的圖,就是NLP現在的應用有非常多場合,其中一個場合是問答機器人。大家對於問答機器人的分類不一定那麼清楚,它大體分為兩類,一類是問答機器人,一類是聊天機器人,聊天機器人是你可以跟它一直聊天聊下去,但問答機器人的目標是在3-4個與你的交互環節之內給你一個你滿意的答案。問答機器人在國內的落地方案中採用的方式大概可以分成幾類:

一開始是對於用戶的輸入做字元分割,然後把分割出來的字元提取關鍵詞,把提取出來的關鍵詞轉變成一個向量,然後和問答庫當中原來已經存的答案進行匹配,比如4000個問題和4000個答案的關鍵詞進行相似度匹配,把匹配出來的前3個或者前5個問題返給用戶,然後讓用戶自己來選擇哪個問題是你想問的問題,點擊進去可以看到這個問題的答案。topK的匹配度很低,比如當低於30%的時候,有些廠商提供的方案是採用知識圖譜的方式,或者把這個問題直接輸到搜索引擎里去,把搜索引擎top3的答案返還給你,或者它覺得你的問題問得不太清楚時,它會引導你更加精確的描述你的問題。可能具體實現的細節有所不同,但大概的方案就是這兩幾類。

在我們實際測試過程中,發現很多問答機器人是存在詞槽設置不完善、敏感詞沒有過濾、搜索引擎答案直接相互返回以及匹配度閾值的設定。我主要跟大家討論敏感詞的過濾問題,大家能夠在網上看到真實案例的新聞,比如亞馬遜的音箱去年年底說出一些不恰當的話,最後被迫下線一個月。可能這些問題不是那麼傳統意義上的安全問題,但它可以直接導致我們的AI系統達到被下線的程度。

最近某地政府官方微信引用了智能機器人,因為有一些不恰當的回復,把新華社點名了。大家看看這個截圖,很明顯這個機器人是一個聊天機器人,並不是問答機器人,把用戶的輸入變成閑聊對話,匹配度又不是很高,導致它產生了這樣的回答。發生這樣的問題,國內很多公司都在做智能音箱,這個問題和智能音箱背後的問題是一樣的,因為智能音箱從原理技術上也是這樣實現的。遇到這樣的問題,用戶是非常生氣的,研發卻很痛苦。從技術角度來說,現在並沒有很好的解決方案來解決這樣的問題,比如這個應用直接就下線了,導致比較嚴重的後果。

這是我實際測試的案例,這是一個雲端的智能客服,它對用戶的輸入和自己的輸出根本沒有做任何過濾,用戶有很多輸入,這種話完全不應該輸出,但它直接輸出了。

這是一個政務方面的應用,也嵌入了聊天機器人,但是對於用戶的輸入也沒有做完全的過濾,通過聊天的方式把不太恰當的話直接輸出了。這種問題是普遍性存在的。

這個例子是跟剛才同樣的應用,我提出問題之後,廠商說「該公眾號提供的服務出現故障,請稍後再試。」直接把這個應用關掉了,大家覺得這種修復方式很粗暴,其實這種問題修復起來是很難的。前不久大家在安全方面看到了,在一個操作系統,它通過語音直接激活智能助手,然後進行代碼的執行,那個廠商提出的安全就是直接把這個功能禁掉了,它也沒有做什麼修復。

這都是國內大廠智能客服的問題,像這個大廠已經做了過濾,對用戶輸入的中文已經做了過濾,但我可以用英文、韓文、日文。

有些案例對敏感詞沒有過濾好,有的是閾值設置有問題,有的是答非所問,直接影響客戶的滿意度以及這個產品會不會在線上應用。導致這些問題的原因是機器學習的模型具有不可解釋性,它在可解釋性上很差,比如剛才我舉的被新華社點名的那個例子,為什麼模型會做出那個回復?即使是研發工程師,他也是很難解釋的,因為AI模型特別是深度學習模型有幾百層,很難解釋怎麼產生了這個回復。用戶很生氣,研發又不知道該怎麼進行修復。

我們也嘗試考慮做規則過濾、敏感詞過濾等等,但繞過的方式太多,因為漢語博大精深。我們也考慮過Fuzz,第一,它效率低,第二,又是文字遊戲,效果不理想。剛才我舉的例子和大廠AI安全實驗室的工程師進行了探討,他們沒有好的解決方案,我自己也沒有好的解決方案,大家有好的解決方案可以告訴我。

我原來是做AI的,現在安全會議上也有關於AI的問題,安全和AI的結合有更大的含義。比如敏感詞過濾的功能在國內很多平台根本沒有,如果把這個問題提交給安全中心,它不認為這是傳統意義上的安全問題。這個覺得這跟安全不是很緊密,但是類似的原理如果利用在人臉識別,可以繞過很多廠商人臉識別。攻擊不一定從代碼層面,也可以從AI的應用層面,應用邏輯和程序中的問題都可以拿來作為攻擊點。

AI的數據污染也需要防禦,在第一個案例的截圖,它會把top3的問題返還給用戶,用戶覺得好可以點贊,覺得不好可以不點贊。但也可以惡意給你不停的點贊,讓你這個模型慢慢畸變,變到最後讓模型覺得應該推送錯誤的答案。像問題在國內有一些專家已經意識到了,這裡也引用了一個網上的文章,它裡面提到了類似的問題,像這個問題不一定針對的是代碼層面,也不一定針對的是演算法層面,但AI可以說髒話和不恰當的話,它最後會直接影響到AI的落地問題。但國內在AI應用過程中的這個安全點討論得並不是很多,希望大家以後有計劃可以加強溝通和交流。

像數據污染問題,這是我們自己做的一個實驗,左邊這張圖是被污染過的圖,右邊這張圖是沒有被污染過的圖,橘黃色的曲線是訓練過的曲線,藍色曲線是預測曲線,預測數據應該是應該跟真實數據進行對比的。同樣一個模型,對一些數據點進行污染之後,可以讓它的預測產生不一樣的效果,右邊這個模型大概能夠預測出後面的峰值,左邊的模型已經和真實的點千差萬別。

對於AI模型在應用中的有些安全點,蘋果自己也寫過文章,比如蘋果因為Siri總是發出「笨拙」、「尷尬」的詞,直接放棄了音箱產品。Uber在3月發生了安全問題,AI的安全有時不一定是演算法、代碼,可能是在應用方面。

著眼於國內的政企應用,聊天機器人的不恰當回復,會給單位帶來很大的壓力和困擾,也會影響AI在這個領域的發展。但可喜的是,經過我跟廠商的交流和溝通,發現有些廠商已經開始著手解決這個問題,但這個問題的確不是那麼容易來解決。

很多國內外大牛們也在往這方面進行思考,擺脫傳統代碼級別、演算法級別的問題,來研究AI在其他領域的安全問題,比如Google工程師提到了,還有阿里的大牛提到了數據中毒,騰訊大牛也提到了AI非傳統安全方面的問題。

雷鋒網雷鋒網


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

圖靈獎得主 Joseph Sifakis:物聯網領域的自主系統設計
用神經網路對頁面登錄進行多參數優化的小妙招

TAG:雷鋒網 |