天天看點

模型壓縮技術成功節約算力成本

作者:人民中科Cognitive

深度學習促進人工智能領域不斷發展,實作了許多技術突破。與此同時,如何在有限硬體資源下挖掘模型潛能、提升部署模型的準确率成為了學界和業界的研究熱點。

模型壓縮技術成功節約算力成本

面對越來越深的深度學習模型和海量的視訊大資料,人工智能算法對計算資源的依賴越來越高。為了有效提升深度模型的性能和效率,通過探索模型的可蒸餾性和可稀疏性,本文提出了一種基于“教導主任 - 教師 - 學生” 模式的統一的模型壓縮技術。

該成果由人民中科和中科院自動化所聯合研究團隊合作完成,相關論文發表在人工智能頂級國際期刊 IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI) 上。該成果是首次将 “教導主任” 角色引入模型蒸餾技術,對深度模型的蒸餾與裁剪進行了統一。

模型壓縮技術成功節約算力成本

論文位址:

https://ieeexplore.ieee.org/abstract/document/9804342

模型壓縮中的知識蒸餾技術

進入今天正式的主題之前,我們先來了解下為什麼需要模型壓縮以及什麼是知識蒸餾。

深度學習在計算機視覺、語音識别、自然語言處理等内的衆多領域中均取得了令人難以置信的性能。但是,大多數模型在計算上過于昂貴,無法在移動端或嵌入式裝置上運作。是以需要對模型進行壓縮,且知識蒸餾是模型壓縮中重要的技術之一。

知識蒸餾是一種模型壓縮常見方法,指的是在teacher-student架構中,将複雜、學習能力強的網絡(teacher)學到的特征表示”知識"蒸餾出來,傳遞給參數量小、學習能力弱的網絡(student)。

模型壓縮技術成功節約算力成本

基準知識蒸餾的具體架構圖

在訓練過程中,往往以最優化訓練集的準确率作為訓練目标,但真實目标其實應該是最優化模型的泛化能力。顯然如果能直接以提升模型的泛化能力為目标進行訓練是最好的,但這需要正确的關于泛化能力的資訊,而這些資訊通常不可用。如果我們使用由大型模型産生的所有類機率作為訓練小模型的目标,就可以讓小模型得到不輸大模型的性能。這種把大模型的知識遷移到小模型的方式就是蒸餾。

模型壓縮技術成功節約算力成本

不同類型的蒸餾

模型壓縮的聯合學習架構及優越性

深度算法模型的壓縮和加速可通過蒸餾學習或結構化稀疏裁剪實作,但這兩個領域均存在一些局限性。對于蒸餾學習方法,旨在訓練一個輕量化模型(即學生網絡)來模拟複雜龐大的模型(即教師網絡)。在教師網絡的指導下,學生網絡可以獲得比單獨訓練的更優性能。

然而,蒸餾學習算法僅僅專注于提升學生網絡的性能,往往忽略了網絡結構的重要性。學生網絡的結構一般是預定義好的,并且在訓練過程中是固定的。

模型壓縮技術成功節約算力成本

對于結構化稀疏裁剪或濾波器裁剪,這些方法旨在将一個備援繁雜的網絡裁剪成一個稀疏緊緻的網絡。然而,模型裁剪僅僅用于獲得一個緊緻的結構。目前已有方法都沒有充分利用原始複雜模型所包含的“知識”。近期研究為了平衡模型性能和大小,将蒸餾學習和結構化稀疏裁剪進行結合。但是這些方法僅限于簡單的損失函數的結合。

為了深入分析以上問題,該研究首先對模型進行基于壓縮感覺訓練,通過分析模型性能和結構發現,對于深度算法模型,存在兩個重要屬性:可蒸餾性(distillability)和可稀疏性(sparsability)。

具體而言,可蒸餾性指的是能夠從教師網絡中蒸餾出有效知識的密度。它可以通過學生網絡在教師網絡指導下所獲得的性能收益來衡量。例如,擁有更高可蒸餾性的學生網絡可以獲得更高性能。可蒸餾性也可以在網絡層級别上被定量分析。

如圖 1-(a)所示,柱形圖表示蒸餾學習損失梯度和真值分類損失梯度之間的餘弦相似度(Cosine Similarity)。更大的餘弦相似度說明目前蒸餾的知識對于模型性能更有幫助。這樣,餘弦相似度也可以成為可蒸餾性的一種度量。由圖 1-(a)可得,可蒸餾性随着模型層數變深逐漸增大。這也解釋了為什麼正常使用蒸餾學習的監督均施加在模型最後幾層中。并且,在不同的訓練輪次,學生模型也有不同的可蒸餾性,因為随着訓練時間變化餘弦相似度也在改變。是以,在訓練過程中對不同層進行可蒸餾性的動态分析十分必要。

模型壓縮技術成功節約算力成本

圖 1 深度神經網絡的可蒸餾性示意圖

另一方面,可稀疏性指的是模型在有限精度損失下能夠獲得的裁剪率(或稱壓縮率)。更高的可稀疏性對應更高裁剪率的潛力。

