AI架構(gòu)系列:vLLM, LMDeploy, MLC-LLM, TensorRT-LLM, and TGI的性能小實(shí)驗(yàn) 原創(chuàng)
訓(xùn)練大型語(yǔ)言模型以及微調(diào)的教程比比皆是,但關(guān)于在生產(chǎn)環(huán)境中部署它們并監(jiān)控其活動(dòng)的資料相對(duì)稀缺。上章節(jié)提到了未來云原生的AI是趨勢(shì),然而涉及到云原生會(huì)比較偏技術(shù)。而在此之前為了解決大模型部署量產(chǎn)的問題,社區(qū)也一直在探索,目前已有不少工具可用于這個(gè)領(lǐng)域。
另一方面,選擇正確的推理后端為大型語(yǔ)言模型 (LLMs) 提供服務(wù)至關(guān)重要。不同的后端提供不同的服務(wù)LLMs方式,每種方式都有獨(dú)特的功能和優(yōu)化技術(shù)。它不僅確保了最佳的用戶體驗(yàn)和最快的生成速度,而且還通過高Token生成率和資源利用率提高了成本效益。
在介紹往vLLM和TGI之后,恰好BentoML工程團(tuán)隊(duì)在BentoCloud上對(duì)Llama 3使用vLLM、LMDeploy、MLC-LLM、TensorRT-LLM和Hugging Face TGI的服務(wù)性能進(jìn)行全面的基準(zhǔn)測(cè)試。這里所有推理后端都遵循Apache 2.0 許可證。
1.實(shí)驗(yàn)背景
BentoML 工程團(tuán)隊(duì)在BentoCloud上對(duì)Llama 3使用vLLM、LMDeploy、MLC-LLM、TensorRT-LLM和Hugging Face TGI的服務(wù)性能進(jìn)行全面的基準(zhǔn)測(cè)試。這里使用兩個(gè)關(guān)鍵指標(biāo)進(jìn)行評(píng)估:
- TTFT:測(cè)量從發(fā)送請(qǐng)求到生成第一個(gè)令牌的時(shí)間,以毫秒為單位記錄。TTFT對(duì)于需要即時(shí)反饋的應(yīng)用程序非常重要。更低的延遲可提高感知性能和用戶滿意度。<注意,這個(gè)過程為解碼過程!>
- TGR:評(píng)估模型在解碼過程中每秒生成的Token,以每秒令牌數(shù)為單位。Token生成率是模型處理高負(fù)載能力的指標(biāo)。高的數(shù)值表明該模型可以有效地管理多個(gè)請(qǐng)求并快速生成響應(yīng),適用于高并發(fā)環(huán)境。
本次實(shí)驗(yàn)是在BentoCloud上單個(gè)A100 80GB GPU實(shí)例上使用Llama 3 8B和70B的4位量化<??忘記量化的請(qǐng)查看鏈接!??>模型進(jìn)行了基準(zhǔn)測(cè)試,涉及三個(gè)級(jí)別的推理負(fù)載(10、50 和 100 個(gè)并發(fā)用戶)。
- vLLM: 0.4.2
- MLC-LLM: mlc-llm-nightly-cu121 0.1.dev1251 (No stable release yet)
- LMDeploy: 0.4.0
- TensorRT-LLM: 0.9.0 (with Triton v24.04)
- TGI: 2.0.4
2.指標(biāo)解讀
解讀之前,小編溫馨提醒,實(shí)驗(yàn)的結(jié)果僅供參考。畢竟這個(gè)實(shí)驗(yàn)是在特定的場(chǎng)景下實(shí)驗(yàn)。若配合其他的優(yōu)化手段,結(jié)果可能大不一樣,但是還是可以管中窺豹。先來看看Llama-3-8B的情況:
上面的指標(biāo)TTFT數(shù)值是越低越好,而下面的指標(biāo)TGR數(shù)值是越高越好
LMDeploy:在Token生成率方面提供最佳解碼性能,100個(gè)用戶每秒最多可處理4000 個(gè)Token。在10個(gè)用戶中實(shí)現(xiàn)了一流的TTFT。盡管TTFT隨著用戶的增加而逐漸增加,但它的延時(shí)還是在可接受的范圍。
MLC-LLM:解碼性能略低,100個(gè)用戶每秒約3500個(gè)令牌。然而隨著時(shí)間的推進(jìn),TGR從運(yùn)行基準(zhǔn)測(cè)試5分鐘后降低到每秒3100個(gè)Token。
vLLM:一流的 TTFT。但與LMDeploy和MLC-LLM相比,解碼性能不太理想,每秒2300-2500個(gè)令牌類似于 TGI 和 TRT-LLM。
后面來看看Llama-3-70B 4位量化的情況:
LMDeploy:在為 100 個(gè)用戶提供服務(wù)時(shí),提供高達(dá) 700 個(gè)Token的生成率,同時(shí)在所有級(jí)別的并發(fā)用戶中保持最低的TTFT。
TensorRT-LLM:在Token生成率方面表現(xiàn)出與LMDeploy相似的性能,并在低并發(fā)用戶數(shù)量下保持低 TTFT。但是當(dāng)并發(fā)用戶數(shù)達(dá)到100 時(shí),TTFT下滑厲害。
vLLM:始終表現(xiàn)出較低的TTFT,類似于在8B模型中觀測(cè)到的。與 LMDeploy和TensorRT-LLM相比,Token生成率較低。
3.對(duì)比表格
下面對(duì)比表格從量化、模型和支持的硬件將物種大模型的服務(wù)端(運(yùn)行大模型,對(duì)外提供服務(wù))進(jìn)行對(duì)比,其實(shí)也給讀者提供決策的依據(jù)。在選擇部署大模型的時(shí)候,可以先針對(duì)量化情況,基座模型支持度以及手頭的硬件綜合選擇后端的服務(wù),配合云原生進(jìn)行產(chǎn)線部署。
當(dāng)然除此之外還是要考慮這些服務(wù)是否有穩(wěn)定版本,模型編譯情況還有就是文檔齊備性。
本文轉(zhuǎn)載自 ??魯班模錘??,作者: 龐德公
