Обновить

habrGPT. Обучим LLM 0.5B с нуля на статьях Хабра с помощью nanochat от Карпатого. Обучение fp8 дома и сравнение с bf16

Время на прочтение17 мин
Охват и читатели15K
Всего голосов 69: ↑69 и ↓0+79
Комментарии25

Комментарии 25

Прочёл с удовольствием, словно остросюжетный детектив, автору огромное спасибо за проделанный труд!

Планируется ли релиз скриптов обучения, генераторов датасета и весов в публичный доступ или эта модель скорее эдакая лабораторная работа?

Спасибо, хотел как раз не сразу результат, а для тех кому интересна тема обучения LLM дома, чтобы было побольше материала, тупики, ошибки и гипотезы.

Чекпоинты загрузил, обновил статью. Поддержка gguf только в форках, поэтому запуск через nanochat, нужно только разобраться куда ложить файлы и как запустить.

наверное на википедии вообще шикарное качество получится.

или попросить chatgpt выгрузить статьи для обучения моделей :)

Оффлайн версию Википедии можно подключить к модельке например через openzim-mcp. Недавно пробовал с вебмордой llama.cpp, почти мгновенно даёт вижимку из любой статьи.

Нет, тулинг это одно, обучение это другое. Обучить было бы любопытно.

Респект! Очень интересно

Пока пробежался по-диагонали, почитаю вдумчиво на выходных. Могу сразу сказать - очень впечатляет проделанная работа и системный подход.

Черт! неожиданно, что за такое короткое время, на таком слабом оборудовании, обучается модель которая в принципе инструкции выполняет хоть как то.

Следующий шаг - обучение с учителем (другая модель или агент) а так же генерация датасета (как я понимаю это и есть дистиляция), обучение reasoning.

Я не знаю, у меня ощущение что те старые модели были даже немного глупее. Тут прям очень достойные ответы учитывая что дома все делалось.

очень много решает обучающая выборка и алгоритмы, они на порядок круче тех что были 5-10 лет назад

Спасибо за статью! Я только поверхностно представлял как работают нейросети, эмбеддинги и все такое, но после прочтения захотелось изучить эту тему глубже и посмотреть что можно сделать на 4070)

Удалось целиком сграббить хабр ? Есть ли в виде с ссылками на графику и комментами ? Какой получился объем ?

какие интересные у вас датасеты там

странно что есть яндекские вопросы и ответы но нет тостера (qna.habr.com)

Вот буквально минут 10 назад он у меня 504 возвращал - прямо интересно, не связано ли?

Это не полный датасет хабра, в статье есть ссылка на датасет, которую выше уже продублировали. Датасет собрал @Takagi, его же датасет IlyaGusev/saiga_preferences я использовал для SFT.

Отличная статья, спасибо!

Было бы интересно узнать как на эту модель повлияет grokking. Пару лет назад такой хайп был, а потом все как-то стихло.

Обычно модельки меньше 5b так или иначе выдают осмысленный бред в 95% случаев. Было бы интереснее лично для меня обучить lora какой нибудь модельки (кстати там отдельная тема что у большинства моделей все очень плохо с выводом больше 2-3к токенов за раз, есть что то типа long writer Zero 32b, но он очень уж сухонький, под мою задачу с художкой в свое время не подошёл, а вот для хабра вероятно вполне) на 20-30млрд параметров в формате пар, промт к статье-сама статья (можно еще и комменты в конце генерить), для генерации промтов использовать deepseek v4, по стоимости +- приемлемо.

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

И кстати может качество будет получше если обучать на меньшем количестве токенов, но уже предобученную модельку? А то обучать с нуля обычно мало смысла...

ps. Интересно, если прогнать датасет через фильтр сгенерированного текста, какой процент отвалится...

pps. Неужто проблема с torchaudio не вылезла? Решается вроде относительно легко но как же сцуко бесит каждый раз.

Я ожидал что моделька меньше миллиарда вообще ни на что способна не будет, и чисто мешанину из тематических слов едва осмысленную будет выводить.

На Хабре разносторонний и информационно насыщенный контент, и это сильно влияет на качество, как бы не в разы уменьшает объем контента для обучения и размер модели.

Вот статья на Хабре с оценками влияния качества обучающего датасета: Учебник - всё, что вам нужно

И кстати может качество будет получше если обучать на меньшем количестве токенов, но уже предобученную модельку? А то обучать с нуля обычно мало смысла…

Есть и такое. У меня готова, но не опубликована, статья, где я дообучал старую ruGPT3 XL 1.3B (как раз @efreelancer недавно публиковал статью, где сделал для этой модели конвертацию в современный формат и поддержку gguf). Это pretrain 2020-2021 года обученный на 80B токенов, который умеет только продолжать текст, и выглядит это часто не как ответ, а как повествование:

Создавался этот pretrain во времена, когда ещё не было понимания, как заставить хороший pretrain вести диалог в чате, следовать инструкциям. Это время за 2 года до выхода ChatGPT и первой InstructGPT. И после дообучения на SFT такая модель на 80B токенов куда богаче по возможностям, она больше знает, хорошо следует инструкциям, может работать с текстом, даже решать головоломки:

И чтобы было понятно, какой уровень получился у модели, то сравнил её с Gemma3 1B 2025 года, при чем получилось не всегда в пользу Gemma3.

Задача на внимательность, Gemma3 1B провалил:

Про квантовую причину горения Солнца, Gemma3 1B дал не правильное название явления:

Сколько времени ушло на обучение такой модели?

Финальный pretrain ~9 часов и ещё пол часа на sft и dpo.

а на подбор гиперпараметров процесса обучения?

Там без подбора, гиперпараметры в nanochat выставляются автоматически, сам Карпатый уже давно занимается оптимизацией параметров обучения, поэтому выставлены по его личному опыту, закону Шиншиллы и так далее. Только на DPO пришлось снижать, но в nanochat вообще нет DPO этапа.

Если в целом на все эксперименты, то ушел где-то месяц, я обучал не только nanochat, обучал и MoE подобные модели, и чистый 0.25B на кастомной архитектуре которую собирал из разных новых архитектур, и даже пытался обучить 7B модельку, которую с помощью многих ухищрений удалось вместить в 32Гб, но скорость обучения была 500 t/s. Выше уже писал про дообучения 1.3B претрейна, в целом dense 1.3B вполне можно дома обучать.

Пост хороший!

Вероятно после него получил следующее письмо от legal@habr.com

Добрый день, Илья

Просим в кратчайшие сроки удалить дата-сет Хабра https://huggingface.co/datasets/IlyaGusev/habr со всех известных носителей. Создание, существование и использование, в т.ч. распространение этого дата-сета нарушает сразу много всего: интеллектуальные права Хабра, интеллектуальные права каждого (!) автора, регулирование персональных данных (ведь там ФИО и никнеймы)…

Сообщите, пожалуйста, когда удалите.

Как видите, на данном этапе мы не составили полноценную претензию со ссылками на законы, возможными санкциями и так далее. Нарушение считаем очевидным и надеемся на его оперативное устранение.

C наилучшими пожеланиями, Habr Legal Team

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации