Комментарии 6
Крутая история, однако нет времени.
Сколько по времени занял каждый этап?
Какой результат по отношению к начальной цели?
Где датасет для подражателей? Сколько он весит?
Почему такой выбор слоев?
Хотелось бы побольше подробностей о подготовке.
И конечной стоимость каждого этапа в часах людей, электричества и часов работы?
И чего не хватило догнать рынок пр качеству обучения?
Спасибо! По порядку: Время. Чистое время видеокарты: претрейн базы 2.1 (11.8 млрд токенов) около двух недель, дообучение базы до 2.2 (ещё 19 млрд токенов, ~10 тыс. токенов/с) около трёх недель. Сам SFT короткий: финальный прогон ~11 часов, но вместе с подбором смеси и генерацией данных ушло около трёх недель. (Данные генерировались параллельно с претрейном, а на само обучение на которое ушло несколько попыток потратилось около недели). GRPO: около 4-5 суток работы видеокарты, календарно около двух недель вместе с бенчмарками.
Результат против цели. Цель 2.2: заметно поднять качество после 2.1, сделать так, чтобы мышление помогало, а не ухудшало ответ и сохранить сильную арифметику. Мысли все еще вредят в большинстве случаев. Почему именно, наверняка не знаю, вероятно, данных мало, и сами мысли далеко не идеальные в датасете. + претрейн маленький, возможно это тоже имеет вес. Вообще мало моделей подобного размера у которых есть мышление, но например qwen 3 0.6B думает, и ему мысли помогают. (Он в ~2.5 раза больше, но чать разницы (около 155м параметров) из за большого токенизатора, который на способность мыслить почти не влияет, так что он близок по размеру).
Датасет. Претрейн собран из открытых наборов (Википедия, CulturaX, Cosmopedia, Zyda-2, код) плюс своя сгенерированная математика, на диске это около 155 ГБ текста. SFT-диалоги весят около 200 МБ (~60 млн токенов). SFT-датасеты выложу позже, когда будет готова вся линейка 2.2.
Почему такие слои. 20 слоёв × 1024 достались от 2.1. 20 x 1024 мне казалось наиболее сбалансированным, так как нет перекоса в глубину или ширину и влезает мне в память. Словарь 16k выбран, чтобы не тратить параметры на эмбеддинги. Для эксперимента я обучал модели на 90м параметров, у одной 3 слоя, и широкий эмбеддинг, у другой 48 слоев и узкий эмбеддинг. Эксперименты показали, что при том же числе параметров глубина важнее ширины, в целом многослойная версия была во всем лучше 3 слойной. Так же была 11-слойная - она тоже уступала 48 слойной, но не так сильно. поэтому в 2.3 будет 28 слоёв. Из минусов - это увеличит размер модели, примерно до 350м параметров, и чем больше слоев тем дольше учится модель - 48 слойная 90м училась вдвое медленнее чем 3 слойная. Но 20 слоев x 1024 я ставил давно, и с того момента немного оптимизировал код, так что увеличенный конфиг должен влезть в память.
Стоимость. API для генерации данных: около 3000 ₽ на 2.2 (6000 ₽ на все версии). Электричество: видеокарта RTX 4060, потребляет 115 ватт, сколько времени работала сказано выше. Сколько часов моей работы было потрачено трудно сказать наверняка, я не считал и не документировал это.
Чего не хватило до рынка. В первую очередь масштаба данных: 31 млрд токенов против 2–6 трлн у SmolLM2 и Gemma. Во вторую очередь (хотя, может, это даже важнее) - качества данных. Я не знаю какой SFT датасет у google и других, но скорее всего он больше и качественнее. Претрейн тоже у меня неидеален, буду искать более качественные данные в будущем. GRPO - то же самое, он неидеален. Так же другие модели дистиллировали из более больших, я нет. Не знаю сколько это даёт прироста, сколько это занимает времени и как реализовать, этим не занимался так что больше не скажу.
Большое спасибо за подробный ответ.
Еще вопросики возникли:
1. Почему не взяли для обучения датасет DeepSeek R1 distrill? Именно эта модель на 1.5b всех рвет по математике, а вы как я понял начали тренировку именно ради математики. И дипсик вроде бы поделились датасетом на эту модель.
2. У них еще есть очень занятный алгоритм обучения для 1.5B модельки. Даже сейчас их модель и алгоритм обучения считается лучшим. Но глядя на новые нейронки они скорее всего шагнули еще дальше, более чем за год после публикации алгоритма.
Алгоритм политики группового обучения https://github.com/vivekvar-dl/GSPO-DeepSeek-R1-Distill-Qwen-1.5B
3. Зачем грузить модель расчетами, если можно загрузить модель алгоритмами расчетов и дать ей встроенный калькулятор?
Т.е. модель делает по алгоритму программу для расчета и все это заливает в питон, скрипт и получает ответ через инструмент? (потери в данном случае меньше 5 секунд)
P.S. Жду новые публикации по обучению нейронки.
У меня есть 4090 24гб. Можем попробовать на выходных ее загрузить обучением (на неделе работает над другими проектами) . Планирую на 48гб сделать апгрейд.
Далее сможем создать MOE модель маленькую, но которая порвет весь мир по качеству прохождения тестов. С алгоритмом обучения дипсик это вполне достижимо.
Недавно прочитал статью, которая пишет, что нейронка при размышлении на русском языке имеет выше % эффективности, потому есть желание создать нейронку полностью на русском языке с кучкой экспертов и зажать ее по максималке, чтобы на 8гб памяти входило.
Другими словами даже создав маленькую нейронку на руском языке, можно позднее докрутить экспертов и сделать лучшую в мире небольшую нейронку.
Пока гиганты соревнуются в продаже крупных серверов мы сможем повторить успех дипсик и создать, что-то по настоящему стоящее, но здесь в России.
На маленькие нейронки с большим качеством всегда будет спрос из-за распределения ресурсов в мире и экономии электричества.
Хотелось бы раскрытия как имено работает GRPO, это ваш код, или питон фреймворк? Что именно он делает с весами на каждой итерации итд.
Любопытно. Если ли обучалки для сборки своей модели, которую можно обучить, скажем, программировать на языке, у которого есть спека но нет открытого кода?
Советую скормить модели на SFT датасет OpenThoughts3-1.2M и потом начать интерактивное обучение на (типо RL) игре где нужно рассуждать чтобы выигрывать
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Языковая модель с нуля на одной RTX 4060: dpp-gpt 2.2 Pro (260M), претрейн, SFT и RL