自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

模型部署優(yōu)化的學(xué)習(xí)路線是什么?

開(kāi)發(fā) 前端
模型部署優(yōu)化這個(gè)方向其實(shí)比較寬泛。 從模型完成訓(xùn)練,到最終將模型部署到實(shí)際硬件上,整個(gè)流程中會(huì)涉及到很多不 同層面的工作,每一個(gè)環(huán)節(jié)對(duì)技術(shù)點(diǎn)的要求也不盡相同。

[[417099]]

知友問(wèn): 我現(xiàn)在只會(huì) Python,每天工作就是寫腳本處理數(shù)據(jù)、訓(xùn)練模型,但是沒(méi)什么工程能力,我想往模型部署優(yōu)化、算法落地這個(gè)方向發(fā)展,請(qǐng)問(wèn)該怎么學(xué)習(xí)與規(guī)劃?

模型部署優(yōu)化這個(gè)方向其實(shí)比較寬泛。 從模型完成訓(xùn)練,到最終將模型部署到實(shí)際硬件上,整個(gè)流程中會(huì)涉及到很多不 同層面的工作,每一個(gè)環(huán)節(jié)對(duì)技術(shù)點(diǎn)的要求也不盡相同。

部署的流程大致可以分為 以 下幾個(gè)環(huán)節(jié):

一、模型轉(zhuǎn)換 

從訓(xùn)練框架得到模型后,根據(jù)需求轉(zhuǎn)換到相應(yīng)的模型格式。 模型格式的選擇通常是根據(jù)公司業(yè)務(wù)端 SDK 的需求,通常為 caffe 模型或 onnx 模型,以方便模型在不同的框架之間適配。

該環(huán)節(jié)的工作需要對(duì)相應(yīng)的訓(xùn)練框架以及 caffe/onnx 等模型格式有所了解。

常用的 Pytorch 和 TensorFlow 等框架都有十分成熟的社區(qū)和對(duì)應(yīng)的博客或教程; caffe 和 onnx 模型格式也有很多可參考和學(xué)習(xí)的公開(kāi)文檔。

即使沒(méi)找到有可參考的文章時(shí),好在二者都是開(kāi)源的,依然可以通過(guò)對(duì)源碼和樣例代碼的閱讀來(lái)尋找答案。

二、模型優(yōu)化 

此處的模型優(yōu)化是指與后端無(wú)關(guān)的通用優(yōu)化,比如常量折疊 、 算數(shù)優(yōu)化 、 依賴優(yōu)化 、 函數(shù)優(yōu)化 、 算子融合 以及 模型信息簡(jiǎn)化等等。

部分訓(xùn)練框架會(huì)在訓(xùn)練模型導(dǎo)出時(shí)就包含部分上述優(yōu)化過(guò)程,同時(shí)如果模型格式進(jìn)行了轉(zhuǎn)換操作,不同 IR 表示之間的差異可能會(huì)引入一 些冗余或可優(yōu)化的計(jì)算,因此在模型轉(zhuǎn)換后通常也會(huì)進(jìn)行一部分的模型優(yōu)化操作。

該環(huán)節(jié)的工作需要對(duì)計(jì)算圖的執(zhí)行流程、各個(gè) op 的計(jì)算定義、程序運(yùn)行性能模型有一定了解,才能知道如果進(jìn)行模型優(yōu)化, 如何 保證優(yōu)化后的模型具有更好的性能。

了解 得 越深入,越可以挖掘到更多的模型潛在性能。

三、模型壓縮 

廣義上來(lái)講,模型壓縮也屬于模型優(yōu)化的一部分。模型壓縮本身也包括很多種方法,比如剪枝 、 蒸餾 、 量化等等。 模型壓縮的根本目的是希望獲得一個(gè)較小的模型,減少存儲(chǔ)需求的同時(shí)降低計(jì)算量,從而達(dá)到加速的目的。

該環(huán)節(jié)的工作需要對(duì)壓縮算法本身 、 模型涉及到的算法任務(wù)及模型結(jié)構(gòu)設(shè)計(jì) 、 硬件平臺(tái)計(jì)算流程三個(gè)方面都有一定的了解。

