ChatRWKV(读作“RwaKuv”(IPA中的rʌkuv),源自4个主要参数:R W K V)
RWKV 主页:https://www.rwkv.com
请先查看 https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_CHAT.py
ChatRWKV 类似 ChatGPT,但由我的 RWKV(100% RNN)语言模型驱动,这是唯一一个在质量和扩展性上能够匹敌变压器的 RNN(截至目前),同时速度更快,并节省 VRAM。培训由 Stability EleutherAI 赞助 :)
我们的最新版本是 RWKV-6 https://arxiv.org/abs/2404.05892(预览模型:https://huggingface.co/BlinkDL/temp)
RWKV-6 3B 演示:https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-1
RWKV-6 7B 演示:https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-2
RWKV-LM 主仓库:https://github.com/BlinkDL/RWKV-LM(解释、微调、训练等)
开发者的聊天演示:https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_CHAT.py
RWKV Discord:https://discord.gg/bDSBUMeFpc(7k+成员)
Twitter:https://twitter.com/BlinkDL_AI
原始前沿 RWKV 权重:https://huggingface.co/BlinkDL
兼容 HF 的 RWKV 权重:https://huggingface.co/RWKV
使用 v2/convert_model.py 转换模型以适配策略,从而更快加载并节省 CPU 内存。
请注意 RWKV_CUDA_ON 将构建一个 CUDA 内核(速度更快并节省 VRAM)。构建方法如下(需先安装“pip install ninja”):
# 在 Linux 中的构建方法:设置以下路径并运行 v2/chat.py
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# 在 Windows 中的构建方法:
安装 VS2022 构建工具(https://aka.ms/vs/17/release/vs_BuildTools.exe,选择桌面C++)。重新安装 CUDA 11.7(安装 VC++ 扩展)。在“x64 native tools command prompt”中运行 v2/chat.py。
RWKV pip 包:https://pypi.org/project/rwkv/ (请始终检查最新版本并进行升级)
https://github.com/cgisky1980/ai00_rwkv_server 使用 vulkan 进行最快 GPU 推理 API(适用于 NVIDIA/AMD/Intel)
https://github.com/cryscan/web-rwkv ai00_rwkv_server 的后端
https://github.com/saharNooby/rwkv.cpp 快速 CPU/cuBLAS/CLBlast 推理:int4/int8/fp16/fp32
https://github.com/JL-er/RWKV-PEFT lora/pissa/Qlora/Qpissa/状态调优
https://github.com/RWKV/RWKV-infctx-trainer Infctx 训练器
World 演示脚本:https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_WORLD.py
Raven 问答演示脚本:https://github.com/BlinkDL/ChatRWKV/blob/main/v2/benchmark_more.py
RWKV in 150 lines(模型、推理、文本生成):https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_in_150_lines.py
🔥 RWKV v5 in 250 lines 🔥(包含分词器):https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_v5_demo.py
🔥 构建自己的 RWKV 推理引擎 🔥:首先查看 https://github.com/BlinkDL/ChatRWKV/blob/main/src/model_run.py,其理解起来更容易(用于 https://github.com/BlinkDL/ChatRWKV/blob/main/chat.py)。
RWKV 预印本:https://arxiv.org/abs/2305.13048
RWKV v6 图解:
酷炫的社区 RWKV 项目:
https://github.com/saharNooby/rwkv.cpp 使用 ggml 进行快速的 i4 i8 fp16 fp32 CPU 推理
https://github.com/harrisonvanderbyl/rwkv-cpp-cuda 快速的 Windows/Linux & cuda/rocm/vulkan GPU 推理(无需 Python 和 PyTorch)
https://github.com/Blealtan/RWKV-LM-LoRA LoRA 微调
https://github.com/josStorer/RWKV-Runner 酷炫 GUI
更多 RWKV 项目:https://github.com/search?o=desc&q=rwkv&s=updated&type=Repositories
ChatRWKV v2:使用“stream”和“split”策略,以及 INT8。3G VRAM 足以运行 RWKV 14B :) https://github.com/BlinkDL/ChatRWKV/tree/main/v2
os.environ["RWKV_JIT_ON"] = '1'
os.environ["RWKV_CUDA_ON"] = '0' # 如果为'1',则使用 CUDA 内核模式(速度更快)
from rwkv.model import RWKV # pip install rwkv
model = RWKV(model='/fsx/BlinkDL/HF-MODEL/rwkv-4-pile-1b5/RWKV-4-Pile-1B5-20220903-8040', strategy='cuda fp16')
out, state = model.forward([187, 510, 1563, 310, 247], None) # 使用 20B_分词器.json
print(out.detach().cpu().numpy()) # 获取 logits
out, state = model.forward([187, 510], None)
out, state = model.forward([1563], state) # RNN 有状态(如果要克隆它,请使用 deepcopy)
out, state = model.forward([310, 247], state)
print(out.detach().cpu().numpy()) # 与上面相同的结果
这是 https://huggingface.co/BlinkDL/rwkv-4-raven/blob/main/RWKV-4-Raven-14B-v7-Eng-20230404-ctx4096.pth 的实际效果:
当你构建 RWKV 聊天机器人时,请始终检查与状态对应的文本,以防止出现错误。
- 永远不要直接调用 raw forward()。相反,将它放在一个记录与状态对应的文本的函数中。
(对于 v4-raven 模型,使用 Bob/Alice。对于 v4/v5/v6-world 模型,使用 User/Assistant)
- 最佳的聊天格式(检查你的文本是否为此格式):
Bob: xxxxxxxxxxxxxxxxxx\n\nAlice: xxxxxxxxxxxxx\n\nBob: xxxxxxxxxxxxxxxx\n\nAlice:
- 最后的“Alice:”后面不应该有任何空格。生成的结果开头会有一个空格,你可以简单地将其去除。
- 你可以在 xxxxx 中使用 \n,但要避免使用 \n\n。所以简单地执行
xxxxx = xxxxx.strip().replace('\r\n','\n').replace('\n\n','\n')
如果你正在构建自己的 RWKV 推理引擎,请从 https://github.com/BlinkDL/ChatRWKV/blob/main/src/model_run.py 开始,其理解起来更容易(用于 https://github.com/BlinkDL/ChatRWKV/blob/main/chat.py)
最新的“Raven”系列 Alpaca 风格调整的 RWKV 14B 和 7B 模型非常优秀(几乎像 ChatGPT,在多轮聊天方面也很出色)。下载地址:https://huggingface.co/BlinkDL/rwkv-4-raven
之前的旧模型结果:
中文模型
QQ群 553456870(加入时请简单自我介绍)。有研发能力的朋友加群 325154699。
中文使用教程:https://zhuanlan.zhihu.com/p/618011122 https://zhuanlan.zhihu.com/p/616351661
推荐UI:https://github.com/l15y/wenda