SUPRA:无须额外训练,将Transformer变为高效RNN,推理速度倍增

Transformers 已经确立了自己作为首要模型架构的地位,特别是因为它们在各种任务中的出色表现。但是Transformers 的内存密集型性质和随着词元数量的指数扩展推理成本带来了重大挑战。为了解决这些问题,论文“Linearizing Large Language Models”引入了一种创新的方法,称为UPtraining for Recurrent Attention (SUPRA)。该方法利用预训练的Transformers 并将其转换为递归神经网络,在保持预训练的好处的同时实现有效的推理。

SUPRA方法旨在将预训练的大型语言模型(LLMs)转化为RNNs,具体步骤包括替换softmax归一化为GroupNorm,使用一个小型MLP投影queries和keys。这种方法不仅降低了训练成本(仅为原来的5%),还利用了现有预训练模型的强大性能和数据。

Transformers 面临着与序列长度线性增长的高推理成本。相比之下,rnn提供固定成本推理,因为它们能够保持恒定大小的隐藏状态,这使得它们对于需要高效和可扩展推理的任务具有吸引力。

引入线性Transformers的概念,减轻了标准softmax注意机制的计算开销。线性Transformers用线性相似函数代替softmax,该函数可以重新表述为像RNN一样工作。但在许多基准测试中,线性Transformers的表现仍然不如softmax,主要是由于稳定性问题和预训练的复杂性。

向上训练方法(Uptraining )

向上训练指的是用最少的额外训练使预训练的模型适应新架构的过程,而不是微调,微调通常涉及在不同的数据集上重新训练模型。而SUPRA特别关注通过修改其注意机制将预训练的Transformers转换为rnn。

SUPRA的核心在于将Transformers的注意力机制转化为一种循环形式。softmax关注被一个允许循环更新的线性函数所取代。这种转换是至关重要的,因为它使模型能够增量地更新其状态,类似于RNN。

使用转换后的键(k)和值(v)在每个时间步更新循环状态(s)和归一化因子(z)。这些更新以允许模型以一次处理一个词元序列的方式执行,从而显著降低了推理成本。

phi(x)定义为:

1、初始化循环状态和归一化因子为零。

2、对于输入序列中的每个标记,使用学习到的权重矩阵计算查询和键。对这些向量应用MLP和旋转位置嵌入(RoPE),以确保它们有效地处理顺序数据。

3、使用转换后的键和值更新状态和归一化因子。MLP应用的转换适当地调整键和值。

4、通过归一化转换后的查询和状态的点积来计算每个时间步骤的注意力输出。对输出应用GroupNorm,取代传统的softmax归一化,提高输出稳定性。

对序列中的每个标记重复上述步骤,确保模型以循环的方式处理序列。

对模型进行微调

在使用上述步骤将Transformers转换为RNN之后,在较小的数据集上对模型进行微调。这个微调过程调整新组件(MLP、GroupNorm等)的权重,优化性能。与从头开始预训练相比,这一步只需要一小部分计算资源。

结果展示

研究人员通过提高1B到7B参数的一系列模型(包括Llama2和Mistral模型)来测试SUPRA方法。这些模型在标准语言理解基准和长上下文评估上进行了测试,以评估它们的性能和局限性。

使用Eleuther评估工具对标准自然语言理解(NLU)任务进行评估。Llama2-7B和Mistral-7B等初始化的supra处理模型在大多数基准测试中保持了高性能,优于RWKV-5等其他线性模型。

由于需要在扩展序列上保留信息,长上下文任务对许多模型来说是具有挑战性的。SUPRA模型在各种上下文长度下对来自SCROLLS基准的任务(如Qasper和NarrativeQA)进行评估。将这些模型的性能与它们的训练上下文长度进行比较。

SUPRA模型显示出超出其训练上下文长度保持性能的能力,这是与循环模型相关的典型特征。但是未经修改的Transformers在其最大训练上下文长度上通常优于SUPRA模型。这表明尽管SUPRA模型是有效的,但在处理非常长的上下文方面仍有改进的余地。

主要论点详解

1、SUPRA方法在多大程度上能解决长上下文任务中的性能不足?

性能不足的原因:使用了固定衰减向量γ,虽然在短上下文任务中表现良好,但在长上下文任务中,衰减效应导致有效上下文长度缩短,影响了性能。虽然SUPRA方法通过简化线性注意力计算,减少了推理成本,但仍然继承了线性模型在长上下文任务中的固有不足。例如,线性模型在长上下文建模中不如基于softmax注意力的Transformer模型表现好。

论文提出了可以探索更复杂的循环状态更新规则,如门控策略(gating strategies)和高阶线性注意力(higher order linear attention),以提高长上下文任务的性能。或增加专门用于长上下文任务的训练数据,可能有助于提升模型在这些任务中的表现。

