Página inicial da RWKV: https://www.rwkv.com
ChatRWKV é como ChatGPT, mas baseado em meu modelo de linguagem RWKV (100% RNN), que é o único RNN (no momento) que pode corresponder aos transformadores em qualidade e escala, ao mesmo tempo que é mais rápido e economiza VRAM. Treinamento patrocinado por Stability EleutherAI :)
Nossa versão mais recente é RWKV-6 https://arxiv.org/abs/2404.05892 (modelos de visualização: https://huggingface.co/BlinkDL/temp)
Demonstração RWKV-6 3B : https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-1
Demonstração RWKV-6 7B : https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-2
Repositório principal RWKV-LM : https://github.com/BlinkDL/RWKV-LM (explicação, ajuste fino, treinamento, etc.)
Demonstração de bate-papo para desenvolvedores: https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_CHAT.py
Twitter : https://twitter.com/BlinkDL_AI
Página inicial : https://www.rwkv.com/
Pesos RWKV de última geração: https://huggingface.co/BlinkDL
Pesos RWKV compatíveis com HF: https://huggingface.co/RWKV
Use v2/convert_model.py para converter um modelo em uma estratégia, para carregamento mais rápido e economia de RAM da CPU.
Nota RWKV_CUDA_ON irá construir um kernel CUDA (muito mais rápido e economiza VRAM). Aqui está como construí-lo ("pip install ninja" primeiro):
# 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".
Pacote pip RWKV : https://pypi.org/project/rwkv/ (sempre verifique a versão e atualização mais recentes)
https://github.com/cgisky1980/ai00_rwkv_server API de inferência de GPU mais rápida com vulkan (bom para nvidia/amd/intel)
https://github.com/cryscan/web-rwkv back-end para ai00_rwkv_server
https://github.com/saharNooby/rwkv.cpp Inferência rápida de CPU/cuBLAS/CLBlast: int4/int8/fp16/fp32
https://github.com/JL-er/RWKV-PEFT lora/pissa/Qlora/Qpissa/state tuning
https://github.com/RWKV/RWKV-infctx-trainer Infctx trainer
Script de demonstração mundial: https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_WORLD.py
Script de demonstração de perguntas e respostas da Raven: https://github.com/BlinkDL/ChatRWKV/blob/main/v2/benchmark_more.py
RWKV em 150 linhas (modelo, inferência, geração de texto): https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_in_150_lines.py
RWKV v5 em 250 linhas (com tokenizer também): https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_v5_demo.py
Construindo seu próprio mecanismo de inferência RWKV : comece com https://github.com/BlinkDL/ChatRWKV/blob/main/src/model_run.py que é mais fácil de entender (usado por https://github.com/BlinkDL/ChatRWKV/ blob/main/chat.py).
Pré-impressão RWKV https://arxiv.org/abs/2305.13048
RWKV v6 ilustrado:
Projetos legais da comunidade RWKV :
https://github.com/saharNooby/rwkv.cpp inferência rápida de CPU i4 i8 fp16 fp32 usando ggml
https://github.com/harrisonvanderbyl/rwkv-cpp-cuda fast windows/linux & cuda/rocm/vulkan Inferência de GPU (sem necessidade de python e pytorch)
https://github.com/Blealtan/RWKV-LM-LoRA Ajuste fino de LoRA
https://github.com/josStorer/RWKV-Runner GUI legal
Mais projetos RWKV: https://github.com/search?o=desc&q=rwkv&s=updated&type=Repositories
ChatRWKV v2: com estratégias "stream" e "split" e INT8. 3G VRAM é suficiente para executar 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
Aqui está https://huggingface.co/BlinkDL/rwkv-4-raven/blob/main/RWKV-4-Raven-14B-v7-Eng-20230404-ctx4096.pth em ação:
Ao construir um chatbot RWKV, verifique sempre o texto correspondente ao estado, para evitar bugs.
(Para modelos v4-raven, use Bob/Alice. Para modelos v4/v5/v6-world, use User/Assistant)
Bob: xxxxxxxxxxxxxxxxxxnnAlice: xxxxxxxxxxxxxnnBob: xxxxxxxxxxxxxxxxnnAlice:
xxxxx = xxxxx.strip().replace('rn','n').replace('nn','n')
Se você estiver construindo seu próprio mecanismo de inferência RWKV, comece com https://github.com/BlinkDL/ChatRWKV/blob/main/src/model_run.py, que é mais fácil de entender (usado por https://github.com/BlinkDL /ChatRWKV/blob/main/chat.py)
Os mais recentes modelos RWKV 14B e 7B ajustados no estilo Alpaca da série "Raven" são muito bons (quase do tipo ChatGPT, bons em bate-papo multiround também). Baixar: https://huggingface.co/BlinkDL/rwkv-4-raven
Resultados anteriores do modelo antigo:
QQ群 553456870(加入时请简单自我介绍)。有研发能力的朋友加群 325154699。
中文使用教程:https://zhuanlan.zhihu.com/p/618011122 https://zhuanlan.zhihu.com/p/616351661
Interface do usuário: https://github.com/l15y/wenda