當(dāng)前位置:區(qū)塊鏈 >區(qū)塊鏈 > Llama2推理RTX3090勝過4090,延遲吞吐量占優(yōu),但被A800遠(yuǎn)遠(yuǎn)甩開

Llama2推理RTX3090勝過4090,延遲吞吐量占優(yōu),但被A800遠(yuǎn)遠(yuǎn)甩開

更新時(shí)間:2023-12-27 14:24:00 | 作者:佚名
這是為數(shù)不多深入比較使用消費(fèi)級GPU(RTX3090、4090)和服務(wù)器顯卡(A800)進(jìn)行大模型預(yù)訓(xùn)練、微調(diào)和推理的論文。 原文來源:機(jī)器之心 圖片來源:由無界AI?生成 大型語言模型(LLM)在學(xué)界和業(yè)界都取得了巨大的進(jìn)展。但訓(xùn)練和部署LLM非常昂貴,需要大量的計(jì)算資源和內(nèi)存,因此研究人員開發(fā)了許多用于加速LLM預(yù)訓(xùn)練、微調(diào)和推理的開源框架和方法。然而...
這是為數(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 非常昂貴,需要大量的計(jì)算資源和內(nèi)存,因此研究人員開發(fā)了許多用于加速 LLM 預(yù)訓(xùn)練、微調(diào)和推理的開源框架和方法。然而,不同硬件和軟件堆棧的運(yùn)行時(shí)性能可能存在很大差異,這使得選擇最佳配置變得困難。

最近,一篇題為《Dissecting the Runtime Performance of the Training, Fine-tuning, and Inference of Large Language Models》的新論文從宏觀和微觀的角度詳細(xì)分析了 LLM 訓(xùn)練、微調(diào)、推理的運(yùn)行時(shí)性能。

論文地址:https://arxiv.org/pdf/2311.03687.pdf

具體來說,該研究首先在三個(gè) 8-GPU 上對不同規(guī)模(7B、13B 和 70B 參數(shù))的 LLM,面向預(yù)訓(xùn)練、微調(diào)、服務(wù)進(jìn)行端到端的性能基準(zhǔn)測試,涉及具有或不具有單獨(dú)優(yōu)化技術(shù)的平臺,包括 ZeRO、量化、重新計(jì)算、FlashAttention。然后,該研究進(jìn)一步提供了子模塊的詳細(xì)運(yùn)行時(shí)分析,包括 LLM 中的計(jì)算和通信運(yùn)算符。

方法介紹

該研究的基準(zhǔn)測試采用自上而下的方法,涵蓋 Llama2 在三個(gè) 8-GPU 硬件平臺上的端到端步驟時(shí)間性能、模塊級時(shí)間性能和運(yùn)算符時(shí)間性能,如圖 3 所示。

三個(gè)硬件平臺分別為 RTX4090、RTX3090 和 A800,具體規(guī)格參數(shù)如下表 1 所示。

在軟件方面,該研究比較了 DeepSpeed 和 Megatron-LM 在預(yù)訓(xùn)練和微調(diào)方面的端到端步驟時(shí)間。為了評估優(yōu)化技術(shù),該研究使用 DeepSpeed 逐一啟用如下優(yōu)化:ZeRO-2、ZeRO-3、offloading、激活重計(jì)算、量化和 FlashAttention,以衡量性能改進(jìn)以及時(shí)間和內(nèi)存消耗方面的下降。

在 LLM 服務(wù)方面,存在三個(gè)高度優(yōu)化的系統(tǒng),vLLM、LightLLM 和 TGI,該研究在三個(gè)測試平臺上比較了它們的性能(延遲和吞吐量)。

為了保證結(jié)果的準(zhǔn)確性和可重復(fù)性,該研究計(jì)算了 LLM 常用數(shù)據(jù)集 alpaca 的指令、輸入和輸出的平均長度,即每個(gè)樣本 350 個(gè) token,并隨機(jī)生成字符串以達(dá)到 350 的序列長度。

在推理服務(wù)中,為了綜合利用計(jì)算資源并評估框架的魯棒性和效率,所有請求都以突發(fā)模式調(diào)度。實(shí)驗(yàn)數(shù)據(jù)集由 1000 個(gè)合成句子組成,每個(gè)句子包含 512 個(gè)輸入token。該研究在同一 GPU 平臺上的所有實(shí)驗(yàn)中始終保持「最大生成 token 長度」參數(shù),以保證結(jié)果的一致性和可比性。

端到端性能

該研究通過預(yù)訓(xùn)練、微調(diào)和推理不同尺寸 Llama2 模型(7B、13B 和 70B)的步驟時(shí)間、吞吐量和內(nèi)存消耗等指標(biāo),來衡量在三個(gè)測試平臺上的端到端性能。同時(shí)評估了三個(gè)廣泛使用的推理服務(wù)系統(tǒng):TGI、vLLM 和 LightLLM,并重點(diǎn)關(guān)注了延遲、吞吐量和內(nèi)存消耗等指標(biāo)。

模塊級性能

LLM 通常由一系列模塊(或?qū)樱┙M成,這些模塊可能具有獨(dú)特的計(jì)算和通信特性。例如,構(gòu)成 Llama2 模型的關(guān)鍵模塊是 Embedding、LlamaDecoderLayer、Linear、SiLUActivation 和 LlamaRMSNorm。

預(yù)訓(xùn)練結(jié)果

在預(yù)訓(xùn)練實(shí)驗(yàn)環(huán)節(jié),研究者首先分析了三個(gè)測試平臺上不同尺寸模型(7B、13B 和 70B)的預(yù)訓(xùn)練性能(迭代時(shí)間或吞吐量、內(nèi)存消耗),然后進(jìn)行了模塊和操作層面的微基準(zhǔn)測試。

端到端性能

研究者首先進(jìn)行實(shí)驗(yàn)來比較 Megatron-LM 和 DeepSpeed 的性能,二者在 A800- 80GB 服務(wù)器上預(yù)訓(xùn)練 Llama2-7B 時(shí)沒有使用任何內(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 時(shí),Megatron-LM 稍快于 DeepSpeed。不過當(dāng)批大小達(dá)到最大時(shí),DeepSpeed 在訓(xùn)練速度上最快。當(dāng)批大小相同時(shí),DeepSpeed 消耗了比基于張量并行的 Megatron-LM 更多的 GPU 內(nèi)存。即使批大小很小,這兩個(gè)系統(tǒng)都消耗了大量的 GPU 內(nèi)存,導(dǎo)致 RTX4090 或 RTX3090 GPU 服務(wù)器的內(nèi)存溢出。

在訓(xùn)練 Llama2-7B(序列長度為 350,批大小為 2)時(shí),研究者使用了帶有量化的 DeepSpeed 來研究不同硬件平臺上的擴(kuò)展效率。結(jié)果如下圖 4 所示,A800 幾乎是線性擴(kuò)展,RTX4090 和 RTX3090 的擴(kuò)展效率略低,分別為 90.8% 和 85.9%。在 RTX3090 平臺上,NVLink 連接比沒有 NVLink 時(shí)的擴(kuò)展效率提升了 10%。

研究者使用 DeepSpeed 來評估不同內(nèi)存和計(jì)算高效方法下的訓(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 配置。此外報(bào)告了 NVLink 失效時(shí) RTX3090 的性能(即所有數(shù)據(jù)通過 PCIe 總線傳輸)。結(jié)果如下表 III 所示。

研究者通過最大化每種方法的批大小以獲得最大吞吐量,進(jìn)一步利用不同 GPU 服務(wù)器的計(jì)算能力。結(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)化器的整體及計(jì)算核心時(shí)間成本。對于后向階段,由于總時(shí)間包含了非重疊時(shí)間,計(jì)算核心時(shí)間遠(yuǎn)遠(yuǎn)小于前向階段和優(yōu)化器。如果非重疊時(shí)間從后向階段中移除,該值變成 94.8。

重計(jì)算和 FlashAttention 的影響

加速預(yù)訓(xùn)練的技術(shù)大致可以分為兩類:節(jié)省內(nèi)存增加批大小、加速計(jì)算核心。如下圖 5 所示,GPU 在前向、后向和優(yōu)化器階段有 5-10% 的時(shí)間處于閑置狀態(tài)。

研究者認(rèn)為這種閑置時(shí)間是批大小較小造成的,因此他們測試了所有技術(shù)可以使用的最大批大小。最終利用重計(jì)算來增加批大小,利用 FlashAttention 來加速計(jì)算核心分析。

如下表 VII 所示,隨著批大小的增加,前向和后向階段的時(shí)間大幅增加,GPU 閑置時(shí)間幾乎沒有。

下表 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ù)時(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)行時(shí),TGI、vLLM 和 LightLLM 三個(gè)推理框架在吞吐量方面沒有表現(xiàn)出實(shí)質(zhì)性差異。相比之下,TGI 在延遲方面始終優(yōu)于其他兩個(gè)。在 A800 GPU 平臺上,LightLLM 在吞吐量方面表現(xiàn)最好,其延遲也非常接近 TGI 框架。

本站提醒:投資有風(fēng)險(xiǎn),入市須謹(jǐn)慎,本內(nèi)容不作為投資理財(cái)建議。