关于 RWKV
RWKV 简介

RWKV(读作 RWaKuV)是一种具有 GPT 级大型语言模型(LLM)性能的 RNN,也可以像 GPT Transformer 一样直接训练(可并行化)。

RWKV 结合了 RNN 和 Transformer 的最佳特性:出色的性能、恒定的显存占用、恒定的推理生成速度、"无限" ctxlen 和免费的句嵌入,而且 100% 不含自注意力机制。

RWKV 项目最初由彭博(Bo Peng ,BlinkDL)提出,随着项目被外界关注,RWKV 项目逐渐发展成一个开源社区。

2023 年 9 月 20 日,RWKV 开源项目正式加入 Linux 开源基金会。如今的 RWKV 项目是一个开源的非盈利组织,隶属于 Linux 基金会,部分算力曾由赞助商支持。

RWKV 架构和论文

RWKV 模型架构有 RWKV-4、RWKV-5(代号 Eagle)、RWKV-6(代号 Finch) 三个正式版本,更早以前的 RWKV 1/2/3 为实验版本。

RWKV-4 是 RWKV 模型的首个正式版本,论文由 RWKV 作者彭博和 RWKV 社区共同完成,初次发表于 2023 年 5 月 22 日。同年 10 月,RWKV-4 架构论文被顶级会议 EMNLP 2023 (opens in a new tab) 收录。

RWKV 5/6 两个架构在 RWKV-4 架构的基础上进行了若干改进。因此,这两个架构在同一篇论文中发布。

ℹ️

有关 RWKV5/6 论文的解读,可以参考此文章 (opens in a new tab)

RWKV-6 架构图如下:

Rwkv-6_architecture

ℹ️

RWKV-6 架构图由 RWKV 社区开发者按照 CC-BY-SA 许可发布,可以在 rwkv-wiki.fandom (opens in a new tab) 上找到原始版本。

RWKV 模型的版本状态

从 RWKV-4 架构开始,RWKV 在每个版本都提供了多种尺寸的开源模型。

截至 2024 年 7 月,RWKV-4、RWKV-5 模型的生命周期已结束。推荐使用最新版本的 RWKV-6 模型,得益于最新的架构设计,RWKV-6 模型在所有任务上的表现都更好。

版本RWKV-V4RWKV-v5-EagleRWKV-v6-Finch
论文🎓论文已发布 (opens in a new tab)🎓与 RWKV-6 架构同一篇论文🎓论文已发布 (opens in a new tab)
总体状态⚠ 生命周期已结束⚠ 生命周期已结束✨ 稳定版本
0.4B 模型✅ 已发布✅ 已发布❌ 无计划
1.5B 模型✅ 已发布✅ 已发布已发布 (opens in a new tab)
3B 模型✅ 已发布✅ 已发布已发布 (opens in a new tab)
7B 模型✅ 已发布✅ 已发布已发布 (opens in a new tab)
14B 模型✅ 已发布❌ 无计划已发布 (opens in a new tab)
MoE 模型❌ 无计划❌ 无计划计划中

我应该使用哪些 RWKV 模型?

⚠️

由于老旧架构导致的性能问题, RWKV-5、RWKV-4 全系列(Raven / World / Pile ...)和更早的 RWKV 版本均已结束生命周期,现有模型仅作为存档。

请使用 RWKV-6 系列模型,RWKV-6 模型基于最新的 RWKV 架构和最大的数据集版本,因此性能更强。

对于大多数用例,你应该使用最新的 RWKV-6-World 14B 模型。如果你的硬件配置不足以使用 14B 参数模型,可以考虑使用 RWKV-6-World 7B 模型。

可以查看本地部署 RWKV 模型的硬件性能需求 (opens in a new tab),以确认使用哪一款 RWKV 模型。

RWKV 与 Transformer 模型的差异

优势

  • 运行和训练时资源使用更低(VRAM、CPU、GPU 等)。
  • 与较大上下文的 Transformer 相比,计算需求低 10 倍到 100 倍
  • 支持以线性方式扩展到任何上下文长度(Transformer 以二次方扩展)。
  • 在答案质量和泛化能力方面的表现与 Transformer 架构一样好。
  • RWKV 模型的训练数据包括英文以外的其他语言(例如中文、日文等),多语言能力比大多数现有的开源模型要好。

不足

  • RWKV 基底模型对提示词(prompt)的格式非常敏感,你可能需要了解如何提示 RWKV 模型。
  • 出于架构设计,RWKV 模型在需要回顾的任务上较弱,因此需要相应地对提示词进行重新排序。
    • (例如,不能对 RWKV 模型说“对于上面的文档,执行某个任务”,因为这种提示词需要模型进行回顾。与之相反,我们需要在给 RWKV 的提示词中说“对于下面的文档,执行某个任务”)。

RWKV 社区的基本术语

概念描述
RWKV模型架构本身,训练代码可于此处 (opens in a new tab)获取。
ChatRWKVRWKV 的官方聊天机器人(类似 ChatGPT,但基于 RWKV),代码可于此处 (opens in a new tab)获取。
RWKV-4/5/6RWKV 的不同架构版本。注意,只推荐使用 RWKV-6 系列模型。
RWKV World使用全球语言训练的基底 RWKV 模型,这类模型涵盖了更广泛、更多样化的数据集,包括 100 多种语言的训练数据,以及部分指令训练。
RavenRWKV-4 基础模型的官方微调版,包含指令训练。但由于 RWKV-4 系列已停止更新,不建议继续使用。
RWKV ABC/MIDI基于 ABC/MIDI 格式的 RWKV 音乐模型,推荐使用 RWKV-5 / 6 系列。
RWKV CHNtuned / one-state-chat / role_play / novel ...RWKV 社区提供的微调模型,针对特定任务或数据类型优化。请优先考虑使用 RWKV-6 系列的微调模型。

RWKV 社区成员如何交流?

我们拥有 Discord 频道 (opens in a new tab)QQ 频道 (opens in a new tab) ,同时也有 QQ 交流群:

  • RWKV 技术研发群:325154699
  • RWKV 交流群:224287095
  • ChatRWKV水和机器人群:597996773

以下是一些由 RWKV 开源社区成员或爱好者组建的 QQ 群,用于 RWKV 相关项目的讨论:

  • RWKV第三方微调/训练/lora综合群:439087067
  • AI00_Server for RWKV 群:30920262
  • rwkv runner 懒人包交流群:818930736

RWKV 模型的命名规则

RWKV 模型通常有两种命名规则:

  • RWKV-x060-World-3B-v2.1-20240208-ctx4096.pth
  • RWKV-5-World-1B5-v2-20231113-ctx4096.pth

让我们逐一解析每个字段的含义:

字段含义
RWKV模型名称
x060 / 5RWKV 模型的架构,推荐使用 RWKV-6 模型
World模型类型,World 指使用全球语言训练的 RWKV 模型,因此支持多语言任务
3B / 1B5模型的参数规模,"B"代表"Billions"(十亿)
v2 / v2.1模型的训练集版本,v2 ≈ 1.1 T , v2.1 ≈ 2.5T ,v3 ≈ 5.5T
20240208 / 20231113模型的发布日期
ctx4096预训练的上下文长度

谁曾赞助了 RWKV 的计算?

RWKV 作为一个开源项目,此前接受了 Stability AI (opens in a new tab)EleutherAI (opens in a new tab) 和其他贡献者提供的大量 GPU 资源和研究支持。


此外,我们还要感谢

同时,我们也感谢在较小的实验、微调和各种类型的 RWKV 模型上努力的贡献者们,特别是对于那些因运行失败而从未公开发布的 RWKV 模型。