【#區(qū)塊鏈# #Llama2推理RTX3090勝過4090,延遲吞吐量占優(yōu),但被A800遠(yuǎn)遠(yuǎn)甩開#】
這是為數(shù)不多深入比較使用消費(fèi)級 GPU(RTX 3090、4090)和服務(wù)器顯卡(A800)進(jìn)行大模型預(yù)訓(xùn)練、微調(diào)和推理的論文。
原文來源:機(jī)器之心
圖片來源:由無界 AI?生成
大型語言模型 (LLM) 在學(xué)界和業(yè)界都取得了巨大的進(jìn)展。但訓(xùn)練和部署 LLM 非常昂貴,需要大量的計算資源和內(nèi)存,因此研究人員開發(fā)了許多用于加速 LLM 預(yù)訓(xùn)練、微調(diào)和推理的開源框架和方法。然而,不同硬件和軟件堆棧的運(yùn)行時性能可能存在很大差異,這使得選擇最佳配置變得困難。
最近,一篇題為《Dissecting the Runtime Performance of the Training, Fine-tuning, and Inference of Large Language Models》的新論文從宏觀和微觀的角度詳細(xì)分析了 LLM 訓(xùn)練、微調(diào)、推理的運(yùn)行時性能。
論文地址:https://arxiv.org/pdf/2311.03687.pdf
具體來說,該研究首先在三個 8-GPU 上對不同規(guī)模(7B、13B 和 70B 參數(shù))的 LLM,面向預(yù)訓(xùn)練、微調(diào)、服務(wù)進(jìn)行端到端的性能基準(zhǔn)測試,涉及具有或不具有單獨(dú)優(yōu)化技術(shù)的平臺,包括 ZeRO、量化、重新計算、FlashAttention。然后,該研究進(jìn)一步提供了子模塊的詳細(xì)運(yùn)行時分析,包括 LLM 中的計算和通信運(yùn)算符。
方法介紹
該研究的基準(zhǔn)測試采用自上而下的方法,涵蓋 Llama2 在三個 8-GPU 硬件平臺上的端到端步驟時間性能、模塊級時間性能和運(yùn)算符時間性能,如圖 3 所示。
三個硬件平臺分別為 RTX4090、RTX3090 和 A800,具體規(guī)格參數(shù)如下表 1 所示。
在軟件方面,該研究比較了 DeepSpeed 和 Megatron-LM 在預(yù)訓(xùn)練和微調(diào)方面的端到端步驟時間。為了評估優(yōu)化技術(shù),該研究使用 DeepSpeed 逐一啟用如下優(yōu)化:ZeRO-2、ZeRO-3、offloading、激活重計算、量化和 FlashAttention,以衡量性能改進(jìn)以及時間和內(nèi)存消耗方面的下降。
在 LLM 服務(wù)方面,存在三個高度優(yōu)化的系統(tǒng),vLLM、LightLLM 和 TGI,該研究在三個測試平臺上比較了它們的性能(延遲和吞吐量)。
為了保證結(jié)果的準(zhǔn)確性和可重復(fù)性,該研究計算了 LLM 常用數(shù)據(jù)集 alpaca 的指令、輸入和輸出的平均長度,即每個樣本 350 個 token,并隨機(jī)生成字符串以達(dá)到 350 的序列長度。
在推理服務(wù)中,為了綜合利用計算資源并評估框架的魯棒性和效率,所有請求都以突發(fā)模式調(diào)度。實(shí)驗(yàn)數(shù)據(jù)集由 1000 個合成句子組成,每個句子包含 512 個輸入token。該研究在同一 GPU 平臺上的所有實(shí)驗(yàn)中始終保持「最大生成 token 長度」參數(shù),以保證結(jié)果的一致性和可比性。
端到端性能
該研究通過預(yù)訓(xùn)練、微調(diào)和推理不同尺寸 Llama2 模型(7B、13B 和 70B)的步驟時間、吞吐量和內(nèi)存消耗等指標(biāo),來衡量在三個測試平臺上的端到端性能。同時評估了三個廣泛使用的推理服務(wù)系統(tǒng):TGI、vLLM 和 LightLLM,并重點(diǎn)關(guān)注了延遲、吞吐量和內(nèi)存消耗等指標(biāo)。
模塊級性能
LLM 通常由一系列模塊(或?qū)樱┙M成,這些模塊可能具有獨(dú)特的計算和通信特性。例如,構(gòu)成 Llama2 模型的關(guān)鍵模塊是 Embedding、LlamaDecoderLayer、Linear、SiLUActivation 和 LlamaRMSNorm。
預(yù)訓(xùn)練結(jié)果
在預(yù)訓(xùn)練實(shí)驗(yàn)環(huán)節(jié),研究者首先分析了三個測試平臺上不同尺寸模型(7B、13B 和 70B)的預(yù)訓(xùn)練性能(迭代時間或吞吐量、內(nèi)存消耗),然后進(jìn)行了模塊和操作層面的微基準(zhǔn)測試。
端到端性能
研究者首先進(jìn)行實(shí)驗(yàn)來比較 Megatron-LM 和 DeepSpeed 的性能,二者在 A800- 80GB 服務(wù)器上預(yù)訓(xùn)練 Llama2-7B 時沒有使用任何內(nèi)存優(yōu)化技術(shù)(比如 ZeRO)。
他們使用的序列長度為 350,并為 Megatron-LM 和 DeepSpeed 提供了兩組批大小,從 1 到最大批大小。結(jié)果如下表 II 所示,以訓(xùn)練吞吐量(tokens / 秒)和消費(fèi)級 GPU 內(nèi)存(單位 GB)為基準(zhǔn)。
結(jié)果表明,當(dāng)批大小都為 1 時,Megatron-LM 稍快于 DeepSpeed。不過當(dāng)批大小達(dá)到最大時,DeepSpeed 在訓(xùn)練速度上最快。當(dāng)批大小相同時,DeepSpeed 消耗了比基于張量并行的 Megatron-LM 更多的 GPU 內(nèi)存。即使批大小很小,這兩個系統(tǒng)都消耗了大量的 GPU 內(nèi)存,導(dǎo)致 RTX4090 或 RTX3090 GPU 服務(wù)器的內(nèi)存溢出。
在訓(xùn)練 Llama2-7B(序列長度為 350,批大小為 2)時,研究者使用了帶有量化的 DeepSpeed 來研究不同硬件平臺上的擴(kuò)展效率。結(jié)果如下圖 4 所示,A800 幾乎是線性擴(kuò)展,RTX4090 和 RTX3090 的擴(kuò)展效率略低,分別為 90.8% 和 85.9%。在 RTX3090 平臺上,NVLink 連接比沒有 NVLink 時的擴(kuò)展效率提升了 10%。
研究者使用 DeepSpeed 來評估不同內(nèi)存和計算高效方法下的訓(xùn)練性能。為公平起見,所有評估設(shè)置成序列長度為 350,批大小為 1,默認(rèn)加載模型權(quán)重為 bf16。
對于具有卸載功能的 ZeRO-2 和 ZeRO-3,他們分別將優(yōu)化器狀態(tài)和優(yōu)化器狀態(tài) + 模型卸載到 CPU RAM。對于量化,他們使用了具有雙重量化的 4bits 配置。此外報告了 NVLink 失效時 RTX3090 的性能(即所有數(shù)據(jù)通過 PCIe 總線傳輸)。結(jié)果如下表 III 所示。
研究者通過最大化每種方法的批大小以獲得最大吞吐量,進(jìn)一步利用不同 GPU 服務(wù)器的計算能力。結(jié)果如下表 IV 所示,表明了增加批大小可以很容易改進(jìn)訓(xùn)練過程。因此,具有高帶寬和大內(nèi)存的 GPU 服務(wù)器比消費(fèi)級 GPU 服務(wù)器更適合做全參數(shù)混合精度訓(xùn)練。
模塊級分析
下表 V 展示了單步預(yù)訓(xùn)練 Llama2-7B 模型的前向、后向和優(yōu)化器的整體及計算核心時間成本。對于后向階段,由于總時間包含了非重疊時間,計算核心時間遠(yuǎn)遠(yuǎn)小于前向階段和優(yōu)化器。如果非重疊時間從后向階段中移除,該值變成 94.8。
重計算和 FlashAttention 的影響
加速預(yù)訓(xùn)練的技術(shù)大致可以分為兩類:節(jié)省內(nèi)存增加批大小、加速計算核心。如下圖 5 所示,GPU 在前向、后向和優(yōu)化器階段有 5-10% 的時間處于閑置狀態(tài)。
研究者認(rèn)為這種閑置時間是批大小較小造成的,因此他們測試了所有技術(shù)可以使用的最大批大小。最終利用重計算來增加批大小,利用 FlashAttention 來加速計算核心分析。
如下表 VII 所示,隨著批大小的增加,前向和后向階段的時間大幅增加,GPU 閑置時間幾乎沒有。
下表 VIII 顯示出,F(xiàn)lashAttention 分別可以將前向和后向的注意力模塊加速 34.9% 和 24.7%。
微調(diào)結(jié)果
在微調(diào)環(huán)節(jié),研究者主要討論參數(shù)高效微調(diào)方法(PEFT),展示 LoRA 和 QLoRA 在各種模型大小和硬件設(shè)置下的微調(diào)性能。使用序列長度為 350,批大小為 1,默認(rèn)將模型權(quán)重加載到 bf16。
結(jié)果如下表 IX 所示,使用 LoRA 和 QLoRA 微調(diào) Llama2-13B 的性能趨勢與 Llama2-7B 保持一致。與 lama2-7B 相比,微調(diào) Llama2-13B 的吞吐量下降了約 30%。
不過當(dāng)結(jié)合所有優(yōu)化技術(shù)時,即使 RTX4090 和 RTX3090 也可以微調(diào) Llama2-70B,實(shí)現(xiàn) 200 tokens / 秒的總吞吐量。
推理結(jié)果
端到端性能
下圖 6 顯示了各種硬件平臺和推理框架下吞吐量的全面分析,其中省略了 Llama2-70B 的相關(guān)推理數(shù)據(jù)。其中 TGI 框架展現(xiàn)了卓越的吞吐量,尤其是 RTX3090 和 RTX4090 等具有 24GB 內(nèi)存的 GPU。此外 LightLLM 在 A800 GPU 平臺上的性能顯著優(yōu)于 TGI 和 vLLM,吞吐量幾乎翻倍。
這些實(shí)驗(yàn)結(jié)果表明,TGI 推理框架在 24GB 內(nèi)存 GPU 平臺上具有卓越的性能,而 LightLLM 推理框架在 A800 80GB GPU 平臺上表現(xiàn)出最高的吞吐量。這一發(fā)現(xiàn)表明 LightLLM 專門針對 A800/A100 系列高性能 GPU 進(jìn)行了優(yōu)化。
不同硬件平臺和推理框架下的延遲表現(xiàn)如下圖 7、8、9、10 所示。
綜上所示,A800 平臺在吞吐量和延遲方面均顯著優(yōu)于 RTX4090 和 RTX3090 兩款消費(fèi)級平臺。并且在兩款消費(fèi)級平臺中,RTX3090 比 RTX4090 略有優(yōu)勢。當(dāng)在消費(fèi)級平臺上運(yùn)行時,TGI、vLLM 和 LightLLM 三個推理框架在吞吐量方面沒有表現(xiàn)出實(shí)質(zhì)性差異。相比之下,TGI 在延遲方面始終優(yōu)于其他兩個。在 A800 GPU 平臺上,LightLLM 在吞吐量方面表現(xiàn)最好,其延遲也非常接近 TGI 框架。
小編推薦下載
相關(guān)文章
更多>>資訊排行
同類軟件下載
熱門標(biāo)簽