Потратил полгода на обучение своей ии с нуля, вот что вышло

от автора

Последние полгода я обучал свою небольшую нейросеть с нуля на одной rtx 4060. Сжег кучу времени, перебрал кучу данных и в итоге дошел до версии 2.1 — это крошечная LLM всего на 260 млн параметров.

Зачем вообще было это делать? Мне просто стало интересно, можно ли научить такую микроскопическую нейронку (а более большую я обучить и не мог) хоть какой‑то логике.

Что в итоге вышло:

  • Во‑первых, она умеет считать по разрядам. Она может считать большие числа, которые другие модели того же размера считают неверно.

(после файн тюнинга она стала считать немного хуже, так что может ошибаться в длинных примерах. В будущих версиях ошибки будут исправлены.)

(после файн тюнинга она стала считать немного хуже, так что может ошибаться в длинных примерах. В будущих версиях ошибки будут исправлены.)
  • Во‑вторых, она умеет разбивать слова по буквам, считать количество букв в словах. Например, может сказать сколько букв «r» в слове «strawberry».

(в длинных словах могут быть ошибки, также если сформулировать запрос иначе может не понять что сделать)

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

что под капотом:

  • Архитектура: Llama 3 (20 слоев, размерность 1024, 16 голов). Контекст 4096, словарь 16384.

  • На претрейне скормил ей 11.8 млрд токенов (батч 512k).

  • На SFT ушло больше 16.5 млн токенов качественной синтетики, которую я сам генерировал через Gemma 4, Qwen 3.5 и DeepSeek v4.

Немного о процессе обучения и данных: Обучать с нуля даже 260М модель на домашней RTX 4060 (с её 8 ГБ видеопамяти) — то еще удовольствие. Чтобы впихнуть невпихуемое, пришлось повозиться с размером батча (накапливал градиенты) и оптимизаторами. Сам претрейн занял у меня около 3 недель. Изначально модель должна была быть немного больше, на ~300м параметров, но из‑за того что не хватало памяти был включен gradient_checkpoint, который замедлял обучение, чтобы ускорить его я отрезал нейросети 4 слоя (изначально было 24) и продолжил учить намного быстрее.

Отдельная история — это данные. Для базового обучения (11.8 млрд токенов) я взял википедию на ru/en/fr, датасет culturaX, Cosmopedia и код. А чтобы научить её нормально считать и бить слова по буквам, я сгенерировал скриптом поразрядную математику и спеллинг в формате ChatML и учил ее считать и писать так сразу еще на претрейне. В предыдущих версиях я на претрейне давал ей сырые примеры, без формата чата, и в итоге после файнтюнинга когда формат менялся она ломалась и считала неверно.

Для файнтюнинга я не брал готовые датасеты, а сгенерировал свои при помощи локальной Gemma 4, Qwen 3.5, и для сложных запросов Deepseek 4 flash по апи. На сбор и генерацию данных в сумме ушло около месяца.

Модель можно запустить через Lm Studio, как чат версию так и базовую модель.

Название модели: dpp‑gptV2.1 Pro.

Ссылка на чат версию: https://huggingface.co/dikiyplayerpig/dpp‑gpt‑V2.1-Pro-260m

Ссылка на base версию (просто продолжает текст): https://huggingface.co/dikiyplayerpig/dpp‑gpt‑V2.1-base-260m

Кстати, сейчас я обучаю flash версию на ~90м параметров. Она почти в 3 раза меньше, посмотрим сможет ли она считать. Буду очень рад любым советам и критике от тех, кто глубоко шарит в ML и обучении моделей. Если у вас есть идеи, как лучше фильтровать датасеты, оптимизировать процесс или улучшить математику у таких малюток — добро пожаловать в комменты!

График лосса. Во время обучения (оно длилось больше 3 недель) данные немного менялись, из за этого есть скачки и просадки лосса. Примерно на 23000 шаге начался файн тюнинг.

График лосса. Во время обучения (оно длилось больше 3 недель) данные немного менялись, из за этого есть скачки и просадки лосса. Примерно на 23 000 шаге начался файн тюнинг.
Лучший стих, написанный dpp-gpt. (обычно рифмы нет вообще).

Лучший стих, написанный dpp‑gpt. (обычно рифмы нет вообще).

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

ссылка на оригинал статьи https://habr.com/ru/articles/1049464/