2、替换softmax归一化为GroupNorm对模型稳定性和性能的具体影响是什么?

softmax归一化在大规模模型的训练过程中容易引起数值不稳定性,尤其是当模型处理长序列数据时。这种不稳定性在高维空间中特别明显。将softmax归一化替换为GroupNorm,可以有效缓解这种不稳定性。GroupNorm通过对组内的小批量数据进行归一化,减少了模型训练时的数值波动,增加了训练过程的稳定性。论文中的实验表明,使用GroupNorm的SUPRA模型在大规模模型(例如7B参数模型)的训练过程中表现更加稳定,减少了由于数值不稳定性导致的训练中断和性能下降。

将softmax归一化替换为GroupNorm对模型的稳定性和性能有显著正面影响。虽然在某些极长上下文任务中性能有所下降,但总体而言,这种替换在提高训练稳定性和保持性能方面表现良好。未来可以进一步优化GroupNorm的使用,以期在更多任务中提升模型性能。

3、是否可以通过进一步的优化策略(如门控机制)来弥补SUPRA方法在上下文学习中的不足?

a、通过引入门控机制,可以更好地控制信息流动,保持重要信息,丢弃不必要的信息,增强模型对长上下文的建模能力。门控机制可以平滑状态更新过程,减少长序列数据中的梯度消失和爆炸问题,提升模型训练的稳定性。

b、高阶线性注意力通过在计算注意力时引入更复杂的核函数,能够捕捉到更丰富的特征交互。通过使用更复杂的核函数,可以捕捉到更复杂的特征交互,提升模型的表达能力和性能。高阶线性注意力能够更有效地处理长上下文信息,提高模型在长上下文任务中的表现。

c、动态位置编码方法(如RoPE)可以更好地处理长序列中的位置信息。动态位置编码能够增强模型对长序列中位置信息的敏感性,提高长上下文建模能力。动态位置编码能够在不同长度的序列中保持稳定的性能,提升模型的泛化能力。

总结

SUPRA方法通过替换softmax归一化为GroupNorm,显著提升了模型的稳定性和性能。然而,在处理长上下文任务时仍存在一定不足。通过引入门控机制、高阶线性注意力、专门的训练数据和任务优化、动态位置编码以及结合其他高效注意力机制,可以进一步优化SUPRA方法,弥补其在上下文学习中的不足,提升模型的整体性能。

未来的研究可以继续探索这些优化策略的组合应用,以进一步提升模型在长上下文任务中的表现,为自然语言处理领域的发展提供更多可能性。

论文地址:

https://avoid.overfit.cn/post/40da3737629348ff9d151d5774554d93

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

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

相关文章

android-mvp模式

mvvm可以理解成使用databing的mvp模式,modleview 通过接口让view和Presenter层解耦 从图中就可以看出,最明显的差别就是view层和model层不再相互可知,完全的解耦,取而代之的presenter层充当了桥梁的作用,用于操作view…

set怎么实现有序

在Java集合框架中,Set接口的实现类主要有三种常见的变体:无序的HashSet、保持插入顺序的LinkedHashSet和按自然顺序或自定义比较器排序的TreeSet。要实现有序的Set,可以使用LinkedHashSet或TreeSet。 有序的Set实现类 LinkedHashSet&#xf…

0基础认识C语言(代码实操)

首先呢大家要知道C语言的常见格式如下 #include <stdio.h> int main() {return 0; } 可能看起来会有点懵&#xff0c;但是不着急&#xff0c;咱们一句一句讲 #include <stdio.h> 这是一个头文件&#xff0c;是标准输入输出&#xff0c;怎么理解呢&#xff0c;你…

芯片设计 | 什么是 NVMe?

文章目录 什么是 NVMe&#xff1f;什么是固态硬盘&#xff1f;为什么 NVMe 很重要&#xff1f;NVMe、SAS 和 SATA 之间的区别只有SSD运行在NVMe上PCIe和NVMe有关系&#xff0c;但它们不是同一个东西NVMe-oF连接SSD到网络NVMe 的工作原理是什么&#xff1f;NVMe SSD 外形尺寸M.2…

零售品牌做好差旅报销管理,真的能省钱

一年一度的“618”如期而至,甚至启动更早了。 各大厂商宣布取消延用了十多年的预售机制,主打“现货开卖”,充分回归“消费者价值”。 零售品牌给消费者省钱,更要给自己省钱。而这前提是充分了解“钱花在哪了”、“怎么花更合理”: ● 商业化BD、促销、营销等市场活动频繁,差…

手动验证 Azure AD 并设置登录状态

几个核心要点 1. client_id&#xff0c;client_secret&#xff0c;username&#xff0c;password 是必须要的 2. 通过 https://login.microsoftonline.com/...... 提交参数&#xff0c;成功就可以拿到 token 3. 自定义一个 CustomAuthenticationStateProvider 类继承自抽象类…

