ChatRWKV對(duì)標(biāo) ChatGPT 的開源項(xiàng)目
ChatRWKV 類似于 ChatGPT,但由 RWKV(100% RNN)語(yǔ)言模型提供支持,并且是開源的。希望做“大規(guī)模語(yǔ)言模型的 Stable Diffusion”。
目前 RWKV 有大量模型,對(duì)應(yīng)各種場(chǎng)景、各種語(yǔ)言:
- Raven 模型:適合直接聊天,適合 +i 指令。有很多種語(yǔ)言的版本,看清楚用哪個(gè)。適合聊天、完成任務(wù)、寫代碼??梢宰鳛槿蝿?wù)去寫文稿、大綱、故事、詩(shī)歌等等,但文筆不如 testNovel 系列模型。
- Novel-ChnEng 模型:中英文小說(shuō)模型,可以用 +gen 生成世界設(shè)定(如果會(huì)寫 prompt,可以控制下文劇情和人物),可以寫科幻奇幻。不適合聊天,不適合 +i 指令。
- Novel-Chn 模型:純中文網(wǎng)文模型,只能用 +gen 續(xù)寫網(wǎng)文(不能生成世界設(shè)定等等),但是寫網(wǎng)文寫得更好(也更小白文,適合寫男頻女頻)。不適合聊天,不適合 +i 指令。
- Novel-ChnEng-ChnPro 模型:將 ChnEng-ChnPro 在高質(zhì)量作品微調(diào)(名著,科幻,奇幻,古典,翻譯,等等)。
HuggingFace Gradio Demo (14B ctx8192):https://huggingface.co/spaces/BlinkDL/ChatRWKV-gradio
Raven (7B 在 Alpaca 等上微調(diào)) 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 將模型轉(zhuǎn)換為策略,以加快加載速度并節(jié)省 CPU 內(nèi)存。
### 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 權(quán)重: 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 (解釋、微調(diào)、訓(xùn)練等)
RWKV in 150 lines (模型、推理、文本生成): https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_in_150_lines.py
ChatRWKV v2:具有 "stream" 和 "split" 策略,以及 INT8。3G VRAM 足以運(yùn)行 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:
