我个人也参与了一些开源项目,比如开发HF World Tokenizer以及HF RWKV 5/6 Model的https://github.com/BBuf/RWKV-World-HF-Tokenizer,然后为了将RWKV的cuda kernel更方便的应用在HF模型上面,我正在开发一个flash-rwkv库,让HF的模型可以通过一个pip安装的方式无感接入高性能的kernel,在微调和推理方面获得性能提升,...
HuggingFace中RWKV5模型的Linear Attention Naive实现在https://huggingface.co/RWKV/rwkv-5-world-1b5/blob/main/modeling_rwkv5.py#L62-L84,贴一下这段代码。 def rwkv5_linear_attention_cpu(receptance, key, value, time_decay, time_first, state): input_dtype = receptance.dtype # For CPU fallba...
6. RWKV World v2 数据集 我们在新的 RWKV World v2 数据集上训练我们的模型,这是一个新的多语...
HuggingFace 中 RWKV5 模型的 Linear Attention Naive 实现在 https://huggingface.co/RWKV/rwkv-5-world-1b5/blob/main/modeling_rwkv5.py#L62-L84 ,贴一下这段代码。def rwkv5_linear_attention_cpu(receptance, key, value, time_decay, time_first, state): input_dtype = receptance.dtype # For ...
HOW TO FINETUNE RWKV-5 MODELS Use .jsonl format for your data (seehttps://huggingface.co/BlinkDL/rwkv-5-worldfor formats). Usehttps://github.com/BlinkDL/RWKV-LM/blob/main/RWKV-v5/make_data.pyto tokenizer it using World tokenizer into binidx, suitable for finetuning World models. ...
Popen(f" aws s3 mv {fff} s3://rwkv-world/{aa}-{fn} --quiet", shell=True) else: if 'deepspeed_stage_3' in args.strategy: trainer.save_checkpoint(ff, weights_only=True) else: torch.save(dd, ff) torch.save(dd, ff) class train_callback(pl.Callback): def __init__(self, ...
另外需要特别注意的是p_o = o + (i_bh + i_k * B * H) * s_vo_h + i_v * BV + tl.arange(0, BV)这行代码,在kernel执行阶段输出的shape是[N_K, B, H, L, D],所以这里多了一个i_k * B * H来定位输出指针位置,并且计算之后我们会在N_K维度做reduce sum以获得最终的结果。 0x5....
这里有5个循环,其中N一般比较小,对于RWKV5和RWKV6来说,N一般固定为64。还有就是这个还原的公式没有返回state,而是在B,H的内循环中申请了一个局部的state,为了保持和上面的公式一致,需要把state的形状改成[B, H, N, N],就像在profile代码编写那一节看到的这样。这里的系列kernel暂时不考虑全局state,因为训练...
xr = x * time_mix_r + state[5*i+0] * (1 - time_mix_r) state[5*i+0] = x ...
2 + "name_or_path": "rwkv-world", 3 + "add_prefix_space": false, 4 + "tokenizer_class": "RWKVWorldTokenizer", 5 + "use_fast": false, 6 + "auto_map": { 7 + "AutoTokenizer": [ 8 + "tokenization_rwkv_world.RWKVWorldTokenizer", 9 + null 10 + ] 11 + }...