ChatRWKV对标 ChatGPT 的开源项目

联合创作 · 2023-09-26 06:47

ChatRWKV 类似于 ChatGPT,但由 RWKV(100% RNN)语言模型提供支持,并且是开源的。希望做“大规模语言模型的 Stable Diffusion”。

目前 RWKV 有大量模型,对应各种场景、各种语言:

  • Raven 模型:适合直接聊天,适合 +i 指令。有很多种语言的版本,看清楚用哪个。适合聊天、完成任务、写代码。可以作为任务去写文稿、大纲、故事、诗歌等等,但文笔不如 testNovel 系列模型。
  • Novel-ChnEng 模型:中英文小说模型,可以用 +gen 生成世界设定(如果会写 prompt,可以控制下文剧情和人物),可以写科幻奇幻。不适合聊天,不适合 +i 指令。
  • Novel-Chn 模型:纯中文网文模型,只能用 +gen 续写网文(不能生成世界设定等等),但是写网文写得更好(也更小白文,适合写男频女频)。不适合聊天,不适合 +i 指令。
  • Novel-ChnEng-ChnPro 模型:将 ChnEng-ChnPro 在高质量作品微调(名著,科幻,奇幻,古典,翻译,等等)。

HuggingFace Gradio Demo (14B ctx8192):https://huggingface.co/spaces/BlinkDL/ChatRWKV-gradio

Raven (7B 在 Alpaca 等上微调) Demo:https://huggingface.co/spaces/BlinkDL/Raven-RWKV-7B

RWKV pip package:https://pypi.org/project/rwkv/ 

更新 ChatRWKV v2 和 pip rwkv 包(0.7.3):

使用 v2/convert_model.py 将模型转换为策略,以加快加载速度并节省 CPU 内存。

### Note RWKV_CUDA_ON will build a CUDA kernel ("pip install ninja" first).
### How to build in Linux: set these and run v2/chat.py
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
### How to build in win:
Install VS2022 build tools (https://aka.ms/vs/17/release/vs_BuildTools.exe select Desktop C++). Reinstall CUDA 11.7 (install VC++ extensions). Run v2/chat.py in "x64 native tools command prompt". 

下载 RWKV-4 权重: https://huggingface.co/BlinkDL使用 RWKV-4 模型。勿使用 RWKV-4a 和 RWKV-4b 模型。)

RWKV Discord https://discord.gg/bDSBUMeFpc

Twitter: https://twitter.com/BlinkDL_AI

RWKV LM: https://github.com/BlinkDL/RWKV-LM (解释、微调、训练等)

RWKV in 150 lines (模型、推理、文本生成): https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_in_150_lines.py

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' # if '1' then use CUDA kernel for seq mode (much faster)
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)   # use 20B_tokenizer.json
print(out.detach().cpu().numpy())                   # get logits
out, state = model.forward([187, 510], None)
out, state = model.forward([1563], state)           # RNN has state (use deepcopy if you want to clone it)
out, state = model.forward([310, 247], state)
print(out.detach().cpu().numpy())                   # same result as above

https://huggingface.co/BlinkDL/rwkv-4-raven/blob/main/RWKV-4-Raven-14B-v7-Eng-20230404-ctx4096.pth

浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报