Новый проект
Y0oshi/Text-LLM-Training-from-scratch
Учебный конвейер обучения языковых моделей в PyTorch: токенизация, предобучение, дообучение, DPO, reward-модели и GRPO.
- Stars
- ★ 26
- Forks
- ⑂ 0
- Язык
- Python
- Статус
- В канале 1 янв. 1 г.
AI-разбор
Проект реализует полный конвейер обучения decoder-only Transformer на PyTorch: подготовку данных, токенизацию, предобучение, supervised fine-tuning и выравнивание по предпочтениям. Токенизатор использует byte-level BPE, а токены хранятся в memory-mapped shard-файлах, что позволяет не загружать весь корпус в оперативную память. Архитектура модели включает RoPE, RMSNorm, SwiGLU, grouped-query attention, совместное использование весов и key/value cache для генерации. Для выравнивания доступны маскирование пользовательских сообщений при SFT, reward-модель по Bradley-Terry, DPO с замороженной исходной политикой и GRPO с программно проверяемыми наградами. Проект предоставляет CLI и интерактивное меню, потоковый чат, HTTP-сервер, оценку perplexity и accuracy, а также работает на CPU, Apple Silicon и CUDA без изменения кода. Для запуска требуются Python 3.10+, PyTorch 2.1+, NumPy и tqdm; сервер использует только стандартную библиотеку, а масштабирование ограничено доступной памятью и вычислительными ресурсами.
Проект предназначен для разработчиков и исследователей, изучающих обучение LLM, PyTorch, Transformer-архитектуры и методы alignment, а также для преподавателей и студентов, которым нужен прозрачный учебный пример с воспроизводимыми тестами и CLI.
Что внутри
- Byte-level BPE-токенизатор с обучением таблицы слияний, сохранением, загрузкой и поддержкой специальных токенов.
- Пайплайн подготовки данных с memory-mapped uint16-файлами, случайной выборкой окон и разделением документов по заданному разделителю.
- Decoder-only Transformer с RoPE, RMSNorm, SwiGLU, grouped-query attention, weight tying и переключаемой эталонной реализацией attention.
- Генерация с key/value cache, потоковый чат и HTTP-сервер с endpoint для генерации текста.
- Обучение SFT с ChatML-представлением и маскированием prompt-токенов, reward-модель, DPO и GRPO/RLVR.
- CLI, интерактивное меню, конфигурации разных размеров, возобновление обучения из checkpoint и тесты для ключевых компонентов.
Где применять
- Изучение внутреннего устройства современных языковых моделей и этапов их обучения без зависимости от transformers, trl или peft.
- Обучение небольших локальных моделей на собственном текстовом корпусе с запуском на CPU, Apple Silicon или одной CUDA-видеокарте.
- Проведение supervised fine-tuning на наборах диалогов в формате JSONL с обучением только на ответах ассистента.
- Эксперименты с reward-моделированием, DPO и GRPO для настройки поведения модели по предпочтениям или проверяемым результатам.
- Локальная демонстрация обученной модели через интерактивный чат, HTTP API и встроенные метрики perplexity и accuracy.
Темы