Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Рейтинг: 0% · 0 голосов
Запуск больших языковых моделей локально: Llama, Mistral, Qwen, DeepSeek, Gemma. Квантизация GGUF, Ollama, llama.cpp, vLLM, LM Studio, выбор GPU и оптимизация инференса.
Ответить
Аватара пользователя
rustdev
Сообщения: 7
Зарегистрирован: 25 май 2026, 05:37

Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение rustdev »

Поставил контекст 128к на локальной 32B модели и KV-кэш сожрал 20+ гигов видеопамяти, в итоге сама модель уже не лезет. Проблема в том что KV-кэш растет линейно с длиной контекста и для 128к токенов это десятки гигабайт поверх весов. Вопрос: как ужать кэш без потери качества. Слышал про квантизацию KV в Q8 и Q4, про GQA которая уже встроена, про flash attention. Что реально работает на llama.cpp и насколько падает качество при Q4-кэше. Хочу 128к на 24гб карте и чтобы модель влезала.
👍 ❤️ 🔥1 😄1 🤔
✔ Лучший ответ сформирован автоматически — rojo7509
Разложу что реально помогает на 24гб, проверено на 4090 с 32B моделью. Первое и главное: -fa (flash attention) плюс квантизация кэша --cache-type-k q8_0 --cache-type-v q8_0. Это сразу режет KV почти вдвое и на q8 качество не страдает в пределах погрешности. Второе: сам квант модели опусти до IQ4_XS вместо Q4_K_M, теряешь чуть-чуть но освобождаешь пару гигов под кэш. Третье, если все равно не лезе…
Перейти к ответу →
Аватара пользователя
rawgoblin
Сообщения: 39
Зарегистрирован: 13 май 2026, 07:42

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение rawgoblin »

@rustdev, квантуй кэш. в llama.cpp флаги --cache-type-k q8_0 --cache-type-v q8_0, режет память KV вдвое почти бесплатно по качеству. q4 уже заметно тупит на длинном контексте, я бы не ниже q8 опускался для серьезных задач
👍2 ❤️ 🔥 😄2 🤔
Аватара пользователя
mvdelu
Сообщения: 17
Зарегистрирован: 13 май 2026, 07:23

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение mvdelu »

flash attention обязательно включи (-fa), без него кэш квантовать вообще нельзя в llama.cpp, оно требует fa. и -fa само по себе память под attention экономит
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
lentyaj
Сообщения: 68
Зарегистрирован: 11 май 2026, 00:17

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение lentyaj »

а тебе точно нужны 128к? по факту большинство моделей после 32-40к начинают терять детали из середины, lost in the middle никто не отменял. ты будешь платить памятью за контекст которым модель толком не пользуется
👍 ❤️1 🔥1 😄 🤔2
Аватара пользователя
idlebteam
Сообщения: 28
Зарегистрирован: 17 май 2026, 03:14

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение idlebteam »

lentyaj писал(а):большинство моделей после 32-40к начинают терять детали из середины
это про модели прошлого поколения. свежие веса 2026 с YaRN и нормальным train на длину держат 128к куда честнее, тесты на retrieval уже не разваливаются как раньше. так что нужны или нет зависит от модели, не обобщай. для RAG по большим докам 128к реально работают сейчас
👍1 ❤️1 🔥 😄2 🤔
Аватара пользователя
android_roman
Сообщения: 45
Зарегистрирован: 11 май 2026, 05:31

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение android_roman »

подниму, тоже уперся в это на 4090
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
rojo7509
Сообщения: 38
Зарегистрирован: 12 май 2026, 13:19

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение rojo7509 »

✔ Лучший ответ — сформирован автоматически
Разложу что реально помогает на 24гб, проверено на 4090 с 32B моделью. Первое и главное: -fa (flash attention) плюс квантизация кэша --cache-type-k q8_0 --cache-type-v q8_0. Это сразу режет KV почти вдвое и на q8 качество не страдает в пределах погрешности. Второе: сам квант модели опусти до IQ4_XS вместо Q4_K_M, теряешь чуть-чуть но освобождаешь пару гигов под кэш. Третье, если все равно не лезет: не держи весь 128к, юзай --ctx-size под реальную задачу. Мало кто гоняет полные 128к постоянно, поставь 48к и живи спокойно. Четвертое, экзотика: некоторые модели поддерживают SWA (sliding window attention), там кэш вообще не растет бесконечно, но это зависит от архитектуры конкретных весов, не у всех есть. По цифрам: 32B IQ4_XS + fa + KV q8 + контекст 48к у меня занимает ~21гб, влезает с запасом, генерация 30 t/s. Полные 128к с q8-кэшем на 24гб не влезут с 32B никак, либо модель меньше бери, либо контекст режь, физику не обманешь.
👍 ❤️1 🔥 😄 🤔1
Аватара пользователя
svelte1
Сообщения: 30
Зарегистрирован: 13 май 2026, 13:06

Re: Контекст 128к на локалке жрет всю видеопамять, как ужать KV-кэш

Сообщение svelte1 »

v-кэш кстати квантуется хуже чем k-кэш, если хочешь асимметрию ставь k q4 а v q8, на некоторых моделях прокатывает и экономит больше. но тестируй на своей задаче, это лотерея
👍1 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Локальные LLM и open-source модели»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость