Repolode
FareedKhan-dev

FareedKhan-dev/train-llm-from-scratch

Практическое руководство и кодовая база на PyTorch для обучения LLM-трансформера с нуля: предобучение, SFT, reward modeling, DPO/PPO/GRPO и генерация.

Звёзды
12,328
Форки
1,816
Открытые issues
2
Последний коммит
18 дней назад

Что это?

В этом репозитории языковая модель на базе трансформера реализована с нуля на чистом PyTorch по оригинальной архитектуре «Attention is All You Need». Здесь показан весь путь от необработанного текста до чат-модели. В проект входят токенизатор BPE на уровне байтов, классический декодер в стиле GPT-2 и современный вариант с RoPE, RMSNorm, SwiGLU, grouped-query attention и Mixture of Experts. Всё написано вручную, без использования trainers из Hugging Face.

Этапы post-training тоже реализованы с нуля: supervised fine-tuning с маской loss только для ответов ассистента, reward model на основе Bradley-Terry, DPO, ORPO, KTO, PPO с GAE и GRPO. Для каждого этапа есть отдельный скрипт подготовки данных и JSON-конфиг. Небольшие пресеты, например крошечная модель TinyStories, обучаются за несколько минут на CPU ноутбука, а для более крупных конфигов потребуется GPU.

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

  • 01Реализует attention, MLP и блоки трансформера с нуля на PyTorch.
  • 02Содержит реализованный в репозитории токенизатор BPE на уровне байтов.
  • 03Охватывает SFT на чат-данных с маской loss только для ответов ассистента.
  • 04Реализует reward modeling, DPO/ORPO/KTO, PPO и GRPO.
  • 05Предлагает крошечный пресет, который обучается на CPU ноутбука без GPU.

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

  • Пошагово разобраться, как устроены языковая модель на базе трансформера и цикл её обучения.
  • В качестве эксперимента предобучить небольшую LLM на одной GPU или ноутбуке.
  • Изучить методы post-training, например DPO, PPO и GRPO, на понятной кодовой базе.
  • Сравнить классические и современные компоненты трансформера в рамках одного пайплайна.

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

  1. 1

    Клонируйте репозиторий

    git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git
  2. 2

    Перейдите в папку проекта

    cd train-llm-from-scratch
  3. 3

    Установите проект в editable-режиме

    pip install -e .
  4. 4

    Подготовив данные, обучите небольшую модель на CPU ноутбука

    python scripts/train_transformer.py --preset tiny --arch modern

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

  • Для конфигураций больших моделей требуется GPU, а модель с миллиардом параметров не поместится на бесплатной T4.
  • Некоторые этапы зависят от общедоступных наборов данных, которые нужно сначала скачать.

Темы

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

Что такое train-llm-from-scratch?
Практическое руководство и кодовая база на PyTorch для обучения LLM-трансформера с нуля: предобучение, SFT, reward modeling, DPO/PPO/GRPO и генерация. В этом репозитории языковая модель на базе трансформера реализована с нуля на чистом PyTorch по оригинальной архитектуре «Attention is All You Need». Здесь показан весь путь от необработанного текста до чат-модели. В проект входят токенизатор BPE на уровне байтов, классический декодер в стиле GPT-2 и современный вариант с RoPE, RMSNorm, SwiGLU, grouped-query attention и Mixture of Experts. Всё написано вручную, без использования trainers из Hugging Face.
train-llm-from-scratch можно использовать бесплатно? Какая у него лицензия?
train-llm-from-scratch распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
train-llm-from-scratch всё ещё поддерживается?
Активно поддерживается. Последний коммит в train-llm-from-scratch — 2 окт. 2026 г..
Для чего можно использовать train-llm-from-scratch?
Пошагово разобраться, как устроены языковая модель на базе трансформера и цикл её обучения. В качестве эксперимента предобучить небольшую LLM на одной GPU или ноутбуке. Изучить методы post-training, например DPO, PPO и GRPO, на понятной кодовой базе. Сравнить классические и современные компоненты трансформера в рамках одного пайплайна.
Как установить train-llm-from-scratch?
Клонируйте репозиторий: git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git Перейдите в папку проекта: cd train-llm-from-scratch Установите проект в editable-режиме: pip install -e . Подготовив данные, обучите небольшую модель на CPU ноутбука: python scripts/train_transformer.py --preset tiny --arch modern
Где скачать train-llm-from-scratch?
Исходный код и инструкции по установке — на GitHub: https://github.com/FareedKhan-dev/train-llm-from-scratch

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

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

NEO — семейство нативных моделей для работы с изображениями и текстом, которые обрабатывают пиксели и слова в единой плотной архитектуре без энкодера, с кодом для обучения и оценки.

90433PythonApache-2.0Обновлён 3 месяца назад