# vLLM max-logprobs: ограничить выдачу вариантов токенов в API

Источник: https://modelium.tech/zhurnal/vllm-max-logprobs/

`--max-logprobs` ограничивает число оценок вариантов следующего токена, которые сервер vLLM разрешает вернуть по запросу. Чтобы увидеть их в ответе Chat Completions, клиент должен передать `logprobs: true` и `top_logprobs`; один флаг запуска этого не делает. Числа относятся к выбору частей текста, а не к достоверности фактов в ответе модели.

Хотите увидеть, какие части текста модель могла выбрать при ответе? vLLM может вернуть **logprobs** — числовые оценки вероятности токенов (небольших частей текста), а также список альтернатив для каждой позиции. Это помогает изучать генерацию, но **не доказывает**, что ответ правдив: даже высокий балл токена не сверяет факты с источником. [s2](#src-s2) [s4](#src-s4)

**Проверено по документации и коду vLLM v0.32.0 на 1 ноября 2026 года.** Это инженерная инструкция для Linux с уже работающим локальным vLLM и совместимой видеокартой, не домашний рецепт. Для учебного примера взята модель из официального Quickstart `Qwen/Qwen2.5-1.5B-Instruct`; первая загрузка модели требует сети, а пригодность вашей памяти здесь не измерялась. Редакция не запускала vLLM, GPU или модель; локальность других компонентов вашего окружения не проверялась. [s6](#src-s6)

## Чем отличается лимит сервера от запроса клиента?

Флаг запуска `--max-logprobs` ограничивает, сколько оценок вариантов токенов допускается вернуть на позицию. В v0.32.0 значение по умолчанию — 20, а `-1` снимает предел и, согласно предупреждению в коде, **может вызвать нехватку памяти** при больших ответах или словаре. Не ставьте `-1` ради учебного просмотра двух вариантов. На стороне клиента `logprobs: true` включает поле оценок в ответе Chat Completions, а `top_logprobs: 2` запрашивает два верхних варианта. Положительное `top_logprobs` без `logprobs: true` отклоняется; запрос сверх серверного лимита также отклоняется при проверке параметров. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3) [s5](#src-s5)

## Как увидеть оценки на своём сервере?

Сначала по [гайду запуска](/zhurnal/vllm/) получите обычный ответ на закрытом тестовом стенде. Не открывайте этот пример в публичную сеть и не передавайте реальные секреты. Для отдельного учебного запуска на Linux выполните `vllm serve Qwen/Qwen2.5-1.5B-Instruct --host 127.0.0.1 --max-logprobs 2`. Дождитесь готовности; если загрузка не удалась, не переходите к запросу ниже. Указанное число — учебный предел возвращаемых альтернатив, не требование к GPU и не обещание производительности. [s5](#src-s5) [s6](#src-s6)

В другом терминале запросите один короткий ответ: `curl -fsS http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"Qwen/Qwen2.5-1.5B-Instruct","messages":[{"role":"user","content":"Назови цвет неба в ясный день одним словом"}],"max_completion_tokens":8,"logprobs":true,"top_logprobs":2}'`. Ожидайте JSON с `choices[0].logprobs.content`: у сгенерированных токенов смотрите `token`, `logprob` и `top_logprobs`. Это **форма ответа по реализации**, а не обещание конкретного русского слова или двух альтернатив в каждом отдельном случае. Если вы получили ошибку лимита, сравните запрошенное `top_logprobs` с серверным `--max-logprobs`; если нет ответа модели, сначала проверьте запуск и [имя модели](/zhurnal/vllm-served-model-name/). [s2](#src-s2) [s3](#src-s3) [s4](#src-s4) [s6](#src-s6)

## Что эти числа не показывают?

Сверяйте фактический ответ с исходным учебным вопросом вручную: оценки относятся к токенам на отдельных шагах генерации, а не к правильности всего предложения. Изменение лимита выдачи вариантов само по себе не является оценкой качества, скорости или приватности модели; сервер следует испытывать на своих данных отдельно. Для другого локального приложения есть [отдельный разбор Ollama](/zhurnal/ollama-api-logprobs/). [s1](#src-s1) [s4](#src-s4)

## Источники

1. [vLLM v0.32.0 — ModelConfig.max_logprobs](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/config/model.py) — получено 2026-11-01
2. [vLLM v0.32.0 — ChatCompletionRequest и валидация](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/entrypoints/openai/chat_completion/protocol.py) — получено 2026-11-01
3. [vLLM v0.32.0 — проверка SamplingParams.logprobs](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/sampling_params.py) — получено 2026-11-01
4. [vLLM v0.32.0 — сериализация Chat Completions logprobs](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/vllm/entrypoints/openai/chat_completion/serving.py) — получено 2026-11-01
5. [vLLM v0.32.0 — serve CLI](https://docs.vllm.ai/en/v0.32.0/cli/serve/) — получено 2026-11-01
6. [vLLM v0.32.0 — Quickstart](https://github.com/vllm-project/vllm/blob/5df63a7203cdb9328d824a27b682e77c7b9928be/docs/getting_started/quickstart.md) — получено 2026-11-01
