Hugging Face上的Optimum-NVIDIA僅需一行程式碼即可實現閃電般快速的LLM推理
大型語言模型(LLM)徹底改變了自然語言處理,並越來越多地被部署用於大規模解決複雜問題。由於其獨特且計算密集的需求,實現這些模型的最佳效能極具挑戰性。LLM的最佳化效能對於尋求快速響應體驗的終端使用者以及需要提高吞吐量以節省成本的規模化部署而言,都極具價值。
這正是Optimum-NVIDIA推理庫發揮作用的地方。Optimum-NVIDIA在Hugging Face上可用,透過極其簡單的API在NVIDIA平臺上顯著加速LLM推理。只需更改一行程式碼,您就可以在NVIDIA平臺上實現最高28倍的推理速度和1,200個tokens/秒。
Optimum-NVIDIA是第一個受益於NVIDIA Ada Lovelace和Hopper架構支援的新float8
格式的Hugging Face推理庫。FP8,加上NVIDIA TensorRT-LLM軟體的高階編譯能力,極大地加速了LLM推理。
如何執行
您可以透過Optimum-NVIDIA的pipeline,僅用三行程式碼就可以以閃電般的推理速度執行LLaMA。如果您已經設定了Hugging Face的transformers庫的pipeline來執行LLaMA,您只需修改一行程式碼即可解鎖最佳效能!
- from transformers.pipelines import pipeline
+ from optimum.nvidia.pipelines import pipeline
# everything else is the same as in transformers!
pipe = pipeline('text-generation', 'meta-llama/Llama-2-7b-chat-hf', use_fp8=True)
pipe("Describe a real-world application of AI in sustainable energy.")
您還可以透過一個標誌啟用FP8量化,這使您可以在單個GPU上以更快的速度執行更大的模型,而不會犧牲準確性。此示例中顯示的標誌預設使用預定義的校準策略,但您可以提供自己的校準資料集和自定義分詞,以根據您的用例定製量化。
pipeline介面非常適合快速啟動和執行,但需要對取樣引數進行精細控制的專家使用者可以使用Model API。
- from transformers import AutoModelForCausalLM
+ from optimum.nvidia import AutoModelForCausalLM
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-13b-chat-hf", padding_side="left")
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-2-13b-chat-hf",
+ use_fp8=True,
)
model_inputs = tokenizer(
["How is autonomous vehicle technology transforming the future of transportation and urban planning?"],
return_tensors="pt"
).to("cuda")
generated_ids, generated_length = model.generate(
**model_inputs,
top_k=40,
top_p=0.7,
repetition_penalty=10,
)
tokenizer.batch_decode(generated_ids[0], skip_special_tokens=True)
欲瞭解更多詳情,請檢視我們的文件
效能評估
在評估LLM的效能時,我們考慮兩個指標:首次token延遲和吞吐量。首次token延遲(也稱為首次token時間或預填充延遲)衡量從您輸入提示到開始接收輸出之間等待的時間,因此此指標可以告訴您模型響應速度如何。Optimum-NVIDIA的首次token延遲比標準transformers快3.3倍。
另一方面,吞吐量衡量模型生成token的速度,在您想要批次生成時尤其重要。雖然有幾種計算吞吐量的方法,但我們採用了一種標準方法,即用端到端延遲除以總序列長度,包括所有批次的總輸入和輸出token。Optimum-NVIDIA的吞吐量比標準transformers高28倍。
對最近釋出的NVIDIA H200 Tensor Core GPU的初步評估顯示,與NVIDIA H100 Tensor Core GPU相比,LLaMA模型的吞吐量額外提高了2倍。隨著H200 GPU更易於獲得,我們將分享Optimum-NVIDIA在其上執行的效能資料。
下一步
Optimum-NVIDIA目前為LLaMAForCausalLM架構+任務提供最佳效能,因此任何基於LLaMA的模型,包括微調版本,現在都可以與Optimum-NVIDIA開箱即用。我們正在積極擴大支援範圍,以包含Hugging Face內的其他文字生成模型架構和任務。
我們將繼續突破效能極限,並計劃引入尖端最佳化技術,如In-Flight Batching(以在流式傳輸提示時提高吞吐量)和INT4量化(以在單個GPU上執行更大的模型)。
試一試吧:我們正在釋出Optimum-NVIDIA倉庫,其中包含入門說明。請與我們分享您的反饋!🤗