Repolode
BlinkDL

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. 1

    Instala PyTorch con las wheels de CUDA 12.1

    pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121
  2. 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. 3

    Ve al directorio de entrenamiento de referencia de RWKV-7

    cd RWKV-v7/train_temp/
  4. 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