我們在學(xué)習(xí)人工智能時常會遇到訓(xùn)練(Training)和推理(Inference)兩個概念,這是人工智能實現(xiàn)的兩個環(huán)節(jié)。今天我們一起討論一下以下兩個問題。
訓(xùn)練和推理的區(qū)別是什么?
區(qū)分人工智能訓(xùn)練和推理芯片/產(chǎn)品需要關(guān)注哪些要點?
1、訓(xùn)練和推理的區(qū)別是什么?
訓(xùn)練過程:又稱學(xué)習(xí)過程,是指通過大數(shù)據(jù)訓(xùn)練出一個復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型,通過大量數(shù)據(jù)的訓(xùn)練確定網(wǎng)絡(luò)中權(quán)重和偏置的值,使其能夠適應(yīng)特定的功能。在訓(xùn)練中需要調(diào)整神經(jīng)網(wǎng)絡(luò)權(quán)重以使損失函數(shù)最小,通過反向傳播來執(zhí)行訓(xùn)練以更新每層中的權(quán)重。訓(xùn)練過程需要較高的計算性能、需要海量的數(shù)據(jù)、訓(xùn)練出的網(wǎng)絡(luò)具有一定通用性。
推理過程:又稱判斷過程,是指利用訓(xùn)練好的模型,使用新數(shù)據(jù)推理出各種結(jié)論。推理是預(yù)測或推斷的過程,借助在訓(xùn)練中已確定參數(shù)的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行運算,利用輸入的新數(shù)據(jù)來一次性進(jìn)行分類或輸出預(yù)測結(jié)果。
我們可以類比我們自己進(jìn)行學(xué)習(xí),并用自己學(xué)到的知識進(jìn)行判斷的過程。學(xué)習(xí)的過程(訓(xùn)練)是這樣的,當(dāng)我們在學(xué)校開始學(xué)習(xí)一門新學(xué)科,為了掌握大量的知識,我們必須讀大量的書、專心聽老師講解,課后我們還要做大量的習(xí)題鞏固自己對知識的理解,并通過考試來驗證學(xué)習(xí)的結(jié)果,當(dāng)我們考試通過后我們才算是完成了整個學(xué)習(xí)過程。每次考試,有的同學(xué)考分高,有的同學(xué)考分低,這個就是學(xué)習(xí)效果的差別了。當(dāng)然,如果你不幸考試沒有通過,還要繼續(xù)重新學(xué)習(xí),不斷提升你對知識的掌握程度,直到最終通過考試為止。而判斷的過程(推理)如下,我們應(yīng)用所學(xué)的知識進(jìn)行判斷,比如你從醫(yī)學(xué)專業(yè)畢業(yè),開始了你治病救人的工作,這時候你對病人病因的判斷就是你在做“推理”的工作,你診斷100個病人,其中99個你都能準(zhǔn)確的判斷出病因,大家都夸你是一個好醫(yī)生,學(xué)有所成、判斷準(zhǔn)確。
綜上,人工智能的這種訓(xùn)練過程和推理過程,和人類大腦學(xué)習(xí)過程和判斷的過程非常相似。通常需要花很長時間來學(xué)習(xí)(即訓(xùn)練),而學(xué)會之后進(jìn)行判斷(即推理)的時間只需要一剎那就行了。
2、區(qū)分人工智能訓(xùn)練和推理芯片/產(chǎn)品需要關(guān)注哪些要點? 根據(jù)承擔(dān)任務(wù)的不同,AI芯片/產(chǎn)品可以分為兩類,分別是訓(xùn)練AI芯片和推理AI芯片,他們的主要區(qū)別是以下幾點。
(1)部署的位置不一樣
大量的訓(xùn)練芯片都在云端,即部署于數(shù)據(jù)中心內(nèi),利用海量的數(shù)據(jù)和龐大而復(fù)雜的神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練,這類芯片都很復(fù)雜。目前,除了英偉達(dá)、超威、英特爾等芯片公司,谷歌等這些互聯(lián)網(wǎng)公司都有云端訓(xùn)練芯片,國內(nèi)華為、寒武紀(jì)還有好多初創(chuàng)公司也在做云端訓(xùn)練芯片。
很多的推理芯片也會放置在云端,數(shù)據(jù)中心中很多服務(wù)器都會配置推理用的PCIE插卡,還有大量的推理芯片用在邊緣側(cè)(各種數(shù)據(jù)中心外的設(shè)備),如自動駕駛汽車、機(jī)器人、智能手機(jī)、無人機(jī)或物聯(lián)網(wǎng)設(shè)備,它們都是用訓(xùn)練好的模型進(jìn)行推理。布局云端推理芯片和邊緣側(cè)推理芯片的公司更多,產(chǎn)品種類豐富,定制化程度也會高很多。
(2)性能要求不一樣
準(zhǔn)確度/精度要求不一樣
我們從性能角度評價一個人工智能系統(tǒng)的效果,可以通過準(zhǔn)確度/精度這樣的指標(biāo),比如在100個樣本中,能預(yù)測了 85 個樣本,準(zhǔn)確率為 85%,人工智能 算法是基于概率論和統(tǒng)計學(xué)的,不可能達(dá)到 100% 的預(yù)測準(zhǔn)確率,并且實現(xiàn)越高的準(zhǔn)確度需要付出越大的努力和代價越大。我們經(jīng)常提到的數(shù)據(jù)精度,也會直接影響系統(tǒng)準(zhǔn)確性,我們可以把數(shù)據(jù)的精度類比為照片中的像素數(shù),像素越多則分辨率越高,同樣,精度越高,表征事物越準(zhǔn)確。提高精度也是有代價的,它需要系統(tǒng)提供更多的內(nèi)存,并要耗費更長的處理時間,比如有數(shù)據(jù)證明采用int4精度與int8相比具有59%的加速。
實際應(yīng)用中,并不是準(zhǔn)確度越高越好或支持的數(shù)據(jù)精度越高越好,不同的應(yīng)用場景對于性能指標(biāo)的要求也是不一樣的。以圖像識別應(yīng)用為例,在零售店人員跟蹤中,識別經(jīng)過某個過道的顧客,這種應(yīng)用5% ~10%的誤差是可以接受的;但是在醫(yī)療診斷或汽車視覺的等應(yīng)用中,準(zhǔn)確度的要求就要高很多,準(zhǔn)確度低了就無法應(yīng)用??傊煌瑧?yīng)用對于準(zhǔn)確度和精度的容忍度是不一樣的,需要我們進(jìn)行權(quán)衡。
回到推理和訓(xùn)練產(chǎn)品,選擇時就有很大區(qū)別,比如在邊緣側(cè)的推理產(chǎn)品中,由于它對準(zhǔn)確度的要求不高,我們可能只要支持int8甚至更低的精度就可以了。但是訓(xùn)練產(chǎn)品,比如用于高性能計算(HPC)場景中,必須有能力實現(xiàn)高的準(zhǔn)確度,支持的數(shù)據(jù)精度范圍也需要更加豐富,比如需要支持FP32、FP64這樣精度的數(shù)據(jù)。10月7日美國對我國新一期的芯片限制法案中,就有一條是對我們支持FP64計算類芯片的研發(fā)和生產(chǎn)進(jìn)行限制。
計算量要求不一樣
訓(xùn)練需要密集的計算,通過神經(jīng)網(wǎng)絡(luò)算出結(jié)果后,如果發(fā)現(xiàn)錯誤或未達(dá)到預(yù)期,這時這個錯誤會通過網(wǎng)絡(luò)層反向傳播回來(參考 機(jī)器學(xué)習(xí)中的函數(shù)(3) - “梯度下降”走捷徑,“BP算法”提效率 ),該網(wǎng)絡(luò)需要嘗試做出新的推測,在每一次嘗試中,它都要調(diào)整大量的參數(shù),還必須兼顧其它屬性。再次做出推測后再次校驗,通過一次又一次循環(huán)往返,直到其得到“最優(yōu)”的權(quán)重配置,達(dá)成預(yù)期的正確答案。如今,神經(jīng)網(wǎng)絡(luò)復(fù)雜度越來越高,一個網(wǎng)絡(luò)的參數(shù)可以達(dá)到百萬級以上,因此每一次調(diào)整都需要進(jìn)行大量的計算。曾在斯坦福大學(xué)做過研究,在谷歌和百度都任職過的吳恩達(dá)這樣舉例“訓(xùn)練一個百度的漢語語音識別模型不僅需要4TB的訓(xùn)練數(shù)據(jù),而且在整個訓(xùn)練周期中還需要20 exaflops(百億億次浮點運算)的算力”,訓(xùn)練是一個消耗巨量算力的怪獸。 推理是利用訓(xùn)練好的模型,使用新數(shù)據(jù)推理出各種結(jié)論,它是借助神經(jīng)網(wǎng)絡(luò)模型進(jìn)行運算,利用輸入的新數(shù)據(jù)“一次性”獲得正確結(jié)論的過程,他不需要和訓(xùn)練一樣需要循環(huán)往復(fù)的調(diào)整參數(shù),因此對算力的需求也會低很多。
存儲要求不一樣
訓(xùn)練的時候反向調(diào)整會應(yīng)用到前饋網(wǎng)絡(luò)計算的中間結(jié)果,所以需要很大的顯存,訓(xùn)練的芯片存儲的設(shè)計和使用的方案是復(fù)雜的。訓(xùn)練好的模型,需要使用大量數(shù)據(jù),大量數(shù)據(jù)要讀入顯存,顯存帶寬要足夠大、時延要足夠低。同時,我們在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中使用梯度下降算法,顯存中除了加載模型參數(shù),還需要保存梯度信息的中間狀態(tài),因此訓(xùn)練相比于推理,顯存需求大大增加,顯存足夠大才能運轉(zhuǎn)起來。
綜上,訓(xùn)練和推理的芯片/產(chǎn)品部署的位置不一樣,對于性能準(zhǔn)確度和精度的要求不一樣,對于算力能力和存儲大小的要求也不一樣,除了這些關(guān)鍵指標(biāo)差異外。用于訓(xùn)練場景的芯片高精度、高吞吐量,因此單芯片功耗大(甚至可以達(dá)到300W),這種芯片成本也很高;用于云端推理的芯片,更加關(guān)注算力、時延等的平衡,對功耗成本也非常敏感。參考英偉達(dá)的產(chǎn)品,它每一代產(chǎn)品并沒有開發(fā)專門的推理卡,其使用的是訓(xùn)練卡的低配版本來做推理的。但邊緣測應(yīng)用推理芯片,就一定要結(jié)合應(yīng)用場景,做到低功耗、低成本。
3、我們?nèi)绾稳W(xué)習(xí)理解人工智能里的訓(xùn)練和推理?
要學(xué)習(xí)理解人工智能,訓(xùn)練和推理相關(guān)的知識是必須都要掌握的,如果你只學(xué)習(xí)了“訓(xùn)練”中如何搭建網(wǎng)絡(luò),參數(shù)調(diào)整等,那么你就無法了解結(jié)合實際應(yīng)用“推理”是如何發(fā)揮作用的,接不了地氣;同樣,如果你只做過“推理”的操作,那么你也不能理解在實現(xiàn)推理判斷之前,需要做哪些準(zhǔn)備工作,進(jìn)行大量的計算,才能訓(xùn)練出一個可用的、好的神經(jīng)網(wǎng)絡(luò)。 審核編輯:郭婷
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4734瀏覽量
100420 -
人工智能
+關(guān)注
關(guān)注
1789文章
46669瀏覽量
237106
原文標(biāo)題:人工智能中訓(xùn)練和推理的區(qū)別是什么?
文章出處:【微信號:Hardware_10W,微信公眾號:硬件十萬個為什么】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論