Коллеги из страны, подарившей ранее миру шедевры Моцарта и Штрауса, а еще и GPTQ, выкатили на неделе либу
llm.q для quantization-aware training LLMок, написанную на чистом C/C++.Данный проект по существу является адаптацией
llm.c от Карпатого под обучение квантизованных моделей.Чекпоинты с обучения сохраняются в
.safetensors формат, т.е совместимый с 🤗 экосистемой.В либе реализован небходимый базовый функционал для обучения LLM:
📌 Zero (1-3)
📌 Градиентный чекпоинтинг
📌 Оффлоадинг
📌 Разные опции для mixed-precision
На текущий момент, поддерживается обучение в half precision, INT8, FP8. Было бы прикольно в будущем увидеть реализацию обучения для FP4 форматов, поддерживаемых Blackwell, со всеми прибамбасами для стабилизации обучения.
Сравнения по скорости обучения с популярными фреймворками (accelerate / deepspeed) я не увидел. Представлены только абсолютные числа по времени обучения для модели заданной архитектуры. Удается достичь примерно 40-60% SOL (speed-of-light, максимально возможной производительности на заданном железе). На маленьких моделях fp8 почти не дает ускорения обучения, но с ростом размера нейронки - профит становится заметнее.
Интересно, как дальше будет развиваться проект. Более чем сильно, учитывая, что писал все человек в одну харю)