🚀 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倍的加速。
📄 许可证