关于 RWKV
如何体验 RWKV

以下内容可指引你体验 RWKV 模型(在线服务或本地部署):

在体验 RWKV 模型之前,推荐阅读以下两个章节:

RWKV 模型在线 DEMO

如果你只是想简单尝试一下 RWKV 模型,可以尝试由 RWKV 官方部署在各大模型平台的演示 Demo:

在线 DEMO 视频教程


ℹ️

高画质视频请跳转到 B 站 (opens in a new tab)观看。

Hugging Face(续写模式)

ModelScope(续写模式)

⚠️

上述公共 Demo 只能使用续写模式,不支持直接对话。

如果你在公共 Demo 中体验 RWKV 模型,建议按 RWKV 的两种标准格式输入 prompts:

User: 请将下列瑞典语 hur l?ng tid tog det att bygga twin towers 翻译成中文
 
Assistant:
Instruction: 请将下列瑞典语翻译成中文
 
Input: hur l?ng tid tog det att bygga twin towers
 
Response:

对于 RWKV-7 G1 系列推理模型,可以在 QA prompt 中添加 <think> 标签开启模型的推理过程:

User: simulate SpaceX mars landing using python
 
Assistant: <think

Hugging Face(对话模式)

我们也提供了 RWKV-7 G1 系列推理模型的在线对话 Demo:

可在此 Demo 体验已完成训练的 RWKV-7 G1 0.1B 模型,也可以切换到其他正在训练中的 G1 模型,如训练中的 G1 1.5B/2.9B 模型。

chat-demo

ℹ️

这个精美的 RWKV 对话界面由 RWKV 社区成员 @Leon (opens in a new tab) 开源,仓库地址:web-rwkv-realweb (opens in a new tab)

RWKV WebGPU Demo

基于 web-rwkv (opens in a new tab)RWKV WebGPU Demo (opens in a new tab) 由社区开发。

无需下载任何应用,RWKV WebGPU Demo 在浏览器中本地运行 RWKV-7 模型,支持聊天解 15 谜题音乐作曲,以及可视化查看 state 变化等功能!

加载模型后,RWKV 模型将在浏览器中离线运行,不需要任何服务器通信。

对话功能

在 chat 界面选择一个 RWKV-7-World 模型(0.1B 或 0.4B),点击 Load Model 按钮,即可下载并运行模型进行对话。

也可以从本地目录拖动一个 RWKV-7-World 模型(.st 格式)到灰框内运行,省略下载的过程。

WebGPU Demo 聊天功能

解 15 谜题

ℹ️

15 谜题(也叫数字推盘游戏或 15 数码)是一个经典的滑块益智游戏,玩家需要在一个 4x4 的方格中放置 1-15 数字并留一个空格,然后通过滑动数字将数字按顺序排列。

在 Demo 的 15 puzzle 界面点击 New Game 按钮,可以设置一局全新的 15 谜题。

点击 start 按钮,WebGPU Demo 会运行 RWKV-puzzle15 模型自动解开当前的 15 谜题,左侧则显示模型的 CoT 推理过程。

web-rwkv-15-pizzle-demo

作曲功能

在 Demo 的 Music 界面,可以驱动 RWKV ABC 模型进行作曲。操作步骤:

  1. 点击 Load Model 按钮下载作曲模型
  2. 点击 prompt下拉框选择一个 ABC 格式的 prompt
  3. 点击 Generate Music 按钮,开始作曲

web-rwkv-musci-demo

State 可视化

在 Demo 的 State Replay 界面,可以查看 RWKV 作为 RNN 模型的隐藏状态演变

ℹ️

State Replay 功能需要提前在 chat 界面启动一个 RWKV 模型。

下图是对 RWKV-7-World-0.1B 模型输入 “你好” 后,模型的隐藏状态演化。

RWKV-7-World-0.1B 的设计是 L12-D768,所以我们可以在 State Replay 中查看模型 12 层的状态演化,每层按照 64×6464×64  维度(一个 head)划分为 12 个可视化小方格。

小方格的颜色解释:

  • 深蓝色:较低值或接近负数的数值
  • 黄色:较高值或接近正数的数值
  • 灰色或黑色:数值接近 0

web-rwkv-state-replay-demo

本地部署 RWKV 模型

如果你希望在自己的设备上本地部署并使用 RWKV 模型,建议采用以下几种工具:

RWKV Runner

RWKV Runner 是 RWKV 模型的管理和启动工具,由 RWKV 开源社区成员 josStorer 开发,它本身也是一个开源软件,且体积仅 10MB 左右(不含依赖项)。

用户可使用 RWKV Runner 轻松运行本地 RWKV 模型,体验各类 AI 功能,包括但不限于聊天、写作、MIDI/ABC 作曲交互等。

RWKV Runner 的具体用法可以参考 RWKV Runner 使用教程 (opens in a new tab)

AI00 RWKV Server

Ai00 Server 是基于 web-rwkv 推理引擎的 RWKV 语言模型推理 API 服务器。它本身也是一个基于 MIT 协议的开源软件,由 RWKV 开源社区成员 @cryscan 和@顾真牛牵头成立的 Ai00-x 开发组开发。

Ai00 Server 支持 Vulkan 作为推理后端,支持 Vulkan 并行和并发批量推理,可以在所有支持 Vulkan 的 GPU 上运行。事实上, Ai00 Server 支持大部分 NVIDIA、AMD、Intel 的显卡(包括集成显卡)。

在高兼容性的同时,Ai00 Server 又不需要笨重的 pytorch 、 CUDA 和其他运行时环境。它结构紧凑,开箱即用,且支持 INT8/NF4 量化,可以在绝大部分的个人电脑上高速运行。

AI00 的具体用法可以参考 Ai00 使用教程 (opens in a new tab)

ChatRWKV

ChatRWKV 是 RWKV 官方的聊天机器人项目,但无图形化界面。你可能需要一定的命令行知识才能使用 ChatRWKV。

ChatRWKV 仓库地址 (opens in a new tab)

本地部署 RWKV 模型的性能需求

推荐使用 FP16 精度在本地部署并推理 RWKV 模型。当你的显存和内存不足时,可以使用 INT8 或 NF4 等量化方法运行 RWKV 模型,降低显存和内存需求。

ℹ️

从回答质量来说,同参数的模型 FP16 回答质量最好,INT8 与 FP16 质量相当,NF4 回答质量相比 INT8 明显降低。

模型的参数比量化更重要,比如 7B 模型 + INT8 量化,生成效果比 3B 模型 + FP16 更好。

以下是本地部署并运行 RWKV 模型的显存需求和生成速度:

以下是不同推理后端和对应量化方式(默认量化所有层)的显存/内存需求:

ℹ️

测试环境:

  • CPU :i7-10870H
  • GPU: RTX 3080 Laptop ,16G 显存
  • 内存:32G
推理后端1B6 模型3B 模型7B 模型14B 模型
CPU-FP326.6G内存12G内存21G内存OOM(不建议使用)
rwkv.cpp-FP163.5G内存7.6G内存15.7G内存30G(内存)
rwkv.cpp-Q5_12G内存3.7G内存7.2G内存12.4G(内存)
CUDA-FP163.2G显存6.2G显存14.3G显存约28.5G显存
CUDA-INT81.9G显存3.4G显存7.7G显存15G显存
webgpu-FP163.2G显存6.5G显存14.4G显存约29G显存
webgpu-INT82G显存4.4G显存8.2G显存16G显存(量化41层,60层约14.8G)
webgpu-NF41.3G显存2.6G显存5.2G显存15.1G显存(量化41层,60层约10.4G)
webgpu(python)-FP163G显存6.3G显存14G显存约28G显存
webgpu(python)-INT81.9G显存4.2G显存7.7G显存15G显存(量化41层)
webgpu(python)-NF41.2G显存2.5G显存4.8G显存14.3G显存(量化41层)
ℹ️

以上参数仅作为 RWKV 端侧推理的入门性能参考,随着量化层数等配置项的变化和显卡架构的新旧程度,模型的性能表现可能会改变。