🚀 NVIDIA Llama 3.1 405B Instruct FP8模型
NVIDIA Llama 3.1 405B Instruct FP8模型是Meta的Llama 3.1 405B Instruct模型的量化版本,採用優化的Transformer架構,是一個自迴歸語言模型。該模型可用於商業或非商業用途。
🚀 快速開始
部署環境準備
本模型支持在Tensor(RT)-LLM和vLLM上進行推理,支持的硬件微架構包括NVIDIA Blackwell、NVIDIA Hopper和NVIDIA Lovelace,推薦使用Linux操作系統。
模型部署步驟
本模型支持使用TensorRT-LLM和vLLM兩種方式進行部署,具體步驟如下:
使用TensorRT-LLM部署
python examples/llama/convert_checkpoint.py --model_dir Llama-3.1-405B-Instruct-FP8 --output_dir /ckpt --use_fp8
trtllm-build --checkpoint_dir /ckpt --output_dir /engine
吞吐量評估請參考 TensorRT-LLM benchmarking documentation。
使用vLLM部署
from vllm import LLM, SamplingParams
model_id = "nvidia/Llama-3.1-405B-Instruct-FP8"
tp_size = 8
sampling_params = SamplingParams(temperature=0.8, top_p=0.9)
max_model_len = 8192
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
llm = LLM(model=model_id, quantization='modelopt', tensor_parallel_size=tp_size, max_model_len=max_model_len)
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
本模型還可以通過vLLM後端與OpenAI兼容服務器進行部署,具體說明請參考 這裡。
✨ 主要特性
- 量化優化:本模型通過將Meta-Llama-3.1-405B-Instruct的權重和激活量化為FP8數據類型,減少了磁盤大小和GPU內存需求,在H200上實現了1.7倍的加速。
- 多平臺支持:支持Tensor(RT)-LLM和vLLM兩種推理引擎,支持NVIDIA Blackwell、NVIDIA Hopper和NVIDIA Lovelace等硬件微架構。
- 商業可用:該模型可用於商業或非商業用途。
📦 安裝指南
依賴安裝
💻 使用示例
基礎用法
使用TensorRT-LLM進行推理
python examples/llama/convert_checkpoint.py --model_dir Llama-3.1-405B-Instruct-FP8 --output_dir /ckpt --use_fp8
trtllm-build --checkpoint_dir /ckpt --output_dir /engine
使用vLLM進行推理
from vllm import LLM, SamplingParams
model_id = "nvidia/Llama-3.1-405B-Instruct-FP8"
tp_size = 8
sampling_params = SamplingParams(temperature=0.8, top_p=0.9)
max_model_len = 8192
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
llm = LLM(model=model_id, quantization='modelopt', tensor_parallel_size=tp_size, max_model_len=max_model_len)
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
📚 詳細文檔
模型概述
NVIDIA Llama 3.1 405B Instruct FP8模型是Meta的Llama 3.1 405B Instruct模型的量化版本,採用優化的Transformer架構,是一個自迴歸語言模型。該模型可用於商業或非商業用途。
第三方社區說明
本模型並非由NVIDIA擁有或開發,而是根據第三方的需求為特定應用和用例開發和構建的。請參考 非NVIDIA (Meta-Llama-3.1-405B-Instruct) 模型卡片。
許可證/使用條款
模型架構
屬性 |
詳情 |
架構類型 |
Transformers |
網絡架構 |
Llama3.1 |
輸入
屬性 |
詳情 |
輸入類型 |
文本 |
輸入格式 |
字符串 |
輸入參數 |
序列 |
其他輸入相關屬性 |
上下文長度最大為128K |
輸出
屬性 |
詳情 |
輸出類型 |
文本 |
輸出格式 |
字符串 |
輸出參數 |
序列 |
其他輸出相關屬性 |
無 |
軟件集成
屬性 |
詳情 |
支持的運行時引擎 |
Tensor(RT)-LLM、vLLM |
支持的硬件微架構兼容性 |
NVIDIA Blackwell、NVIDIA Hopper、NVIDIA Lovelace |
推薦的操作系統 |
Linux |
模型版本
本模型使用nvidia-modelopt v0.15.1 進行量化。
數據集
推理
屬性 |
詳情 |
推理引擎 |
Tensor(RT)-LLM或vLLM |
測試硬件 |
H200 |
訓練後量化
本模型通過將Meta-Llama-3.1-405B-Instruct的權重和激活量化為FP8數據類型,僅對Transformer塊內線性算子的權重和激活進行量化。這種優化將每個參數的位數從16位減少到8位,將磁盤大小和GPU內存需求降低了約50%。在H200上,我們實現了1.7倍的加速。
評估
精度 |
MMLU |
GSM8K (CoT) |
ARC Challenge |
IFEVAL |
TPS |
BF16 |
87.3 |
96.8 |
96.9 |
88.6 |
275.0 |
FP8 |
87.4 |
96.2 |
96.4 |
90.4 |
469.78 |
我們使用tensorrt-llm v0.13在8個H200 GPU上進行了基準測試,在啟用飛行中批處理的情況下,使用批量大小為1024進行吞吐量測試。使用FP8實現了約 1.7倍 的加速。
🔧 技術細節
本模型是通過將Meta-Llama-3.1-405B-Instruct的權重和激活量化為FP8數據類型得到的,僅對Transformer塊內線性算子的權重和激活進行量化。這種優化將每個參數的位數從16位減少到8位,從而減少了磁盤大小和GPU內存需求。在H200上,我們實現了1.7倍的加速。
📄 許可證