以下内容可指引你体验 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 模型。
这个精美的 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
格式)到灰框内运行,省略下载的过程。
解 15 谜题
15 谜题(也叫数字推盘游戏或 15 数码)是一个经典的滑块益智游戏,玩家需要在一个 4x4 的方格中放置 1-15 数字并留一个空格,然后通过滑动数字将数字按顺序排列。
在 Demo 的 15 puzzle 界面点击 New Game
按钮,可以设置一局全新的 15 谜题。
点击 start
按钮,WebGPU Demo 会运行 RWKV-puzzle15 模型自动解开当前的 15 谜题,左侧则显示模型的 CoT 推理过程。
作曲功能
在 Demo 的 Music 界面,可以驱动 RWKV ABC 模型进行作曲。操作步骤:
- 点击
Load Model
按钮下载作曲模型 - 点击
prompt
下拉框选择一个 ABC 格式的 prompt - 点击
Generate Music
按钮,开始作曲
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 层的状态演化,每层按照 维度(一个 head)划分为 12 个可视化小方格。
小方格的颜色解释:
- 深蓝色:较低值或接近负数的数值
- 黄色:较高值或接近正数的数值
- 灰色或黑色:数值接近 0
本地部署 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-FP32 | 6.6G内存 | 12G内存 | 21G内存 | OOM(不建议使用) |
rwkv.cpp-FP16 | 3.5G内存 | 7.6G内存 | 15.7G内存 | 30G(内存) |
rwkv.cpp-Q5_1 | 2G内存 | 3.7G内存 | 7.2G内存 | 12.4G(内存) |
CUDA-FP16 | 3.2G显存 | 6.2G显存 | 14.3G显存 | 约28.5G显存 |
CUDA-INT8 | 1.9G显存 | 3.4G显存 | 7.7G显存 | 15G显存 |
webgpu-FP16 | 3.2G显存 | 6.5G显存 | 14.4G显存 | 约29G显存 |
webgpu-INT8 | 2G显存 | 4.4G显存 | 8.2G显存 | 16G显存(量化41层,60层约14.8G) |
webgpu-NF4 | 1.3G显存 | 2.6G显存 | 5.2G显存 | 15.1G显存(量化41层,60层约10.4G) |
webgpu(python)-FP16 | 3G显存 | 6.3G显存 | 14G显存 | 约28G显存 |
webgpu(python)-INT8 | 1.9G显存 | 4.2G显存 | 7.7G显存 | 15G显存(量化41层) |
webgpu(python)-NF4 | 1.2G显存 | 2.5G显存 | 4.8G显存 | 14.3G显存(量化41层) |
- CUDA、CPU 来自 RWKV 官方 pip 包 (opens in a new tab)
- rwkv.cpp 来自 rwkv.cpp (opens in a new tab) 项目
- webgpu 来自 web-rwkv (opens in a new tab) 项目,一个基于 webgpu 的 Rust 推理框架
- webgpu(python) 来自 web-rwkv-py (opens in a new tab),web-rwkv 项目的 Python 版本
以上参数仅作为 RWKV 端侧推理的入门性能参考,随着量化层数等配置项的变化和显卡架构的新旧程度,模型的性能表现可能会改变。