Repolode
BlinkDL

BlinkDL/RWKV-LM

Официальный код обучения и эталонная реализация RWKV — языковой архитектуры на основе RNN, которую можно обучать параллельно, как GPT-трансформер.

Звёзды
14,757
Форки
1,025
Открытые issues
159
Последний коммит
23 дня назад

Что это?

RWKV-LM — основной репозиторий с кодом обучения и эталонной реализацией RWKV — языковой архитектуры на основе рекуррентной нейронной сети, которую можно обучать параллельно, как трансформер. Сейчас проект находится на версии RWKV-7 «Goose». В README архитектура описана как не использующая attention, линейная по времени и с постоянным расходом памяти, без KV cache. При инференсе между токенами передаётся только скрытое состояние фиксированного размера, поэтому расход памяти не растёт вместе с длиной контекста.

В репозитории есть эталонная реализация обучения RWKV-7 (train_temp), быстрые CUDA-ядра, демонстрационные скрипты для режимов GPT, RNN и их комбинации, а также код предыдущих версий RWKV-4, 5 и 6. Здесь также описаны подготовка данных из jsonl в формат binidx, варианты обучения с DeepSpeed и PyTorch Lightning, а также правила инициализации и затухания весов для воспроизводимого и стабильного обучения.

Связанная экосистема включает pip-пакет RWKV, веса GGUF, проекты для инференса на мобильных устройствах и WebGPU, а также инструменты дообучения, например реализации PEFT и RLHF, которые поддерживают другие участники сообщества.

Ключевые возможности

  • 01Параллельное обучение в стиле GPT и инференс в стиле RNN с постоянным расходом памяти.
  • 02Эталонная реализация обучения RWKV-7 и CUDA-ядра.
  • 03Демонстрационные скрипты для режимов инференса GPT, RNN и их комбинации.
  • 04Инструкции по подготовке данных из jsonl в binidx и обучению с DeepSpeed.
  • 05Рекомендации по инициализации и затуханию весов для стабильного обучения с нуля.

Сценарии использования

  • Изучение моделей последовательностей без attention или с линейной сложностью по времени.
  • Обучение собственной языковой модели RWKV на одной GPU с помощью эталонного кода.
  • Запуск инференса с длинным контекстом, когда объём памяти для KV cache становится ограничением.
  • Изучение альтернатив трансформерам на основе RNN для развёртывания на периферийных или встроенных устройствах.

Быстрый старт

  1. 1

    Установите PyTorch с wheel-пакетами для CUDA 12.1

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

    Установите зависимости для обучения (оставьте pytorch-lightning версии 1.9.5)

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

    Перейдите в каталог эталонного обучения RWKV-7

    cd RWKV-v7/train_temp/
  4. 4

    Загрузите данные MiniPile в train_temp/data, затем запустите скрипт подготовки

    sh ./demo-training-prepare.sh

Что важно знать

  • Для обучения требуется видеокарта NVIDIA с поддержкой CUDA. Конфигурации по умолчанию нужно около 7 ГБ VRAM.
  • В эталонном коде обучения зафиксирована версия pytorch-lightning 1.9.5; также он использует DeepSpeed и CUDA-ядра.
  • Согласно README, реализация RWKV-7 от FLA не соответствует эталонной и показывает худшую производительность; простой слой RWKV-7 для прямой замены отсутствует.

Темы

Частые вопросы

Что такое RWKV-LM?
Официальный код обучения и эталонная реализация RWKV — языковой архитектуры на основе RNN, которую можно обучать параллельно, как GPT-трансформер. RWKV-LM — основной репозиторий с кодом обучения и эталонной реализацией RWKV — языковой архитектуры на основе рекуррентной нейронной сети, которую можно обучать параллельно, как трансформер. Сейчас проект находится на версии RWKV-7 «Goose». В README архитектура описана как не использующая attention, линейная по времени и с постоянным расходом памяти, без KV cache. При инференсе между токенами передаётся только скрытое состояние фиксированного размера, поэтому расход памяти не растёт вместе с длиной контекста.
RWKV-LM можно использовать бесплатно? Какая у него лицензия?
RWKV-LM распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
RWKV-LM всё ещё поддерживается?
Активно поддерживается. Последний коммит в RWKV-LM — 28 сент. 2026 г..
Для чего можно использовать RWKV-LM?
Изучение моделей последовательностей без attention или с линейной сложностью по времени. Обучение собственной языковой модели RWKV на одной GPU с помощью эталонного кода. Запуск инференса с длинным контекстом, когда объём памяти для KV cache становится ограничением. Изучение альтернатив трансформерам на основе RNN для развёртывания на периферийных или встроенных устройствах.
Как установить RWKV-LM?
Установите PyTorch с wheel-пакетами для CUDA 12.1: pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121 Установите зависимости для обучения (оставьте pytorch-lightning версии 1.9.5): pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade Перейдите в каталог эталонного обучения RWKV-7: cd RWKV-v7/train_temp/ Загрузите данные MiniPile в train_temp/data, затем запустите скрипт подготовки: sh ./demo-training-prepare.sh
Где скачать RWKV-LM?
Исходный код и инструкции по установке — на GitHub: https://github.com/BlinkDL/RWKV-LM

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU.

58,8 тыс.8,2 тыс.PythonMITОбновлён в прошлом месяце

Mamba — архитектура моделирования последовательностей на PyTorch, основанная на селективных моделях пространства состояний и предлагающая альтернативу Transformers с линейной сложностью для языковых и других задач.

18,9 тыс.1,8 тыс.PythonApache-2.0Обновлён 3 месяца назад