智能計算系統(tǒng):從深度學習到大模型 第2版課件 期末復習_第1頁
智能計算系統(tǒng):從深度學習到大模型 第2版課件 期末復習_第2頁
智能計算系統(tǒng):從深度學習到大模型 第2版課件 期末復習_第3頁
智能計算系統(tǒng):從深度學習到大模型 第2版課件 期末復習_第4頁
智能計算系統(tǒng):從深度學習到大模型 第2版課件 期末復習_第5頁
已閱讀5頁,還剩105頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

智能計算系統(tǒng)

期末復習中國科學院計算所李威副研究員liwei2017@什么是智能計算系統(tǒng)?智能計算系統(tǒng)是智能的物質載體現(xiàn)階段的智能計算系統(tǒng)通常是集成CPU和智能芯片的異構系統(tǒng),軟件上通常包括一套面向開發(fā)者的智能計算編程環(huán)境(包括編程框架和編程語言)2智能計算系統(tǒng)的形態(tài)數(shù)據(jù)中心智能手機嵌入式設備超級計算機語音識別自動翻譯藥物研制圖像分析商業(yè)分析廣告推薦3機器人自動駕駛處理過程輸入輸出建模實現(xiàn)運行4二三章章節(jié)定位5輸入輸出建模實現(xiàn)運行神經(jīng)網(wǎng)絡基礎深度學習學習了神經(jīng)網(wǎng)絡的基本知識,多層感知機的正反向計算過程,以及基礎優(yōu)化方法。本章通過分析經(jīng)典深度學習算法,學習將基礎神經(jīng)網(wǎng)絡應用到實際場景,并逐步優(yōu)化實現(xiàn)工業(yè)級應用的過程。包含關系人工智能機器學習神經(jīng)網(wǎng)絡深度學習1深度學習神經(jīng)網(wǎng)絡機器學習人工智能6如何學習?如何理解?如何學會?從最簡單的線性回歸模型開始,直至搭建出一個完整的神經(jīng)網(wǎng)絡架構7線性回歸什么是回歸(regression)和線性回歸?

一種用統(tǒng)計方法來分析一個因變量和一組自變量關系的一個方法線性回歸:自變量跟因變量之間的關系是線性的8單變量線性回歸模型(一元回歸模型)線性回歸可以找到一些點的集合背后的規(guī)律:一個點集可以用一條直線來擬合,這條擬合出來的直線的參數(shù)特征,就是線性回歸找到的點集背后的規(guī)律。

單變量線性模型

9多變量線性回歸模型單變量線性模型多變量線性模型2個特征

10線性函數(shù)擬合得好不好?

損失函數(shù)

11

12多層感知機將大量的神經(jīng)元模型進行組合,用不同的方法進行連接并作用在不同的激活函數(shù)上,就構成了人工神經(jīng)網(wǎng)絡模型。多層感知機一般指全連接的兩層神經(jīng)網(wǎng)絡模型輸入

隱層

輸出層

13多層感知機輸入

隱層

輸出層

14+1+1神經(jīng)網(wǎng)絡訓練正向傳播(推斷)是根據(jù)輸入,經(jīng)過權重、激活函數(shù)計算出隱層,將輸入的特征向量從低級特征逐步提取為抽象特征,直到得到最終輸出結果的過程。反向傳播(訓練)是根據(jù)正向傳播的輸出結果和期望值計算出損失函數(shù),再通過鏈式求導,最終從網(wǎng)絡后端逐步修改權重使輸出和期望值的差距變到最小的過程。

反向更新權值

15反向傳播的作用是將神經(jīng)網(wǎng)絡的輸出誤差反向傳播到神經(jīng)網(wǎng)絡的輸入端,并以此來更新神經(jīng)網(wǎng)絡中各個連接的權重當?shù)谝淮畏聪騻鞑シㄍ瓿珊?,網(wǎng)絡的模型參數(shù)得到更新,網(wǎng)絡進行下一輪的正向傳播過程,如此反復的迭代進行訓練,從而不斷縮小計算值與真實值之間的誤差。16訓練完了結果就是不準,怎么辦?神經(jīng)網(wǎng)絡的模型訓練調整網(wǎng)絡拓撲結構選擇合適的激活函數(shù)選擇合適的損失函數(shù)17神經(jīng)網(wǎng)絡的拓撲調節(jié)輸入:神經(jīng)元個數(shù)=特征維度輸出層:神經(jīng)元個數(shù)=分類類別數(shù)隱層:

隱層的數(shù)量?隱層神經(jīng)元的個數(shù)?神經(jīng)網(wǎng)絡的結構一般為:輸入×隱層×輸出層給定訓練樣本后,輸入和輸出層節(jié)點數(shù)便已確定18選擇合適的激活函數(shù)

