AI Infra—如何從 LLM training 轉 Inference 原創
LLM training轉inference需要加強的知識總結。
這篇附帶一些職業規劃的討論,其實Training 和 Inference 在不同公司不同崗位業務中的定位不同,但總得來說還是存在下面的區別:
- LLM Training:包括但不限于優化模型架構(MoE),調節超參數優化loss,訓練微調(SFT, pretrain,RL,蒸餾)等等,這個是把模型訓得更聰明的過程。
- LLM Inference:包括PD分離(KV cache 優化, Page attention,Radix attention), 并行(各種parallelism, sharding),通信(NCCL),推理加速(量化),生成穩定性監控等等,這個是訓完模型以后,能讓模型跑得效果更好,也就是更快更穩定的過程。
先忽略Training和Inference這兩類型的目前招聘崗位的特點和要求(當然大佬可能兩方面都特別強), 本篇主要介紹從training轉infra需要加強哪些方面的內容,如何入手。
下面是一個快捷目錄。
1. 分布式系統
2. 推理加速
一、分布式系統
目前大家見到過的并行訓練算法,包括但不限于DP,MP,PP,TP,SP/CP,EP等,分別是:
- 數據并行(Data Parallel, DP)
- 模型并行(Model Parallel, MP),又可以包括:
a.張量并行(Tensor Parallel, MP)
b.Pipeline并行(Pipeline Parallel, PP)
c.Sequence并行(Sequence Parallel, SP,也可以叫Context Parallel, CP)
- Zero Redundancy Data Parallelism (ZeRO)
- Expert 并行(Expert Parallel, EP)
關于分布式系統,???大模型面經—分布式訓練指南???這篇中有詳細介紹,這里著重講一下Expert 并行。
Expert Parallelism(EP)是針對MoE模型訓練的特有并行方式,并且可以無沖突跟3D Parallelism結合。
MoE會在Transformer每層配置多路專家FFN網絡,再由路由動態選擇專家并行處理不同輸入,使每個token只經過部分專家,顯著降低FLOPs并保持模型容量。EP就是將每層中的所有專家劃分到不同的設備(GPU/TPU)上。比如16個專家分配8張卡,每卡持有2個專家。
因此在MoE的訓練中,使用 EP 不會減少數據并行 (DP) 的數量,因為每個 EP 處理不同的數據。
二、推理加速
這塊的話主要還是PD分離的內容,就是把推理的預填充階段(P)和解碼(D)階段分離,對兩階段分別優化,提升GPU利用率減少延遲。
下面是當前一些常見推理框架的總結。
圖片來源
想要入手可以推薦把Ray,vLLM或是sglang系統性的刷一遍。
刷一遍之后,大家可以做一個個人項目可以結合sglang的開源社區,根據自己的深度思考建立一個自己的項目,去嘗試優化PD分離的架構,比如如何優化KV Cache Pool, P和D如何進行更優的負載均衡設計等等。
其實Training 和Inference 在實際崗位中已經密不可分了,未來最搶手的大概率是既懂Training又懂推理優化的,大家一起卷卷吧~
本文轉載自??瓦力算法學研所??,作者:喜歡瓦力的卷卷?
