Meta 的 Llama 大型语言模型集合是当今开源社区中最受欢迎的基础模型,支持多种应用场景。全球数百万开发者正在基于这些模型构建衍生模型,并将其集成到他们的应用程序中。
Meta 将在 Llama 3.1 中推出一套大型语言模型(LLMs)以及一套信任和安全模型,以确保 LLM 响应的安全。
Meta 工程师在 NVIDIA H100 Tensor Core GPU 上训练了 Llama 3。他们显著优化了完整的训练堆栈,并将模型训练推向超过 16K H100 GPU,使 405B 成为第一个在这种规模下训练的 Llama 模型。
我们很高兴地宣布,Llama 3.1 集合已针对全球超过 1 亿个 GPU 进行优化,涵盖 NVIDIA 所有平台,从数据中心到边缘和 PC。
在 NVIDIA 加速计算平台上加速 Llama 3.1
最新的 NVIDIA H200 Tensor Core GPU 运行 TensorRT-LLM,在 Llama 3.1-405B 上提供出色的推理性能。凭借 H200 GPU 的大 HBM3e 显存容量,该模型可以舒适地安装在单个配备八个 H200 GPU 的 HGX H200 中。第四代 NVLink 和第三代 NVSwitch 加速了大型模型(如 Llama 3.1-405B)的推理吞吐量,通过在服务器中的所有 GPU 之间提供比 PCIe 5.0 快七倍的高带宽通信。
表 1 和表 2 显示了在 8-GPU H200 系统上运行的 Llama 3.1-405B 在各种输入和输出序列长度下的最大吞吐量性能。
输入 | 输出序列长度 | 2048 | 128 | 32768 | 2048 | 120000 | 2048 |
输出令牌/秒 | 399.9 | 230.8 | 49.6 |
NVIDIA 内部测量。输出令牌/秒包括生成第一个令牌的时间。tok/s = 总生成令牌数 / 总延迟。DGX H200、TP8、FP8,批量大小调整以实现最大节点吞吐量,TensorRT-LLM 版本 0.12.0.dev2024072300。
除了最大吞吐量性能外,我们还使用相同的输入和输出序列长度显示最小延迟性能。
输入 | 输出序列长度 | 2048 | 128 | 32768 | 2048 | 120000 | 2048 |
输出令牌/秒 | 37.4 | 33.1 | 22.8 |
NVIDIA 内部测量。输出令牌每秒包括生成第一个令牌的时间。tok/s = 总生成令牌数 / 总延迟。DGX H200、TP8、FP8,批量大小 = 1,TensorRT-LLM 版本 0.12.0.dev2024072300。
正如这些结果表明的那样,H200 GPU 和 TensorRT-LLM 在发布时就已经在 Llama 3.1-405B 上提供了出色的性能,无论是在延迟优化还是吞吐量优化场景中。
使用 NVIDIA 软件,在每一步都使用 Llama 3.1 进行构建
要在应用程序中采用 Llama,您需要具备以下功能:
- 能够根据特定领域定制模型
- 支持嵌入模型,以实现检索增强生成(RAG)应用
- 能够评估模型准确性
- 保持对话主题和安全性的能力
- 优化的推理解决方案
借助此版本,NVIDIA 使您能够使用 NVIDIA 软件执行所有这些任务,以便更易于采用。
首先,高质量的数据集是训练、自定义和评估语言模型的必要条件。然而,一些开发者发现很难获取具有合适许可条款的高质量数据集。
NVIDIA 通过提供基于 Llama 3.1 构建的合成数据生成(SDG)流程来解决此问题,以帮助您创建自定义的高质量数据集。
借助 Llama 3.1-405B,您可以访问先进的生成模型,该模型可在 SDG 流程中用作生成器。数据生成阶段之后是 Nemotron-4 340B 奖励模型,该模型用于评估数据质量,过滤掉分数较低的数据,并提供符合人类偏好的数据集。奖励模型在 RewardBench 排行榜 上名列前茅,总分为 92.0。它在聊天困难子集方面表现出色,该子集测试模型处理技巧问题和指令响应中细微差别的能力。有关更多信息,请参阅 使用 Llama 3.1 405B 创建合成数据。
数据集准备就绪后,可以使用 NVIDIA NeMo 平台对其进行进一步的策划、定制和评估。
NVIDIA NeMo
要使用 Llama 3.1 构建自定义模型和应用,您可以使用 NVIDIA NeMo。NeMo 提供了一个端到端平台,用于随时随地开发自定义生成式 AI。它使用高级并行技术来最大限度地提高 NVIDIA GPU 性能,跨多个节点和 GPU 管理 GPU 资源和内存。
使用此 开源 平台完成以下任意或所有任务:
- 使用 NeMo Curator 整理数据,以便通过清理、删除重复数据、过滤和分类数据集来编译高质量数据,并提高自定义模型的性能NeMo Curator。
- 使用高效参数微调(PEFT)技术(如p-tuning、低阶自适应(LoRA)及其量化版本(QLoRA))自定义模型,这些技术有助于在不需要大量计算能力的情况下创建自定义模型。
- 引导模型响应并根据人类偏好调整 Llama 3.1 模型,使模型随时可以集成到面向客户的应用中。NeMo 当前提供的支持包括以下内容:
- 使用现已处于早期访问阶段的 NeMo Evaluator 微服务简化 LLM 评估。此微服务可以自动根据学术基准、自定义数据集进行评估,并以 LLM 作为判断进行评估(在真值未定义的场景中很有用)。
- 将检索增强生成(RAG) 检索增强生成(RAG) 功能与 微服务集合 NeMo Retriever 结合使用,该微服务提供了-state-of-the-art、开放的商业数据检索,具有高准确度和最大数据隐私。
- 借助NeMo Guardrails减轻幻境,您可以将可编程的防护 rails 添加到基于语言模型(LLM)的对话式应用中,从而确保可信性、安全性和可控性对话。它可以与其他防护 rails 和安全模型(例如Meta 的最新 Llama Guard)进行扩展。它还可以无缝集成到开发者工具中,包括LangChain 和LlamaIndex 等热门框架。
通过 NVIDIA AI Foundry 使用这些工具和更多。
无处不在
Meta-Llama 3.1-8B 模型现在针对 NVIDIA GeForce RTX 个人电脑和 NVIDIA RTX 工作站上的推理进行了优化。
借助适用于 Windows 的 TensorRT 模型优化器,Llama 3.1-8B 模型通过 AWQ 训练后量化(PTQ)方法量化为 INT4。这使得模型能够适应 NVIDIA RTX GPU 上可用的 GPU 显存,并通过减少内存带宽瓶颈来提高性能。这些模型是NVIDIA TensorRT-LLM(我们的开源软件,可加速 LLM 推理性能)原生支持的。
Llama 3.1-8B 模型还在 NVIDIA Jetson Orin 上针对机器人和边缘计算设备进行了优化。
借助 Lama 3.1 实现出色性能
所有 Llama 3.1 模型均支持 128K 上下文长度,并可作为基础和指令变体以 BF16 精度提供。
现在,这些模型还使用 TensorRT-LLM 进行加速。TensorRT-LLM 将模型编译为 TensorRT 引擎,使用模式匹配和融合将模型层编译为优化的 CUDA 内核,以最大限度地提高推理性能。然后,这些引擎由 TensorRT-LLM 运行时执行,其中包括多项 优化:
- 动态批处理
- KV 缓存
- 量化以支持低精度工作负载
TensorRT-LLM 通过 缩放旋转位置嵌入 (RoPE) 技术 支持 128K 长上下文长度,包括 多 GPU 和多节点 推理的 Llama 3.1-405B 在 H100 上 BF16 精度级别模型,以及在 H200 上进行单节点推理。
支持 FP8 精度推理。在 NVIDIA Hopper 和 NVIDIA Ada GPU 上使用训练后量化(PTQ)
对于 Llama 3.1-405B 模型,TensorRT-LLM 增加了对行级粒度级别的 FP8 量化支持。这涉及在执行前为每个输出权重通道计算静态缩放系数,以及在执行期间为每个令牌计算动态缩放系数,以保持最大准确性。
在 TensorRT 引擎构建过程中,无法自动发现一些复杂的层融合。TensorRT-LLM 使用在编译时显式插入到网络图形定义中的插件来优化这些内容,以替换用户定义的内核,例如针对 Llama 3.1 模型的矩阵乘法运算来自 FBGEMM。
为便于使用和部署,TensorRT-Model-Optimizer 和 TensorRT-LLM 优化已捆绑到 NVIDIA NIM 推理微服务中。
NVIDIA NIM
现在,NVIDIA NIM 支持 Llama 3.1 进行生产部署。NIM 推理微服务可以加速生成式 AI 模型在 NVIDIA 加速的基础设施(包括云、数据中心和工作站)中的部署。
NIM 支持动态 LoRA 适配器选择,使您能够使用单个基础模型为多个用例提供服务。这通过多层缓存系统实现,该系统管理跨 GPU 和主机内存的适配器,并使用特殊的 GPU 内核进行加速,以便同时为多个用例提供服务。
后续步骤
借助 NVIDIA 加速计算平台,您可以在任何平台上使用 Llama 3.1 构建模型和应用,从数据中心到 NVIDIA RTX 和 NVIDIA Jetson。
NVIDIA 致力于推进、优化和推动开源软件和模型的发展。了解更多关于 NVIDIA AI 平台如何应用于生成式 AI 的信息。