Игорь Градов
Игорь Градов
8 мин
ai

Нейросети обучение с нуля: как запустить модель на одной RTX 4090 дома

Автор на Дзене или маркетолог, который хочет разобраться в обучении нейросетей с нуля, обычно упирается в два барьера: дорогое серверное железо и отсутствие русскоязычных обучающих данных (training data), то есть текстов, на которых модель учится предсказывать следующее слово.

Нейросети обучение с нуля: как запустить модель на одной RTX 4090 дома
Почему это важно

Проект nanochat от Андрея Карпати позволяет запустить полный цикл обучения языковой модели на домашнем компьютере с одной видеокартой, без облачных подписок и без массива из восьми серверных GPU.

Эксперимент, о котором пойдёт речь, проверяет конкретный вопрос: хватит ли корпуса статей Хабра, чтобы модель на полмиллиарда параметров научилась хотя бы связно продолжать русский текст. Nanochat устроен так, что пользователь задаёт один параметр (глубину сети), а остальное подбирается автоматически по закону Шиншиллы (Chinchilla scaling law, эмпирическое правило, которое связывает размер модели и объём данных, нужный для качественного обучения). Это снимает порог входа: не нужно вручную настраивать десятки гиперпараметров.

Зачем вообще обучать модель с нуля?

Готовые модели вроде YandexGPT или GigaChat решают большинство задач копирайтера. Но обучение с нуля (нейросети обучение с нуля) даёт понимание, как именно текст превращается в «знание» внутри модели, и позволяет собрать узкоспециализированный инструмент на своих данных. Для автора Дзена это способ проверить, можно ли натренировать маленькую модель на архиве собственных статей и получить генератор черновиков, который пишет в вашем стиле.

Что понадобится?

  • Видеокарта NVIDIA с поддержкой fp8 (формат пониженной точности, который вдвое экономит память). Минимум: RTX 4090 (24 ГБ). В оригинальном проекте используются 8 карт H100 по 80 ГБ, но запуск возможен и на одной домашней карте с уменьшением размера модели
  • Linux (Ubuntu 22.04 или новее). Windows поддерживается хуже: компиляция ядер Triton, которая ускоряет обучение примерно вдвое, стабильно работает только под Linux
  • Python 3.10+, PyTorch с поддержкой torch.compile
  • Набор текстов для обучения. В этом эксперименте используется корпус статей Хабра. Тексты нужны сырые, неразмеченные: модель на этапе pretrain (предварительное обучение, когда она учится продолжать текст) работает именно с «сырым» потоком слов
  • Время: от нескольких часов до нескольких суток, в зависимости от размера модели и объёма данных

Как модель превращает текст в знание?

Прежде чем переходить к пошаговой инструкции, полезно понять механику. Обучение с нуля начинается со случайных параметров. Модель получает неразмеченный текст и шаг за шагом учится предсказывать следующий токен (токен, это фрагмент слова, единица, которой оперирует модель; одно русское слово обычно разбивается на два-три токена).

Сначала модель осваивает простые закономерности: орфографию, пунктуацию. Затем начинает улавливать длинные связи: если идея заявлена в первой главе, модель учится развивать её в третьей.

Слова перед попаданием в модель разбиваются на токены, а токены превращаются в эмбеддинги (embedding, числовой вектор, который кодирует смысл слова в многомерном пространстве). Представьте огромный зал, где каждое слово висит в воздухе. Слова с похожим значением оказываются рядом: «кот» и «котёнок» почти соприкасаются, «кот» и «бетономешалка» разнесены далеко.

Классический пример с эмбеддингами

Арифметика эмбеддингов наглядно показывает, что вектора кодируют именно смысл. Из источника:

  • Вектор «Король» содержит признаки «мужчина» + «монарх»
  • Вектор «Мужчина» содержит «мужчина» + «человек»
  • Если вычесть из вектора «Король» вектор «Мужчина», остаётся чистый признак «монарх»
  • Прибавив вектор «Женщина», получаем вектор, ближайший к «Королева»

Модель не «знает» слова. Она оперирует числовыми расстояниями между смыслами.

Что происходит на выходе модели?

На выходе модель выдаёт вероятности для каждого токена из своего словаря (vocab_size, обычно от 32 до 256 тысяч). Подавляющее большинство вероятностей ниже 0,01, и только несколько токенов имеют заметный вес. Выбором конкретного токена занимается не сама нейросеть, а внешний процесс, семплинг (sampling). Семплинг добавляет случайности и разнообразия в ответ. Основные его параметры:

  • Greedy (жадный поиск): всегда берётся самый вероятный токен
  • Top-K: остаются только N самых вероятных токенов, остальные отсекаются
  • Top-P: токены набираются, пока сумма их вероятностей не достигнет порога
  • Temperature: масштабирует распределение, делая ответ более предсказуемым или более креативным

