ViT篇外:NVIDIA Llama-3.1-Minitron 4B

news2024/9/25 19:25:25

相关阅读:

  • ViT:3 Compact Architecture

  • MobileLLM:“苗条”的模型比较好!

大家也许会很好奇为什么在ViT章节插入了NVIDIA Llama-3.1-Minitron 4B,ViT因为应用场景的特殊性所以都寄希望于高效率的模型,因此各种针对大参数模型的提炼和优化技术层出不穷。而NVIDIA Llama-3.1-Minitron则复现了这些系列的教科书实验。对于一些基本的术语,可以移步ViT 1温习一下。

Llama-3.1-Minitron 4B

LLMs例如Llama 3.1 405B和NVIDIA Nemotron-4 340B在许多具有挑战性的任务中表现出色,包括编码、推理和数学。但是部署它们需要大量资源。所以在可以预见的未来,开发小型且高效的语言模型成为热门,毕竟好用且部署成本要低很多。

NVIDIA近日的研究表明,结构化权重修剪与知识蒸馏相结合,形成了一种有效且高效的策略,可以从较大的兄弟模型中提炼较小的语言模型。NVIDIA Minitron 8B和4B就是通过修剪和蒸馏NVIDIA Nemotron系列中较大的15B而得到的。

的确修剪和蒸馏这些大模型的提炼方法与从头开始训练相比,MMLU分数提高了16%。每个额外的模型需要的训练令牌更少,最多减少40倍,与从头开始训练所有模型相比,训练一个疗程可节省高达1.8倍的计算成本。当然最重要的是性能也不能拉胯,性能与Mistral 7B、Gemma 7B和Llama-3 8B相当,最高可达 15T。

NVIDIA的本次研究提出了一套实用且有效的结构化压缩最佳实践,将LLMs深度、宽度、注意力和MLP修剪与基于知识蒸馏的方法相结合。最后将它们应用于Llama 3.1 8B模型以获得Llama-3.1-Minitron 4B。

Llama-3.1-Minitron 4B与类似大小的最先进的开源模型相比表现出色,包括 Minitron 4B、Phi-2 2.7B、Gemma2 2.6B和Qwen2-1.5B,Llama-3.1-Minitron 4B即将发布到HuggingFace。

Nvidia进一步优化了Llama-3.1-Minitron 4B模型,以使用其TensorRT-LLM工具包进行部署,从而增强了其推理性能。例如,与原始的Llama 3.1 8B模型相比,该模型在各种情况下的FP8精度吞吐量增加到2.7倍。在 Llama-3.1-Minitron 4B上执行的额外优化使该模型非常强大和高效,易于应用于许多领域。

经验总结

具体的过程如下:从15B模型开始评估每个组件(层、神经元、头部和嵌入通道)的重要性,然后对模型进行排序和修剪到目标大小的8B模型。之后使用模型蒸馏执行了轻度二次训练,原始模型作为老师,修剪后的模型作为学生。训练后8B模型作为修剪和提炼为较小的4B模型的起点。

要修剪模型,首先要了解模型哪些部分是重要的,这点至关重要。这里使用一种纯粹基于激活的重要性估计策略。这种策略使用1024个样本数据集通过并行的前向传播来评估所有这个神经网络中组件的重要性(depth, neuron, head, and embedding channel)。研究指出可以迭代地交替使用修剪和重要性评估方法,然而实证研究表明,使用单次重要性估计就足够了,迭代多次并没有带来想象中的收益。

上图显示使用学生模型(修剪模型)的蒸馏过程,该模型具有N层,是从具有M层的教师模型(原始未修剪模型)中蒸馏出来的。学生通过最小化映射在学生块S和教师块T上的Embedding Loss、Logit Loss等Loss组合学习和训练。

