🤩Очень интересный репозиторий Modded-NanoGPT, и набор тредов о том, как спидранили обучение GPT-2 (самой маленькой версии на 125М параметров).
😎 Результат был достигнут на 8xH100 за 4.7 минуты на PyTorch вместо 45 минут в бейзлайне (llm.c). В денежном выражении это экономия с ~$15 до ~$1.56.
Представляете, обучение GPT-2 S с нуля теперь стоит $1.5 и занимает 5 минут. А обучение XL модели ~$200 и 10 часов.
😂 Стоит обратить внимание, что всё это произошло за счёт алгоритмических/модельных улучшений. Потенциально можно все эти трюки перенести обратно с Python на C чтобы получить ещё более быстрое обучение, ведь эффективность обучения на один токен у llm.c всё равно выше (где-то на 25% для GPT- 2 XL).
🐱 Самые большие оптимизации в абсолютном времени обучения на фоне изначальных 45 минут:
* Увеличение learning rate в 3 раза (хуже работает на больших моделях) + Rotary embeddings + lr cooldown - 13.6 минут
* Padding эмбеддингов нулями до размерности, которая делится на 64 😫 + Исправление GeLU на ReLU² + QKNorm + инициадизация нулями projection слоев. - 7.1 минута
* Muon optimizer - 6.5 минут
😁Работает ли это для моделей побольше?
В комментариях прикреплю результаты оптимизаций для модели GPT-2 XL 1.6 B - обучение тоже ускорилось в абсолютном значении, но не в 10, а в 2 раза. Но там и попыток спидрана меньше. Интересно это прежде всего тем, как можно решить очень конкретную задачу, если предпринять много попыток. Нет никаких гарантий, что это будет работать для моделей в сотни миллиардов параметров или других данных.
