更改

跳到导航 跳到搜索
删除342字节 、 2025年7月20日 (日) 11:10
无编辑摘要
第1行: 第1行: −
'''RWKV'''(Receptance Weighted Key Value)是一种创新性的语言模型架构,旨在'''结合 [[Transformer架构|Transformer]] 和 [[循环神经⽹络]](Recurrent Neural Network, RNN)的优势''',解决传统模型在推理效率和扩展性上的瓶颈。RWKV 的核心思想是将注意力机制中的 [[Key-Value]] <ref>Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.</ref>操作以时间步的方式分解,借助类 [[RNN]] 的顺序结构,实现 Transformer 水平的建模能力,同时显著降低计算复杂度和内存占用。与传统 Transformer 在每一步生成中都需要处理整个上下文不同,RWKV 模型以类似 RNN 的方式逐步处理序列,每一步的计算依赖于前一步的状态,因此在推理阶段具有常数时间和常数内存的优势。
+
'''RWKV'''(Receptance Weighted Key Value)是一种创新性的语言模型架构,旨在'''结合 [[Transformer架构|Transformer]] 和 [[循环神经⽹络]](Recurrent Neural Network, RNN)的优势''',解决传统模型在推理效率和扩展性上的瓶颈。RWKV 的核心思想是将注意力机制中的 Key-Value <ref>Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.</ref>操作以时间步的方式分解,借助类 RNN 的顺序结构,实现 Transformer 水平的建模能力,同时显著降低计算复杂度和内存占用。与传统 Transformer 在每一步生成中都需要处理整个上下文不同,RWKV 模型以类似 RNN 的方式逐步处理序列,每一步的计算依赖于前一步的状态,因此在推理阶段具有常数时间和常数内存的优势。
   −
RWKV 支持并行训练,兼容 Transformer 的预训练范式,但在推理过程中具备近乎 [[RNN]] 的低延迟特性,使其'''特别适合部署在资源受限设备上''',例如边缘计算设备或移动终端。RWKV 模型的设计还充分考虑了可扩展性,已发展出多个版本(如 RWKV-6、RWKV-7),在多个自然语言处理任务中展现出与主流 Transformer 模型相媲美的性能。由于其开源、轻量、高效的特性,RWKV 也正在成为一种受开发者社区关注的替代性语言模型架构。
+
RWKV 支持并行训练,兼容 Transformer 的预训练范式,但在推理过程中具备近乎 RNN 的低延迟特性,使其'''特别适合部署在资源受限设备上''',例如边缘计算设备或移动终端。RWKV 模型的设计还充分考虑了可扩展性,已发展出多个版本(如 RWKV-6、RWKV-7),在多个自然语言处理任务中展现出与主流 Transformer 模型相媲美的性能。由于其开源、轻量、高效的特性,RWKV 也正在成为一种受开发者社区关注的替代性语言模型架构。
 
----[[文件:RWKV-7 架构图.png|缩略图|替代=RWKV结构示意图|649x649像素|RWKV结构示意图<ref name=":0" />]]
 
----[[文件:RWKV-7 架构图.png|缩略图|替代=RWKV结构示意图|649x649像素|RWKV结构示意图<ref name=":0" />]]
   第8行: 第8行:  
=== RWKV: ===
 
=== RWKV: ===
   −
* 近年来,基于Transformer架构的大规模语言模型在自然语言处理领域取得了显著成功,但其自[[注意力机制]]存在内存和计算复杂度随序列长度平方级增长的问题,限制了其在长序列任务中的效率。同时,传统[[RNN]]虽然具有线性复杂度,但在训练并行性和长程依赖建模方面存在不足。在此背景下,RWKV架构(Receptance Weighted Key-Value)最初由彭博、BlinkDL提出,旨在结合Transformer的高效训练能力(可并行化)和[[RNN]]的推理效率。
+
* 近年来,基于Transformer架构的大规模语言模型在自然语言处理领域取得了显著成功,但其自[[注意力机制]]存在内存和计算复杂度随序列长度平方级增长的问题,限制了其在长序列任务中的效率。同时,传统RNN虽然具有线性复杂度,但在训练并行性和长程依赖建模方面存在不足。在此背景下,RWKV架构(Receptance Weighted Key-Value)最初由彭博、BlinkDL提出,旨在结合Transformer的高效训练能力(可并行化)和RNN的推理效率。
−
* 正式发布的最新版本是RWKV-7,⽬前RMKV-8仍处于实验阶段。RWKV-7 "Goose"作为该系列的最新进展,通过恒定内存占用和每token恒定推理时间的设计,解决了传统 [[Transformer架构|Transformer]] 的长序列处理瓶颈。
+
* 正式发布的最新版本是RWKV-7,⽬前RMKV-8仍处于实验阶段。RWKV-7 "Goose"作为该系列的最新进展,通过恒定内存占用和每token恒定推理时间的设计,解决了传统Transformer的长序列处理瓶颈。
 
