Página de inicio de RWKV: https://www.rwkv.com
ChatRWKV es como ChatGPT pero impulsado por mi modelo de lenguaje RWKV (100% RNN), que es el único RNN (hasta ahora) que puede igualar a los transformadores en calidad y escalamiento, al mismo tiempo que es más rápido y ahorra VRAM. Entrenamiento patrocinado por Stability EleutherAI :)
Nuestra última versión es RWKV-6 https://arxiv.org/abs/2404.05892 (Modelos de vista previa: https://huggingface.co/BlinkDL/temp)
Demostración de RWKV-6 3B : https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-1
Demostración de RWKV-6 7B : https://huggingface.co/spaces/BlinkDL/RWKV-Gradio-2
Repositorio principal de RWKV-LM : https://github.com/BlinkDL/RWKV-LM (explicación, ajuste, capacitación, etc.)
Demostración de chat para desarrolladores: https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_CHAT.py
Gorjeo : https://twitter.com/BlinkDL_AI
Página de inicio : https://www.rwkv.com/
Pesos RWKV de última generación: https://huggingface.co/BlinkDL
Pesas RWKV compatibles con HF: https://huggingface.co/RWKV
Utilice v2/convert_model.py para convertir un modelo para una estrategia, para una carga más rápida y ahorra RAM de la CPU.
Tenga en cuenta que RWKV_CUDA_ON creará un kernel CUDA (mucho más rápido y ahorra VRAM). Aquí se explica cómo construirlo ("pip install ninja" primero):
# 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".
Paquete pip RWKV : https://pypi.org/project/rwkv/ (verifique siempre la última versión y actualice)
https://github.com/cgisky1980/ai00_rwkv_server API de inferencia de GPU más rápida con vulkan (buena para nvidia/amd/intel)
https://github.com/cryscan/web-rwkv backend para ai00_rwkv_server
https://github.com/saharNooby/rwkv.cpp Inferencia 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 Entrenador de Infctx
Script de demostración mundial: https://github.com/BlinkDL/ChatRWKV/blob/main/API_DEMO_WORLD.py
Script de demostración de preguntas y respuestas de Raven: https://github.com/BlinkDL/ChatRWKV/blob/main/v2/benchmark_more.py
RWKV en 150 líneas (modelo, inferencia, generación de texto): https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_in_150_lines.py
RWKV v5 en 250 líneas (con tokenizador también): https://github.com/BlinkDL/ChatRWKV/blob/main/RWKV_v5_demo.py
Cree su propio motor de inferencia RWKV : comience con https://github.com/BlinkDL/ChatRWKV/blob/main/src/model_run.py, que es más fácil de entender (utilizado por https://github.com/BlinkDL/ChatRWKV/ blob/main/chat.py).
Preimpresión de RWKV https://arxiv.org/abs/2305.13048
RWKV v6 ilustrado:
Proyectos geniales de la comunidad RWKV :
https://github.com/saharNooby/rwkv.cpp inferencia rápida de CPU i4 i8 fp16 fp32 usando ggml
https://github.com/harrisonvanderbyl/rwkv-cpp-cuda inferencia rápida de windows/linux y cuda/rocm/vulkan GPU (no es necesario python ni pytorch)
https://github.com/Blealtan/RWKV-LM-LoRA Ajuste fino de LoRA
https://github.com/josStorer/RWKV-Runner GUI genial
Más proyectos RWKV: https://github.com/search?o=desc&q=rwkv&s=updated&type=Repositories
ChatRWKV v2: con estrategias "stream" y "split", e INT8. 3G VRAM es suficiente para ejecutar 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
Aquí está https://huggingface.co/BlinkDL/rwkv-4-raven/blob/main/RWKV-4-Raven-14B-v7-Eng-20230404-ctx4096.pth en acción:
Cuando crees un chatbot RWKV, siempre verifica el texto correspondiente al estado para evitar errores.
(Para los modelos v4-raven, use Bob/Alice. Para los modelos v4/v5/v6-world, use Usuario/Asistente)
Bob: xxxxxxxxxxxxxxxxxxnnAlice: xxxxxxxxxxxxxnnBob: xxxxxxxxxxxxxxxxnnAlice:
xxxxx = xxxxx.strip().replace('rn','n').replace('nn','n')
Si está creando su propio motor de inferencia RWKV, comience con https://github.com/BlinkDL/ChatRWKV/blob/main/src/model_run.py, que es más fácil de entender (utilizado por https://github.com/BlinkDL /ChatRWKV/blob/main/chat.py)
Los últimos modelos RWKV 14B y 7B sintonizados al estilo Alpaca de la serie "Raven" son muy buenos (casi como ChatGPT, buenos también para chat multironda). Descargar: https://huggingface.co/BlinkDL/rwkv-4-raven
Resultados del modelo antiguo anterior:
QQ群 553456870(加入时请简单自我介绍)。有研发能力的朋友加群 325154699。
中文使用教程: https://zhuanlan.zhihu.com/p/618011122 https://zhuanlan.zhihu.com/p/616351661
Interfaz de usuario: https://github.com/l15y/wenda