﻿# llama.cpp: как связать общий KV pool и лимит контекста каждого слота

Общий KV pool llama.cpp и контекст одного параллельного слота нужно учитывать отдельно.

Автор: Команда Retrivium
Обновлено: 2026-11-01
Канонический URL: https://retrivium.ai/ru/journal/llama-cpp-unified-kv-slot-limits/
Language: ru

Общий KV pool llama.cpp и контекст одного параллельного слота нужно учитывать отдельно. Суммарное количество токенов в пуле не означает, что каждый запрос может использовать весь объем одновременно с остальными. Проверьте правила `kv-unified-per-slot`, число slots и фактические ограничения runtime. Приемка должна подтверждать индивидуальный контракт запроса и совместное выполнение, а не только успешный старт сервера с большим общим значением context.

## Разведите pool и slot

В [определении аргументов llama.cpp](https://raw.githubusercontent.com/ggml-org/llama.cpp/master/common/arg.cpp) `kv-unified-per-slot` задает предел контекста слота; там же описано sizing общего пула при определенных unset настройках. Параметр `kv-unified` относится к совместному буферу последовательностей. Это не превращает разные GPU memories в автоматически единое устройство и не описывает размер самих весов. Сначала запишите число параллельных slots и явно заданный context, затем установите применимое правило расчета, не смешивая различные единицы и области ограничения в одной цифре.

## Проверьте фактические пределы

[Серверный код](https://raw.githubusercontent.com/ggml-org/llama.cpp/master/tools/server/server-context.cpp) содержит проверки состояния и контекста конкретного слота. Поэтому effective slot limit следует получать из поддерживаемых наблюдений runtime и приемочного поведения, а не делением любого числа на parallel без учета режима. Зафиксируйте версию сборки, поскольку новые параметры способны менять правила распределения. Если вход отклоняется, сохраните сообщение ошибки и соответствующий слот. Ошибка индивидуального предела и общая нехватка ресурса объясняют разные случаи и требуют разных корректировок конфигурации.

## Пример карты емкости

Для учебного сервера с тремя слотами составьте таблицу: slot, индивидуальный предел, занятый context и состояние. Число три — размер примера, не рекомендация parallel. Отдельной строкой укажите shared pool и способ его настройки. Затем проверьте один длинный запрос и несколько одновременных запросов с сохраненными token lengths. Не считайте успех одиночного случая доказательством общей емкости: остальные slots в нем не предъявляли конкурирующих требований, поэтому такой тест покрывает лишь часть будущего клиентского контракта.

## Диагностическая развилка

Если длинный запрос отклоняется при свободном пуле, сначала проверьте индивидуальную границу. Если отдельные запросы проходят, а совместная серия нет, исследуйте распределение общей емкости и фактическую загрузку slots. Не уменьшайте веса или меняйте quantization без признаков соответствующей причины. Сохраните порядок подачи, длины входов и output budgets. В динамическом разговоре растущий history тоже занимает контекст, поэтому одноразовый короткий prompt не проверяет поведение с накопленными сообщениями и может скрыть будущий отказ продолжения диалога.

## Приемочный артефакт

Документируйте обе границы, режим KV, число slots и fixtures для индивидуальной и совместной проверки. Укажите, какие значения были заданы явно и какие рассчитаны runtime. После смены fit или parallel повторите приемку, даже если общий context остался тем же. Полезный результат позволяет оператору объяснить допустимую длину одного запроса и условия конкуренции без неверной формулы «весь пул каждому». Не обещайте произвольное перераспределение сверх возможностей выбранного режима. Такая карта также помогает клиенту различать превышение индивидуального контракта и временную нехватку общей емкости, не подменяя обе ситуации единым советом увеличить max context или купить больше VRAM без проверки механизма ограничения.

## Связанные материалы

[Длинный контекст LLM: как проверить сервер для работы с документами](/ru/journal/long-context-capacity/); [llama.cpp server: локальный API из GGUF-модели](/ru/journal/llama-cpp-server-launch/).
