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

Raki的读paper小记:RWKV: Reinventing RNNs for the Transformer Era

Abstract&Introduction&Related Work

  • 研究任务
    基础模型架构
  • 已有方法和相关工作
    • RNN,CNN,Transformer
    • 稀疏注意力(Beltagy等人,2020年;Kitaev等人,2020年;Guo等人,2022年)、近似全注意力矩阵(Wang等人,2020年;Ma等人,2021年;Choromanski等人,2020年)、将分块注意力与门控结合(Ma等人,2023年)FlashAttention(Dao等人,2022a年)MLP-Mixer,Attention Free Transformer(AFT)(Zhai等人,2021年)用计算效率更高的替代方法替换了点积自注意力,可以看作是一个多头注意力,其中每个特征维度对应一个头
  • 面临挑战
    • 训练以及推理开销太高
  • 创新思路
    • 提出了一种新的注意力机制,改变了线性注意力的结果
    • 受到AFT的启发,RWKV采取了类似的方法,但通过修改交互权重来简化它,使其可以转换成RNN。同时,也对RNN风格的递归组件进行了修改,以增加上下文长度,例如Recurrent Memory Transformer和Linear Recurrent Units,还提出了像S4(Gu等人,2022年)及其变体这样的状态空间模型(SSM)
  • 实验结论
    • RWKV利用线性注意机制、时间混合和token偏移等技术,捕捉和传播顺序信息,具有稳定梯度和较深层次的优势,具有高效处理顺序数据的能力。
    • RWKV模型能够在时间顺序模式下进行递归推理,与自注意力相比,在处理长序列时具有恒定的速度和内存占用。设计结合了注意力机制和RNN更新方式,通过时间相关的softmax运算和层归一化等技术确保梯度稳定性和学习能力。
    • 模型采用自定义CUDA内核、FFN与R门、小初始化嵌入和自定义初始化等附加优化,提高了计算效率和训练稳定性。

经典注意力机制:
Attn ⁡ ( Q , K , V ) t = ∑ i = 1 T e q t ⊤ k i v i ∑ i = 1 T e q t ⊤ k i . \operatorname{Attn}(Q,K,V)_t=\large\frac{\sum_{i=1}^Te^{q_t^\top k_i}v_i}{\sum_{i=1}^Te^{q_t^\top k_i}}. Attn(Q,K,V)t=i=1Teqtkii=1Teqtkivi.

AFT把注意力机制改成:
Attn ⁡ + ( W , K , V ) t = ∑ i = 1 t e w t , i + k i v i ∑ i = 1 t e w t , i + k i , \operatorname{Attn}^+(W,K,V)_t=\large\frac{\sum_{i=1}^te^{w_{t,i}+k_i}v_i}{\sum_{i=1}^te^{w_{t,i}+k_i}}, Attn+(W,K,V)t=i=1tewt,i+kii=1tewt,i+kivi,

{ w t , i } ∈ R T × T \{w_{t,i}\}\in R^{T\times T} {wt,i}RT×T是学习到的位置偏移,矩阵中每个元素是一个标量

RWKV

受AFT的启发,我们让RWKV中的每个 w t , i w_t, i wt,i成为一个channel-wise time decay vector,乘以从当前时间向后追溯的相对位置: w t , i = − ( t − i ) w , w_{t,i}=-(t-i)w, wt,i=(ti)w, 维度为d,d是通道数
在这里插入图片描述

RWKV与其他模型的结构对比:

在这里插入图片描述
RWKV的模型结构
在这里插入图片描述
RWKV架构由一系列堆叠的残差块组成,每个残差块由一个时间混合和一个通道混合子块组成,具有递归结构
递归在RWKV中有两种表述方式:

  1. 作为当前输入和上一个时间步骤的输入之间的线性插值(我们称之为时间偏移混合或token偏移技术,如图3中的对角线所示)这可以针对输入embedding的每个线性投影(例如时间混合中的R、K、V,以及通道混合中的R、K)进行独立调整,并且作为时间依赖的WKV的更新,其公式化在方程式14中。 WKV计算与AFT(Zhai等人,2021年)类似,但现在W是一个通道-wise向量,乘以相对位置,而不是AFT中的成对矩阵。还引入了一个向量U,用于单独关注当前token,以弥补W可能出现的退化问题。
    在这里插入图片描述

