H100推理飆升8倍英偉達官宣開源TensorRT-LLM,支持10+模型
“GPU貧民”即將告別困境!剛剛,英偉達發布了一款開源軟件TensorRT-LLM,能夠加速H100上大型語言模型的推理。那麼,具體能提升多少倍?在添加了TensorRT-LLM及其一系列優化功能後(包括In-Flight批處理),模型總吞吐量提升8倍。
使用和不使用TensorRT-LLM的GPT-J-6B A100與H100的比較
另外,就拿Llama 2來說,相較於單獨使用A100,TensorRT-LLM可以將推理性能提高4.6倍。
使用和不使用TensorRT-LLM的Llama 2 70B、A100與H100的比較
網友表示,超強H100,再結合上TensorRT-LLM,無疑將徹底改變大型語言模型推理現狀!
TensorRT-LLM:大模型推理加速神器
當前,由於大模型有著巨大的參數規模,使得“部署和推理”難度和成本一直居高不下。
而英偉達開發的TensorRT-LLM,旨在通過GPU來顯著提高LLM吞吐量,並降低成本。
具體來說,TensorRT-LLM將TensorRT的深度學習編譯器、FasterTransformer的優化內核、預處理和後處理以及多GPU/多節點通信,封裝在一個簡單的開源Python API中。
英偉達對FasterTransformer進行了進一步的增強,使其成為一個產品化的解決方案。
可見,TensorRT-LLM提供了一個易用、開源和模塊化的Python應用編程接口。
碼農們不需要深入的C++或CUDA專業知識,能夠部署、運行、調試各種大語言模型,還能獲得頂尖性能表現,以及快速定制化的功能。
根據英偉達官方博客,TensorRT-LLM通過四種方式優化了NVIDIA GPU上的LLM推理性能。
首先,為當前10+大模型,引入TensorRT-LLM,讓開發者們能夠立即運行。
其次,TensorRT-LLM作為一個開源軟件庫,允許LLM在多個GPU和多個GPU服務器上同時進行推理。
這些服務器分別通過,英偉達的NVLink和InfiniBand互連連接。
第三,就是“In-flight批處理”,這是一種全新的調度技術,允許不同模型任務獨立於其他任務進入GPU和退出GPU。
最後,TensorRT-LLM經過優化,可以利用H100 Transformer Engine來降低模型推理時的內存佔用和延遲。
接下來,具體看看TensorRT-LLM如何提升模型性能。
支持豐富LLM生態
TensorRT-LLM對開源模型生態提供了非常好的支持。
規模最大、最先進的語言模型,例如Meta推出的Llama 2-70B,需要多個GPU協同工作才能實時提供響應。
此前,如果要實現LLM推理的最佳性能,開發人員必須重寫AI模型,並將其手動拆分為多個片段,並在GPU之間協調執行。
TensorRT-LLM使用張量並行技術(tensor parallelism),將權重矩陣分配到各個設備上,從而簡化了這一過程,可以實現大規模高效推理。
每個模型可以在通過NVLink連接的多個GPU和多個服務器上並行運行,無需開發人員干預或模型更改。
隨著新模型和模型架構的推出,開發人員可以使用TensorRT-LLM中開源的最新NVIDIA AI內核(Kernal)來優化模型。
支持的內核融合(Kernal Fusion),包括最前沿的FlashAttention實現和用於GPT模型執行的上下文和生成階段的掩碼多頭注意力等。
此外,TensorRT-LLM還包括了目前流行的許多大語言模型的完全優化、可立即運行的版本。
其中包括Meta Llama 2、OpenAI GPT-2和GPT-3、Falcon、Mosaic MPT、BLOOM等10多個模型,所有這些模型都可以使用簡單易用的TensorRT-LLM Python API來調用。
這些功能可幫助開發人員更快、更準確地搭建定制化的大語言模型,以滿足各行各業的不同需求。
In-flight批處理
現如今大型語言模型的用途極其廣泛。
一個模型可以同時用於多種看起來完全不同的任務——從聊天機器人中的簡單問答響應,到文檔摘要或長代碼塊的生成,工作負載是高度動態的,輸出大小需要滿足不同數量級任務的需求。
任務的多樣性可能會導致難以有效地批處理請求和進行高效並行執行,可能會導致某些請求比其他請求更早完成。
為了管理這些動態負載,TensorRT-LLM包含一種稱為“In-flight批處理”的優化調度技術。
它的核心原理是,大語言模型的整個文本生成過程可以分解為模型上的多次執行迭代。
通過in flight批處理,TensorRT-LLM運行時會立即從批處理中釋放出已完成的序列,而不是等待整個批處理完成後再繼續處理下一組請求。
在執行新請求時,上一批還未完成的其他請求仍在處理中。
In-flight批處理和額外的內核級優化可提高GPU使用率,可以使得H100上的LLM實際請求基準的吞吐量至少增加一倍。
使用FP 8的H100 Transformer引擎
TensorRT-LLM還提供了一個名為H100 Transformer Engine的功能,能有效降低大模型推理時的內存消耗和延遲。
因為LLM包含數十億個模型權重和激活函數,通常用FP16或BF16值進行訓練和表示,每個值佔用16位內存。
然而,在推理時,大多數模型可以使用量化(Quantization)技術以較低精度有效表示,例如8位甚至4位整數(INT8或INT4)。
量化(Quantization)是在不犧牲準確性的情況下降低模型權重和激活精度的過程。使用較低的精度意味著每個參數較小,並且模型在GPU內存中佔用的空間較小。
這使得能夠使用相同的硬件對更大的模型進行推理,同時在執行過程中花費更少的時間在內存操作上。
通過H100 Transformer Engine技術,配合TensorRT-LLM的H100 GPU使戶能夠輕鬆地將模型權重轉換為新的FP8格式,並能自動編譯模型以利用優化後的FP8內核。
而且這個過程不需要任何的代碼!H100引入的FP8數據格式使開發人員能夠量化他們的模型並從大幅度減少內存消耗,而且不會降低模型的準確性。
與INT8或INT4等其他數據格式相比,FP8量化保留了更高的精度,同時實現了最快的性能並,而且實現起來最為方便。
如何獲取TensorRT-LLM
TensorRT-LLM雖然還沒有正式發布,但是用戶現在已經可以進行搶先體驗了。
申請鏈接如下:
https://developer.nvidia.com/tensorrt-llm-early-access/join
英偉達也說會將TensorRT-LLM很快集成到NVIDIA NeMo框架中。
這個框架是英偉達前不久剛剛推出的AI Enterprise的一部分,為企業客戶提供了一個安全、穩定、可管理性極強的企業級AI軟件平台。
開發人員和研究人員可以通過英偉達NGC上的NeMo框架或GitHub上的項目訪問TensorRT-LLM。
但是需要注意的是,用戶必須註冊英偉達開發者計劃才能申請搶先體驗版本。
網友熱議
Reddit上的網友對TensorRT-LLM的推出展開了激烈的討論。
難以想像專門針對LLM對硬件做出優化之後,效果將會有多大的提升。
但也有網友認為,這個東西的意義就是幫助老黃賣更多的H100。
不過有網友也不是很認同,他覺得Tensor RT對於本地部署SD的用戶也是有幫助的,所以只要有RTX GPU,以後應該都有可能在類似產品上獲益。
而從更加宏觀的角度,也許對於LLM來說,也會出現一系列的專門針對硬件級別的優化,甚至未來會出現專門針對LLM設計的硬件來提升LLM的性能,這種情況其實已經在很多流行的應用中出現過了,LLM也不會例外。