Минималистичный, удобный для модификации инструментарий для полного цикла работы с LLM — от токенизации и предобучения до дообучения, оценки и чата; запускается на одном узле с GPU.
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
Установите PyTorch с wheel-пакетами для CUDA 12.1
pip install torch --upgrade --extra-index-url https://download.pytorch.org/whl/cu121 - 2
Установите зависимости для обучения (оставьте pytorch-lightning версии 1.9.5)
pip install pytorch-lightning==1.9.5 deepspeed wandb ninja --upgrade - 3
Перейдите в каталог эталонного обучения RWKV-7
cd RWKV-v7/train_temp/ - 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 обновляется ежедневно.
Похожие проекты
Движок на TypeScript, который запускает LLM-инференс целиком в браузере с помощью WebGPU и предоставляет API, совместимый с OpenAI.
Mamba — архитектура моделирования последовательностей на PyTorch, основанная на селективных моделях пространства состояний и предлагающая альтернативу Transformers с линейной сложностью для языковых и других задач.
Код к книге Build a Large Language Model (From Scratch): пошаговая реализация LLM, похожей на GPT, на PyTorch.
Учебник из 12 глав с комментариями: в нём показано, как с нуля создать и обучить небольшую GPT-модель в стиле LLaMA на Python и PyTorch.
Jan — приложение с открытым исходным кодом для скачивания и локального запуска LLM с интерфейсом в стиле ChatGPT и возможностью подключать облачные модели.