在其中,WKV计算wkvt扮演了Transformer中Attn(Q, K, V)的角色,而不会产生二次成本,因为交互是在标量之间进行的。直观地说,随着时间t的增加,向量 o t o_t ot 依赖于一个较长的历史,由逐渐增加的项的总和来表示。对于目标位置t,RWKV在位置间隔 [ 1 , t ] [1,t] [1t]内执行加权求和,然后与接受度 σ ( r ) σ(r) σ(r) 相乘。因此,交互在给定时间步内是乘性的,而在不同时间步内是加性的
在这里插入图片描述

在这里插入图片描述
time-mixing的公式与模型示意图:
在这里插入图片描述
各个模型的复杂度对比:
在这里插入图片描述

Experiments

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Conclusions

RWKV是一种利用基于时间混合组件潜力的新型RNN模型。RWKV引入了几个关键策略,使其能够捕捉局部性和长程依赖,并解决当前架构的局限性:

  1. 通过标量公式将二次的QK注意力替换为线性成本
  2. 重新构造递归和顺序归纳偏置以实现有效的训练并行化和高效的推理
  3. 使用自定义初始化增强训练动态

我们在各种NLP任务上对所提出的架构进行了基准测试,显示出与SoTA相当的性能,同时减少了成本。进一步的实验涉及表达能力、可解释性和扩展性,展示了模型的能力,并揭示了RWKV与其他LLM之间的行为相似之处。

RWKV为在顺序数据中建模复杂关系提供了一个可扩展和高效的新途径。虽然已经提出了许多替代Transformer的方法,并声称具有类似的特点,但RWKV是首个用数百亿参数预训练模型来支持这些主张的研究

Limitations

尽管提出的RWKV模型在训练和推理期间展现出了有希望的效率,但也应该意识到并解决一些限制,以便在未来的研究中加以应对。首先,RWKV的线性注意力确实带来了显著的效率提升,但它也可能限制了模型在需要回忆极其详细信息的非常长上下文任务中的性能。这是因为相比标准Transformer的二次注意力维持的完整信息,RWKV通过单个向量表示在许多时间步上传递信息。换句话说,模型的循环结构本质上限制了它“回顾”之前的标记的能力,与传统的自注意机制相对立。虽然学习的时间衰减有助于防止信息丢失,但与完整的自注意力相比,它在机制上存在一定的限制。

这项工作的另一个限制是与标准Transformer模型相比,prompt engineering的重要性增加了。RWKV中使用的线性注意力机制限制了从prompt中传递到模型继续部分的信息。因此,精心设计的提示可能对模型在任务中表现良好至关重要

Remark

是个好工作,但是跟RetNet一样,个人对其超长距离建模能力保持怀疑,希望后续工作能增加到万级别tokens来证明一下模型的真正实力?

相关文章:

Raki的读paper小记:RWKV: Reinventing RNNs for the Transformer Era

