- BrainTools - https://www.braintools.ru -
Современные языковые модели (LLM) содержат миллиарды параметров, что создает огромные требования к вычислительным ресурсам. Например:
BERT: <1 млрд параметров
GPT-2: >1 млрд параметров
GPT-3: сотни млрд параметров
DeepSeek: 671 млрд параметров
Такие модели сложно запускать не только на домашних компьютерах, но даже на серверах среднего уровня. Квантизация – это метод уменьшения размера моделей для более эффективного использования памяти [1].
Формат |
Размер |
Применение |
---|---|---|
FP64 |
64 бита |
Научные вычисления с высокой точностью |
FP32 |
32 бита |
Стандартный формат для нейросетей |
FP16 |
16 бит |
Экономия памяти в 2 раза |
BF16 |
16 бит |
Похож на FP32 по структуре, но экономнее |
Формат |
Размер |
Экономия памяти |
---|---|---|
INT8 |
8 бит |
В 4 раза меньше FP32 |
INT4 |
4 бита |
В 8 раз меньше FP32 |
1.58-бит |
~1.58 бита |
До 20 раз меньше FP32 |
💡 Существуют даже эксперименты с квантизацией до 2 бит и 1 бита!
Квантизация преобразует числа с плавающей запятой в целочисленный формат с меньшей точностью.
Определяются границы (min/max) для весов модели
Все веса за пределами этих границ обрезаются до крайних значений:
Все значения > max → 127
Все значения < min → -128
Остальные значения распределяются по диапазону от -128 до 127 (для INT8)
Более частые значения получают более плотное распределение
Модель может выдавать некорректные результаты
Модель может зацикливаться
Потеря точности
Современный подход, при котором модель на этапе обучения [2] “знает”, что будет квантизирована, что позволяет сохранить качество работы.
GGUF – популярный формат для хранения квантизированных моделей, разработанный создателем Llama.cpp.
- Магические байты (4 байта)
- Версия (сейчас v3)
- Количество тензоров
- Метаданные (пары ключ-значение)
- Тензоры
- Контрольная сумма
✅ Один файл содержит всё необходимое (веса, метаданные, токенизатор)
✅ Memory mapping для быстрой загрузки моделей
✅ Удобное хранение метаданных
✅ Встроенная поддержка различных типов квантизации
DeepSeek – крупная языковая модель с 671 млрд параметров:
Оригинальный размер: 720 ГБ
После квантизации до 1.58 бит: 131 ГБ
Используются только 3 значения: -1, 0, 1
log₂(3) ≈ 1.58 бита
Не все слои квантизируются одинаково (иначе модель зацикливается)
Минимум 20 ГБ оперативной памяти
131+ ГБ свободного места на диске
Для комфортной работы: сумма RAM + VRAM ≥ 80 ГБ
На CPU: очень медленно, но работает
RTX 4090 (24 ГБ VRAM): ~9-10 токенов/сек
Две H100: 13-14 токенов/сек (1 пользователь) или до 140 токенов/сек (много пользователей)
Интересный эксперимент: модель написала игру в стиле Flappy Bird до и после квантизации:
Оригинальная модель: код запускается, есть различные фигуры, подсчет очков
Квантизированная до 1.58 бит: практически такое же качество!
Квантизация – мощный метод для уменьшения размера LLM без значительной потери качества. С развитием техник квантизации всё более крупные модели становятся доступными для запуска на обычном оборудовании.
Автор: rk-helper
Источник [3]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/12617
URLs in this post:
[1] памяти: http://www.braintools.ru/article/4140
[2] обучения: http://www.braintools.ru/article/5125
[3] Источник: https://habr.com/ru/articles/886246/?utm_source=habrahabr&utm_medium=rss&utm_campaign=886246
Нажмите здесь для печати.