Квантование моделей на ноутбучном GPU с 6 ГБ VRAM
Я попытался уместить большие языковые модели на ноутбучном GPU RTX 3050. У этой карты всего 6 ГБ видеопамяти (VRAM). Я хотел проверить, какие модели работают с 4-битным квантованием, а какие — нет.
Я использовал один скрипт для квантования трех моделей:
- Phi-3.5-mini (3.8B)
- Llama-3.2-3B
- Qwen2.5-3B (VibeThinker)
Результаты: Phi и Llama отработали хорошо. Размер Phi уменьшился с 7,6 ГБ до 2,2 ГБ за 34 минуты. Llama и VibeThinker показали схожие результаты. Эти модели легко помещаются в память.
Затем я попробовал Qwen2.5-7B. Процесс завершился ошибкой. Квантование упало на втором слое с ошибкой Out of Memory (нехватка памяти).
Почему это не удалось: Квантование GPTQ строит матрицу Гессе для каждого слоя. Для модели на 7 млрд параметров эти вычисления требуют больше памяти, чем предоставляет карта с 6 ГБ. Я попробовал несколько способов решения:
- Меньшие калибровочные датасеты: без изменений.
- Выгрузка матриц Гессе на CPU: процесс шел дольше, но все равно завершился ошибкой.
- Использование AWQ вместо GPTQ: ошибка возникла в том же месте.
- Использование только CPU: работает, но слишком медленно. На обработку одного слоя уходит около 16 минут.
Основные выводы для небольших GPU:
- Ожидайте трехкратного уменьшения размера модели.
- Для квантования на GPU ориентируйтесь на предел в 3–4 миллиарда параметров.
- Следите за объемом KV-кэша. Даже если размеры файлов схожи, объем памяти, используемый во время инференса, различается.
- Квантование потребляет больше памяти, чем сам запуск модели (serving). Следите за оперативной памятью (RAM) во время процесса.
Сравнение моделей (W4A16): • Phi-3.5-mini: 2.27 GB | 68.7 tok/s • Llama-3.2-3B: 2.26 GB | 66.0 tok/s • VibeThinker-3B: 2.07 GB | 43.9 tok/s
После квантования все три модели корректно справились с базовой математикой и логикой работы с простыми числами.
Дополнительное сообщество для обучения: https://t.me/GyaanSetuAi