基于通过剪枝和知识蒸馏的消融研究<就是拿掉一个组件,看看缺失的情况对于整体的影响力>,本次研究将学习成果总结出一些压缩的最佳实践:

  • 要训练一个家族的LLMs,首先挑选最大号的模型然后进行修剪和迭代蒸馏以获得较小的LLMs

  • 如果使用的大模型是使用多阶段训练策略进行训练的,则最好选择最后阶段的模型。

  • 当源模型最接近目标期望大小的模型时候可以修剪

  • 最好进行宽度修剪而不是深度修剪,这对于≤ 15B效果很棒

  • 针对神经网络中各个组件的重要性评估,一次就够了

  • 使用蒸馏损失进行再训练,当深度显著减少时使用Logit+Embedding +中间状态进行蒸馏,当深度没有显著减少时,仅使用Logit蒸馏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2070619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】浮点型数据在内存中的储存

浮点型数据在内存中的储存 文章目录 浮点型数据在内存中的储存引例概念提出浮点型数据储存规定对于有效数字M的特别规定对于指数E的特别规定指数E的储存指数E的读取 利用规则解释原因 在之前学习过整形数据在内存中的储存后&#xff0c;浮点型数据在内存中的储存又会怎样呢&…

AI辅助论文写作已成大趋势,这些AI工具分享给你

近年来&#xff0c;人工智能语言模型迅速发展&#xff0c;特别是在美国人工智能研究实验室 OpenAI 于 2022 年 11 月发布了聊天机器人 ChatGPT 后&#xff0c;引发了全球范围内的广泛讨论。人们惊叹着一个新的人工智能时代已经到来&#xff0c;预示着许多工作将被这类机器人所取…

二叉树刷题(1)

二叉树题目讲解&#xff08;1&#xff09; 一、构建二叉树并且遍历&#xff08;1&#xff09;思路&#xff08;2&#xff09;代码 二、对称二叉树1、思路2、代码 三、相同的树1、思路2、代码 四、单值二叉树1、思路2、代码 五、另一棵树的子树1、思路2、代码 一、构建二叉树并且…

【Rust日报】一本新书:黑帽Rust

2024 Rust中国大会大会将于 9 月 07 日 - 08 日在上海举办。精彩议题逐步放出中&#xff0c;欢迎大家面对面交流。 2024 Rust中国大会报名链接暨第一批精彩演讲主题介绍 2024 Rust中国大会第二批精彩演讲主题列表 2024 Rust中国大会第三批精彩演讲主题列表 马尔科夫文本生成算法…

多线程(5)——锁策略、CAS、JUC常见类

1. 常见锁策略 1.1 乐观锁 & 悲观锁 乐观锁 & 悲观锁 也不是指具体某个锁&#xff0c;而是 “锁的一种特点”&#xff0c;描述了 “一类锁” 乐观锁&#xff1a;加锁的时候&#xff0c;假设出现锁冲突的概率不大 > 接下来围绕加锁要做的工作就会更少悲观锁&#…

minio 后端大文件分片上传,合并,删除分片

背景 网上大多数minio大文件上传都是采用后台返回前端预上传链接&#xff0c;然后由前端去put请求直接和minio通信上传分片文件&#xff0c;然后调用后台合并分片逻辑来达到快申诉上传的目的&#xff0c;详情可以参考我的上两篇文章 最近有个项目域名是https的&#xff0c;但…

# 低代码和无代码开发初探

低代码和无代码开发初探 低代码和无代码都是近年来在软件开发领域兴起的技术趋势&#xff0c;它们旨在提高开发效率、降低开发门槛&#xff0c;让更多人能够参与到软件开发过程中。以下是对低代码和无代码的介绍&#xff1a; 一、低代码 1、低代码定义 低代码开发平台&…

Linux nice/renice 命令 - 进程的NI、PRI属性

进程NI、PRI属性的联系 共同影响进程调度&#xff1a;NI和PRI都是Linux进程调度机制中的重要参数&#xff0c;它们共同决定了进程在CPU资源竞争中的优先级。NI值通过影响PRI值来间接影响进程的调度顺序。NI值可调整以改变PRI值&#xff1a;用户可以通过调整进程的NI值来间接改…

较难!第15届蓝桥杯青少组省赛Scratch中级组编程真题