可微性:當優(yōu)化方法是基于梯度的時候,這個性質是必須的。

輸出值的范圍:當激活函數(shù)輸出值是有限的時候,基于梯度的優(yōu)化方法會更加穩(wěn)定,因為特征的表示受有限權值的影響更顯著;當激活函數(shù)的輸出是無限的時候,模型的訓練會更加高效,不過在這種情況下,一般需要更小的學習率。激活函數(shù)需具備的性質激活函數(shù)給神經(jīng)元引入了非線性因素,使得神經(jīng)網(wǎng)絡可以任意逼近任何非線性函數(shù),因此神經(jīng)網(wǎng)絡可以應用到眾多的非線性模型中

19神經(jīng)網(wǎng)絡中損失函數(shù)的特性同一個算法的損失函數(shù)不是唯一的損失函數(shù)是參數(shù)(w,b)的函數(shù)損失函數(shù)可以評價網(wǎng)絡模型的好壞,損失函數(shù)越小說明模型和參數(shù)越符合訓練樣本(x,y)損失函數(shù)是一個標量選擇損失函數(shù)時,挑選對參數(shù)(w,b)可微的函數(shù)(全微分存在,偏導數(shù)一定存在)損失函數(shù)又稱為代價函數(shù)、目標函數(shù)20欠擬合和過擬合x1yx1yx1y欠擬合合適擬合過擬合欠擬合:訓練考慮的維度太少,擬合函數(shù)無法滿足訓練集,誤差較大過擬合:訓練考慮的維度太多,使得擬合的函數(shù)很完美的接近訓練數(shù)據(jù)集,但泛化能力差,對新數(shù)據(jù)預測能力不足21神經(jīng)網(wǎng)絡存在的問題及解決辦法神經(jīng)網(wǎng)絡規(guī)模不斷加大,可能會導致一個致命問題:過擬合,泛化能力差正則化22定義機器學習不僅要求模型在訓練集上求得一個較小的誤差,在測試集上也要表現(xiàn)好。因為模型最終是要部署到?jīng)]有見過訓練數(shù)據(jù)的真實場景。提升模型在測試集上的預測效果叫做泛化。神經(jīng)網(wǎng)絡的層數(shù)增加,參數(shù)也跟著增加,表示能力大幅度增強,極容易出現(xiàn)過擬合現(xiàn)象參數(shù)范數(shù)懲罰、稀疏化、Bagging集成、Dropout、提前終止、數(shù)據(jù)集擴增等正則化方法可以有效抑制過擬合過擬合(overfitting)指模型過度接近訓練的數(shù)據(jù),模型的泛化能力不足。具體表現(xiàn)為在訓練數(shù)據(jù)集上的誤差很低,但在測試數(shù)據(jù)集上的誤差很大。23適合圖像處理的卷積神經(jīng)網(wǎng)絡計算機視覺24輸入圖像輸入圖像大小為32x32,輸入數(shù)據(jù)量為32x32x3=3072隱層神經(jīng)元個數(shù)為100,第一層權值數(shù)量為3072x100=307200卷積神經(jīng)網(wǎng)絡(CNN)25全連接卷積局部連接權重共享所有神經(jīng)元之間的連接都使用不同權重。輸出層神經(jīng)元共用同一組權重,進一步減少權重數(shù)量。權重數(shù)量CNN組成VGG16卷積層(conv)池化層(max

pool)全連接層(FC)Softmax26卷積層27多輸入特征圖單輸出特征圖卷積運算*inputfilter=output6x6x33x3x34x4x1卷積層28*=6x6x33x3x34x4x10000110020000020120000220121-1-1-1-10-1111-1-1-10-1-101-111-11-11-11C=0C=1C=2*=2-2-1+2+0-2+0+2+(-1)+0+0+2=2卷積層29卷積層30多輸入特征圖多輸出特征圖卷積運算*inputfilter1=output6x6x32x3x3x34x4x2不同的權重可檢測不同特征。filter2output卷積層31邊界擴充(padding)擴大輸入圖像/特征圖的尺寸并填充像素防止深度網(wǎng)絡中圖像被動持續(xù)減小強化圖像邊緣信息卷積步長(stride)滑動濾波器時每次移動的像素點個數(shù)與pad共同確定輸出圖像尺寸

池化層32PoolingMaxPooling/AvgPooling/L2Pooling主動減小圖片尺寸,從而減少參數(shù)的數(shù)量和計算量,控制過擬合;不引入額外參數(shù);231523745231396042064712410806702163753964786Maxpooling

Maxpooling可保留特征最大值,提高提取特征的魯棒性。全連接層33FullyConnect卷積層和池化層構成特征提取器,全連接層則為分類器;將特征提取得到的高維特征圖映射成一維特征向量,該特征向量包含

所有特征信息,可轉化為各個類別的概率。Softmax

卷積神經(jīng)網(wǎng)絡結構34層排列規(guī)律Conv+relupoolFC+reluFC/softmaxNMK…dog常見卷積神經(jīng)網(wǎng)絡由卷積層(激活)、池化層和全連接層構成;各層的常見排列方式如圖所示,其中N、M、K為重復次數(shù);例如:N=3,M=1,K=2情況下的網(wǎng)絡結構為:

淺層學習局部特征,深層學習整體特征35神經(jīng)網(wǎng)絡可視化:conv6conv9Springenberg,J.T.;Dosovitskiy,A.;Brox,T.&Riedmiller,M.Strivingforsimplicity:theallconvolutinalnetICML,2015,1-12基于CNN的圖像分類算法36AlexNetVGGInception系列ResNetVGG37Paper:VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition(2014)Author:K.Simonyan,

A.ZissermanTest:errorrateonImageNet,top1:24.7%,top5:7.5%VGG16ResNet38Paper:DeepResidualLearningforImageRecognition(2015)Author:KaimingHe,XiangyuZhang,ShaoqingRen,JianSunTest:errorrateonImageNet,top5:3.57%(resnet152)ResNet39問題:卷積層堆積就能提升圖像分類準確率嗎?實驗:分別用20層和56層卷積神經(jīng)網(wǎng)絡在cifar10數(shù)據(jù)集上進行訓練和測試,發(fā)現(xiàn)更深的網(wǎng)絡錯誤率更高,在ImageNet數(shù)據(jù)集上也同樣如此。原因:梯度消失?No,使用BatchNorm可有效緩解梯度消失;

過擬合?No,更深的網(wǎng)絡在訓練集上的誤差同樣更高;神經(jīng)網(wǎng)絡退化:收斂到極值點而非最值,誤差大。ResNet40Plainnetwork(普通網(wǎng)絡):直接用多項式擬合輸出;Residualnetwork(殘差網(wǎng)絡):建立在BN之上,用多項式擬合差值;優(yōu)點:在解附近時權重的反應更靈敏,更容易學習獲得最優(yōu)解。什么是“殘差”inputCNNoutputplainnetworkinputCNNoutputresidualnetwork+(output–input)圖像分類算法41圖像分類CNNAlexNetZF-NetVGG網(wǎng)絡中的網(wǎng)絡GoogLeNetInception-v2Inception-v3Inception-v4層與層的連接ResNetResNextDenseNet通道注意力SENet輕量化可分離卷積MobileNetEfficientNetTransformer注意力機制ViTSwinTransformerDeiT多模態(tài)對齊CLIPCoOpMLPMLP-Mixer分類定位+分類物體檢測圖示輸入singleandbigobjectsingleandbigobjectmultiandsmallobject輸出labellabel&boundingboxmultilabel&boundingbox評價precision(top1/top5)IoU(交并比)mAP(MeanAveragePrecision)圖像檢測算法42基于CNN的圖像檢測算法43R-CNN系列YOLOSSD目前,基于深度學習的目標檢測算法大致分為兩類:

1.兩階段(two-stage)算法:基于候選區(qū)域方法,先產(chǎn)生邊界框,再做CNN分類(R-CNN系列)

2.一階段(one-stage)算法:對輸入圖像直接處理,同時輸出定位及其類別(YOLO系列)

Two-stageOne-stage目標檢測算法44/p/33277354目標檢測TwostageR-CNNSPP-NetFastR-CNNFasterR-CNN更好的特征網(wǎng)絡HyperNetMS-CNNPVANetLight-HeadR-CNN更精確的RPNMR-CNNFPNCRAFT更完善的ROI分類R-FCNCoupleNetMask

R-CNNCascadeR-CNN目標后處理OHEMSoft-NMSA-Fast-RCNNOnestageOverFeatYOLOYOLOv2YOLOv3YOLOv4YOLOv7YOLOv5YOLOv8YOLOv6YOLOXYOLORSSDR-SSDDSSDDSODFSSDRetinaNetEfficientDet生成對抗網(wǎng)絡GAN2014年IanGoodfellow提出生成式對抗網(wǎng)絡GANGoodfellowIJ,Pouget-AbadieJ,MirzaM,etal.Generativeadversarialnets[C]//InternationalConferenceonNeuralInformationProcessingSystems.2014.20年來機器學習領域最酷的想法——YannLeCun解決的問題:從訓練樣本中學習出新樣本。為無監(jiān)督、預測學習提供算法框架。和蘇格拉底的辯證法有相似之處45GAN學習到了真實樣本集的數(shù)據(jù)分布/generative-models/生成對抗網(wǎng)絡GAN模型由兩部分組成生成器(偽裝者):找出觀測數(shù)據(jù)內部的統(tǒng)計規(guī)律,盡可能生成能夠以假亂真的樣本,使判別網(wǎng)絡輸出接近0.5,難以區(qū)分真假。判別器(警察):判斷輸入數(shù)據(jù)是來自真實樣本集還是生成樣本集。如果輸入是真樣本,輸出接近1;如果輸入是生成樣本,輸出接近0。46生成模型G真實樣本x生成樣本G(z)判別模型D隨機噪聲z或真?假?卷積GANDCGAN:將GAN中全連接神經(jīng)網(wǎng)絡擴展到卷積神經(jīng)網(wǎng)絡ResGAN:圖像恢復,ResNetSRGAN:超分辨率,ResNetCycleGAN:圖像轉換條件GANCGANInfoGAN集成推斷模型的GANBiGAN對抗自編碼器VAE-GAN47GAN結構生成對抗網(wǎng)絡vs擴散模型48生成對抗網(wǎng)絡存在的問題生成圖像缺乏多樣性模式崩潰由對抗性帶來的難以訓練擴散模型的優(yōu)勢擴散模型訓練過程中沒有對抗,訓練更容易不會受到模式崩潰的影響能夠產(chǎn)生多樣化圖像擴散模型49J.Ho,A.Jain,andP.Abbeel.Denoisingdiffusionprobabilisticmodels[C].NeurIPS,2020.DDPM(去噪擴散概率模型)在圖像合成方面擊敗了GAN擴散模型50基本原理正向過程和反向過程51人獲得的輸入是什么?圖像信息序列信息任務:理解圖像內容方法:卷積神經(jīng)網(wǎng)絡任務:理解語音/文字/視頻方法:循環(huán)神經(jīng)網(wǎng)絡任務特點:按時序輸入的數(shù)據(jù)之間不是相互獨立的,前后數(shù)據(jù)之間有相關性,所以網(wǎng)絡要有“存儲”信息的能力。序列模型:循環(huán)神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡結構

52=unfold輸入輸出層隱層(記憶單元)

循環(huán)神經(jīng)網(wǎng)絡結構53=unfold輸入輸出層隱層(記憶單元)

循環(huán)神經(jīng)網(wǎng)絡結構正向計算過程54

一般時刻:

X+XfXsoftmaxRNNcell

循環(huán)神經(jīng)網(wǎng)絡結構反向傳播BPTT(back-propagationthroughtime)某個時刻的損失函數(shù)為:整個序列的損失函數(shù)為:

損失函數(shù)對W的偏導為:

RNN的梯度消失與梯度爆炸梯度爆炸/梯度消失56根據(jù)推導可知序列損失函數(shù)對U和W的梯度為:

由于梯度爆炸或消失的存在,循環(huán)神經(jīng)網(wǎng)絡實際上只能學習到短期的依賴關系。RNN的梯度消失與梯度爆炸57循環(huán)神經(jīng)網(wǎng)絡的遞歸結構導致梯度消失/梯度爆炸現(xiàn)象更明顯如何改進梯度爆炸問題梯度截斷梯度消失問題模型上的改進,例如LSTM、GRU算法Pascanu,R.;Mikolov,T.&Bengio,Y.Dasgupta,S.&McAllester,D.(Eds.)Onthedifficultyoftrainingrecurrentneuralnetworks,ICML2013由編碼器(encoder)和解碼器(decoder)兩部分組成編碼器根據(jù)輸入數(shù)據(jù)生成語義編碼解碼器根據(jù)該語義編碼輸出處理結果Seq2Seq模型適用于輸入序列和輸出序列不等長的情況58Seq2SeqTransformerTransformer結構圖Transformer網(wǎng)絡是目前NLP常用的模型之一與Seq2Seq模型結構類似,Transformer也包括編碼器和解碼器兩個部分59AshishVaswani,NoamShazeer,NikiParmar,JakobUszkoreit,LlionJones,AidanN.Gomez,?ukaszKaiser,andIlliaPolosukhin.Attentionisallyouneed.NeurIPS’2017.60從Transformer到GPT4——GPT系列工作發(fā)展歷程GPT(2018.6)GPT-2(2019.2)GPT-3(2020.5)CodeX(2021.8)InstructGPT(2022.3)ChatGPT(2022.11)GPT-4(2023.3)GPT1-3對比模型GPT-1GPT-2GPT-3主要貢獻提出預訓練和微調的統(tǒng)一框架用無監(jiān)督預訓練模型做各種不同NLP任務無需微調,利用少量演示指定任務發(fā)布時間2018年6月2019年2月2020年5月參數(shù)量1.17億15億1750億數(shù)據(jù)量5GB40GB45TB61從Transformer到GPT4——GPT系列工作發(fā)展歷程GPT(2018.6)GPT-2(2019.2)GPT-3(2020.5)CodeX(2021.8)InstructGPT(2022.3)ChatGPT(2022.11)GPT-4(2023.3)ChatGPT的訓練語料里包含了多種主題的數(shù)據(jù),能夠處理不同任務:回答各種問題,撰寫文章,多語種翻譯,生成代碼等ChatGPT可以主動記憶之前的對話內容,實現(xiàn)連續(xù)對話ChatGPT可以識別敏感話題(如種族、政治、人身攻擊等),產(chǎn)生符合安全性、倫理性的回答ChatGPT使用來自人類反饋的強化學習對預訓練大模型進行微調,提升了理解人類思維的準確性,實現(xiàn)優(yōu)于GPT-3的功能(同InstructGPT)62從Transformer到GPT4——GPT系列工作發(fā)展歷程GPT(2018.6)GPT-2(2019.2)GPT-3(2020.5)CodeX(2021.8)InstructGPT(2022.3)ChatGPT(2022.11)GPT-4(2023.3)63神經(jīng)網(wǎng)絡量化方法分類神經(jīng)網(wǎng)絡量化數(shù)據(jù)量化方法量化對稱性對稱量化非對稱量化量化均勻性均勻量化非均勻量化量化粒度分層量化分通道量化優(yōu)化目標推理加速訓練后量化量化感知訓練訓練加速64大模型量化混合精度訓練預訓練和微調時,用FP16或BF16替代部分FP32進行數(shù)據(jù)存儲和計算混合精度推理SmoothQuant,ICML2023Imagestyletransfer給定一張風格圖像a和一張內容圖像p;風格圖像經(jīng)過CNN生成的featuremaps組成風格特征集A;內容圖像p通過CNN生成的featuremaps組成內容特征集P;輸入一張隨機噪聲圖像x,隨機噪聲圖像x通過CNN生成的featuremaps構成內容特征和風格特征集合F和G,目標損失函數(shù)由A,P,F,G計算得到;優(yōu)化函數(shù)是希望調整圖像x,使其最后看起來既保持內容圖像p的內容,又有風格圖像a的風格。65

卷積神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡卷積神經(jīng)網(wǎng)絡

損失函數(shù)

Real-TimeImagestyletransfer66內容圖像風格圖像輸入圖像特征提取網(wǎng)絡(預訓練)內容特征表示風格特征表示損失函數(shù)圖像轉換網(wǎng)絡(待訓練)風格特征表示內容特征表示訓練過程實時轉換過程輸入圖像圖像轉換網(wǎng)絡(訓練完成)四五章章節(jié)定位67編程框架Bang輸入輸出建模實現(xiàn)運行第四章將學習到實現(xiàn)深度學習算法所使用的編程框架的簡單用法第五章將學習到實現(xiàn)深度學習算法所使用的編程框架的工作機理定義68隨著深度學習研究的深入,深度學習算法變得愈加復雜,研究人員需要花更多的時間和精力在算法的實現(xiàn)上深度學習編程框架:將深度學習算法中的基本操作封裝成一系列組件,這一系列深度學習組件,即構成一套深度學習框架編程框架能夠幫助算法開發(fā)人員更簡單的實現(xiàn)已有算法,或設計新的算法。也有助于硬件程序員更有針對性的對關鍵操作進行優(yōu)化,使其能充分發(fā)揮硬件效率PyTorch簡介PyTorch=Py+Torch2017年FacebookAIResearch開源PyTorch是一個基于Torch的Python開源機器學習庫,用于自然語言處理等應用程序,具有強大的GPU加速的張量計算(如Numpy)能力產(chǎn)生背景:編程語言提供了面向深度學習的高效編程庫(NumPy、Eigen、Torch等)Python開源生態(tài)蓬勃發(fā)展691、NumPy基礎Python語言提供的高性能編程庫,提供大量庫函數(shù)和操作,提供針對高維數(shù)組的批量化處理,能夠高效處理機器學習、計算機視覺、基于數(shù)組的數(shù)學任務NumPy中最重要的數(shù)組類為ndarray,也叫array優(yōu)點易用:直接對數(shù)組進行操作,并提供多種常用內嵌API供用戶直接調用高性能:大部分NumPy代碼是基于C語言實現(xiàn)的,相比Python代碼有更高的實現(xiàn)性能局限性原生的NumPy只能在CPU上實現(xiàn)為了在GPU上高效運行Python計算庫,出現(xiàn)了CuPy、Numba、PyCUDA、PyTorch等70712、張量(tensor)張量是計算圖上的數(shù)據(jù)載體,用張量統(tǒng)一表示所有的數(shù)據(jù),張量在計算圖的節(jié)點之間傳遞張量對應了神經(jīng)網(wǎng)絡中在各個節(jié)點之間傳遞、流動的數(shù)據(jù)張量可以看做是n維的數(shù)組,數(shù)組的維數(shù)即為張量的階數(shù)與NumPy中的ndarray不同,PyTorch中的張量可以運行在GPU或深度學習處理器上,因此具有較高的性能階數(shù)對應數(shù)據(jù)形式0標量1向量2矩陣nn維數(shù)組723、操作(operation)PyTorch基于張量開展各種類型的計算操作。每個操作接收若干個張量作為輸入,操作完成后更新原張量或生成新張量作為輸出計算操作是使用PyTorch實現(xiàn)模型訓練和推理的基礎常用計算操作(torch./tensor.)函數(shù)名稱功能new_tensornew_zeros/new_ones返回一個新張量返回尺寸與原張量相同,元素值全為0/1的新張量grad訓練時得到的張量梯度add/subtract/multiply/divide加/減/乘/除計算bitwise_and/bitwise_or/bitwise_not按位與/或/非操作sin/cos/tanh正弦/余弦/正切計算where(condition,x,y)按條件輸出不同張量to張量數(shù)據(jù)類型、設備類型轉換sort按指定維度將張量元素升序/降序排列round/ceil/floor四舍五入/向上取整/向下取整操作transpose轉置計算734、計算圖編程框架中使用有向圖來描述計算過程。有向圖中包含一組節(jié)點和邊支持通過多種高級語言來構建計算圖(C++/Python)計算圖對應了神經(jīng)網(wǎng)絡的結構示例:y=w*x靜態(tài)圖vs.動態(tài)圖matmulwxy靜態(tài)圖動態(tài)圖先定義整張圖,再運行即時運行,網(wǎng)絡模型可在運行時修改可以對圖進行全局優(yōu)化,獲得更快的運算速度代碼編寫靈活,可立即獲得執(zhí)行結果,調試方便調試不方便優(yōu)化不方便74訓練預測新數(shù)據(jù)模型參數(shù)預測值訓練數(shù)據(jù)深度學習方法加載訓練數(shù)據(jù)集構建模型定義損失函數(shù)梯度計算與優(yōu)化保存模型訓練模型構建神經(jīng)網(wǎng)絡實例化神經(jīng)網(wǎng)絡調試讀取輸入圖像神經(jīng)網(wǎng)絡模型優(yōu)化Pytorch整體架構75四大模塊計算圖構建模塊:完成從輸入的用戶程序到編程框架內部原始計算圖的轉換過程,編程框架的入口模塊分布式訓練模塊:應對更大規(guī)模的神經(jīng)網(wǎng)絡,將訓練、推理任務從一臺設備擴展到多臺設備深度學習編譯模塊:對計算圖分別進行圖層級和算子層級的編譯優(yōu)化,從而提升單設備上的執(zhí)行效率計算圖執(zhí)行模塊:將優(yōu)化后的計算圖中的張量和操作映射到指定設備上進行具體執(zhí)行,并給出編程框架的輸出結果計算圖構建計算圖執(zhí)行分布式訓練深度學習編譯dataMatmulweightoutput原始計算圖優(yōu)化后的計算圖data_0OptMatmul_0weight_0output_0設備0data=torch.tensor(…)weight=torch.tensor(…)output=torch.matmul(data,weight)用戶程序編程框架輸出

output…拆分后的計算圖Matmul_0weight_0output_0設備0data_0Matmul_1weight_1output_1設備1data_1通信Pytorch整體架構圖計算圖構建77計算圖由兩個基本元素構成:張量(Tensor)和張量操作(Operation)。計算圖是有向圖,有向邊指明了張量的流動方向計算圖執(zhí)行將計算圖中的張量和操作(本節(jié)又稱算子)映射到給定設備上具體執(zhí)行設備管理張量實現(xiàn)算子執(zhí)行獲取算子執(zhí)行序列實現(xiàn)算子:前端定義、后端實現(xiàn)、前后端綁定查找并調用算子78深度學習編譯79接收以計算圖形式表示的深度學習任務,并在指定硬件平臺上生成高性能代碼多個層級中間表示&多個層級優(yōu)化圖層級優(yōu)化:子圖替換、常量折疊、公共子表達式刪除、布局優(yōu)化以及算子融合等算子層級優(yōu)化:自動調優(yōu),基于搜索的方法和基于多面體模型的方法常見深度學習框架中所采用的編譯技術和深度學習編譯器TVM、TC(TensorComprehensions)、XLA、MLIR…分布式訓練80根據(jù)分布式計算中的分區(qū)情況,可以劃分出不同的分布式計算方法:數(shù)據(jù)并行:對輸入數(shù)據(jù)進行分區(qū),用于解決單節(jié)點算力不足的問題。模型并行:對模型參數(shù)進行分區(qū),用于解決單節(jié)點內存不足的問題?;旌喜⑿校和瑫r對輸入數(shù)據(jù)和模型參數(shù)進行分區(qū),將數(shù)據(jù)并行和模型并行在訓練過程中同時使用。六七章章節(jié)定位輸入輸出建模實現(xiàn)運行81用來處理智能任務的處理器可以是CPU、GPU、FPGA等也可以是專用的深度學習處理器(DLP)82智能計算系統(tǒng)中的處理器832019201320082014201520162017國際首個深度學習處理器架構DianNao國際首個多核深度學習處理器架構DaDianNao國際首個深度學習處理器芯片國際首個深度學習指令集奠定寒武紀生態(tài)基礎近億臺手機和服務器開始集成寒武紀處理器國際上同期峰值速度最高的智能芯片MLU100AlphaGo用1202個CPU+176個GPU戰(zhàn)勝李世石Google公布其第一代深度學習處理器TPUNvidia在其V100GPU產(chǎn)品中加入深度學習加速器深度學習處理器發(fā)展第三次熱潮(2006-至今)可用于人工智能的GPUGoogleBrain貓臉識別1.6萬個CPU核訓練數(shù)天20122018MLU270性能提升4倍首個面向深度學習的GPU架構Pascal以精簡的通用處理器結構為基礎省去了分支預測器數(shù)據(jù)緩存被便箋存儲器取代添加直接訪存模塊(DMA)負責便箋存儲器與主存儲器間的數(shù)據(jù)搬運添加矩陣運算單元添加矩陣指令的控制單元84DLP結構深度學習處理器(DLP)的特點計算:矩陣、卷積運算為主,輔以標量、向量運算控制:計數(shù)循環(huán)為主,輔以條件分支指令存儲:便箋存儲器為主,輔以寄存器采用分形方式進行規(guī)模擴展85深度學習處理器的特點計算矩陣運算單元可設計為矩陣乘向量單元、矩陣乘法單元、脈動陣列機等矩陣乘向量單元適用于深度學習模型推理場景矩陣乘法單元適用于高性能的深度學習訓練場景脈動陣列機在設計規(guī)模更大時能夠帶來多種優(yōu)勢86訪存便箋存儲器是DLP核心的數(shù)據(jù)樞紐訪問便箋可能成為瓶頸“拓寬道路”:增加端口、設計為分組SRAM代價:硬件開銷增加“規(guī)劃車流”:根據(jù)算法特征,采用分離式設計代價:降低通用性通過軟件流水線(而不再是硬件)使計算/訪存并行起來指令重新排序,不需要亂序執(zhí)行顯式控制同步,不需要依賴檢查87通信通信結構的設計原則:邏輯上:環(huán)狀鏈路足以高效完成通信物理上:鏈路設計適當增加冗余,按需配成環(huán)路綜合考慮性能和成本約束做出選擇88優(yōu)化設計一些常用的/前沿的優(yōu)化設計:變換對算法進行變換,削減計算強度壓縮對算法進行壓縮,直接減少算法的參數(shù)量和計算量近似對算法進行近似替代,降低計算成本非傳統(tǒng)結構和器件探索采用CMOS數(shù)字電路以外的技術,改寫計算范式89第八章章節(jié)定位90編程框架智能編程語言

