RWKV

MiSS 微调教程

MiSS 微调是什么?

MiSS 微调(Matrix Shard Sharing)是一种新颖的参数高效微调方法(PEFT,Parameter-Efficient Fine-Tuning),该方法使用一个初始值为零的共享可训练矩阵 DD 来更新原始权重矩阵的各个分片。

MiSS 微调方法在不影响性能的前提下降低了复杂度,在性能、内存和效率之间实现了更优的平衡。

different-between-lora-MiSS.jpg


本文的 MiSS 微调方法来自 RWKV 社区微调项目 RWKV-PEFT

在开始 MiSS 微调之前,请确保你拥有一个 Linux 工作区,以及支持 CUDA 的 NVIDIA 显卡。

MiSS 微调案例

视频教程

高画质视频请跳转到 B 站观看。

MiSS 微调显存参考

RWKV MiSS 微调的显存(GPU VRAM)需求可参考下表:

模型参数bf16int8nf4
RWKV7-0.1B2.7GB GPU2.5GB GPU2.4GB GPU
RWKV7-0.4B3.1GB GPU2.9GB GPU2.7GB GPU
RWKV7-1.5B5.6GB GPU4.5GB GPU3.9GB GPU
RWKV7-2.9B8.8GB GPU6.7GB GPU5.7GB GPU
模型参数bf16int8nf4
RWKV-6-1.6B7.3GB GPU5.9GB GPU5.4GB GPU
RWKV-6-3B11.8GB GPU9.4GB GPU8.1GB GPU
RWKV-6-7B23.7GB GPU17.3GB GPU14.9GB GPU

上表的数据基于以下训练参数:

  • ctxlen=1024
  • micro_bsz=1
  • strategy=deepspeed_stage_1
  • peft_config='{"r":64}'

随着训练参数的变更,RWKV MiSS 微调所需显存会发生改变。

收集训练数据

你需要使用收集更适合训练 RWKV 的 binidx 数据,具体方法可参考准备微调数据集

配置训练环境

请参考RWKV 微调环境配置板块,配置 Conda 等训练环境。

克隆仓库并安装依赖

在 Linux 或 WSL 中,使用 git 命令克隆 RWKV-PEFT 仓库​:

git clone https://github.com/JL-er/RWKV-PEFT.git
# 如果 GitHub 无法链接,请使用以下国内仓库:
git clone https://gitee.com/rwkv-vibe/RWKV-PEFT.git

克隆完成后,使用 cd RWKV-PEFT 命令进入 RWKV-PEFT 目录。并运行以下命令,安装项目所需依赖:

pip install -r requirements.txt 

修改训练参数

使用任意文本编辑器(如 vscode)打开 RWKV-PEFT/scripts 目录下的 miss.sh 文件,可以修改训练参数,进而控制微调的训练过程和训练效果:

miss-sh-config

以下是一次 MiSS 微调的调参过程:

调整路径参数

miss.sh 文件前三行是文件路径参数:

  • load_model: 基底 RWKV 模型的路径
  • proj_dir:训练日志和训练得到的 MiSS 文件输出路径
  • data_file:训练数据集的路径,注意路径中不需要带 bin 和 idx 后缀,仅需文件名称。

调整 n_layer 和 n_embd 参数

不同参数的 RWKV 模型,训练时使用的 n_layer 和 n_embd 数值不一样

以下是 RWKV 模型参数对应的 n_layer/n_embd 值:

模型参数n_layern_embd
0.1B12768
0.4B241024
1.5B242048
3B322560
7B324096
14B614096

调整重要训练参数

参数描述
micro_bsz=1微批次大小,根据显存大小调整,微调时从 1 开始逐渐增大
epoch_save=5每隔多少个训练轮次保存一次 MiSS 文件,注意存储空间是否充足
epoch_steps=1200每个训练轮次的步数,增加会延长单个 epoch 的训练时间
ctx_len=512微调模型的上下文长度,建议根据语料长度修改
peft_config='{"r":64}'MiSS 微调的 rank 参数,值越大效果越好,但训练速度越慢/显存需求越高,一般训练使用 32 或者 64 即可

调整其他训练参数

下面列出了脚本中其他可修改的训练参数,及其修改的效果。

参数描述
--vocab_size 65536词表大小,默认为 65536,设置为 0 表示模型自动确定词汇表大小
--data_type binidx训练语料的文件格式,支持:utf-8, utf-16le, numpy, binidx, dummy, uint16, sft, jsonl,建议使用 jsonlbinidx 格式
--epoch_count 5总训练轮次
--lr_init 2e-5初始学习率,MiSS 建议 2e-5 ,最大不超过 1e-4
--lr_final 2e-5最终学习率,建议和初始学习率保持一致
--accelerator gpu使用的加速器类型,目前主要支持 gpucpu 基本不支持训练
--devices 1显卡数量,单显卡填 1,多卡按实际数量填写
--precision bf16训练精度,建议保持默认值 bf16,支持:fp32tf32fp16bf16
--strategy deepspeed_stage_1lightning 训练策略参数,微调推荐使用 deepspeed_stage_1,设备显存太小可将 1 改成 2
--grad_cp 1梯度累积步数,0 训练更快但需更多显存,1 训练较慢但节省显存
--my_testing "x070"训练的 RWKV 模型版本,v7 选 x070,v6 选 x060 ,v5 选 x052(已淘汰,不推荐)
--peft miss微调训练类型,MiSS 微调填 miss 即可
--op选择算子,支持 cudaflatriton,默认设置为 cuda
--wandb RWKV-PEFT-MiSS可选,是否使用 wandb 可视化记录训练日志,需提前配置 wandb 账号
--lr_schedule wsd可选,学习率调度方法,默认使用 cos_decay,支持:cos_decay, wsd

附录:miss.sh 配置参考

load_model='/home/rwkv/models/rwkv7-g1a3-1.5b.pth'
proj_dir='/home/rwkv/roleplay_1107_g1a3_1b5_73k_miss'
data_file='/home/rwkv/roleplay_data/73k-cn-en-doubao.jsonl'

n_layer=24
n_embd=2048

micro_bsz=4
epoch_save=1
epoch_steps=1000
ctx_len=4096
peft_config='{"r":64}'

python train.py --load_model $load_model \
--proj_dir $proj_dir --data_file $data_file \
--vocab_size 65536 \
--data_type jsonl \
--n_layer $n_layer --n_embd $n_embd \
--ctx_len $ctx_len --micro_bsz $micro_bsz \
--epoch_steps $epoch_steps --epoch_count 4 --epoch_save $epoch_save \
--lr_init 1e-5 --lr_final 1e-5 \
--accelerator gpu --precision bf16 \
--devices 4 --strategy deepspeed_stage_1 --grad_cp 1 \
--my_testing "x070" \
--peft miss --peft_config $peft_config
# 以下是可选项
# --op cuda/fla/triton (选择不同的算子,不加此参数则默认使用 cuda)
#  --wandb RWKV-PEFT-MiSS (是否使用 wandb 监控训练过程)
# --lr_schedule wsd 是否启用余弦退火优化学习率,默认的 lr_schedule = cos_decay  

参数调整完成后,请记得保存 miss.sh 文件。

开始训练

在 RWKV-PEFT 目录,运行 sh scripts/miss.sh 命令,开启 MiSS 微调 。

正常开始训练后,应当是如下画面:

miss-tuning-running

如何使用 MiSS 微调模型

训练完毕后,应当可以在输出文件夹中找到完整的 MiSS 权重文件(.pth 格式)和训练日志(.txt 文件):

miss-merged-model

合并后的 MiSS 模型可以在 RWKV Runner 或者 Ai00 中正常使用。将微调模型放到 RWKV Runner 的 models 文件夹,然后新建配置,选择微调模型即可。

更多详细用法请参考 RWKV Runner 教程Ai00 教程

miss-model-usage-of-runner

miss-model-usage

这份文档对您有帮助吗?

意见反馈

联系方式(可选)

© 2026 RWKV. All rights reserved.粤ICP备2024242518号-1