RWKV 常见问题
下一个 RWKV 模型什么时候发布?
RWKV 没有固定的发布计划,也不承诺何时发布下一个模型。一般来说,负责 RWKV 项目的 BlinkDL(Bo) 会在模型准备好的第一时间发布新模型。
所以下一个版本的发布时间可能是接下来的几天,或者接下来的几个月。
通常情况下,当我们发布最新版本的模型时,下一个版本模型的训练/准备过程已经在进行中。
怎样读懂 RWKV 模型文件名?
模型名通常会同时记录架构、数据版本、参数量、日期和上下文长度。以 rwkv7-g1j-2.9b-20260831-ctx16384.pth 为例:
| 字段 | 含义 |
|---|---|
rwkv7 | RWKV-7 架构 |
g1j | G1 系列的 Data Version(数据版本);G1x 表示训练超过 1 个 epoch,后缀表示继续加入更多、更新且质量更高的数据 |
2.9b | 约 29 亿参数 |
20260831 | 检查点日期 |
ctx16384 | 训练或发布时标注的上下文长度 |
.pth | PyTorch 权重文件;RWKV pip 和 Albatross 都使用这种模型格式 |
RWKV-7 G1 模型卡将 Gxx 定义为 Data Version。文件名不会列出具体数据组成,选择模型时还应结合参数量、日期和模型卡说明。
如果想深入了解 RWKV 的训练数据集,请前往RWKV 的训练数据集查看。
为什么 RWKV 在模型名称中列出了上下文长度(4k / 8k)?
虽然 RWKV 在技术层面上具有 “无限”的上下文长度,但它需要一定上下文长度的训练数据,才能有效执行任务。
列出的模型 “上下文长度” 是模型已经训练过的 “有效上下文长度”。对超过这个长度的内容,模型的性能预计会小幅下降。
如果你有训练数据,是可以训练/微调 RWKV 模型到更长的上下文长度的。
RWKV 根据什么开源许可证发布?
RWKV 及其模型根据 Apache 2.0 开源许可证发布,这意味着它适用于商业和非商业用途。
RWKV 使用什么分词器(Tokenizer)?
RWKV-World 系列模型使用 rwkv_vocab_v20230424 分词器,具体的文件是 rwkv_vocab_v20230424.txt,可以在 RWKV-主库的 RWKV-v5/tokenizer
目录中找到 。
rwkv_vocab_v20230424 分词器合并了以下分词器的词汇表,并手动为非欧洲语言选择了 token:
分词器通过 Trie(前缀树)实现,在提高速度的同时保持简洁性。编码过程是通过从左到右匹配词汇表中最长的元素与输入字符串进行的。
分词器的词汇量大小为 V = 65536,编号从 0 到 65535,token 按其在字节中的长度排列。
以下是简要概述:
-
token 0:表示文本文档之间的边界,称为
<EOS>或<SOS>。此 token 不编码任何特定内容,仅用于文档分隔。 -
token 1-256:由字节编码组成(tokenk 编码字节 k−1),其中 token 1-128 对应于标准 ASCII 字符。
-
token 257-65529:至少具有 2 个 UTF-8 字节长度的 token,包括单词、前缀和后缀、带重音的字母、汉字、韩文、平假名、片假名和表情符号。例如,汉字被分配在 token 10250 至 18493 之间。
-
token 65530-65535:预留 token,供将来使用。
RWKV 支持 “训练并行化” 吗?为什么 RetNet 论文声称不支持?
RWKV 通过 deepspeed 支持跨多个 GPU 的 “训练并行化”。在许多情况下,在类似参数计数的训练速度上超过了 Transformer。
这与 huggingface 或其他论文采用的定义一致。
RetNet 将 “训练并行化” 定义为在不等待前一个 token 训练完成的情况下对后一个 token 进行训练的能力,RWKV 在这个定义上失败了。
实际上,RetNet 论文作者已经承认 RWKV 支持 “训练并行化”,他们分别承认 RWKV 在跨多个 GPU 的高吞吐量方面没有问题(根据实际测试)。