今天上午第15届蓝桥杯青少组省赛Scratch初级组考完试以后&#xff0c;Scratch实验室就预估今天下午的Scratch中级组比较难&#xff0c;结果不出所料&#xff0c;还是比较有难度&#xff0c;据好几个学生及家长说&#xff0c;好几道题不会做时间不够。 来源&#xff1a;结束啦&a…

三级_网络技术_43_综合题(报文)

一、 某客户机使用DHCP获取IP地址等信息&#xff0c;其获取lP地址过程中捕获的4条报文及对第2条报文分析如下所示。请分析其中的信息&#xff0c;补全内容。 编号 报文摘要 DHCP:Request, Type:DHCP discover DHCP:Reply, Type:DHCP__________ DHCP:Request, Type:DHCP Re…

DBeaver安装使用

文章目录 简介支持的数据库支持的系统 下载安装DBeaver使用修改Maven下载jar地址窗口->首选项连接->驱动->Maven配置仓库地址 选择需要连接的数据库进行连接 简介 DBeaver 是一个通用的数据库管理工具和 SQL 客户端&#xff0c;支持 MySQL, PostgreSQL, Oracle, DB2,…

人生苦短,转行程序员要趁早啊

前言 最近有朋友咨询关于如何自学编程语言的问题&#xff0c;发现要回答这个问题&#xff0c;不是一俩句就可以回答清楚并减少当事人的困惑和迷茫。 笔者不知道提问者是问的学习方法还是学习路径&#xff0c;所以特此写一篇文章&#xff0c;斗胆表达一下我对自学编程的一点点…

解决Gradle下载依赖速度慢的问题

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

盘古信息MES制造执行系统,赋能制造企业智能化运营管理

随着工业智能化的不断深入&#xff0c;MES系统在制造业中扮演着越来越重要的角色。盘古信息自主研发的IMS MES&#xff0c;通过提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质量管理、人力资源管理、设备管理、采购管理、成本管理、看板管理、生产过程控制、…

TCP粘包和抓包

在 TCP 套接字中&#xff0c;发送和接收缓冲区用于暂存数据&#xff0c;以确保数据的可靠传输。具体来说&#xff0c;TCP 的 socket 收发缓冲区的主要特点和概念如下&#xff1a; 1. 发送缓冲区&#xff08;Send Buffer&#xff09; 定义: 发送缓冲区用于存储待发送的数据。应…

如何在不格式化的情况下解锁 Android 智能手机密码

如果您忘记密码&#xff0c;您的 Android 移动设备将锁定您。发生这种情况时&#xff0c;通常可以通过恢复出厂设置来重新获得对设备的访问权限。可悲的是&#xff0c;这将导致所有数据丢失。下面列出的是解锁锁定的Android 手机而不会丢失任何个人数据的有效方法。 Android 手…

排查Maven问题的步骤

0.检查pom文件完整性 1.检查IDEA中配置是否正确 2.使用清楚工具将所有的lastupdate清除, 3.有些依赖是公司的依赖 —>配置私服 —>拷贝同事仓库,覆盖自己的仓库 4.有了私服地址,但是还是下载不到 —>查看地址是否能访问 —>挂VPN

linux多进程与多线程总结

这里写自定义目录标题 2 linux多进程与多线程2.1 进程间通信2.1.1 管道2.1.2 信号2.1.3 消息队列2.1.4 共享内存 3 线程4 IO多路复用4.1 非阻塞IO4.2 IO多路复用 2 linux多进程与多线程 学习并发程序。 linux系统中&#xff0c;使用树型管理进程。因此进程之间有父子关系。通…

如何使用ssm实现学生公寓管理系统的设计与实现

TOC ssm106学生公寓管理系统的设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;…

LeetCode.3146.两个字符串的排列差

题目描述&#xff1a; 给你两个字符串 s 和 t&#xff0c;每个字符串中的字符都不重复&#xff0c;且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 输入输出示例&#xff1a; 思路一&#xff1…