Перейти к содержанию
modelium.
Начать с задачи
←

SGLang и квантизация: готовые веса или FP8 при загрузке

Для готовых квантованных весов SGLang читает метод из конфигурации чекпойнта: повторно задавать `--quantization` обычно не нужно. Для исходных весов отдельный путь — online FP8 с `--quantization fp8` на совместимом GPU. Не смешивайте квантизацию весов с KV-кешем; работоспособность и качество ответа проверяйте на собственной модели и нагрузке.

Проверено по первоисточникам 4 октября 2026 года: SGLang Git 7a719e9, Qwen AWQ b250375, Qwen3 c1899de. Ни одна команда ниже не запускалась Modelium; совместимость GPU и качество конкретной модели нужно подтвердить на своём стенде s1s5s8.

Что выбрать: готовые веса или квантизацию при запуске?

Если у модели уже опубликован совместимый квантованный чекпойнт, начните с него. SGLang читает метаданные метода из файлов модели и рекомендует не добавлять к такому запуску --quantization второй раз. AWQ и GPTQ в документации относятся к предварительной подготовке весов, где используются данные для калибровки; online FP8 — другая процедура, масштабы вычисляются при загрузке исходных весов. Авторы рекомендуют offline-вариант как более удобный путь, но это не гарантия скорости или качества для вашего устройства s1.

Выбор зависит от точного ID и ревизии модели, её формата и конфигурации, GPU/backend, доступной памяти и вашей задачи. Не переводите размер загружаемых файлов в «минимум VRAM»: память занимают также KV-кеш, рабочие буферы и обслуживаемые запросы. Для оценки есть отдельная методика; стартовой точкой служит обычный сервер SGLang s1s4.

Задача → текстовая instruction-модель → конкретный чекпойнт → совместимый GPU и SGLang → API-ответ → сравнение качества на ваших запросах. Здесь основной следующий шаг — проверить ответ локального API после выбора пути, а не перепаковывать веса без проверки.

Как распознать готовый AWQ-чекпойнт?

У Qwen/Qwen2.5-7B-Instruct-AWQ в закреплённом config.json поле quantization_config содержит quant_method: awq, bits: 4, group_size: 128 и version: gemm. Это конкретный пример весов AWQ, а не доказательство, что любая «Qwen 7B» уже квантована. Репозиторий публичный, его карточка указывает Apache-2.0; условия каждого другого чекпойнта проверяйте отдельно s5s6.

Важная ошибка источника: в README этого AWQ-репозитория встречается фраза про 72B, хотя имя репозитория и параметры карточки говорят о 7B-семействе, а config.json указывает соответствующую архитектуру. Это расхождение нельзя копировать как спецификацию; при выборе модели сверяйте точный репозиторий и машинно-читаемую конфигурацию s5s6.

По документации SGLang запуск уже подготовленных весов выглядит как sglang serve Qwen/Qwen2.5-7B-Instruct-AWQ --host 127.0.0.1 --port 30000 без --quantization. Сначала установите SGLang по инструкции для вашей платформы и проверьте, что модель реально загрузилась: поддержка метода в общей матрице NVIDIA/AMD не означает, что конкретное ядро работает на любом GPU. Релиз/сборку runtime и модель закрепите в собственном журнале теста; порт наружу ради локальной проверки не открывайте s1s2s4s5.

Когда нужен online FP8 и что он не делает?

Если исходный чекпойнт не квантован, официальное руководство показывает --quantization fp8 для преобразования весов при загрузке; это не режим для уже подготовленного AWQ. Например, для доступной текстовой модели Qwen/Qwen3-0.6B возможный редакционно составленный, не испытанный вариант команды — sglang serve Qwen/Qwen3-0.6B --quantization fp8 --host 127.0.0.1 --port 30000. Синтаксис запуска и флаг взяты из разных разделов документации: их сочетание с данным чекпойнтом требует фактической проверки совместимости GPU, версии SGLang, загрузки модели и ответа API. Не выдавайте эту команду за гарантированно рабочую связку s1s2s4s8.

