【推理引擎:核心原理】系列來啦!從入門到昇騰!
哎,當年作為核心SE在MindSpore團隊從0到1構建了MindSpore Lite推理引擎,到去年知道的信息是現在在華為和榮耀手機上的AI能力都是基于Lite推理引擎,調用次數10億/天。
所以就基于之前的工作,總結了《AI推理引擎:核心原理》這個系列的內容:從推理系統整體架構開始,然后到模型小型化、模型壓縮,在真正推理之前需要進行模型轉換和圖優化,最后到kernel和runtime優化。還是很有意思的,也花了很多時間,希望能夠幫助到大家啦!!!
在講推理引擎/推理系統,又或者是推理部署之前呢,我們回顧下訓練和推理的區別 ^_^
訓練過程通過設定數據處理方式,并設計合適的網絡模型結構以及損失函數和優化算法,在此基礎上將數據集以小批量(mini-batch)反復進行前向計算并計算損失,然后反向計算梯度利用特定的優化函數來更新模型,來使得損失函數達到最優的結果。訓練過程最重要的就是梯度的計算和反向傳播。
而推理就是在訓練好的模型結構和參數基礎上,做一次前向傳播得到模型輸出的過程。相對于訓練而言,推理不涉及梯度和損失優化。推理的最終目標是將訓練好的模型部署生產環境中。真正讓 AI 能夠運用起來。推理引擎可以將深度學習模型部署到云(Cloud)端或者邊緣(Edge)端,并服務用戶的請求。模型訓練過程好比是傳統軟件工程中的代碼開發的過程,而開發完的代碼勢必要打包,部署給用戶使用,那么推理系統就負責應對模型部署的生命周期中遇到的挑戰和問題。
當推理系統將完成訓練的模型進行部署,并在服務時還需要考慮設計和提供負載均衡,請求調度,加速優化,多副本和生命周期管理等支持。相比深度學習框架等為訓練而設計的系統,推理系統不僅關注低延遲,高吞吐,可靠性等設計目標,同時受到資源,服務等級協議(Service-Level Agreement),功耗等約束。本章將圍繞深度學習推理系統的設計,實現與優化內容展開,同時還會在最后介紹部署和 MLOps 等內容。
移動端的推理引擎應該挺多的了,google在2017年推出了TF-Lite,騰訊在2017年推出了ncnn,Apple在2017也推出了CoreML,阿里在2018年推出了MNN,華為2019年推出了MindSpsore-Lite。距今已經過去了快5年的時間,技術上也接近收斂。下面讓我們一起打開推理引擎的技術吧!
系列內容
-
《推理系統》推理系統是本分享的重點概述,推理就是在訓練好的模型結構和參數基礎上,執行前向傳播得到模型輸出的過程。相對于訓練而言,推理不涉及梯度和損失優化。推理的最終目標是將訓練好的模型部署生產環境中,真正讓 AI 能夠運用起來。推理引擎可以將深度學習模型部署到云(Cloud)端或者邊緣(Edge)端,并服務用戶的請求。模型訓練過程好比是傳統軟件工程中的代碼開發的過程,而開發完的代碼勢必要打包,部署給用戶使用,那么推理系統就負責應對模型部署的生命周期中遇到的挑戰和問題。
-
《輕量網絡》在端側推理引擎中,主要是執行輕量的模型結構。主要思想是針對神經網絡模型設計更高效的網絡計算方式,從而使神經網絡模型的參數量減少的同時,不損失網絡精度,并進一步提高模型的執行效率。本節主要集中介紹模型小型化中需要注意的參數和指標,接著深入了解CNN經典的輕量化模型和Transformer結構的輕量化模型。
-
《模型壓縮》模型壓縮跟輕量化網絡模型不同,壓縮主要是對輕量化或者非輕量化模型執行剪枝、蒸餾、量化等壓縮算法和手段,使得模型更加小、更加輕便、更加利于執行。
-
《模型轉換&優化》在這一節當中分為模型轉換和模型優化,在整體架構圖中屬于離線模型轉換模塊。一方面,推理引擎需要把不同 AI 框架訓練得到的模型進行轉換;另外一方面需要對轉換后的模型進行圖優化等技術。
-
《Kernel優化》在上層應用或者 AI 網絡模型中,看到的是算子;但是在推理引擎實際執行的是具體的 Kernel,而推理引擎中 CNN 占據了主要是得執行時間,因此其 Kernel 優化尤為重要。
希望這個系列能夠給大家、朋友們帶來一些些幫助,也希望自己能夠繼續堅持完成所有內容哈!
然這里不是打廣告,而是希望跟所有關注開源項目的好朋友一起探討研究,共同促進學習討論,也歡迎各位專家和朋友多拍拍磚,多提點意見。相關的材料都開源在這里:
?
具體大綱
通過《推理引擎:核心原理》系列,我們會給大家介紹下面一些內容:
1. 推理系統
2. 模型小型化
3. 模型壓縮
-
壓縮四件套介紹(video)
-
低比特量化原理(video)
-
感知量化訓練 QAT(video)
-
訓練后量化PTQ與部署(video)
-
模型剪枝(video)
-
(上) 知識蒸餾原理(video)
-
(下) 知識蒸餾算法(video)
4. 模型轉換
5. 圖優化模塊
6. Kernel優化
完結,撒花!
浙公網安備 33010602011771號