Repolode
BlinkDL

BlinkDL/RWKV-LM

Código oficial de treinamento e referência do RWKV, uma arquitetura de modelo de linguagem no estilo RNN que também pode ser treinada em paralelo como um transformer GPT.

Estrelas
14,757
Forks
1,025
Issues abertas
159
Último commit
há 23 dias

O que é?

RWKV-LM é o principal repositório de treinamento e referência do RWKV, uma arquitetura de modelo de linguagem que funciona como uma rede neural recorrente, mas pode ser treinada em paralelo como um transformer. O projeto está atualmente no RWKV-7 "Goose", e o README descreve o design como livre de attention, linear no tempo e constante no uso de memória, sem KV cache. Na inferência, apenas um estado oculto de tamanho fixo é carregado de um token para o seguinte, então o uso de memória não aumenta com o tamanho do contexto.

O repositório inclui a implementação de referência para treinamento do RWKV-7 (train_temp), kernels CUDA rápidos, scripts de demonstração para os modos GPT-like, RNN e combinado, além de código mais antigo do RWKV-4, 5 e 6. Também documenta a preparação de dados de jsonl para o formato binidx, configurações de treinamento com DeepSpeed e PyTorch Lightning, além de regras de inicialização e weight decay para reproduzir um treinamento estável.

O ecossistema vinculado inclui um pacote RWKV para pip, pesos GGUF, projetos de inferência para dispositivos móveis e WebGPU, e ferramentas de fine-tuning, como implementações de PEFT e RLHF mantidas por outros contribuidores.

Recursos principais

  • 01Treinamento paralelo no estilo GPT com inferência no estilo RNN e uso constante de memória.
  • 02Disponibiliza a implementação de referência para treinamento do RWKV-7 e kernels CUDA.
  • 03Inclui scripts de demonstração para os modos de inferência GPT, RNN e combinado.
  • 04Documenta a preparação de dados de jsonl para binidx e o treinamento com DeepSpeed.
  • 05Apresenta orientações de inicialização e weight decay para um treinamento estável do zero.

Casos de uso

  • Pesquisar modelos de sequência livres de attention ou com complexidade linear no tempo.
  • Treinar um modelo de linguagem RWKV personalizado em uma única GPU usando o código de referência.
  • Executar inferência com contexto longo quando a memória do KV cache é um fator limitante.
  • Explorar alternativas baseadas em RNN aos transformers para implantação em dispositivos de borda ou no próprio dispositivo.

Início rápido

  1. 1

    Instale o PyTorch com as wheels do CUDA 12.1

    pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121
  2. 2

    Instale as dependências de treinamento (mantenha o pytorch-lightning na versão 1.9.5)

    pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade
  3. 3

    Acesse o diretório de treinamento de referência do RWKV-7

    cd RWKV-v7/train_temp/
  4. 4

    Baixe os dados do MiniPile para train_temp/data e, em seguida, execute o script de preparação

    sh ./demo-training-prepare.sh

Antes de usar

  • O treinamento requer uma GPU NVIDIA compatível com CUDA. A configuração padrão precisa de cerca de 7 GB de VRAM.
  • O código de treinamento de referência fixa o pytorch-lightning na versão 1.9.5 e depende do DeepSpeed e de kernels CUDA.
  • O README informa que a implementação RWKV-7 do FLA não está alinhada à implementação de referência e tem desempenho inferior; além disso, não há uma camada RWKV-7 simples que possa ser usada como substituição direta.

Tópicos

Perguntas frequentes

O que é RWKV-LM?
Código oficial de treinamento e referência do RWKV, uma arquitetura de modelo de linguagem no estilo RNN que também pode ser treinada em paralelo como um transformer GPT. RWKV-LM é o principal repositório de treinamento e referência do RWKV, uma arquitetura de modelo de linguagem que funciona como uma rede neural recorrente, mas pode ser treinada em paralelo como um transformer. O projeto está atualmente no RWKV-7 "Goose", e o README descreve o design como livre de attention, linear no tempo e constante no uso de memória, sem KV cache. Na inferência, apenas um estado oculto de tamanho fixo é carregado de um token para o seguinte, então o uso de memória não aumenta com o tamanho do contexto.
RWKV-LM é gratuito? Qual é a licença?
RWKV-LM é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
RWKV-LM ainda é mantido?
Manutenção ativa. O último commit de RWKV-LM foi em 28 de set. de 2026.
Para que posso usar RWKV-LM?
Pesquisar modelos de sequência livres de attention ou com complexidade linear no tempo. Treinar um modelo de linguagem RWKV personalizado em uma única GPU usando o código de referência. Executar inferência com contexto longo quando a memória do KV cache é um fator limitante. Explorar alternativas baseadas em RNN aos transformers para implantação em dispositivos de borda ou no próprio dispositivo.
Como instalar RWKV-LM?
Instale o PyTorch com as wheels do CUDA 12.1: pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121 Instale as dependências de treinamento (mantenha o pytorch-lightning na versão 1.9.5): pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade Acesse o diretório de treinamento de referência do RWKV-7: cd RWKV-v7/train_temp/ Baixe os dados do MiniPile para train_temp/data e, em seguida, execute o script de preparação: sh ./demo-training-prepare.sh
Onde consigo RWKV-LM?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/BlinkDL/RWKV-LM

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados