張君-大模型推理加速的優化實踐_第1頁
張君-大模型推理加速的優化實踐_第2頁
張君-大模型推理加速的優化實踐_第3頁
張君-大模型推理加速的優化實踐_第4頁
張君-大模型推理加速的優化實踐_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論