1. Главная
  2. Блог
  3. Модели и инфраструктура
  4. Квантизация моделей: как уместить большую модель в меньшую память

Квантизация моделей: как уместить большую модель в меньшую память

15 августа 2026
11

Квантизация — уменьшение точности чисел, которыми записаны веса модели. Вместо развёрнутого представления каждое число хранится короче: грубее, зато занимает меньше памяти.

Практический смысл один и очень весомый: модель, которая не помещалась в вашу видеокарту, начинает помещаться. Или помещается модель вдвое крупнее — а более крупная модель при большем сжатии обычно работает лучше, чем маленькая без сжатия.

Плата — потеря качества. Вопрос в том, какая и заметна ли она на вашей задаче.

Сколько экономит

Порядок величины, от которого удобно отталкиваться: объём весов примерно пропорционален числу параметров, умноженному на число байт на параметр.

Уровень Байт на параметр Экономия памяти Потеря качества
Полная точность 4 нет
Половинная точность 2 вдвое практически нет
8 бит 1 вчетверо обычно незаметна
5–6 бит ~0,7 ~в 5–6 раз небольшая
4 бита ~0,5 ~в 8 раз заметна на сложных задачах
3 бита и ниже <0,5 больше часто неприемлема

Числа приблизительные: конкретные форматы различаются деталями, а служебные данные добавляют накладные расходы.

Практический ориентир: большинство рабочих развёртываний живёт на 4–8 битах. Ниже четырёх спускаются редко и только после проверки.

Расчёт полного объёма, включая память под контекст, — «Расчёт видеопамяти».

Главное правило выбора

Оно не про уровень сжатия, а про то, что сравнивать:

> Крупная модель со сжатием обычно лучше мелкой без сжатия при одинаковом объёме памяти.

Это неочевидно и часто определяет решение. Если выбор стоит между небольшой моделью в полной точности и вдвое-втрое более крупной, сжатой до 4 бит, вторая чаще выигрывает.

Причина в том, что потеря от сжатия обычно меньше, чем выигрыш от большего числа параметров. Но правило не абсолютно: проверять надо на своей задаче.

Где качество падает раньше всего

Деградация от сжатия распределяется неравномерно. Раньше и заметнее всего страдают:

Точность в деталях. Числа, даты, названия, артикулы. Модель начинает чаще ошибаться в мелочах, оставаясь связной в целом.

Длинные цепочки рассуждений. Задачи, где нужно удержать несколько условий сразу.

Соблюдение строгого формата. Заметно для конвейеров автоматизации: сжатая модель чаще нарушает схему ответа — «Структурированный вывод модели».

Редкие языки и специальная терминология. Русский страдает сильнее английского при одинаковом сжатии — это стоит учитывать.

Устойчивость на краях. Необычные, нестандартные входы обрабатываются хуже.

Что почти не страдает: общее понимание темы, связность текста, простая классификация, извлечение явно указанных данных.

Отсюда практический вывод: для простых задач сжимать можно смело, для сложных — проверять.

Как проверить потери

Единственный надёжный способ, и он занимает часы.

Возьмите свой набор из 50–100 реальных задач с известным правильным результатом.

Прогоните одну и ту же модель в нескольких уровнях сжатия на одинаковом промпте.

Сравните по классам задач, а не в среднем. Часто картина такая: на простых случаях разницы нет вовсе, на сложных — заметна.

Проверьте отдельно соблюдение формата, если это важно для конвейера.

Замерьте скорость. Сжатие обычно ускоряет работу, потому что меньше данных читается из памяти, — это часть выигрыша.

Методика — «Тестирование модели на своей задаче».

Разбор: как выбирали уровень сжатия

Задача. Внутренний ассистент по документации. Оборудование — одна видеокарта, купленная до проекта. Крупная модель в полной точности в неё не помещалась.

Что сравнивали. Одну и ту же модель в четырёх вариантах: 8 бит, 6 бит, 5 бит, 4 бита. Плюс модель вдвое меньше в 8 битах — как альтернативу.

Набор — 90 реальных вопросов, разделённых на три класса: простые справочные, вопросы с техническими обозначениями, вопросы, требующие сопоставить несколько условий.

