当前位置: 首页 > news >正文

利用 Llama-3.1-Nemotron-51B 推进精度-效率前沿的发展

在这里插入图片描述
今天,英伟达™(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 倍更大的工作负载,从而带来了一系列新的机遇。

 AccuracyEfficiency
 MT BenchMMLUText generation (128/1024)Summarization/ RAG (2048/128)
Llama-3.1- Nemotron-51B- Instruct8.9980.2%6472653
Llama 3.1-70B- Instruct8.9381.66%2975339
Llama 3.1-70B- Instruct (single GPU)1274301
Llama 3-70B8.9480.17%2975339

表 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。保留的准确度 "是我们的模型得分与教师得分之间的比率。

BenchmarkLlama-3.1 70B-instructLlama-3.1-Nemotron-51B- InstructAccuracy preserved
winogrande85.08%84.53%99.35%
arc_challenge70.39%69.20%98.30%
MMLU81.66%80.20%98.21%
hellaswag86.44%85.58%99.01%
gsm8k92.04%91.43%99.34%
truthfulqa59.86%58.63%97.94%
xlsum_english33.86%31.61%93.36%
MMLU Chat81.76%80.58%98.55%
gsm8k Chat81.58%81.88%100.37%
Instruct HumanEval (n=20)75.85%73.84%97.35%
MT Bench8.938.99100.67%

表 2. Nemotron 模型与 Llama 3.1-70B-Instruct 在多个行业基准中的精度比较。

性能

下表详细列出了每个 GPU(H100 80GB)每秒的令牌数量。可以看出,在一系列相关情况下(短输入和长输入以及输出),我们的模型比教师模型的吞吐量高出一倍,因此在多种使用情况下都具有成本效益。TPX 描述了并行处理的 GPU 数量。我们还列出了 Llama 3.1-70B 在单 GPU 上的性能,以证明我们的模型在这种情况下的价值。

ScenarioInput/Output Sequence LengthLlama-3.1- Nemotron- InstructLlama-3.1-70B-InstructRatioLlama (TP1)
Chatbot128/1285478 (TP1)2645 (TP1)2.072645
Text generation128/10246472 (TP1)2975 (TP4)2.171274
Long text generation128/20484910 (TP2)2786 (TP4)1.76646
System 2 reasoning128/40963855 (TP2)1828 (TP4)2.11313
Summarization/ RAG2048/128653 (TP1)339 (TP4)1.92300
Stress test 12048/20482622 (TP2)1336 (TP4)1.96319

表 3.热门用例中模型生成令牌数量的吞吐量比较。所有数字均以每 GPU 每秒生成的令牌数为单位。

决定模型运行成本的主要因素是吞吐量–系统在一秒钟内生成的令牌总数。不过,在某些情况下(如聊天机器人),单个终端用户收到模型响应的速度对用户体验非常重要。这可以用每个用户每秒产生的代币来量化,称为用户端吞吐量。下图显示了用户端吞吐量与不同批次规模下吞吐量的对比图。可以看出,在所有批次规模下,我们的模型都优于 Llama 3.1-70B。

在这里插入图片描述
图 4.Nemotron 模型和 Llama-3.1-70B 在不同批次规模下的服务器吞吐量与用户端吞吐量对比图。

为不同需求量身定制 LLM

NAS 方法为用户提供了在精度和效率之间选择最佳平衡点的灵活性。为了展示这种灵活性,我们在同一参考模型的基础上创建了另一个变体,这次优先考虑的是速度和成本。Llama-3.1-Nemotron-40B-Instruct 采用相同的方法开发,但在 "拼图 "阶段修改了速度要求。

与原模型相比,该模型的速度提高了 3.2 倍,但准确性略有下降。下表列出了具有竞争力的性能指标。

AccuracySpeed
MT benchMMLUText generation(128/1024)Summarization/ RAG (2048/128)
Llama-3.1- Nemotron-40B-instruct8.6977.10%9568862
Llama-3.1- Nemotron-51B-instruct8.9980.20%6472653
Llama 3.1-70B-Instruct8.9381.72%2975339
Gemma2-27B8.8876.54%ADDADD

表 4.Llama-3.1-Nemotron-40B-Instruct 的精度和效率概览。

总结

Llama 3.1-Nemotron-51B-Instruct 为希望使用高精度地基模型的用户和公司提供了一系列新的机会,同时又能控制成本。通过在精度和效率之间进行最佳权衡,我们相信该模型对建筑商来说是一个极具吸引力的选择。此外,这些结果证明了 NAS 方法的有效性,并打算将该方法扩展到其他模型。

相关文章:

利用 Llama-3.1-Nemotron-51B 推进精度-效率前沿的发展

今天,英伟达™(NVIDIA)发布了一款独特的语言模型,该模型具有无与伦比的准确性和效率性能。Llama 3.1-Nemotron-51B 源自 Meta 的 Llama-3.1-70B,它采用了一种新颖的神经架构搜索(NAS)方法&#…...

SpringBoot+Thymeleaf发票系统

> 这是一个基于SpringBootSpringSecurityThymeleafBootstrap实现的简单发票管理系统。 > 实现了用户登录,权限控制,客户管理,发票管理等功能。 > 并且支持导出为 CSV / PDF / EXCEL 文件。 > 本项目是一个小型发票管理系统…...

Updates were rejected because the tip of your current branch is behind 的解决方法

1. 问题描述 当我们使用 git push 推送代码出现以下问题时: 2. 原因分析 这个错误提示表明当前本地分支落后于远程分支,因此需要先拉取远程的更改。 3. 解决方法 1、拉取远程更改 在终端中执行以下命令,拉取远程分支的更新并合并到本地…...

Redis桌面工具:Tiny RDM

1.Tiny RDM介绍 Tiny RDM(Tiny Redis Desktop Manager)是一个现代化、轻量级的Redis桌面客户端,支持Linux、Mac和Windows操作系统。它专为开发和运维人员设计,使得与Redis服务器的交互操作更加便捷愉快。Tiny RDM提供了丰富的Red…...

【Java】酒店管理系统

一 需求: 编写程序 模拟酒店管理系统 : 预订和退订以及查看所有房间 1 需要有一个酒店类 2 需要有一个房间类 3 需要有一个客户端类 public class Test { } 二 分析: 客户端 : 1 先打印所有房间 2 等待用户输入,根据输入情况 判断是预订还是退订 3 等待用户输入房间号 …...

【数据库】Java 中 MongoDB 使用指南:步骤与方法介绍

MongoDB 是一个流行的 NoSQL 数据库,因其灵活性和高性能而广泛使用。在 Java 中使用 MongoDB,可以通过 MongoDB 官方提供的 Java 驱动程序来实现。本文将详细介绍在 Java 中使用 MongoDB 的步骤以及相关方法。 1. 环境准备 1.1 安装 MongoDB 首先&…...

MySQL之内置函数

目录 一、日期函数 二、字符串函数 三、数学函数 四、其它函数 一、日期函数 常见的日期函数如下: 函数名称说明current_date()获取当前日期current_time()获取当前时间current_timestamp()获取当前时间戳date_add(date, interval d_value_type)在date中添加日…...

JVM 基本组成

1.为什么要学习JVM? 未来在工作场景中,也许你会遇到以下场景:线上系统突然宕机,系统无法访问,甚至直接OOM;线上系统响应速度太慢,优化系统性能过程中发现CPU占用过高,原因也许是因为…...

Ubuntu 离线安装 docker

1、下载离线包,网址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/ 离线安装docker需要下载3个包,containerd.io ,docker-ce-cli,docker-ce 2、下载完毕后拷贝到ubuntu上用 dpkg 命令安装&am…...

【C++】set详解

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...

C++游戏开发:构建高性能、沉浸式游戏体验的关键

引言 C作为游戏开发的核心语言,凭借其卓越的性能和灵活性,已成为许多现代游戏引擎和开发项目的首选。在游戏开发中,C不仅可以实现复杂的游戏逻辑,还能有效管理资源和优化性能。本文将深入探讨C在游戏开发中的应用,结合…...

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】 一、TFLM是什么?二、TFLM开源项目2.1 下载TFLM源代码2.2 TFLM基准测试说明2.3 TFLM基准测试命令 三、TFLM初步体验3.1 PC上运行Keyword基准测试3.2 PC上运行Person detection基准测试3.3 No module nam…...

第三方供应商不提供API接口?教你四步破解集成难题

API开放需求 在企业数字化转型过程中,异构系统之间的连接是信息化阶段不可或缺的一环。通过应用API,企业能够实现不同系统、平台和应用之间的数据交换与功能调用,从而形成端到端的业务流程协同。然而,很多企业在集成第三方供应商…...

WebAssembly 为什么能提升性能,怎么使用它 ?

文章目录 简介:起源:前端性能提升历史JIT(Just-In-Time)编译器(即时编译) 为什么需要WebAssembly:WebAssembly能做什么:经常说WASM的性能高,为什么高??使用方法:Emscript…...

golang学习笔记13-函数(二):init函数,匿名函数,闭包,defer

注:本人已有C,C,Python基础,只写本人认为的重点。 这个知识点基本属于go的特性,比较重要,需要认真分析。 一、init函数 每个文件都可以定义init函数,它会在main函数执行前被调用,无论它的定义…...

HAproxy,nginx实现七层负载均衡

环境准备: 192.168.88.25 (client) 192.168.88.26 (HAproxy) 192.168.88.27 (web1) 192.168.88.28 (web2) 192.168.88.29 (php1) 192.168.88.30…...

ps aux | grep smart_webrtc这条指令代表什么意思

这条指令是在Linux系统中使用的命令,它的含义是列出所有正在运行的进程,并通过grep命令筛选出包含"smart_webrtc"关键字的进程。 具体解释如下: ps 是一个用于报告当前系统进程状态的命令。aux 是ps命令的选项,其中&a…...

第十三届蓝桥杯真题Python c组D.数位排序(持续更新)

博客主页:音符犹如代码系列专栏:蓝桥杯关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 问题描述 小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。…...

【RabbitMQ】RabbitMq消息丢失、重复消费以及消费顺序性的解决方案

RabbitMq消息丢失主要是有三种情况:生产者消息未发送到服务端、服务端消息没有做持久化导致丢失、消费端未收到消息。解决方案依次如下: 开启事务或使用确认机制。对于一些重要的消息,生产者可以开启事务,确保消息发送成功后再提…...

海陆钻井自动化作业机器人比例阀放大器

海陆钻井自动化作业机器人是现代海洋石油勘探与钻井领域的关键装备,它通过自动化和无人化技术显著提高了钻井效率和安全性。海陆钻井自动化作业机器人主要用于在海上和陆地的钻井平台上进行自动化、无人化的一体化作业。这种设备能够自动切换钻杆,极大地…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...