В официальной матрице способы отличаются по платформе и бэкенду: fp8, awq, gptq_marlin, gguf — не взаимозаменяемые имена одного формата. Например, gptq как отдельный метод указан для Ascend и некоторых Intel CPU, а на NVIDIA/AMD руководство направляет к gptq_marlin; gguf на этой ревизии не отмечен как поддержанный для AMD. Не переносите рецепт CUDA на AMD или CPU, не сверившись с матрицей конкретной сборки s1.

Квантизация весов через --quantization не равна квантизации KV-кеша через --kv-cache-dtype. Для FP8 KV-кеша есть отдельные scales; если они не переданы и отсутствуют в чекпойнте, документация предупреждает о значении по умолчанию 1.0 и возможной потере качества. Не добавляйте настройку KV-кеша как «бесплатное» продолжение процедуры весов. У экспериментов должны быть разные baseline и проверка результата s7s4.

Как проверить результат, а не только старт процесса?

  1. Запишите версию SGLang, GPU/драйвер и ревизию модели; проверьте config.json и лицензию конкретных весов. Для NVIDIA-пути установочная инструкция на этой ревизии описывает Linux, Python 3.10+ и совместимый CUDA 13 драйвер. Это требования данного пути установки, не универсальный минимум для каждого CPU/AMD сценария s2s5s6.
  2. На первом проходе поднимите базовый сервер на 127.0.0.1:30000, дождитесь готовности. Затем отдельно запустите AWQ без флага либо исходную модель с online FP8. Если загрузка не проходит, сохраните точную ошибку и проверьте метод квантования и платформу; не меняйте произвольно сразу модель, флаг и версию runtime s1s3s4.
  3. Отправьте локальный POST на http://127.0.0.1:30000/v1/chat/completions с JSON-полями model (точный ID загруженной модели) и messages (тестовый вопрос). Документация quickstart проверяет поле choices[0].message.content; HTTP 200 без содержательного ответа — ещё не успешная проверка вашей задачи. Для повтора используйте одинаковые входы и параметры генерации s3.
  4. Сравните ответы исходных и квантованных весов на наборе ваших вопросов: правильность фактов, формат, отказы и чувствительные к ошибкам случаи. Лишь после этого измеряйте память и задержку при одинаковом контексте и параллелизме; общее обещание «вдвое быстрее» из меньшего числа бит не следует. Без собственного прогона этот гайд не сообщает ни точность, ни выигрыш памяти, ни минимальную VRAM s1s7.

Если нужны CPU или другое железо, не запускайте на нём NVIDIA-пример вслепую. Если цель — просто работающий API, вернитесь к базовому гайду SGLang; при сравнении архитектур серверов используйте SGLang или vLLM и одинаковые входы. После теста остановите сервер через Ctrl+C, как в quickstart s2s3.

Источники

  1. SGLang — Quantization: offline/online, platform matrix — revision 7a719e9a65e7f52b012ab37211b5f174e5d3d38d. Получено 04.10.2026.
  2. SGLang — Installation and supported environment — revision 7a719e9a65e7f52b012ab37211b5f174e5d3d38d. Получено 04.10.2026.
  3. SGLang — Quickstart: local API request — revision 7a719e9a65e7f52b012ab37211b5f174e5d3d38d. Получено 04.10.2026.
  4. SGLang — Server Arguments — revision 7a719e9a65e7f52b012ab37211b5f174e5d3d38d. Получено 04.10.2026.
  5. Qwen/Qwen2.5-7B-Instruct-AWQ — config.json — revision b25037543e9394b818fdfca67ab2a00ecc7dd641; Машинно-читаемая конфигурация приоритетнее опечатки 72B в README карточки.. Получено 04.10.2026.
  6. Qwen/Qwen2.5-7B-Instruct-AWQ — model card — revision b25037543e9394b818fdfca67ab2a00ecc7dd641; Карточка помечает Apache-2.0, но содержит внутреннюю опечатку о 72B; размер не взят из неё.. Получено 04.10.2026.
  7. SGLang — Quantized KV Cache — revision 7a719e9a65e7f52b012ab37211b5f174e5d3d38d. Получено 04.10.2026.
  8. Qwen/Qwen3-0.6B — model card — revision c1899de289a04d12100db370d81485cdf75e47ca. Получено 04.10.2026.