Un entorno mínimo y fácil de modificar que cubre todo el flujo de trabajo de los LLM, desde la tokenización y el preentrenamiento hasta el ajuste fino, la evaluación y el chat, en un único nodo con GPU.
BlinkDL/RWKV-LM
Código oficial de entrenamiento y referencia para RWKV, una arquitectura de modelo de lenguaje tipo RNN que también se puede entrenar en paralelo, como un transformer GPT.
- Estrellas
- 14,757
- Forks
- 1,025
- Issues abiertos
- 159
- Último commit
- hace 23 días
¿Qué es?
RWKV-LM es el repositorio principal de entrenamiento y referencia para RWKV, una arquitectura de modelo de lenguaje que es una red neuronal recurrente, pero se puede entrenar en paralelo, como un transformer. El proyecto está actualmente en RWKV-7 "Goose" y el README describe su diseño como libre de atención, lineal en el tiempo y constante en memoria, sin KV cache. Durante la inferencia solo se transfiere un estado oculto de tamaño fijo de un token al siguiente, por lo que el uso de memoria no aumenta con la longitud del contexto.
El repositorio incluye la implementación de referencia para entrenar RWKV-7 (train_temp), kernels CUDA rápidos, scripts de demostración para los modos GPT, RNN y combinado, y código anterior de RWKV-4, 5 y 6. También documenta la preparación de datos de jsonl a formato binidx, configuraciones de entrenamiento con DeepSpeed y PyTorch Lightning, y reglas de inicialización y weight decay para reproducir un entrenamiento estable.
El ecosistema asociado incluye un paquete de RWKV para pip, pesos GGUF, proyectos de inferencia para móviles y WebGPU, y herramientas de fine-tuning como implementaciones de PEFT y RLHF mantenidas por otros colaboradores.
Funciones clave
- 01Entrenamiento en paralelo al estilo GPT e inferencia al estilo RNN con uso constante de memoria.
- 02Incluye la implementación de referencia para entrenar RWKV-7 y kernels CUDA.
- 03Incluye scripts de demostración para los modos de inferencia GPT, RNN y combinado.
- 04Documenta la preparación de datos de jsonl a binidx y el entrenamiento con DeepSpeed.
- 05Ofrece indicaciones sobre inicialización y weight decay para entrenar desde cero de forma estable.
Casos de uso
- Investigar modelos de secuencia sin atención o de tiempo lineal.
- Entrenar un modelo de lenguaje RWKV personalizado en una sola GPU con el código de referencia.
- Ejecutar inferencias con contextos largos cuando la memoria del KV cache es una limitación.
- Explorar alternativas a los transformers basadas en RNN para implementaciones en el edge o en dispositivos.
Inicio rápido
- 1
Instala PyTorch con las wheels de CUDA 12.1
pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121 - 2
Instala las dependencias de entrenamiento (mantén pytorch-lightning en la versión 1.9.5)
pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade - 3
Ve al directorio de entrenamiento de referencia de RWKV-7
cd RWKV-v7/train_temp/ - 4
Descarga los datos de MiniPile en train_temp/data y, después, ejecuta el script de preparación
sh ./demo-training-prepare.sh
Antes de usarlo
- El entrenamiento requiere una GPU NVIDIA compatible con CUDA. La configuración predeterminada necesita unos 7 GB de VRAM.
- El código de entrenamiento de referencia fija pytorch-lightning en la versión 1.9.5 y depende de DeepSpeed y de kernels de CUDA.
- El README indica que la implementación de RWKV-7 de FLA no está alineada con la de referencia y ofrece un rendimiento inferior; además, no hay una capa RWKV-7 que se pueda sustituir directamente de forma sencilla.
Temas
Preguntas frecuentes
- ¿Qué es RWKV-LM?
- Código oficial de entrenamiento y referencia para RWKV, una arquitectura de modelo de lenguaje tipo RNN que también se puede entrenar en paralelo, como un transformer GPT. RWKV-LM es el repositorio principal de entrenamiento y referencia para RWKV, una arquitectura de modelo de lenguaje que es una red neuronal recurrente, pero se puede entrenar en paralelo, como un transformer. El proyecto está actualmente en RWKV-7 "Goose" y el README describe su diseño como libre de atención, lineal en el tiempo y constante en memoria, sin KV cache. Durante la inferencia solo se transfiere un estado oculto de tamaño fijo de un token al siguiente, por lo que el uso de memoria no aumenta con la longitud del contexto.
- ¿RWKV-LM es gratuito? ¿Qué licencia tiene?
- RWKV-LM es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿RWKV-LM sigue mantenido?
- Mantenimiento activo. El último commit de RWKV-LM fue el 28 sept 2026.
- ¿Para qué puedo usar RWKV-LM?
- Investigar modelos de secuencia sin atención o de tiempo lineal. Entrenar un modelo de lenguaje RWKV personalizado en una sola GPU con el código de referencia. Ejecutar inferencias con contextos largos cuando la memoria del KV cache es una limitación. Explorar alternativas a los transformers basadas en RNN para implementaciones en el edge o en dispositivos.
- ¿Cómo se instala RWKV-LM?
- Instala PyTorch con las wheels de CUDA 12.1: pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121 Instala las dependencias de entrenamiento (mantén pytorch-lightning en la versión 1.9.5): pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade Ve al directorio de entrenamiento de referencia de RWKV-7: cd RWKV-v7/train_temp/ Descarga los datos de MiniPile en train_temp/data y, después, ejecuta el script de preparación: sh ./demo-training-prepare.sh
- ¿Dónde consigo RWKV-LM?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/BlinkDL/RWKV-LM
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un motor TypeScript que ejecuta inferencias de LLM íntegramente en el navegador con WebGPU y ofrece una API compatible con OpenAI.
Mamba es una arquitectura de modelado de secuencias para PyTorch basada en modelos selectivos de espacio de estados, que ofrece una alternativa a los Transformers con complejidad lineal para tareas de lenguaje y otras secuencias.
Código complementario del libro Build a Large Language Model (From Scratch) para implementar paso a paso un LLM similar a GPT en PyTorch.
Tutorial comentado de 12 capítulos que enseña a crear y entrenar desde cero, con Python y PyTorch, un GPT pequeño al estilo LLaMA.
Jan es una aplicación de escritorio de código abierto para descargar y ejecutar LLM localmente, con una interfaz similar a ChatGPT y conexión opcional a modelos en la nube.