張君-大模型推理加速的優(yōu)化實踐_第1頁
張君-大模型推理加速的優(yōu)化實踐_第2頁
張君-大模型推理加速的優(yōu)化實踐_第3頁
張君-大模型推理加速的優(yōu)化實踐_第4頁
張君-大模型推理加速的優(yōu)化實踐_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

張君昇騰生態(tài)技術(shù)專家碩士畢業(yè)于廈門大學(xué)通信與信息系統(tǒng)專業(yè),畢業(yè)后一直就職于華為公司。曾在MR,Neurocomputing有數(shù)篇論文發(fā)表。作為核心開發(fā)者參與AI框架大模型推理加速在昇騰硬件上的相關(guān)開發(fā)和優(yōu)化工作,致力于通過優(yōu)化推理框架、模型算法和算子加速庫等層面,進(jìn)一步提升大模型推理的性能。演講主題:大模型推理加速的優(yōu)化實踐昇騰生態(tài)技術(shù)專家張君大模型推理的技術(shù)挑戰(zhàn)大模型推理加速技術(shù)發(fā)展現(xiàn)狀昇騰大模型推理框架MindIE-LLM加速實踐總結(jié)與展望大模型推理的技術(shù)挑戰(zhàn)挑戰(zhàn)一:計算和內(nèi)存需求高2020-20212020-202123-11GPT-423-11GPT-4TurboOpenAI23-12Gemini5萬億稀疏+原生多模態(tài)23-12Gemini5萬億稀疏+原生多模態(tài)7B/13B/70B稠密7B/13B/70B稠密33B/65B稠密萬億稀疏+多模態(tài)預(yù)訓(xùn)練(70%):百億/千億稠密為主預(yù)訓(xùn)練(70%):百億/千億稠密為主微調(diào)(30%):百億稠密模型預(yù)訓(xùn)練(50%):千億稠密+多模態(tài)預(yù)訓(xùn)練(30%):萬億稀疏+多模態(tài)微調(diào)(20%):百億稠密模型LLM大模型的發(fā)展趨勢超大模型參數(shù)、超長序列等是大模型的發(fā)展趨勢,大計算和內(nèi)u超大參數(shù)使得推理必須依賴多卡、多節(jié)點并行,嚴(yán)重受制于帶寬。u龐大的參數(shù)規(guī)模,推理過程中需要大量的計算和內(nèi)存資源。例如,700億參數(shù)量的LLaMA-2-70B模型進(jìn)行推理需要至少6張RTX3090TiGPU或2張NVIDIA的A100GPUu模型參數(shù)的曾速遠(yuǎn)快于硬件內(nèi)存容量的提升速度u模型參數(shù)的曾速遠(yuǎn)快于硬件內(nèi)存容量的提升速度模型中的參數(shù)數(shù)量(紅色)呈現(xiàn)出2年240倍的超指數(shù)增長,而單個GPU內(nèi)存(綠色)僅以每2年2倍的速度擴(kuò)大。u硬件算力提升速度遠(yuǎn)快于訪存帶寬提升速度,算力和訪存存之間的差距越來越大,推理更大的模型也會更加困難。挑戰(zhàn)二:延遲和吞吐量DecodeDecode階段 緩存每token串行不同用戶請求輸出長度不同迭代步數(shù)多的請求時延長不同請求輸入長度不同??Prefill階段??自回歸算力利用率低,低時延高吞吐難以兼顧Prefill和Decode兩階段推理差異大,難以充分利用算力資源自回歸算力利用率低,低時延高吞吐難以兼顧Prefill和Decode兩階段推理差異大,難以充分利用算力資源?基于request的調(diào)度導(dǎo)致大量算力空閑:同batch序列長度差異?不同階段的請求難以batch:prefill/decode輸入、kvcache維度差別大Decode階段每token串行解碼算力利用率低4.Sampling(依據(jù)推理結(jié)果進(jìn)行采樣)時延,是指用戶從發(fā)出請求到收到完整響應(yīng)所需的時間,首挑戰(zhàn)三:從單模態(tài)到多模態(tài),再到OpenAI理成本進(jìn)一步增加OpenAI大模型應(yīng)用場景走向多元化,從單模態(tài)到多模態(tài),再到音視頻。音視頻都具有長序列特性,使得計算量和顯存進(jìn)一OpenAIo1是經(jīng)過強(qiáng)化學(xué)習(xí)訓(xùn)練來執(zhí)行復(fù)雜推理任務(wù)的新型語言模型,其內(nèi)部很長的思維鏈路(COT),會要求更新的計算量,推理的時間也進(jìn)一步會拉長。大模型推理加速技術(shù)發(fā)展現(xiàn)狀大模型推理加速技術(shù)針對這些挑戰(zhàn),學(xué)術(shù)界和工業(yè)界提出了很多大模型的推理加速技術(shù)。在實際業(yè)務(wù)場景中,通過從各個層算子層優(yōu)化利用算子加速庫如ONNXRuntime或TVM,或手工進(jìn)行算子融合將多個基本算子融合成一個復(fù)雜算子,減少內(nèi)存訪問次算法層優(yōu)化通過算法層面的修改或者創(chuàng)新,如模型分片策略優(yōu)化,投機(jī)采樣,量化壓縮等手段,減少存儲空間和計算資源框架層優(yōu)化推理的部署形態(tài),大部分都以框架(引擎)實現(xiàn),在框架層實現(xiàn)數(shù)據(jù)、計算調(diào)度、內(nèi)存分片等操作,如算子層優(yōu)化完成一個內(nèi)存分片,減少計算核啟動的時間,并充分利用SRAM的性能。FasterTransformerTransformer的神經(jīng)網(wǎng)絡(luò)推理的C++/CUDA編寫的,依賴于高度優(yōu)化的算子加速庫cuBLAS、cuBLASLt和cuSPARSELt庫。u層融合。multi-headattention塊中的所有操作都可以合并到一個核(kernel)中,減少了數(shù)據(jù)傳輸并增加了數(shù)學(xué)密度,從而加速了推理階段的算法層優(yōu)化SmoothQuant量化u量化:使用精度更低的單位來表示模型的權(quán)重或激活值,以節(jié)省空間和加速模型推理速W8A8SC稀疏量化等。W8A16)、權(quán)重與激活同時量化(如W8A8等)。投機(jī)采樣u投機(jī)采樣:使用一個簡潔且反應(yīng)迅速的小型模型來輔助解碼,投機(jī)采樣提升了自回歸大框架層優(yōu)化大模型推理有著高吞吐和高并發(fā)的要求,各種推理服務(wù)框架也應(yīng)運(yùn)而生,比PageAttentionAttention計算簡化vLLM支持的特性效管理。支持張量并行推理…支持張量并行、流水線并行…大模型推理加速技術(shù):總結(jié)算子層優(yōu)化高性能加速庫:cuBLAS,…算法層優(yōu)化模型分片:分片策略優(yōu)化,增量推理投機(jī)推理:自投機(jī)增量推理模型量化:8Bit量化,4Bit量化Attention計算優(yōu)化…框架層優(yōu)化…昇騰大模型推理框架MindIE-LLM加速實踐昇騰大模型推理框架MindIE-LLMSessionQueueSessionQueueManager模塊ScriptsrequestresponserequestresponsequeryModelConfigQuantConfigDistConfigManagerManager負(fù)責(zé)狀態(tài)管理及任務(wù)調(diào)度,基于調(diào)度策略對任ModelConfigQuantConfigDistConfigManagerManagerKVCacheKVCacheImportersAdapterImportersAdapterTextGenerator?ChatGLM2TextGenerator?ChatGLM2TextGeneratorPre-PostProcessOps:topk…SampleConfigGenerationGenerationAdapterAttention?AdapterAttention?提供內(nèi)置深度定制優(yōu)化模型及社區(qū)模型快速適配遷移路徑Modeling?提供內(nèi)置通用,例如Attention、MLP等ATBWrapperATBWrapperModelingModelingDistributedDistributedQuantization提供通訊原語接口,提供多卡worker接口,提供類MPI語義接口(rank,worldsiDistributedDistributedQuantizationCCLCCLInterfaceMindStudioModelSlim工具QuantizationAlgorithms:提供Quantizer接口支持模型量化,內(nèi)置主流(MindStudioModelSlim工具QuantizationAlgorithms:DistGroup:rank…GPT,AWQ,HQQ…FlashDecoding融合算子?核心問題:長序列場景下KVCache容量大訪存時間長導(dǎo)致解碼效率低推理速FlashDecoding融合算子?核心問題:長序列場景下KVCache容量大訪存時間長導(dǎo)致解碼效率低推理速度慢?應(yīng)用場景:小batch,長序列FlashAttentionFlashAttention對batch_size和輸入seq_len進(jìn)行了并行化加速。FlashDecoding在FA基礎(chǔ)上增加了一個新的并行化維度:keys/values的序列長度。即使batchsize很小,只要上下文足夠長,可以充分利用計算資源。FlashAttentionFlashAttention融合算子?核心問題:HBM和UB間數(shù)據(jù)拷貝冗余,浪費(fèi)帶寬請求并行執(zhí)行同類計算競爭Cube/Vector昇騰流水并行執(zhí)行多請求向量和矩陣計算AiCore流水線并行AiCore流水線并行Na?veBatching問題:計算冗余、Early-Finished、LateJoining、內(nèi)存浪費(fèi) Na?veBatching問題:計算冗余、Early-Finished、LateJoining、內(nèi)存浪費(fèi) 時間軸輸入序列計算冗余:組Batching,由于Padding帶來計算冗余輸入序列輸出序列結(jié)束符PaddingEarly-Finished(EF):Batch中的短序列必須等長序列推理結(jié)束才能退出輸出序列結(jié)束符PaddingLate-Joining(LJ):后續(xù)推理請求必須等前一個Batch所有序列結(jié)ContinuousBatching減少冗余計算和內(nèi)存碎片ContinuousBatching減少冗余計算和內(nèi)存碎片 輸入序列ContinuousBatching:將計算分為Prefill與Decode兩個任務(wù)調(diào)度,Decode按迭代調(diào)度,解決計算冗輸入序列輸出序列結(jié)束符PagedAttention實現(xiàn)分塊KVCache,Token級內(nèi)內(nèi)存冗余,提升最大BatchSize,提高吞吐率。輸出序列結(jié)束符PaddingMLFQ策略與KVCache高效換入換出算子支持超大batch。Padding加速效果相比Na?veBatching,MindIE-LL推理時延組成:Tprefill=TpMatmul+TpAttn+Tpot?erops+TpoTdecode=TdMatmul+TdAttn+Tdot?erops+TdoTmix=TmMatmul+TmAttn+Tmot?erops+Tmo假設(shè)prefill切分成n片,執(zhí)行m個decode,則lpot變化為分析結(jié)論:(lpct)時間增加,等待時間(lpot)減少,總吞吐提升大模型LLM推理分為兩個階段,一個Prefill階段和一個Decode階段。傳統(tǒng)推理會把處于兩個不同階段的請求在同一個實例上串行執(zhí)行。PD分離是將Prefill階段和Decode階段分別部署于不同的物理卡。MindIE-MSMindIE-MSPrefill請求①②Prefill請求①②Decode請求MindIE-Service/TritonMindIEMindIE-Service/TritonMindIE-Service/TritonBackendsBackendsBackendsBackendsinterfaceinterfaceinterfaceMindIE-MindIE-LLMMindIE-LLMTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorTextGeneratorModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingModelingMindIE-RTMindIE-RT/CANNMindIE-RT/CANN通信計算融合多機(jī)推理核心問題:TP并行的大量強(qiáng)依賴計算通信任務(wù)所導(dǎo)致的通信瓶頸應(yīng)用場景:通信數(shù)據(jù)量較大時,通信耗時在推理占比高,通信計算融合多機(jī)推理核心問題:TP并行的大量強(qiáng)依賴計算通信任務(wù)所導(dǎo)致的通信瓶頸應(yīng)用場景:通信數(shù)據(jù)量較大時,通信耗時在推理占比高,通過計算通信并行掩蓋通信時間,達(dá)到降低時延的目標(biāo)。預(yù)計收益:計算通信并行方案相比原始方案通信耗時減少80%。部署方案1:純TP并行(TPOVEREP)HCCS+ROCE,Latency最優(yōu),但存在Head無法TP切分的風(fēng)險。EPEP/部署方案2:TP并行(HCCS)+PP并行(ROCE)請求MindIE-請求MindIE-Service/TritonMindIE-LLMSlaveSlaveSlaveSlaveMindIE-RT/CANNMindIEMindIE-Service/TritonMindIE-LLMHCCL/HCCL/LCCLGRPCSlaveSlaveSlaveSlaveMindIEMindIE-RT/CANN大模型LLMDDDDDDDDDEDDDDDDDDDEDDD性能收益大模型LLMBAADDD性能收益大模型LLMBAA 方案2:多頭自投機(jī)生成離線微調(diào),在線生成增加lm_head微調(diào)訓(xùn)練;③已集成于vllm等框架,業(yè)界認(rèn)可度較高。方案3:歷史軌跡緩存生成在線維護(hù),在線查詢方案4:數(shù)據(jù)庫檢索生成離線構(gòu)建,在線檢索N-Grams緩存得到候選結(jié)果;③N-Attention計算量增長30倍,觸碰算力瓶頸導(dǎo)致BS較小。①需要采用數(shù)據(jù)集/大模型生成離線構(gòu)建數(shù)據(jù)庫;②數(shù)據(jù)庫和Batch較大時,檢索時延ms級;③不同場景數(shù)據(jù)集定制化,存在場景依賴性,泛化能力需提升。方案1:小模型在線生成離線訓(xùn)練,在線生成①效率方面:小模型需要輕量化,不引入額外開銷;②質(zhì)量方面:小模型需要準(zhǔn)確預(yù)測輸出;③集成方面:與大模型相同的詞表,與大模型相同分布的架構(gòu)。AscendAscendTransformerBoost加速庫(下文簡稱為ATB加速庫)是一款專注于LLM領(lǐng)域的領(lǐng)域加速庫,基于華為AscendAI處理器,專門為Transformer模型的訓(xùn)練和推理而設(shè)計。ATB加速庫針對Transformer模型采用了一系列優(yōu)化策略,包括算法優(yōu)化、硬件優(yōu)化和軟件優(yōu)化,能夠顯著提升Transformer模型的訓(xùn)練和推理速度。大模型推理流程推理加速數(shù)據(jù)準(zhǔn)備推理加速推理服務(wù)前處理tokenizer模型主體推理服務(wù)前處理tokenizer模型主體后處理SamplingMindIEATB推理加速庫MindIEATB推理加速庫并行策略融合并行策略融合算子優(yōu)化調(diào)度優(yōu)化通信優(yōu)化量化壓縮服務(wù)框架及應(yīng)用推理引擎u提供原生的高性能基礎(chǔ)Operation,包括單算子,融合算子,通信算子,量化算子等。u提供Operation接口原型和Plugin框架,用戶可以自己開發(fā)AscendC算子。u提供構(gòu)圖接口,用戶可以使用原生的Operation和PluginOperation組成復(fù)雜的算子圖。AttentionKVQ+XX+XX構(gòu)圖組Layer前后處理模型開發(fā)接入推理框架調(diào)試調(diào)優(yōu)推理調(diào)試調(diào)優(yōu)u提供維測log接口和profiling接口,使用問題定位和性能分析。AttentionKVQ+XX+XX構(gòu)圖組Layer前后處理模型開發(fā)接入推理框架調(diào)試調(diào)優(yōu)推理調(diào)試調(diào)優(yōu)算子開發(fā)ATB加速庫原生Operation用戶開發(fā)用戶開發(fā)PluginOperationATB軟件架構(gòu)ATB軟件架構(gòu)以及對外提供的接口功能ATB軟件架構(gòu)ATB接口功能提供基礎(chǔ)原生的算子),提供插件(Plugin)機(jī)制,用戶可以根據(jù)自己的需求創(chuàng)建自定義的算提供圖算子(Graph)機(jī)制,用戶根據(jù)模型設(shè)計對應(yīng)的圖算子,使用加速庫提供的原生算子和創(chuàng)建的自定義算子創(chuàng)建圖算子,完成相應(yīng)的InTensor:表示輸入?yún)?shù)InterTensor:表示計算過程中的輸出InterTensor:表示計算過程中的輸出OutTensor:表示輸出Tensor如上圖,代表該圖算子中包含的操作是:InterTensor5=op1Intensor1InterTensor6=op2Intensor2InterTensor7=op3InterTensor5,InterTensor6InterTensor8=op4InterTensor6,InterTensor7outTensor4=op5InTensor3,InterTensor8ATB提供了四種對host側(cè)性能進(jìn)行優(yōu)緩存kernel的tiling針對Operation兩次輸入針對圖Operation針對圖Operation的兩次輸入的shape進(jìn)行輯后端,達(dá)到加快數(shù)據(jù)結(jié)scratchmemory用于存放kernel運(yùn)行時的一些臨時數(shù)據(jù),可以認(rèn)為是ke

溫馨提示

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

最新文檔

評論

0/150

提交評論