AI

ChatRWKV:挑战 Transformer 的开源 100% RNN 语言模型

ChatRWKV 是一个由 RWKV 驱动的开源聊天 AI,RWKV 是一种 100% RNN 语言模型,在推理速度和内存方面可与 Transformer 媲美。

ChatRWKV:挑战 Transformer 的开源 100% RNN 语言模型

多年来,AI 社区一直处在一个广为接受的假设之下:Transformer 架构——在里程碑式的「Attention Is All You Need」论文中首次提出——是构建大型语言模型的唯一可行途径。递归神经网络(RNN)被认为已经过时——训练太慢、太容易出现梯度消失、无法在规模上匹配 Transformer 的质量。RWKV 打破了这一假设。

由开发者 Bo Peng(昵称 BlinkDL)创建,RWKV 是一种 100% RNN 架构,在达到 Transformer 可比质量的同时,提供快得多的推理速度和更低的内存消耗。ChatRWKV 是该模型的聊天导向界面,提供可在消费级硬件上运行的开源 ChatGPT 替代方案。

该项目代表了开源 AI 领域中最具创新性的架构进展之一——重新构想递归架构以适应现代时代,证明了 Transformer 并非唯一的发展道路。


RWKV 架构的革命性之处在哪里?

RWKV 的核心创新在于其线性注意力机制,它将 Transformer 的二次自注意力重新构想为递归计算。RWKV 这个名称代表了模型中的四种基本操作:Receptance(R)、Weight(W)、Key(K)和 Value(V)。

面向TransformerRWKV (RNN)
注意力复杂度O(n^2) 二次O(n) 线性
推理时内存KV 缓存随序列增长恒定状态向量
训练并行化完整序列并行需要序列性重构
上下文窗口限制依架构而定,有限理论上无限
每 Token 生成速度随上下文长度变慢恒定速度

这张表凸显了决定性的优势:当 Transformer 的生成时间随着对话变长而增加时,RWKV 无论之前说了多少内容,都能保持恒定的速度和内存使用量。


RWKV 如何达到 Transformer 质量的结果?

秘诀在于Time-Mix 和 Channel-Mix 层,它们取代了 Transformer 中传统的多头注意力和前馈网络。

Time-Mix 层使用可学习的衰减机制计算随时间变化的注意力,有效地衡量过去 Token 的重要性,而无需显式存储它们。这在数学上等同于一种线性注意力形式,但以纯 RNN 实现,使其每层每个 Token 的内存复杂度为 O(1)。

Channel-Mix 处理每个时间步内的交互,类似于 Transformer 的前馈网络,但带有额外的递归连接。


RWKV 模型家族在各版本之间如何比较?

RWKV 项目经历了多个主要版本的演进,每个版本都带来了实质性的改进。

模型版本参数量上下文长度关键创新
RWKV-4169M - 14B2048 tokens初始生产版本
RWKV-5 (Eagle)1.5B - 7B4096 tokens改进的状态跟踪
RWKV-6 (Finch)1.5B - 14B8192 tokens数据相关衰减、2D GC

RWKV-6 引入了数据相关的时间衰减,允许模型为不同的 Token 和不同的通道学习不同的遗忘率。这是一项突破,使 RWKV 的长距离依赖处理更接近——在某些任务上甚至超越了——Transformer 的能力。


实际表现如何?

实际基准测试证明 RWKV 不仅是理论上的新奇事物——它确实能提供有竞争力的结果。

基准RWKV-6 14BLLaMA-2 13B性能差异
MMLU (5-shot)55.8%54.8%+1.0%
HellaSwag (10-shot)74.5%76.6%-2.1%
ARC-C (25-shot)52.1%53.2%-1.1%
PIQA (0-shot)80.5%80.1%+0.4%
生成速度 (7B)~85 tok/s~45 tok/s+89%

生成速度的优势尤其突出——RWKV 的文本生成速度几乎是可比较 Transformer 的两倍,且延迟不受序列长度影响,保持一致性。


如何开始使用 ChatRWKV?

开始使用 ChatRWKV 非常简单,有多种部署选项可用。

# 安装 RWKV pip 包
pip install rwkv

# 运行聊天界面
python chat.py --model path/to/RWKV-6-7B.pth

对于偏好更精致体验的用户,有多种社区界面提供网页 UI,包括 RWKV-Runner,它在 Windows、macOS 和 Linux 上提供一键安装。

from rwkv.model import RWKV
from rwkv.utils import PIPELINE, PIPELINE_ARGS

model = RWKV(model="RWKV-6-7B.pth", strategy="cuda fp16")
pipeline = PIPELINE(model, "rwkv_vocab_v20230424")

轻量级的部署足迹使 ChatRWKV 成为自托管 AI 助手、边缘 AI 应用和注重隐私部署(数据永不离开用户机器)的绝佳选择。


RWKV 和递归 LLM 的未来是什么?

RWKV 的成功激发了人们对语言模型递归架构的重新关注。随后出现了几个后续项目,包括 Mamba(结构化状态空间模型)、xLSTM 和 Griffin,每个都探索了次二次语言建模的不同方法。

目前正在开发中的 RWKV-7,承诺进一步提升训练效率和长上下文处理能力,可能扩展到 64K+ Token 上下文,且无额外内存开销。


常见问题

什么是 ChatRWKV? ChatRWKV 是一个由 RWKV 语言模型架构驱动的开源聊天 AI 系统。RWKV 是一种 100% RNN(递归神经网络)模型,结合了 Transformer 的高效训练与 RNN 快速、恒定内存的推理特性。它由开发者 Bo Peng(BlinkDL)创建,并已发展成一个社区驱动的生态系统。

RWKV 与基于 Transformer 的 LLM 有何不同? 与使用二次自注意力机制的 Transformer 不同,RWKV 使用基于新型 Time-Mix 和 Channel-Mix 公式的线性注意力机制。这使其具有 O(n) 的推理复杂度而不是 O(n^2),意味着在长序列上内存使用量和生成速度都大幅优化。RWKV 是第一个在规模上达到 Transformer 质量的 100% RNN 模型。

有哪些可用的 RWKV 模型大小? RWKV 模型系列从小型的 RWKV-4 169M 到前沿规模的 RWKV-6 14B,中间包括 430M、1.5B、3B 和 7B 等多个尺寸。RWKV-6 架构引入了比早期版本显著的改进,包括增强的状态跟踪和更稳定的训练。

ChatRWKV 适合生产使用吗? 是的,ChatRWKV 在许多用例上已达到生产就绪状态。其恒定内存推理特性使其特别适合部署在边缘设备、移动平台和 GPU 内存有限的环境中。模型的快速生成速度也使其成为实时聊天应用的理想选择。

如何运行 ChatRWKV? ChatRWKV 可以使用提供的 Python 脚本在本地运行,通过 RWKV pip 包安装,或通过各种社区建立的界面包括网页 UI、Discord 机器人和移动应用来运行。它对硬件要求不高——即使是 7B 模型也能在 8GB VRAM 的消费级 GPU 上运行。


延伸阅读

TAG
CATEGORIES