電子發燒友網報道(文/李彎彎)當前,全球眾多科技企業都在積極研究AI大模型,然而因為參數規模太大,要想實現AI大模型在邊/端側部署,需要用到模型壓縮技術。當前谷歌、微軟、騰訊等廠商在該領域均有布局,加速AI技術與智能終端的融合。
為什么需要模型壓縮技術
模型壓縮是一種縮小訓練后的神經網絡的技術,目的是保證模型預測效果的前提下,盡可能地降低模型的大小。模型壓縮之后,所需要的計算資源變小,有利于在移動端部署。
有一個很形象的例子,深度學習變臉業務,假設在模型優化前,原始模型處理每個視頻要30秒,那么一張GPU卡一分鐘只能處理2個視頻。假設APP的使用峰值是1000人同時使用,那么這家公司至少要有500張GPU卡才能滿足需求。
如果模型壓縮技術能讓模型變小許多,使得每個視頻處理只需要10秒,那么這個客戶可能只需要150張卡就能滿足業務需求。每年的成本可以從原來的3000萬控制在1000萬左右,省下的2000萬,就是模型壓縮技術的價值。
量化、網絡剪枝和知識蒸餾
模型壓縮的方法主要有量化、網絡剪枝、知識蒸餾。量化的意思是,將浮點計算轉成低比特定點計算,模型由大量的浮點型權重組成,如果能用float32替代原有的float64表示,模型就近乎減小一倍,量化也是最容易實現的一種壓縮方式。
傳統意義上的量化即為將連續信號轉換為離散信號,在神經網絡的量化中,即將浮點數float32→int8,int4,int2等,量化其本質就是低精度,常規精度一般使用FP32存儲模型權重,低精度則表示FP16,或INT8等數值格式,不過目前低精度往往指的是INT8。
模型壓縮,使得原本只能在云端運行大模型,也能夠部署在終端設備上。比如,近年來很流行的基礎模型 Stable Diffusion ,它是一個非常出色的從文本到圖像的生成式 AI 模型,能夠基于任何文本輸入,在數十秒內創作出逼真圖像。Stable Diffusion 的參數超過 10 億,此前主要限于在云端運行。
高通 AI Research 利用高通 AI 軟件棧(Qualcomm AI Stack)執行全棧 AI 優化,首次實現了在Android智能手機上部署 Stable Diffusion,其中就用到了模型壓縮技術量化的方法。
據介紹,高通的全棧 AI 研究指跨應用、神經網絡模型、算法、軟件和硬件進行優化。針對 Stable Diffusion,他們從 Hugging Face 的 FP32 1-5 版本開源模型入手,通過量化、編譯和硬件加速進行優化,使其能在搭載第二代驍龍 8 移動平臺的手機上運行。
為了把模型從 FP32 壓縮為 INT8,高通使用了其 AI 模型增效工具包 (AIMET) 的訓練后量化。自適應舍入 (AdaRound) 等先進的高通 AIMET 量化技術能夠在更低精度水平保持模型準確性,無需進行重新訓練。
這些技術能夠應用于構成 Stable Diffusion 的所有組件模型,即基于 Transformer 的文本編碼器、VAE 解碼器和 UNet。這對于讓模型適合于在終端上運行至關重要。
網絡剪枝,是指除神經網絡中冗余的通道、神經元節點等。深度學習模型可以看作是一個復雜樹狀結構,如果能減去一些對結果沒什么影響的旁枝,就可以實現模型的減小。
模型的構成是由許多浮點型的神經元相連接,每一層根據神經元的權重將信息向下傳遞。但是有一些神經元的權重非常小,這類神經元對整個模型加載的信息影響微乎其微。如果可以把這些權重較小的神經元刪減掉,既減少了模型大小,也不會對模型的效果帶來大的影響。
每一層把數值小的神經元去掉,但是剪枝粒度維持到多大也是有講究的,比如可以把每層最小的5個減掉,也可能只剪3個,或者每層有每層不同的策略。剪多了,模型精度影響會比較大,剪少了沒有效果。所以這里面需要大量的嘗試和迭代。
知識蒸餾,是指將大模型作為教師模型,用其輸出訓練性能接近、結構更簡的學生模型。一般而言,大模型往往是單個復雜網絡或者是若干網絡的集合,擁有良好的性能和泛化能力,而小模型因為網絡規模較小,表達能力有限。
因此,可以利用大模型學習到的知識去指導小模型訓練,使得小模型具有與大模型相當的性能,但是參數數量大幅降低,從而實現模型壓縮。
小結
當下,AI大模型發展如火如荼,然而因為參數規模太大,不僅僅是訓練,大模型的部署推理,也需要倚賴豐富的計算資源。如果想要大模型能夠在邊/終端側實現部署,這其中就需要用到模型壓縮技術,如高通使用量化的方法,讓Stable Diffusion能夠在手機上運行。
-
AI
+關注
關注
87文章
31536瀏覽量
270343
發布評論請先 登錄
相關推薦
評論