今天,英伟达™(NVIDIA®)发布了一款独特的语言模型,该模型具有无与伦比的准确性和效率性能。Llama 3.1-Nemotron-51B 源自 Meta 的 Llama-3.1-70B,它采用了一种新颖的神经架构搜索(NAS)方法,从而建立了一个高度准确和高效的模型。在高工作负荷下,该模型只需一个英伟达™(NVIDIA®)H100 GPU 即可运行,因此更易于使用,也更经济实惠。新模型所表现出的出色精度-效率甜点源于对模型架构的改变,这种改变显著降低了内存占用、内存带宽和 FLOPs,同时保持了出色的精度。我们证明,这种方法可以通过在参考模型的基础上创建另一个更小、更快的变体来加以推广。
2024 年 7 月,Meta 发布了 Llama-3.1-70B,这是一种领先的先进大型语言模型(LLM)。今天,我们宣布推出 Llama 3.1-Nemotron-51B-Instruct,它是利用 NAS 和从 “参考模型”–Llama 3.1-70B 中提炼出的知识而开发的。
卓越的吞吐量和工作效率
与参考模型相比,Nemotron 模型的推理速度提高了 2.2 倍,同时保持了几乎相同的精度。该模型减少了内存占用,在推理过程中可以在单个 GPU 上运行 4 倍更大的工作负载,从而带来了一系列新的机遇。
Accuracy | Efficiency | |||
MT Bench | MMLU | Text generation (128/1024) | Summarization/ RAG (2048/128) | |
Llama-3.1- Nemotron-51B- Instruct | 8.99 | 80.2% | 6472 | 653 |
Llama 3.1-70B- Instruct | 8.93 | 81.66% | 2975 | 339 |
Llama 3.1-70B- Instruct (single GPU) | — | — | 1274 | 301 |
Llama 3-70B | 8.94 | 80.17% | 2975 | 339 |
表 1.Llama-3.1-Nemotron-51B-Instruct 的精度和效率概览。
注:速度以每 GPU 每秒令牌数为单位,在配备 8 X NVIDIA H100 SXM GPU 的机器上测量,使用 TRT-LLM 作为运行时引擎进行 FP8 量化。通过张量并行(除非另有说明),每个模型都采用了最佳 GPU 数量。括号中的数字表示(输入/输出序列长度)。
详细的绩效指标见下文。
优化每美元的精确度
基础模型在解决推理、总结等非常复杂的任务时表现出令人难以置信的质量。然而,采用顶级模型的一个主要挑战是其推理成本。随着生成式人工智能领域的发展,准确性和效率(直接影响成本)之间的平衡将成为选择模型的决定性因素。此外,在单个 GPU 上运行模型的能力大大简化了模型的部署,为新应用在任何地方(从边缘系统到数据中心再到云端)的运行提供了机会,并有助于通过 Kubernetes 和 NIM 蓝图为多个模型提供服务。
因此,我们设计了 Llama 3.1-Nemotron-51B-Instruct,以实现这一最佳权衡。下图显示了领先开源模型的准确性与吞吐量之间的关系。吞吐量与价格成反比,因此图中显示的高效前沿模型可实现最佳权衡。如图所示,该模型超越了当前的有效前沿,成为每美元精度最高的模型。
图 1. 与前沿模型相比,Llama-3.1-Nemotron-51B 的精度与吞吐量性能。吞吐量通过并发 25 的 NIM 进行测量(服务吞吐量)。
注:模型质量定义为 MT-Bench 和 MMLU 的加权平均值(10MT-Bench + MMLU)/2,与单个英伟达 H100 80GB GPU 的模型吞吐量相对照。灰点代表最先进的模型,虚线代表 “高效前沿”。*
利用英伟达™(NVIDIA®)NIM 简化推理过程
Nemotron 模型利用 TensorRT-LLM 引擎进行了优化,以实现更高的推理性能,并打包为 NVIDIA NIM 推理微服务,以简化和加速生成式 AI 模型在包括云、数据中心和工作站在内的任何地方的 NVIDIA 加速基础架构中的部署。
NIM 使用推理优化引擎、行业标准 API 和预构建容器来提供高吞吐量的人工智能推理,并可根据需求进行扩展。
引擎盖下–利用 NAS 建立模型
设计神经架构的推理和硬件感知方法已成功应用于许多领域。然而,LLM 仍然是作为重复的相同块来构建的,很少考虑这种简化所带来的推理成本开销。为了应对这些挑战,我们开发了高效的 NAS 技术和训练方法,可用于创建非标准变压器模型,以便在特定 GPU 上进行高效推理。
我们的技术可以从巨大的设计空间中选择优化各种约束条件的神经架构,这些设计空间包括非标准变压器模型的动物园,这些模型可以利用不同效率程度的替代注意力和 FFN 块,在极端情况下甚至可以完全消除块。
然后,我们使用分块蒸馏(图 2)框架,对(大型)父 LLM 的所有层并行训练所有这些分块变体。在分块蒸馏的基本版本中,训练数据通过参考模型(也称为教师)传递。对于每个区块,其输入都来自教师,并注入学生的匹配区块。对教师和学生的输出进行比较,然后对学生区块进行训练,使学生区块模仿教师区块的功能。图 2 右图描述了一种更高级的情况,即一个学生区块模仿多个教师区块。
图 2区块蒸馏–对于参考模型(蓝色)的区块,我们为 “学生模型”(黄色)创建了多个变体,这些变体模仿了教师的区块功能。
接下来,我们使用 Puzzle 算法对每个替代 "拼图 "进行高效评分,并在巨大的设计空间中搜索最准确的模型,同时遵守一系列推理约束条件,如内存大小和所需吞吐量。最后,通过将知识蒸馏(KD)损失用于区块评分和训练,我们展示了利用更高效的架构缩小我们的模型与参考模型之间准确率差距的潜力,而训练成本仅为参考模型的一小部分。使用我们在 Llama-3.1-70B 模型上的方法作为参考模型,我们构建了 Llama-3.1-Nemotron-51B-Instruct,这是一个 51B 模型,它在单个英伟达 H100 GPU 上打破了 LLM 的高效前沿(图 1)。
Llama-3.1-Nemotron-51B-Instruct 架构的独特之处在于它的不规则块结构,其中有许多层,在这些层中,注意力和 FFN 被减少或修剪,从而更好地利用了 H100,并凸显了优化 LLM 对于推理的重要性。图 3 以示意图的形式描述了由此产生的架构的不规则结构,并强调了由此节省的计算量,即图中的绿色区域。
图 3.在参考模型的 80 个图层中,Puzzle 为注意力图层(蓝色)和 FFN 图层(红色)所选图块(图层)的运行时间。绿色区域对应的是总体运行时间节省。
我们的创新技术使我们能够开发出重新定义 LLM 高效前沿的模型。最重要的是,我们可以从一个参考模型出发,经济高效地设计多个模型,每个模型都针对特定的硬件和推理场景进行了优化。这种能力使我们能够在当前和未来的硬件平台上保持 LLM 推理的一流性能。
详细结果
模型精度
下表列出了我们评估的所有基准–比较我们的模型和参考模型 Llama3.1-70B。保留的准确度 "是我们的模型得分与教师得分之间的比率。
Benchmark | Llama-3.1 70B-instruct | Llama-3.1-Nemotron-51B- Instruct | Accuracy preserved |
winogrande | 85.08% | 84.53% | 99.35% |
arc_challenge | 70.39% | 69.20% | 98.30% |
MMLU | 81.66% | 80.20% | 98.21% |
hellaswag | 86.44% | 85.58% | 99.01% |
gsm8k | 92.04% | 91.43% | 99.34% |
truthfulqa | 59.86% | 58.63% | 97.94% |
xlsum_english | 33.86% | 31.61% | 93.36% |
MMLU Chat | 81.76% | 80.58% | 98.55% |
gsm8k Chat | 81.58% | 81.88% | 100.37% |
Instruct HumanEval (n=20) | 75.85% | 73.84% | 97.35% |
MT Bench | 8.93 | 8.99 | 100.67% |
表 2. Nemotron 模型与 Llama 3.1-70B-Instruct 在多个行业基准中的精度比较。
性能
下表详细列出了每个 GPU(H100 80GB)每秒的令牌数量。可以看出,在一系列相关情况下(短输入和长输入以及输出),我们的模型比教师模型的吞吐量高出一倍,因此在多种使用情况下都具有成本效益。TPX 描述了并行处理的 GPU 数量。我们还列出了 Llama 3.1-70B 在单 GPU 上的性能,以证明我们的模型在这种情况下的价值。
Scenario | Input/Output Sequence Length | Llama-3.1- Nemotron- Instruct | Llama-3.1-70B-Instruct | Ratio | Llama (TP1) |
Chatbot | 128/128 | 5478 (TP1) | 2645 (TP1) | 2.07 | 2645 |
Text generation | 128/1024 | 6472 (TP1) | 2975 (TP4) | 2.17 | 1274 |
Long text generation | 128/2048 | 4910 (TP2) | 2786 (TP4) | 1.76 | 646 |
System 2 reasoning | 128/4096 | 3855 (TP2) | 1828 (TP4) | 2.11 | 313 |
Summarization/ RAG | 2048/128 | 653 (TP1) | 339 (TP4) | 1.92 | 300 |
Stress test 1 | 2048/2048 | 2622 (TP2) | 1336 (TP4) | 1.96 | 319 |
表 3.热门用例中模型生成令牌数量的吞吐量比较。所有数字均以每 GPU 每秒生成的令牌数为单位。
决定模型运行成本的主要因素是吞吐量–系统在一秒钟内生成的令牌总数。不过,在某些情况下(如聊天机器人),单个终端用户收到模型响应的速度对用户体验非常重要。这可以用每个用户每秒产生的代币来量化,称为用户端吞吐量。下图显示了用户端吞吐量与不同批次规模下吞吐量的对比图。可以看出,在所有批次规模下,我们的模型都优于 Llama 3.1-70B。
图 4.Nemotron 模型和 Llama-3.1-70B 在不同批次规模下的服务器吞吐量与用户端吞吐量对比图。
为不同需求量身定制 LLM
NAS 方法为用户提供了在精度和效率之间选择最佳平衡点的灵活性。为了展示这种灵活性,我们在同一参考模型的基础上创建了另一个变体,这次优先考虑的是速度和成本。Llama-3.1-Nemotron-40B-Instruct 采用相同的方法开发,但在 "拼图 "阶段修改了速度要求。
与原模型相比,该模型的速度提高了 3.2 倍,但准确性略有下降。下表列出了具有竞争力的性能指标。
Accuracy | Speed | |||
MT bench | MMLU | Text generation(128/1024) | Summarization/ RAG (2048/128) | |
Llama-3.1- Nemotron-40B-instruct | 8.69 | 77.10% | 9568 | 862 |
Llama-3.1- Nemotron-51B-instruct | 8.99 | 80.20% | 6472 | 653 |
Llama 3.1-70B-Instruct | 8.93 | 81.72% | 2975 | 339 |
Gemma2-27B | 8.88 | 76.54% | ADD | ADD |
表 4.Llama-3.1-Nemotron-40B-Instruct 的精度和效率概览。
总结
Llama 3.1-Nemotron-51B-Instruct 为希望使用高精度地基模型的用户和公司提供了一系列新的机会,同时又能控制成本。通过在精度和效率之间进行最佳权衡,我们相信该模型对建筑商来说是一个极具吸引力的选择。此外,这些结果证明了 NAS 方法的有效性,并打算将该方法扩展到其他模型。