當(dāng)因模型壓縮操作導(dǎo)致模型精度下降時(shí),對(duì)模型算法的了解,和該模型在硬件上的計(jì)算細(xì)節(jié)有足夠的了解,才能分析出精度下降的原因,并給出針對(duì)性的解決方案。

對(duì)于模型壓縮更重要的往往是工程經(jīng)驗(yàn) , 因?yàn)樵诓煌挠布蠖松喜渴鹣嗤哪P蜁r(shí), 由于 硬件計(jì)算的差異性,對(duì)精度的影響往往也不盡相同,這方面只有通過(guò) 積累 工程經(jīng)驗(yàn)來(lái)不斷提升。

Open PPL 也在逐步開(kāi)源自己的模型壓縮工具鏈,并對(duì)上述提到的模型算法、壓縮算法 和 硬件平臺(tái)適配等方面的知識(shí)進(jìn)行介紹 。

四、模型部署

模 型部署是整個(gè)過(guò)程中最復(fù)雜的環(huán)節(jié)。從工程上講,主要的核心任務(wù)是模型打包 、 模型加密,并進(jìn)行 SDK 封裝。

在一個(gè)實(shí)際的產(chǎn)品中,往往會(huì)用到多個(gè)模型。

模型打包是指將模型涉及到的前后處理,以及多個(gè)模型整合到一起,并加入一些其他描述性文件。 模型打包的格式和模型加密的方法與具體的 SDK 相關(guān)。 在該環(huán)節(jié)中主要涉及到的技能與 SDK 開(kāi)發(fā)更為緊密。

從功能上講,對(duì)部署最后的性能影響最大的肯定是 SDK 中包含的后端庫(kù),即實(shí)際運(yùn)行模型的推理庫(kù)。 開(kāi)發(fā)一個(gè)高性能推理庫(kù)所需要的技能點(diǎn)就要更為廣泛 ,并且 專業(yè)。

并行計(jì)算的編程思想在不同的平臺(tái)上是通用的,但不同的硬件架構(gòu)的有著各自的特點(diǎn),推理庫(kù)的開(kāi)發(fā)思路也不盡相同,這也就要求對(duì)開(kāi)發(fā)后端的架構(gòu)體系有著一定的了解。

具體到不同架構(gòu)的編程學(xué)習(xí),建議參考當(dāng)前各大廠開(kāi)源的推理庫(kù)來(lái)進(jìn)一步學(xué)習(xí) 。

 

責(zé)任編輯:張燕妮 來(lái)源: OpenPPL
相關(guān)推薦

2024-02-20 15:17:35

機(jī)器學(xué)習(xí)模型部署

2013-05-23 09:29:45

系統(tǒng)優(yōu)化程序員

2013-05-23 09:20:15

系統(tǒng)優(yōu)化

2018-04-09 14:25:06

數(shù)據(jù)庫(kù)MySQL索引

2018-08-06 07:51:03

NFV網(wǎng)絡(luò)功能虛擬化

2022-02-04 22:28:14

ICS安全模型

2021-01-25 09:00:00

機(jī)器學(xué)習(xí)人工智能算法

2020-05-21 14:05:17

TFserving深度學(xué)習(xí)架構(gòu)

2024-09-09 11:45:15

ONNX部署模型

2025-02-20 09:27:46

2010-06-03 11:34:42

Hadoop

2013-08-05 09:31:04

Android4.3TRIM

2022-03-28 18:59:02

DockerFlask深度學(xué)習(xí)

2012-11-15 16:03:43

2022-05-10 10:19:04

AI深度學(xué)習(xí)模型

2020-04-22 11:22:41

物聯(lián)網(wǎng)智能調(diào)度智能運(yùn)輸

2014-08-13 17:09:57

ios學(xué)習(xí)

2018-07-03 05:44:12

物聯(lián)網(wǎng)IoT網(wǎng)絡(luò)

2023-03-30 14:10:30

2018-08-31 21:00:39

數(shù)據(jù)交換模型數(shù)據(jù)模型應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)