如圖 2-(b)所示,網絡的不同層或子產品展現了不同的可稀疏性。類似于可蒸餾性,可稀疏性也可以在網絡層級别和時間次元進行分析。然而,目前沒有方法去探索和分析可蒸餾性和可稀疏性。現有方法常常使用一種固定的訓練機制,這樣很難達到一個最優結果。

模型壓縮技術成功節約算力成本

基準知識蒸餾的具體架構圖

為了解決以上問題,該研究分析了模型壓縮的訓練過程,進而獲得有關可蒸餾性和可稀疏性的相關發現。受這些發現啟發,該研究提出了一種基于動态可蒸餾性與可稀疏性聯合學習的模型壓縮方法。它能動态結合蒸餾學習和結構化稀疏裁剪,通過學習可蒸餾性和可稀疏性,自适應地調節聯合訓練機制。

與正常的 “教師 - 學生(Teacher-Student)” 架構不同,文章中提出的方法能夠被描述成 “在學校學習(Learning-in-School)” 架構,因為它包含三大子產品:教師網絡、學生網絡和教導主任網絡。

具體而言,與之前相同,教師網絡教導學生網絡。而教導主任網絡負責控制學生網絡學習的強度以及學習的方式。通過擷取目前教師網絡和學生網絡的狀态,教導主任網絡可以評估目前學生網絡的可蒸餾性和可稀疏性,然後動态地平衡和控制蒸餾學習監督和結構化稀疏裁剪監督的強度。

為了優化本文方法,該研究還提出一種基于交替方向乘子法的蒸餾學習 & 裁剪的聯合優化算法,來更新學生網絡。為了優化和更新教導主任網絡,本文提出一種基于元學習的教導主任優化算法。借助動态調節監督信号,反過來可蒸餾性也能被影響。如圖 1-(a)所示,本文方法證明能夠延緩可蒸餾性的下降趨勢,并且通過合理利用蒸餾的知識,提升了整體的可蒸餾性。

本文方法的整體算法架構和流程圖如下圖所示。該架構包含三大子產品,教師網絡、學生網絡和教導主任網絡。其中,初始的待壓縮裁剪的複雜備援網絡被看作教師網絡,而在後面的訓練過程中,逐漸被稀疏的原始網絡被看作是學生網絡。教導主任網絡是一個元網絡,它輸入教師網絡和學生網絡的資訊來衡量目前可蒸餾性和可稀疏性,進而控制蒸餾學習和稀疏的監督強度。

這樣,在每一時刻,學生網絡都能被動态地蒸餾知識指導和被稀疏。

例如,當學生網絡有更高的可蒸餾性,則教導主任會讓更強的蒸餾監督信号指導學生網絡(見圖 3 中粉色箭頭信号);與此相反,當學生網絡有更高的可稀疏性,教導主任會讓更強的稀疏監督信号施加于學生網絡中(見圖 3 中橙色箭頭信号)。

模型壓縮技術成功節約算力成本

圖 3 基于可蒸餾性與可稀疏性聯合學習的模型壓縮算法示意圖

實驗結果

實驗将本文提出的方法與 24 種主流模型壓縮方法(包括稀疏裁剪方法和蒸餾學習方法)在小規模資料集 CIFAR 和大規模資料集 ImageNet 上進行比較。實驗結果如下圖所示,結果證明本文所提方法的優越性。

表 1 在 CIFAR10 上的模型裁剪結果性能對比:

模型壓縮技術成功節約算力成本

表 2 在 ImageNet 上的模型裁剪結果性能對比:

模型壓縮技術成功節約算力成本

目前該項成果已經應用于人民中科自主研發的跨模态智能搜尋引擎 “白澤”。“白澤” 打破圖文音視等不同模态間資訊表達的隔閡,将文字、圖檔、語音和視訊等不同模态資訊映射到一個統一特征表示空間,以視訊為核心,學習多個模态間統一的距離度量,跨越文字、語音、視訊等多模态内容的語義鴻溝,實作大一統的搜尋能力。

模型壓縮技術成功節約算力成本

然而面對海量的網際網路資料尤其是視訊大資料,跨模态的深度模型對計算資源的消耗逐漸提升。基于該項研究成果,“白澤”能夠在保證算法性能的情況下,将模型大小進行大規模壓縮,進而實作高通量低功耗的跨模态智能了解和搜尋能力。根據初步的實際應用情況來看,該項技術能夠将大模型的參數規模壓縮平均四倍以上。一方面能夠極大降低模型對 GPU 伺服器等高性能計算資源的消耗,另一方面能夠将無法在邊緣端部署的大模型經過蒸餾壓縮後實作邊緣端的低功耗部署。

模型壓縮技術成功節約算力成本

做頂尖的科研,做有用的科研。人民中科将繼續深耕内容安全領域,将人工智能前沿技術與市場需求融合,形成低成本、高效率、自主可控的産品體系,幫助企業降低AI應用門檻。同時,以領先的内容了解能力,護航政府、企業、機構内容安全,為網絡強國建設做貢獻。

編輯:嶽青植

監制:李紅梅

文章來源:《首次将「教導主任」引入模型蒸餾,大規模壓縮優于24種SOTA方法》機器之心

繼續閱讀