Квантизация и спекулятивное декодирование
Для моделей на собственном сервере: квантизация int8/int4 экономит память, а спекулятивное декодирование повышает пропускную способность
«Квантизация и спекулятивное декодирование» — бесплатный урок AI Agents на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Оптимизация моделей с самостоятельным размещением
Для моделей с открытым исходным кодом, размещённых самостоятельно, есть два основных способа повысить скорость и снизить стоимость:
- Квантизация — меньшие веса, меньше RAM/VRAM, более быстрый вывод
- Спекулятивное декодирование — генерация нескольких токенов за один шаг
Основы квантизации
Обычно модели хранятся в формате FP16 (16 бит на вес). Квантизация уменьшает число битов:
- FP16 — базовый вариант
- INT8 — в 2 раза меньше, почти незаметная потеря качества
- INT4 / Q4_K_M — в 4 раза меньше, небольшая потеря качества
- INT2 / 1.58-bit — более чем в 8 раз меньше, заметная потеря качества
GGUF и уровни квантизации
GGUF — формат, используемый llama.cpp. Распространённые уровни:
- Q4_K_M — лучший баланс между качеством и размером
- Q5_K_M — немного больше, но немного лучше
- Q8_0 — качество почти как у FP16, сжатие в 2 раза
Quantise With llama.cpp
./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M
# Or download pre-quantised from TheBloke / unsloth on HuggingFaceВлияние оборудования
Модели 8B в формате FP16 требуется около 16 ГБ VRAM. Та же модель в формате Q4 помещается примерно в 5 ГБ VRAM и работает на гораздо более дешёвой GPU.
Спекулятивное декодирование
Суть приёма: небольшая «черновая» модель предлагает токены, а затем большая «целевая» модель проверяет их за один прямой проход. Часто это ускоряет работу в 2–3 раза.
from transformers import AutoModelForCausalLM
target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')
outputs = target.generate(
input_ids,
assistant_model=draft, # speculative decoding
max_new_tokens=200
)Почему это работает
Черновая модель предлагает K токенов. Целевая модель обрабатывает их все PARALLEL (за один прямой проход). Каждый принятый токен получается «бесплатно». При отклонении происходит откат, но обычно принимается большинство токенов.
Другие способы ускорить декодирование
- Декодирование с заглядыванием вперёд — несколько черновых вариантов за шаг
- Medusa — несколько голов декодирования, обученных совместно
- EAGLE — быстрое древовидное прогнозирование
Инструменты, реализующие эти возможности
- vLLM — поддерживает и квантизацию (AWQ, GPTQ, FP8), и спекулятивное декодирование
- llama.cpp — квантизация и спекулятивное декодирование с использованием черновой модели
- TensorRT-LLM — производственный сервер NVIDIA
- SGLang — быстрый сервер, удобный для пакетной обработки, с непрерывной пакетной обработкой
Непрерывная пакетная обработка
Главная особенность vLLM: обработка нескольких запросов разной длины за один прямой проход. Это значительно повышает пропускную способность производственных серверов.
Выбор уровня квантизации
Проверьте каждый подходящий уровень на YOUR оценочном наборе. Q4_K_M — отправная точка по умолчанию; выберите более высокий уровень, если качество опускается ниже порога.
Задержка на токен и пропускная способность
Разные оптимизации улучшают разные показатели:
- Задержка одного запроса: спекулятивное декодирование
- Пропускная способность для нескольких пользователей: непрерывная пакетная обработка
- Затраты памяти: квантизация
Эффект квантизации
Каков основной эффект квантизации int4?
Итоги
Используйте квантизацию Q4 для экономии памяти и повышения скорости. Применяйте спекулятивное декодирование для уменьшения задержки. Используйте непрерывную пакетную обработку для повышения пропускной способности. vLLM и llama.cpp реализуют все три возможности.
Часто задаваемые вопросы
Урок «Квантизация и спекулятивное декодирование» бесплатный?
Да — полный текст урока «Квантизация и спекулятивное декодирование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Квантизация и спекулятивное декодирование»?
Для моделей на собственном сервере: квантизация int8/int4 экономит память, а спекулятивное декодирование повышает пропускную способность Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Квантизация и спекулятивное декодирование»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Бюджеты токенов на каждый шаг
- Маршрутизация моделей (от дешёвых к дорогим)
- Кэширование подсказок и результатов (Anthropic, Vertex)
- Квантизация и спекулятивное декодирование