Неудачный выбор на этапе семплинга может увести даже большую модель в ошибочное направление.

Три этапа обучения языковой модели

  1. Pretrain (предобучение). Модели дают сырой неразмеченный текст, она учится продолжать фразы. Результат называется base-моделью
  2. SFT (Supervised Fine-Tuning, дообучение с учителем). Модели показывают размеченные пары «запрос пользователя, ответ ассистента» со служебными токенами, чтобы она научилась следовать инструкциям. Результат называется instruct-моделью
  3. RL / DPO (выравнивание). Модели дают пары «хороший ответ, плохой ответ», она учится усиливать сигнал правильных ответов и ослаблять неправильных

В данном эксперименте речь идёт о первом этапе: pretrain на корпусе Хабра.

Пошаговая инструкция

  1. Установите nanochat. Склонируйте репозиторий Андрея Карпати и установите зависимости:
git clone https://github.com/karpathy/nanochat.git
cd nanochat
pip install -r requirements.txt
  1. Подготовьте корпус. Соберите статьи Хабра в текстовые файлы. Формат простой: один документ на строку или один документ в файле, без разметки, без HTML-тегов. Модели нужен «сырой» текст.

  2. Выберите размер модели. В nanochat задаётся один параметр: depth (глубина, количество слоёв трансформера). Для конфигурации d16 размер модели составляет 0,5 млрд параметров. Из них примерно 0,25 млрд приходится на «эффективные» параметры, остальное занимает PLE.

  3. Запустите обучение. Nanochat подберёт остальные параметры автоматически по закону Шиншиллы:

python train.py --depth 16 --data_dir ./habr_data/
  1. Дождитесь завершения. Обучение ведётся в формате fp8, что вдвое сокращает потребление видеопамяти. Дополнительно nanochat компилирует ядра Triton через torch.compile, что ускоряет вычисления примерно в два раза по сравнению с обычным режимом.

  2. Проверьте результат. Подайте модели начало фразы на русском и посмотрите, насколько связно она продолжает текст.

Что такое PLE и зачем он нужен?

PLE (Per-Layer Embeddings) добавляет к каждому (или через один) слою трансформера дополнительный слой эмбеддингов, который работает как ассоциативная память. Этот слой обучается вместе с моделью, но почти не требует вычислительных ресурсов (FLOPs) ни при обучении, ни при инференсе (инференс, процесс, когда обученная модель генерирует ответ на запрос). По идее PLE напоминает MoE (Mixture of Experts, архитектура со «специалистами», где для каждого запроса активируется только часть параметров), но здесь слой статичный: он увеличивает ёмкость модели для хранения данных без роста вычислительных затрат.

Какие оптимизаторы используются?

Nanochat применяет гибрид двух оптимизаторов: вместо стандартного AdamW задействован связка AdamW + Muon, а вместо функции активации GELU используется более качественная SwiGLU. Автор источника также упоминает оптимизатор Gefen, который заявляет экономию памяти до восьми раз, но пока это экспериментальный инструмент.

Что ввели и что получили

Корпус статей Хабра подали на вход модели d16 (0,5 млрд параметров). После обучения модель получает начало фразы на русском и пытается связно продолжить текст. Цель эксперимента, проверить, хватит ли объёма русскоязычного датасета Хабра, чтобы модель освоила базовые паттерны: орфографию, пунктуацию, а затем более сложные связи между частями текста. На этапе pretrain модель не отвечает на вопросы, она только продолжает введённую фразу. Для работы в формате «вопрос-ответ» потребуется следующий этап: дообучение (SFT).

Частые ошибки

Путать pretrain и готовую модель. После pretrain модель лишь продолжает текст. Она не понимает инструкций и не ведёт диалог. Чтобы получить «собственный ChatGPT», нужны ещё два этапа: SFT и выравнивание.

Ожидать качества от маленького корпуса. Закон Шиншиллы говорит: чем больше модель, тем больше данных ей нужно. Архив Хабра, это проверка нижней границы. Не стоит ожидать от такой модели связных абзацев с аргументацией.

Запускать на Windows без оговорок. Компиляция Triton-ядер, дающая двукратное ускорение, стабильно работает под Linux. На Windows обучение запустится, но будет заметно медленнее.

Игнорировать fp8. Без формата пониженной точности fp8 модель на 0,5 млрд параметров может не поместиться в 24 ГБ видеопамяти домашней карты. Fp8 снижает точность, но для этапа pretrain это допустимый компромисс.

Думать, что семплинг не важен. Неудачные параметры семплинга (слишком высокая temperature, слишком широкий top-k) могут «увести» генерацию в бессвязный текст, даже если модель обучена нормально.

Что с этого вам, по ролям?

Автору Дзена. Обучение нейросети с нуля на своих текстах (нейросети обучение с нуля) пока не заменит готовые сервисы для ежедневной работы. Но понимание того, как модель учится, что такое токены, эмбеддинги и семплинг, позволяет точнее формулировать промпты (prompt, текстовый запрос к нейросети) для любого генератора текста. Вы начинаете видеть, почему модель «галлюцинирует» (галлюцинация, когда модель уверенно выдумывает то, чего не было): она выбрала маловероятный токен на этапе семплинга, и дальше пошла по ложному следу.

Маркетологу. Если вы работаете с русскоязычной аудиторией, важно знать: обучить маленькую модель на локальном корпусе реально дома, без аренды серверов. Это открывает путь к узкоспециализированным моделям для внутренних задач: генерация описаний товаров в стиле бренда, черновики рассылок, классификация обращений.

Предпринимателю в РФ. Nanochat доступен как открытый проект (опенсорс, open-source), ограничений по географии нет. Для продакшена одной домашней карты недостаточно, но для прототипа и проверки гипотезы «подойдёт ли наш корпус для обучения» это рабочий вариант. Из коммерческих сервисов для дообучения в РФ доступны YandexGPT (через Yandex Cloud) и GigaChat (через SberCloud).

Мнение редакции dzen.guru

Я запускал подобные эксперименты и скажу честно: от модели на 0,5 млрд параметров, обученной на одном корпусе Хабра, не стоит ждать связных статей. Но ценность этого упражнения в другом. Когда вы своими руками прогоняете цикл «текст, токены, эмбеддинги, вероятности, семплинг, сгенерированное слово», вы перестаёте воспринимать нейросеть как магию. Вы видите, что «творчество» модели это арифметика векторов и бросок кубика на этапе семплинга. Это знание экономит часы при работе с большими моделями: вы понимаете, почему temperature 0,2 даёт скучный, но точный ответ, а 0,9 выдаёт креатив с галлюцинациями. По моим наблюдениям, авторы, которые хотя бы раз видели процесс обучения изнутри, пишут промпты точнее и тратят на итерации вдвое меньше времени.

Честная оговорка: pretrain, это только первый из трёх этапов. Чтобы получить модель, способную вести диалог, нужны ещё SFT и выравнивание, а для них нужны размеченные датасеты, которые стоят времени и экспертизы.

Попробуйте промпт-конструктор dzen.guru

Понимание токенов и эмбеддингов помогает писать точные промпты. Наш конструктор подскажет структуру запроса для любой задачи автора.

Попробовать бесплатно

Эксперимент с Хабром и nanochat не сделает из домашнего компьютера фабрику по производству ChatGPT. Но он снимает главный психологический барьер: обучение нейросети с нуля на русском корпусе возможно за вечер, на одной видеокарте и без бюджета на облако.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Google Photos AI превращает любое видео в стилизованный ролик за пару касаний
ai

Google Photos AI превращает любое видео в стилизованный ролик за пару касаний

Google Photos второго июля запустил функцию Video Remix на базе модели Gemini Omni, которая превращает обычные видео в стилизованные ролики за несколько секунд…

4 мин
AI стартап это не только новичок: зрелые SaaS удваивают выручку, встроив ИИ
ai

AI стартап это не только новичок: зрелые SaaS удваивают выручку, встроив ИИ

Компании с приставкой «ИИ» в описании продукта набирают выручку с ускорением, которое ломает привычные венчурные графики: Mercor дошла от одного до двух…

5 мин
Средний балл взлетел с 65 до 96: кейс Брауна показал преимущества и недостатки ИИ в образовании
ai

Средний балл взлетел с 65 до 96: кейс Брауна показал преимущества и недостатки ИИ в образовании

Неожиданный эксперимент: как слепой профессор экономики разоблачил массовое списывание с помощью ИИ в одном из лучших вузов мира, просто сравнив результаты…

6 мин