輸入輸出建模實現(xiàn)運行本章將學習到智能編程語言的基礎知識及相應的應用開發(fā)、調試和調優(yōu)方法等學習了實現(xiàn)深度學習算法所使用的編程框架的基本原理、簡單用法等抽象硬件架構層次化的智能計算系統(tǒng)抽象硬件架構91智能計算系統(tǒng)中每一層都包含存儲單元、控制單元和若干個計算單元每個計算單元又進一步分解為子控制單元、子計算單元和子存儲單元三部分,整個系統(tǒng)以這樣的方式遞歸構成在最底層,每個葉節(jié)點都是具體的加速器,用于完成最基本的計算任務。典型智能計算系統(tǒng)多卡的DLP服務器抽象為五個層次,即服務器級(Server)、板卡級(Card)、芯片級(Chip)、處理器簇級(Cluster)和處理器核級(Core)。92可以方便地通過增加各層次的規(guī)模來提升整個系統(tǒng)算力異構編程模型異構計算系統(tǒng)組成通用處理器:控制設備(簡稱主機端),負責控制和調度等工作領域處理器:從設備(簡稱設備端),負責大規(guī)模的并行計算或領域專用計算任務二者協(xié)同完成完整計算任務93典型異構計算系統(tǒng)(a)GPU為核心(b)FPGA為核心(c)TPU為核心(d)DLP為核心異構編程模型:流程異構編程模型的編譯和鏈接流程整體采用分離式編程方式:主機端代碼和設備端代碼94異構編程模型:編譯器支持編譯器支持是異構并行編程模型的核心95異構并行編程編譯器任務劃分數(shù)據(jù)分布數(shù)據(jù)通信并行同步編程模型需要向程序員提供并行編程接口,方便程序員定義和劃分任務。編譯器負責底層的任務劃分,使得程序可以在并行架構上高效執(zhí)行。對于編譯器和底層運行時系統(tǒng)而言,需要根據(jù)算法和硬件架構的特點,通過合適的數(shù)據(jù)分布指導后續(xù)編譯和運行時優(yōu)化。由于設備端通常有多級存儲空間、編譯器需要支持各種地址空間聲明,以方便程序員顯式控制存儲數(shù)據(jù)的地址空間。設備端程序一般要求感知多個核的并行處理,因此需要提供對同步機制的支持。異構編程模型:運行時支持完成任務映射及調度,即指定任務具體在哪個設備或計算單元上以何種順序執(zhí)行分為主機端和設備端

主機端:控制部分和串行任務在主機端執(zhí)行

設備端:計算部分和并行任務在設備端執(zhí)行96通用智能編程模型:編譯器支持任務劃分并行內建變量硬件:clusterDim(維度),clusterId(序號),coreDim,coreId任務:taskDim[XYZ],taskId[XYZ]表示Kernel啟動task的規(guī)模,有XYZ三個維度,用戶根據(jù)需求進行指定任務調度類型表示Kernel運行調度時需要的硬件核BLOCK類型:Kernel為單核任務,按單核進行調度UNIONx類型:Kernel為多核并行任務(其中x可以為1/2/4,UNION1對應1個cluster4個核)97taskDimZtaskDimYtaskDimXtaskID[XYZ]通用智能編程模型:運行時支持任務調度單位(BLOCK/UNIONx)以調度單位將Kernel中的任務在時間或空間維度展開BLOCK:單核調度,當有一個核空閑時,調度一個任務執(zhí)行UNION1:調度時需要1個cluster,當有1個cluster空閑時,調度任務執(zhí)行UNION2:調度時需要2個cluster,當有2個cluster空閑時,調度任務執(zhí)行調度單位需要用戶在編程時指定。運行時只有當空閑的硬件資源數(shù)大于調度單位時,Kernel才會被調度隊列(Queue)管理需要執(zhí)行的任務,隊列既可以單獨工作,也可以協(xié)同工作運行時(或硬件)不斷把任務放到隊列中,一旦硬件計算資源有空閑,就從隊列中取出一個任務執(zhí)行981、主機端異步發(fā)射3個Kernel到Queue中。用戶可以根據(jù)同步和通信的需要,在三次發(fā)射之間或之后任意位置調用同步接口SyncQueue。假設在三次發(fā)射之后調用,則等待Queue中的任務全部完成后再繼續(xù)執(zhí)行主機端SyncQueue后面的程序;2、第一個任務Kernel1在Time1被發(fā)射后立即進入Queue,設備端發(fā)現(xiàn)當前全部核心空閑則立即執(zhí)行Kernel1。Kernel1的任務類型為UNION2,會從Time1開始占用2個Cluster執(zhí)行計算;99主機端執(zhí)行3個Kernel任務設備端有4個Cluster,16個Core1003、因沒有調用SyncQueue,所以主機端發(fā)射Kernel1后立即發(fā)射Kernel2,設備端調度器在調度執(zhí)行Kernel1后發(fā)現(xiàn)隊列中有了新的Kernel2,也幾乎在Time1時刻開始執(zhí)行Kernel2。Kernel2的任務類型為UNION1,會從Time1開始占用1個Cluster計算;4、Kernel1和Kernel2幾乎同時被調度器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論