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