Skip to content

Models and Geometry.ru

sikkatu edited this page Oct 17, 2026 · 2 revisions

Модели и геометрия

English | Русский | 中文

Сколько места нужно каждой модели на 4× RTX PRO 6000 (96 GB GDDR7, TP4). Прочитайте это до выбора hot-бюджета — предыдущая версия этой страницы публиковала размер горячего набора, который не помещается на одну карту; арифметика ниже — то, что планировщик делает на самом деле.

Что считает планировщик

balance.json даёт layers, experts, topk, cell_mib_full (байты одного полного эксперта на слой). Банк:

полный банк (все ранги) = layers × experts × cell_mib_full
банк на rank (TP4)      = полный банк / 4     # каждый эксперт шардится на 4 ранга

Hot-бюджет HOTSPLIT_HOT_GIB — на rank, в GiB локальных строк. Планировщик жадно заполняет его по доле маршрутизации на байт. Число горячих экспертов — результат, а не вход.

Числа по моделям

Значения посчитаны из config.json модели; cell_mib_full округлён, фактические размеры тензоров измеряются при загрузке (см. README рецепта). Это расчётные числа, а не замеры.

MiMo-V2.6-Pro (эталонный рецепт)

Параметр Значение
Слоёв × экспертов, top-k 69 × 384, top-8
Полный банк (все ранги) ~492 GiB
Банк на rank (TP4) ~123 GiB
Полезная VRAM на карту ~89 GiB (96 GB минус накладные драйвера)

Весь банк на rank не помещается на одну карту. Разбиение hot + cold здесь обязательно. Безопасный стартовый hot-бюджет оставляет место под KV cache и буферы CUDA graph:

hot-бюджет ≈ полезная VRAM − KV cache − резерв

Например, при 8 GiB KV + 2 GiB резерва: 89 − 8 − 2 ≈ 79 GiB → планировщик возьмёт столько топ-экспертов, сколько влезет, примерно 240–250 из 384 при этой геометрии. Точное число зависит от гистограммы маршрутизации — после dry-run (HOTSPLIT_DRYRUN=1) смотрите строку hotsplit plan: она печатает бюджет и полученное число hot-ячеек.

Ранее на этой странице числилось «295 из 384 экспертов» как дефолтный горячий набор. Это якорь из прошлого однGPU-замера (разбиение pin-hot-experts на 7360 слотов), а не бюджет VRAM на rank. При 19 MiB × 295 ≈ 94 GiB на rank это не помещается рядом с KV cache на карте 96 GB. Не используйте как цель.

DeepSeek-V4.1-Flash

Параметр Значение
Слоёв × экспертов, top-k 40 × 384, top-6
Полный банк ~280 GiB
Банк на rank (TP4) ~70 GiB
Рекомендуемый hot-бюджет 52 GiB (лестница 47 / 52 / 57 GiB)

Помещается с запасом: 52 GiB hot + KV + резерв комфортно на 89 GiB.

GLM-5.3

Параметр Значение
Слоёв × экспертов, top-k 75 × 256, top-8
Полный банк ~380 GiB
Банк на rank (TP4) ~95 GiB
Рекомендуемый hot-бюджет 36 GiB (лестница 31 / 36 / 41 GiB)

Банк на rank близок к пределу карты — hot 36 GiB оставляет VRAM под KV cache.

GLM-5.3-Flash (glm5_next)

Параметр Значение
Слоёв × экспертов, top-k 42 × 288, top-8
Полный банк ~160 GiB
Банк на rank (TP4) ~40 GiB
Рекомендуемый hot-бюджет 31 GiB (лестница 26 / 31 / 36 GiB)

Весь банк помещается в VRAM — hot 31 GiB оставляет место под KV cache. ⚠ Заблокирован на ванильном vLLM на SM120 — см. FAQ.

Как выбирать hot-бюджет — безопасные значения

Ситуация Бюджет
Первый запуск, трафик неизвестен дефолт рецепта (якорь в tp4.env.example)
Длинные контексты, много конкурентных запросов уменьшите бюджет, отдайте место KV cache
Короткие контексты, один поток увеличьте, следите за строкой лога hotsplit mem

Правила большого пальца:

  • HOTSPLIT_HOT_GIB пуст = «использовать объём GPU-резидентных байт экспертов, который использовала стоковая расстановка» — НЕ «весь банк». Стоковая расстановка никогда не превышает VRAM; пустой дефолт безопасен, но консервативен.
  • HOTSPLIT_VRAM_RESERVE_GIB=2 — пол, а не обещание. KV cache выделяется vLLM после загрузки модели; длинные контексты его съедают. Для 128K контекста планируйте десятки GiB KV, а не 2.
  • Всегда проверяйте после запуска: bash scripts/check-hotsplit-tp4.sh <container> <dynamic|static> и строку hotsplit plan в логах.

Clone this wiki locally