HuggingFace镜像/Llama-3.1-405B-Instruct-FP8
模型介绍文件和版本分析
下载使用量0

模型概述

描述:

NVIDIA Llama 3.1 405B Instruct FP8 模型是 Meta 的 Llama 3.1 405B Instruct 模型的量化版本,后者是一款采用优化 Transformer 架构的自回归语言模型。欲了解更多信息,请查看此处。NVIDIA Llama 3.1 405B Instruct FP8 模型通过 TensorRT Model Optimizer 进行量化。

本模型可用于商业/非商业用途。

第三方社区考量

本模型并非由 NVIDIA 所有或开发。该模型是应第三方的特定应用和使用场景需求而开发构建的;详见非 NVIDIA(Meta-Llama-3.1-405B-Instruct)模型卡片链接(Meta-Llama-3.1-405B-Instruct) Model Card。

许可协议/使用条款:

nvidia-open-model-license

llama3.1

模型架构:

架构类型: Transformers
网络架构: Llama3.1

输入:

输入类型: 文本
输入格式: 字符串
输入参数: 序列
其他与输入相关的属性: 上下文长度最长可达 128K

输出:

输出类型: 文本
输出格式: 字符串
输出参数: 序列
其他与输出相关的属性: 不适用

软件集成:

支持的运行时引擎:

  • Tensor(RT)-LLM
  • vLLM

支持的硬件微架构兼容性:

  • NVIDIA Blackwell
  • NVIDIA Hopper
  • NVIDIA Lovelace

推荐操作系统:

  • Linux

模型版本:

该模型使用 nvidia-modelopt v0.15.1 进行量化

数据集:

  • 校准数据集:cnn_dailymail
  • 评估数据集:MMLU

推理:

引擎: Tensor(RT)-LLM 或 vLLM
测试硬件: H200

训练后量化

本模型通过将 Meta-Llama-3.1-405B-Instruct 的权重和激活量化为 FP8 数据类型获得,可直接用于 TensorRT-LLM 推理。仅对Transformer块内线性算子的权重和激活进行量化。此优化将每个参数的比特数从16减少到8,磁盘大小和GPU内存需求减少约50%。在 H200 上,我们实现了1.7倍的速度提升。

使用方法

使用 TensorRT-LLM 部署

要使用 TensorRT-LLM 部署量化后的检查点,请按照以下示例命令操作(需结合 TensorRT-LLM GitHub 仓库):

  • 检查点转换:
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 基准测试文档。

评估

精度 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
我们在 8 张 H200 GPU 上使用 tensorrt-llm v0.13 进行了基准测试,吞吐量测试采用批量大小 1024 并启用飞行中批处理。使用 FP8 时,我们实现了 **约 1.7 倍** 的速度提升。

使用 vLLM 部署

要使用 vLLM 部署量化后的检查点,请按照以下说明操作:

  1. 从 此处 的说明安装 vLLM。
  2. 要在 vLLM 中使用 Model Optimizer PTQ 检查点,初始化 LLM 引擎时,必须在配置中传入 quantization=modelopt 标志。

示例:

from vllm import LLM, SamplingParams

model_id = "nvidia/Llama-3.1-405B-Instruct-FP8"
tp_size = 8 #use the required number of gpus based on your GPU Memory.
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)

# Print the outputs.
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 兼容服务器上。相关说明请参见此处。