0Pricing
AI Agents · Урок

Квантизация и спекулятивное декодирование

Для моделей на собственном сервере: квантизация int8/int4 экономит память, а спекулятивное декодирование повышает пропускную способность

«Квантизация и спекулятивное декодирование» — бесплатный урок AI Agents на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Оптимизация моделей с самостоятельным размещением

Для моделей с открытым исходным кодом, размещённых самостоятельно, есть два основных способа повысить скорость и снизить стоимость:

  1. Квантизация — меньшие веса, меньше RAM/VRAM, более быстрый вывод
  2. Спекулятивное декодирование — генерация нескольких токенов за один шаг

Основы квантизации

Обычно модели хранятся в формате 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 — локальная установка не требуется.

Все уроки этого курса

  1. Бюджеты токенов на каждый шаг
  2. Маршрутизация моделей (от дешёвых к дорогим)
  3. Кэширование подсказок и результатов (Anthropic, Vertex)
  4. Квантизация и спекулятивное декодирование
← Назад к AI Agents