如何知道huggingface/modelscope的大模型的模型层名字

下载模型后&#xff0c;有个文件叫model.safetensors.index.json&#xff0c;里面有。 你下载的大模型位置在用户名/.cache/huggingface/hub/大模型名差不多这个路径。 或者直接print(parameters.name)&#xff0c;但是这样打出来特别多&#xff0c;很难看。差不多这样写&am…

LeetCode hot100-52-G

994. 腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a;值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单…

软件项目管理过程中的会议管理

项目会议类型 软件项目管理中的会议通常包括评审会议、项目例会、技术研讨会、项目启动会、项目回顾会、风险管理会议等多种类型&#xff0c;每种类型的会议都有其特定的目的和参与者。 1. 评审会议&#xff08;Review Meetings&#xff09;&#xff1a; & 需求评审&…

2024年【山东省安全员C证】考试及山东省安全员C证报名考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【山东省安全员C证】考试及山东省安全员C证报名考试&#xff0c;包含山东省安全员C证考试答案和解析及山东省安全员C证报名考试练习。安全生产模拟考试一点通结合国家山东省安全员C证考试最新大纲及山东省安全员…

VS2022配合Qt与boost.asio实现一个TCP异步通信系统远程操作mysql数据库

上一篇博客我们通过boost.asio搭建了一个简单的异步服务器&#xff0c;但是那是基于命令行的&#xff0c;所有用起来还是相当枯燥的&#xff0c;这次我们配合Qt实现一个简陋的前端页面来控制后端mysql数据库中的表&#xff0c;实现添加密钥的功能(本次博客使用的boost版本是1.8…

数据结构的直接插入排序(C语言版)

一.直接插入排序的基本概念 1.直接插入排序的基本思想 将数组分为已排序和未排序两部分。 每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。 重复步骤2,直到整个数组有序。 2.排序的工作原理 假设前 i-1 个元素已经有序,现在要将第…

前端开发的设计思路【精炼】(含数据结构设计、组件设计)

数据结构设计 用数据描述所有的内容数据要结构化&#xff0c;易于程序操作(遍历、查找)&#xff0c;比如数组、对象、对象为元素构成的数组&#xff08;每个元素记得设置唯一的 id 属性&#xff0c;以便对元素进行删改操作&#xff09;数据要可扩展&#xff0c;以便增加新的功能…

力扣 42. 接雨水 python AC

双指针 class Solution:def trap(self, heights):l, r 0, len(heights) - 1maxl, maxr 0, 0ans 0while l < r:maxl, maxr max(maxl, heights[l]), max(maxr, heights[r])if maxl < maxr:ans maxl - heights[l]l 1else:ans maxr - heights[r]r - 1return ans单调栈…

清除微信小程序默认button样式

button {background-color: transparent;border: none;color: inherit;font: inherit;line-height: normal;overflow: visible;outline: none;cursor: pointer;padding: 0;margin: 0; }button::after {border: none; }.button-hover {background-color: transparent; }

设置 border 边框单侧样式 - HarmonyOSNext

设置 border 边框单侧样式,通过 api 中查看 border(value: BorderOptions): T; BorderOptions 又包含了若干个子属性 1.width?: EdgeWidths | Length; 2.color?: EdgeColors | ResourceColor; 3.radius?: BorderRadiuses | Length; 4.style?: EdgeStyles | BorderStyle; 其…

Java 为什么使用泛型

目录 概述 1. 如下我们需要不同对象打印内容 2. 这时候就可以引入泛型使用 3. 泛型和Object的区别 概述 Java泛型&#xff08;Generics&#xff09;是JDK5.0引入的一种特性&#xff0c;它允许程序员在定义类、接口和方法时使用类型参数&#xff08;type parameters&#…

MYSQL框架结构

MYSQL框架结构 通过解析器和预处理生成解析树&#xff0c;预处理判断是否合法&#xff0c;如果合法则调用优化器去进行优化。

World Creator v2.1.0 解锁版安装教程 (GPU三维地形生成软件)

前言 World Creator是一款功能相当强大的地形景观生成器&#xff1b;可以完全根据自己的需求来对地形、景观生成您需要三维模型&#xff0c;内置的大量预设&#xff0c;让您的创建拥有无限的可能性。 一、下载地址 下载链接&#xff1a;http://dygod/ITSource 点击搜索&…

蓝卓入选工信部2023年度“揭榜挂帅”项目

蓝卓“面向多元异构和应用快速开发演化的智能工厂操作系统解决方案”&#xff0c;凭借行业领先的平台技术能力以及数智赋能的硬核实力成功揭榜挂帅。 本次入选不仅代表了蓝卓又一次获得工信部权威专家及国家认可&#xff0c;更是“工厂操作系统”首次在国家层面获得表彰。 智能…