* 2023 年 9 月 20 日,RWKV 开源项目正式加入 Linux 开源基金会。如今的 RWKV 项目是一个开源的非盈利组织,隶属于 Linux 基金会,部分算力曾由赞助商支持。
 
* 2023 年 9 月 20 日,RWKV 开源项目正式加入 Linux 开源基金会。如今的 RWKV 项目是一个开源的非盈利组织,隶属于 Linux 基金会,部分算力曾由赞助商支持。
   第19行: 第19行:     
=== 核心特点: ===
 
=== 核心特点: ===
−
RWKV 模型结合了 [[Transformer架构|Transformer]] 与 [[RNN]] 的优点,具备以下几个显著特性:
+
RWKV 模型结合了 Transformer 与 RNN 的优点,具备以下几个显著特性:
   −
*线性推理效率:RWKV 采用类 [[RNN]] 的时间递推结构,每一步仅依赖前一状态,推理时无需处理整个上下文,具备常数内存与线性时间复杂度,适合实时和资源受限场景,'''提高线性推理效率'''。
+
*线性推理效率:RWKV 采用类 RNN 的时间递推结构,每一步仅依赖前一状态,推理时无需处理整个上下文,具备常数内存与线性时间复杂度,适合实时和资源受限场景,'''提高线性推理效率'''。
 
*并行训练能力:尽管具有递归结构,RWKV 引入了 Token-Shift与 Time-Mix<ref name=":1">Peng B, Alcaide E, Anthony Q, et al. Rwkv: Reinventing rnns for the transformer era[J]. arXiv preprint arXiv:2305.13048, 2023.</ref> 等机制,使其训练过程可以像 Transformer 一样实现高度并行,显著提升训练效率。
 
*并行训练能力:尽管具有递归结构,RWKV 引入了 Token-Shift与 Time-Mix<ref name=":1">Peng B, Alcaide E, Anthony Q, et al. Rwkv: Reinventing rnns for the transformer era[J]. arXiv preprint arXiv:2305.13048, 2023.</ref> 等机制,使其训练过程可以像 Transformer 一样实现高度并行,显著提升训练效率。
 
*兼容 Transformer 的训练范式:RWKV 可无缝使用 Transformer 社区常见的预训练与微调方法(如语言建模、指令微调、LoRA 等),便于迁移与应用。
 
*兼容 Transformer 的训练范式:RWKV 可无缝使用 Transformer 社区常见的预训练与微调方法(如语言建模、指令微调、LoRA 等),便于迁移与应用。
第74行: 第74行:     
<math>\lambda</math>:时间衰减参数
 
<math>\lambda</math>:时间衰减参数
 +
 
'''作用:''' 融合当前时刻和上一个时刻的信息,引入时间动态权重。
 
'''作用:''' 融合当前时刻和上一个时刻的信息,引入时间动态权重。
    
TimeMix 模块通过对当前输入和上一时刻输入进行线性加权融合,并引入时间衰减因子,实现了模拟 Transformer 注意力中“历史上下文影响”的能力。这种设计既保证了 RWKV 在推理时能保持序列的因果性,又能在训练时支持并行计算,是 RWKV 能够兼顾效率与表现力的关键。
 
TimeMix 模块通过对当前输入和上一时刻输入进行线性加权融合,并引入时间衰减因子,实现了模拟 Transformer 注意力中“历史上下文影响”的能力。这种设计既保证了 RWKV 在推理时能保持序列的因果性,又能在训练时支持并行计算,是 RWKV 能够兼顾效率与表现力的关键。
−
<syntaxhighlight lang="python">
   
decay = exp(-exp(time_decay))
 
decay = exp(-exp(time_decay))
 
k = x_k * time_mix_k + x_k_prev * (1 - time_mix_k)
 
k = x_k * time_mix_k + x_k_prev * (1 - time_mix_k)
−
* '''数学公式形式''':
  −
:Decay定义:
  −
<math>\mathrm{decay} = e^{-e^{\mathrm{time\_decay}}}</math>
  −
  −
:k计算:
  −
<math>k = x_k \times \mathrm{time\_mix\_k} + x_k^{\mathrm{prev}} \times \left(1 - \mathrm{time\_mix\_k}\right)</math>
      
* '''ChannelMix'''
 
* '''ChannelMix'''
201

个编辑

导航菜单