Что получилось.

Вариант Простые С обозначениями Составные Скорость
8 бит эталон эталон эталон базовая
6 бит без изменений без изменений чуть хуже быстрее
5 бит без изменений немного хуже заметно хуже ещё быстрее
4 бита немного хуже заметно хуже плохо самая быстрая
Модель вдвое меньше, 8 бит заметно хуже плохо плохо быстрая

Что решило выбор. Два наблюдения.

Первое: более крупная модель даже в 4 битах обошла вдвое меньшую в 8 битах почти по всем классам. Правило подтвердилось.

Второе, менее ожидаемое: провал на вопросах с техническими обозначениями начинался раньше, чем на остальных. Модель путала похожие обозначения оборудования — ровно то, о чём говорилось выше про точность в деталях. Для этой базы знаний такие вопросы были основными.

Выбрали 6 бит — компромисс, при котором обозначения ещё не страдали, а память экономилась достаточно.

Побочный результат. Освободившейся памяти хватило, чтобы увеличить длину контекста, и это дало прирост качества больше, чем разница между уровнями сжатия. То есть выигрыш пришёл не оттуда, откуда ожидали.

Что стоит забрать. Уровень сжатия подбирается не по общим рекомендациям, а по тому, какой класс задач у вас основной. И освободившуюся память стоит потратить осмысленно, а не просто оставить свободной.

Практические замечания

Сжатие не всегда бесплатно по скорости. Обычно ускоряет, но некоторые форматы требуют дополнительных вычислений при чтении весов. Замерять надо, а не предполагать.

Не все среды запуска поддерживают все форматы. Совместимость проверяется до выбора — «vLLM, Ollama, llama.cpp».

Готовые сжатые версии различаются. Одна и та же модель, сжатая разными людьми разными методами, работает по-разному. Если результат неожиданно плох, стоит попробовать другую сборку.

Сжатие не заменяет выбор модели. Плохо подходящая модель не станет подходящей от сжатия.

Для облачных моделей вопрос не стоит — там сжатие на стороне поставщика и вас не касается.

Частые вопросы

Что такое квантизация модели?

Это уменьшение точности чисел, которыми записаны веса: каждое хранится короче и занимает меньше памяти. Практический эффект — модель, не помещавшаяся в видеокарту, начинает помещаться, обычно ещё и работая быстрее. Плата — потеря качества, величина которой зависит от уровня сжатия и от задачи.

Какой уровень сжатия выбрать?

Большинство рабочих развёртываний живёт на 4–8 битах. Начинать разумно с 8 бит, где потеря почти незаметна, и спускаться ниже, проверяя качество на своём наборе задач. Ниже четырёх бит обычно не опускаются без веской причины.

Что лучше: большая сжатая модель или маленькая без сжатия?

При одинаковом объёме памяти обычно выигрывает более крупная сжатая. Потеря от сжатия чаще оказывается меньше выигрыша от большего числа параметров. Правило не абсолютное, и его стоит проверить на своей задаче, но начинать проверку разумно именно с него.

Как понять, что сжатие испортило качество?

Прогнать один и тот же набор реальных задач на разных уровнях сжатия и сравнить по классам задач отдельно. Раньше всего страдают точность в деталях — числа, даты, обозначения, — длинные рассуждения и соблюдение строгого формата ответа.

Влияет ли сжатие на русский язык сильнее?

Как правило, да: на менее представленных в обучении языках деградация заметнее, чем на английском. Это дополнительный довод в пользу проверки на своих русскоязычных данных, а не переноса чужих рекомендаций.

Ускоряет ли сжатие работу модели?

Обычно да, потому что из памяти читается меньше данных. Но выигрыш зависит от формата и среды запуска: некоторые форматы требуют дополнительных вычислений при распаковке весов. Скорость стоит замерить, а не предполагать.

Что дальше

Полный расчёт памяти, включая контекст, — «Расчёт видеопамяти». Выбор среды запуска и поддержка форматов — «vLLM, Ollama, llama.cpp». Экономика размещения — «Облако или свой сервер».

Подбор модели, уровня сжатия и оборудования под задачу — часть работы по разработке и внедрению ИИ.