🚀 NVIDIA Llama 3.1 8B Instruct FP8 模型
NVIDIA Llama 3.1 8B Instruct FP8 模型是 Meta 的 Llama 3.1 8B Instruct 模型的量化版本,它采用优化的 Transformer 架构,可用于文本生成任务,支持商业和非商业使用。
🚀 快速开始
部署量化检查点
使用 TensorRT-LLM
要使用 TensorRT-LLM 部署量化检查点,请按照以下示例命令操作:
python examples/llama/convert_checkpoint.py --model_dir Llama-3.1-8B-Instruct-FP8 --output_dir /ckpt --use_fp8
trtllm-build --checkpoint_dir /ckpt --output_dir /engine
使用 vLLM
要使用 vLLM 部署量化检查点,请按照以下说明操作:
- 按照 此处 的说明安装 vLLM。
- 要在 vLLM 中使用模型优化器 PTQ 检查点,在初始化
LLM
引擎时,必须在配置中传递 quantization=modelopt
标志。
以下是在 H100 上的示例部署代码:
from vllm import LLM, SamplingParams
model_id = "nvidia/Llama-3.1-8B-Instruct-FP8"
sampling_params = SamplingParams(temperature=0.8, top_p=0.9)
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")
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-8B-Instruct 的权重和激活量化为 FP8 数据类型,减少磁盘大小和 GPU 内存需求约 50%,在 H100 上实现 1.3 倍的加速。
- 多运行时支持:支持 Tensor(RT)-LLM 和 vLLM 运行时引擎。
- 多硬件兼容:与 NVIDIA Blackwell、Hopper 和 Lovelace 硬件微架构兼容。
📦 安装指南
使用 TensorRT-LLM 部署
按照上述快速开始部分中使用 TensorRT-LLM 部署的命令进行操作。
使用 vLLM 部署
按照上述快速开始部分中使用 vLLM 部署的说明进行操作。
💻 使用示例
基础用法
from vllm import LLM, SamplingParams
model_id = "nvidia/Llama-3.1-8B-Instruct-FP8"
sampling_params = SamplingParams(temperature=0.8, top_p=0.9)
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")
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 8B Instruct FP8 模型是 Meta 的 Llama 3.1 8B Instruct 模型的量化版本,它是一个自回归语言模型,使用优化的 Transformer 架构。更多信息请查看 此处。该模型使用 TensorRT 模型优化器 进行量化。
第三方社区说明
此模型并非由 NVIDIA 拥有或开发,它是根据第三方的需求为特定应用和用例开发构建的。请查看非 NVIDIA (Meta-Llama-3.1-8B-Instruct) 模型卡片。
许可证/使用条款
模型架构
属性 |
详情 |
架构类型 |
Transformers |
网络架构 |
Llama3.1 |
输入
属性 |
详情 |
输入类型 |
文本 |
输入格式 |
字符串 |
输入参数 |
序列 |
其他输入相关属性 |
上下文长度最大为 128K |
输出
属性 |
详情 |
输出类型 |
文本 |
输出格式 |
字符串 |
输出参数 |
序列 |
其他输出相关属性 |
无 |
软件集成
属性 |
详情 |
支持的运行时引擎 |
Tensor(RT)-LLM、vLLM |
支持的硬件微架构兼容性 |
NVIDIA Blackwell、NVIDIA Hopper、NVIDIA Lovelace |
首选操作系统 |
Linux |
模型版本
该模型使用 nvidia-modelopt v0.27.0 进行量化。
数据集
推理
属性 |
详情 |
引擎 |
Tensor(RT)-LLM 或 vLLM |
测试硬件 |
H100 |
训练后量化
此模型是通过将 Meta-Llama-3.1-8B-Instruct 的权重和激活量化为 FP8 数据类型得到的,可用于 TensorRT-LLM 和 vLLM 推理。仅对 Transformer 块内线性算子的权重和激活进行量化。这种优化将每个参数的位数从 16 位减少到 8 位,使磁盘大小和 GPU 内存需求减少约 50%。在 H100 上,实现了 1.3 倍的加速。
评估
我们使用 tensorrt-llm v0.13 在 8 个 H100 GPU 上进行基准测试,在启用飞行中批处理的情况下,使用批量大小 1024 进行吞吐量测试。使用 FP8 实现了 ~1.3x 的加速。
精度 |
MMLU |
GSM8K (CoT) |
ARC Challenge |
IFEVAL |
TPS |
BF16 |
69.4 |
84.5 |
83.4 |
80.4 |
8,579.93 |
FP8 |
68.7 |
83.1 |
83.3 |
81.8 |
11,062.90 |
🔧 技术细节
此模型采用优化的 Transformer 架构,通过训练后量化将权重和激活量化为 FP8 数据类型,减少了存储和内存需求,提高了推理速度。在推理过程中,支持 Tensor(RT)-LLM 和 vLLM 两种运行时引擎,并且与多种 NVIDIA 硬件微架构兼容。
📄 许可证