Abstract&Introduction&Related Work 研究任务 基础模型架构已有方法和相关工作 RNN,CNN,Transformer稀疏注意力(Beltagy等人,2020年;Kitaev等人,2020年;Guo等人,2022年&am…...

PaddleOCR #PP-OCR常见异常扫雷

异常一:ModuleNotFoundError: No module named ‘tools.infer’ 实验案例: PaddleOCR #使用PaddleOCR进行光学字符识别(PP-OCR文本检测识别) 参考代码: 图片文本检测实验时,运行代码出现异常:M…...

Qt加载字体文件

本文记录如何使用 Qt 加载外部字体文件,并遍历字体名称和样式名称。 bool LoadFont(const QString& fontPath) {const int fontId QFontDatabase::addApplicationFont(fontPath);if (fontId -1) {return false;}// 遍历字体名和样式名 #if QT_VERSION > QT…...

3ds MAX绘制简单动画

建立一个长方体和茶壶: 在界面右下角点击时间配置: 这是动画制作的必要步骤 选择【自动】,接下来,我们只要在对应的帧改变窗口中图形的位置,就能自动记录该时刻的模样 这就意味着,我们通过电脑记录某几个…...

页面访问控制远程仓库

页面访问权限控制 什么是jwt身份认证 在前后端分离模式的开发中,服务器如何知道来访者的身份呢? 在登录后,服务器会响应给用户一个 令牌 (token)令牌中会包括该用户的id等唯一标识浏览器收到令牌后,自己…...

小程序 user agent stylesheet 覆盖了page下wxss背景色

如下图: login页面的page下的背景色,被:user agent stylesheet覆盖。 分析与解决: 1、user agent stylesheet是浏览器默认样式表,是浏览器默认样式。 2、不同浏览器的默认样式不同个,甚至同种浏览器不同版…...

Vue.js高阶学习和常用知识(二)

目录 1. Vue 实例2. 组件3. 指令4. 计算属性5. 监听器6. 生命周期钩子 Vue.js 是一个流行的 Web 前端框架,它由 Evan You 于 2014 年创建。Vue.js 的设计目标是简单、灵活和易于使用,同时具有高性能和可扩展性。 Vue.js 基于组件化的思想,将页…...

html实现蜂窝菜单

效果图 CSS样式 keyframes _fade-in_mkmxd_1 {0% {filter: blur(20px);opacity: 0}to {filter: none;opacity: 1} } keyframes _drop-in_mkmxd_1 {0% {transform: var(--transform) translateY(-100px) translateZ(400px)}to {transform: var(--transform)} } ._examples_mkmx…...

云原生训练营课程大纲

第一部分:Go 语****言基础 模块一:Go 语言特性 教学目标: 理解 Go 语言基本语法 理解 Go 语言常用数据类型 理解 Go 语言常用小技巧 深入理解 Go 语言的多线程编程 针对的用户痛点: 云原生从业者因为未熟练掌握 Go 语言&#…...

【Ajax】笔记-同源策略

同源策略(Same-Origin Policy),是浏览器的一种安全策略 同源(即url相同):协议、域名、端口号 必须完全相同。(请求是来自同一个服务) 跨域:违背了同源策略,即跨域。 ajax请求是遵循…...

Java使用FFmpeg实现mp4转m3u8

Java使用FFmpeg实现mp4转m3u8 前言FFmpegM3U8 一、需求及思路分析二、安装FFmpeg1.windows下安装FFmpeg2.linux下安装FFmpegUbuntuCentOS 三、代码实现1.引入依赖2.修改配置文件3.工具类4.Controlle调用5.Url转换MultipartFile的工具类 四、播放测试1.html2.nginx配置3.效果展示…...

【JavaEE初阶】Servlet (三)MessageWall

在我们之前博客中写到的留言墙页面,有很严重的问题:(留言墙博客) 如果刷新页面/关闭页面重开,之前输入的消息就不见了.如果一个机器上输入了数据,第二个机器上是看不到的. 针对以上问题,我们的解决思如如下: 让服务器来存储用户提交的数据,由服务器保存. 当有新的浏览器打开页…...

D. Make It Round

在Berlandia发生了通货膨胀,所以商店需要改变商品的价格。 商品n的当前价格已经给出。允许将该商品的价格提高k倍,1≤k≤m,k为整数。输出商品的最圆的可能的新价格。也就是在最后有最大数量的零的那个。 例如,数字481000比数字1…...

Python网站页面开发HTML总结

Python网站页面开发HTML总结 一、HTML基础语法 1.HTML是什么? ●HTML是HyperText Mark-up Language的首字母简写,即超文本标记语言。 ●HTML不是一种编程语言,而是一种标记语言。 ●超文本指的是超链接,标记指的是标签&#xf…...

[个人笔记] vCenter设置时区和NTP同步

VMware虚拟化 - 运维篇 第三章 vCenter设置时区和NTP同步 VMware虚拟化 - 运维篇系列文章回顾vCenter设置时区和NTP同步(附加)ESXi设置alias参考链接 系列文章回顾 第一章 vCenter给虚机添加RDM磁盘 第二章 vCenter回收活跃虚拟机的剩余可用空间 vCente…...

(原创)Flutter与Native通信的方式:EventChannel和BasicMessageChannel

前言 上一篇博客主要介绍了MethodChannel的使用方式 Flutter与Native通信的方式:MethodChannel 这篇博客接着讲另外两种通信方式 EventChannel和BasicMessageChannel EventChannel用于从native向flutter发送通知事件,例如flutter通过其监听Android的重…...

【解决】el-tree报Cannot read property ‘getCheckedKeys‘ of undefined

如果你报错 Cannot read property getCheckedKeys of undefined 或者 Cannot read property getCheckedNodes of undefined 只要在你的在<el-tree>上加个这个&#xff0c;就可以了 ref"tree"...

车载软件架构 —— 信息安全与基础软件

车载软件架构 —— 信息安全与基础软件 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕…...

C\C++内存管理

目录 1.C/C内存分布2.C语言中动态内存管理方式3.C中动态内存管理3.1new/delete内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数4.2重载operator new与operator delete&#xff08;了解&#xff09; 5.new和delete的实现原理5.1内置类型5.2 自定义类…...

会议室预约系统-检验是否被预约核心SQL

会议室预约时&#xff0c;判断能否被预约&#xff0c;即查询是否已经有预约记录&#xff0c;存在不能被预约。 s,e&#xff1b;表示已经预约的开始结束时间&#xff1b; ns,ne&#xff0c;表示表单提交的预约时间&#xff1b; 只需要(ns,ne)与(s,e)区间没有交集&#xff0c;可…...

终极崩坏星穹铁道自动化指南:3分钟掌握解放双手的智能游戏伴侣

终极崩坏星穹铁道自动化指南&#xff1a;3分钟掌握解放双手的智能游戏伴侣 【免费下载链接】StarRailAssistant 崩坏&#xff1a;星穹铁道自动化 | 崩坏&#xff1a;星穹铁道自动锄大地 | 崩坏&#xff1a;星穹铁道锄大地 | 自动锄大地 | 基于模拟按键 项目地址: https://git…...

《Java 100 天进阶之路》第32篇:Java常用工具类(Objects、Collections、Arrays深入)

第32篇&#xff1a;Java常用工具类&#xff08;Objects、Collections、Arrays深入&#xff09; &#x1f4cc; 系列导航&#xff1a;《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇&#xff1a;第31篇&#xff1a;Java数组详解 | ➡️ 下一篇&#xff1a;第33篇&#xff1a;Ja…...

Python爬虫避坑手册:10年爬取经验总结,看完再也不会被封IP

做爬虫这么多年,我见过太多新手从入门到放弃,不是因为学不会Python,而是被各种反爬机制虐得怀疑人生。 我刚入行的时候,写的第一个爬虫是爬某电商网站的商品价格。当时觉得爬虫不就是发个请求,解析个HTML吗?结果代码刚跑了5分钟,IP就被封了。我当时还傻乎乎地重启路由器…...

高端展馆数字交互设计,极简科技风多人同屏答题系统

随着城市文旅不断升级&#xff0c;高端展厅、城市规划馆、艺术展馆、文旅综合体逐步走向精细化、品质化、智能化。相较于普通大众展馆&#xff0c;高端场馆对空间美学、设备质感、交互体验、视觉呈现有着严苛标准。在数字化改造过程中&#xff0c;很多场馆容易踩入设计误区&…...

成本优化秘籍:如何通过模型路由(Model Routing)降低 Agent 推理成本?

成本优化秘籍:如何通过模型路由(Model Routing)降低 Agent 推理成本? 1. 引入与连接:推理成本的"隐形黑洞"与破解之道 1.1 引人入胜的开场:一个真实的成本困境 让我们从一个真实故事开始。今年早些时候,我与一家知名科技创业公司的CTO进行了一次深入交流。…...

高光谱成像与机器学习:LDA+SVM/KNN实现蜂蜜植物源精准鉴别

1. 项目概述&#xff1a;当高光谱成像遇上机器学习&#xff0c;如何为蜂蜜“验明正身”&#xff1f;在食品行业&#xff0c;尤其是像蜂蜜这样的高价值农产品领域&#xff0c;“真实性”一直是消费者和生产者共同关注的焦点。一瓶标着“新西兰麦卢卡”或“东北椴树蜜”的蜂蜜&am…...

Keil µVision许可证失效问题解析与解决方案

1. 问题现象与背景解析最近遇到一个挺有意思的案例&#xff1a;一位工程师在安装了Windows Media Center后&#xff0c;突然发现Keil Vision IDE变成了评估版模式。这种情况其实在嵌入式开发领域并不罕见&#xff0c;但很多开发者第一次遇到时都会感到困惑。本质上&#xff0c;…...

Apache Fesod:Java开发者处理海量Excel数据的终极解决方案

Apache Fesod&#xff1a;Java开发者处理海量Excel数据的终极解决方案 【免费下载链接】fesod Fast. Easy. Done. Processing spreadsheets without worrying about large files causing OOM. 项目地址: https://gitcode.com/gh_mirrors/fast/fesod 在处理海量Excel数据…...

DYNAMIX:基于强化学习的动态批处理优化,破解分布式训练效率与精度困局

1. 项目概述与核心痛点在分布式机器学习&#xff08;DML&#xff09;的实际部署中&#xff0c;有一个参数总是让工程师们又爱又恨&#xff0c;那就是批处理大小&#xff08;Batch Size&#xff09;。它不像学习率那样有丰富的理论指导&#xff0c;也不像网络结构那样有清晰的演…...

2026财务分析师新人如何快速提升能力:从“账房先生”到“战略参谋”的跃迁之路

2026年的财务领域&#xff0c;规则已经彻底改写。传统的“记账、算账、报账”正在被RPA和AI快速替代&#xff0c;企业真正渴求的&#xff0c;不再是只会做账的“会计”&#xff0c;而是能够深入业务、洞察数据、驱动决策的财务分析师。这不仅是职业进阶的必然要求&#xff0c;更…...