大模型MLSYS學(xué)習(xí)隨筆- 訓(xùn)推框架總覽
本篇以mapping 為主)主要是了解大模型mlsys的一些核心組成
原標(biāo)題:大模型MLSYS學(xué)習(xí)隨筆- 訓(xùn)推框架總覽
文章來源:智猩猩GenAI
內(nèi)容字?jǐn)?shù):25824字
大模型Mlsys核心組成及挑戰(zhàn):基于Mapping的學(xué)習(xí)筆記
本文是作者Bruce仗劍走天涯學(xué)模型Mlsys核心組成及當(dāng)前問題的記錄,主要關(guān)注mapping層面。
1. 基礎(chǔ):計(jì)算圖和AI控制流
AI軟件棧的核心是AI圖編譯器,它優(yōu)化計(jì)算圖的調(diào)度。計(jì)算圖以有向圖表示,節(jié)點(diǎn)是操作(ops)和數(shù)據(jù)。PyTorch和TensorFlow支持跨設(shè)備和機(jī)器調(diào)度,通信作為計(jì)算圖上的算子,底層依賴如NCCL庫。ONNX則用于跨框架模型遷移。
2. 大模型執(zhí)行圖
(原文未詳細(xì)展開此部分,需參考原文鏈接)
3. 輸入預(yù)處理:Tokenizer和Embedding
Tokenizer是輸入處理的第一步,將文本劃分成token并建立詞表。主流Tokenizer基于subword(字詞),例如BPE、BBPE、WordPiece,兼顧詞表規(guī)模和解碼效率。Google的SentencePiece工具包集成了BBPE能力。
Embedding將token映射到向量空間。常見的Embedding方法包括Word2Vec、GloVe、FastText和OpenAI的Embeddings API(text-embedding-ada-002)。生成的Embedding可存儲(chǔ)在向量數(shù)據(jù)庫中。
4. 輸入預(yù)處理:Position Encoding
Position Encoding對輸入序列建模。文章介紹了四種方法:
- Sinusoidal:Transformer原始方法,公式固化embedding,外推能力差。
- Learned Positional Embedding:絕對位置編碼,實(shí)現(xiàn)簡單,存在最大position限制。
- RoPE:旋轉(zhuǎn)式位置編碼,適合attention計(jì)算,信息更清晰,但存在遠(yuǎn)程衰減。
- ALiBi:在self-attention中增加位置信息懲罰,外推性好。
5. 推理執(zhí)行優(yōu)化
文章總結(jié)了五類解碼策略:
- 自回歸:greedy、beam、sampling
- 非自回歸:多token并行,但準(zhǔn)確性不如自回歸
- Early exiting:根據(jù)layer判斷輸出可信度,加速推理但準(zhǔn)確性不足
- 投機(jī)解碼:多個(gè)小模型生成候選,大模型驗(yàn)證,提升性能
- Cascade inference:根據(jù)請求復(fù)雜度選擇不同規(guī)模模型
6. 架構(gòu)優(yōu)化
文章從多個(gè)方面探討了架構(gòu)優(yōu)化:
- Activation sharing:MQA、GQA、YOCO等方法共享KV,減少顯存占用。
- Attention化簡:Linear Attention降低計(jì)算復(fù)雜度,但存在精度損失,Streaming-LLM是一種改進(jìn)方案。
- Conditional computing:MoE和CoE架構(gòu),基于routing的條件計(jì)算。
- Recurrent Unit:RetNet、RWKV和Mamba等模型重新挑戰(zhàn)Transformer的地位。
- 降低模型配置:降低參數(shù)等,但需要保證性能。
7. 量化&模型壓縮
模型壓縮技術(shù)包括剪枝和量化(FP32到INT4/8,GPTQ、AWQ、FPTQ等),降低顯存占用并提高計(jì)算密度。
8. 顯存管理
Paged Attention解決內(nèi)存碎片化問題,持久化KV Cache(Mooncake)成為趨勢,Prefix Cache用于提高生產(chǎn)力助手場景的效率。
9. 請求調(diào)度
Continuous batching(Orca)提高硬件利用率,Dynamic SplitFuse(DeepSpeed-FastGen)對齊forward sizes,優(yōu)化吞吐量和延遲。
10. 分離式架構(gòu)
DistServe、Spliwise和MoonCake等分離式架構(gòu)將prefill和decode分開處理,提高吞吐量。
11. Kernel 優(yōu)化
FlashAttention、FlashDecoding等工作優(yōu)化算子,提高計(jì)算效率。與內(nèi)存管理、分布式并行、變長輸入處理、投機(jī)推理和量化相關(guān)。
12. 并行計(jì)算
文章介紹了Data Parallel(DP)、Tensor Parallel(TP)、Pipeline Parallel(PP)、Expert Parallel和Sequence Parallel等并行方式,以及ZeRO、FSDP等技術(shù)。
13. 業(yè)界推理框架比較
文章簡要比較了TensorRT-LLM、vLLM、OpenPPL-LLM、RTP-LLM等推理框架。
14. 訓(xùn)練執(zhí)行框架
文章介紹了Megatron和DeepSpeed等訓(xùn)練框架,以及集群管理和異常處理的重要性。
15. Megatron vs DeepSpeed
文章比較了Megatron和DeepSpeed的優(yōu)缺點(diǎn),Megatron性能更好但不易用,DeepSpeed易用性更好。
16. 集群相關(guān)工作
文章介紹了字節(jié)的Megascale工作,包括容錯(cuò)、并行優(yōu)化、網(wǎng)絡(luò)優(yōu)化和可分析性等方面。
聯(lián)系作者
文章來源:智猩猩GenAI
作者微信:
作者簡介:智猩猩旗下公眾號之一,專注于生成式人工智能。