128k контекста на десктопе — это аренда: счёт выставляет KV-кэш, прямо при вас
Два тензора на слой на токен: 16 GiB для 8B на полном окне. Выберите модель, покрутите контекст — и смотрите, как реестр арендатора считает формулу вживую.
Llama 3.1 8B at 131,072 tokens in fp16: KV-кэш ≈ 16 GiB — размером с веса.
«8B, помещающийся в 16 GiB» превращается в задачу на 32 GiB.
Кэш линеен по контексту и выделяется заранее — RAM платит за 128k, заполните вы его или нет.
Лекарство скучное: выставьте контекст по тому, что вы реально используете — окно 32k стоит четверть кэша 128k.
01ПРИЛАВОК С СЧЁТЧИКОМ
арендатор — это KV-кэш — колёса крутят счёт, который карта не печатает никогда
КЭШ = ВЕСАна полном окне кэш размером с модель, к которой он относится — аренда на 32 GiB уже сейчас
АРЕНДАТОР LLAMA 3.1 8B · ОКНО 128k · 131,072 ТОКЕНОВ · КЭШ 16.00 GiB · ВЕСА 16.0 GiB · ДОЛЯ 100% · НАКОРМЛЕНО 0
колёса насчитали раньше, чем сдвинулся одометр — выделение заранее, заполнение опционально
02ФОРМУЛА, КОТОРУЮ ОПУСКАЮТ КАРТОЧКИ
одна публичная формула крутила каждую цифру этих колёс
cache_bytes = 2 × layers × context × kv_heads × head_dim × bytes_per_element
«Окно контекста — не фича, которую вы включаете. Это аренда памяти, которую вы оплачиваете каждую секунду, пока живёт сервер.»
def kv_cache_gib(layers, kv_heads, head_dim, ctx, bytes_per=2):
return 2 * layers * ctx * kv_heads * head_dim * bytes_per / 2**30
print(kv_cache_gib(32, 8, 128, 131_072)) # Llama 3.1 8B -> 16.0
print(kv_cache_gib(28, 4, 128, 131_072)) # Qwen2.5 7B -> 7.0
verify: kv_cache_gib(32, 8, 128, 131_072) → 16.0 · kv_cache_gib(28, 4, 128, 131_072) → 7.0
03ДВА АРЕНДАТОРА, ОДИН ПРИЛАВОК
формула — просто арифметика, пока она не оценит две настоящие карточки моделей бок о бок
| Модель (fp16) | Слои × KV-головы | KV-кэш @ 128k | Веса | Кэш против весов |
|---|---|---|---|---|
| Llama 3.1 8B | 32 × 8 | ~16 GiB | ~16 GiB | ~100% |
| Qwen2.5 7B | 28 × 4 | ~7 GiB | ~15 GiB | ~47% |
нажмите клавишу 1 на прилавке — то же окно 128k перемеряется в 7.0 GiB для qwen2.5 7b
config.json, чтобы их найти, и это подсказывает, как задумано читать это число04ГДЕ СЧЁТ ИЗГИБАЕТСЯ
счётчик честен для полного внимания — четыре изгиба, прежде чем вы что-то подпишете
Никто не читает 128,000 токенов. Но RAM платит за каждый из них всё равно.
config.json моделей (слои, KV-головы, head_dim), как её излагает Transformer Inference Arithmetic — счётчик прилавка — та же формула на JavaScript; никаких бенчей покупать — один print от вашего собственного терминала.
конец реестра арендатора · ничего не fetched · всё локально