Browse Source

spec: the FLARE gb10 package is our own 4-Spark contract (a test candidate), not vLLM guidance

Reframe the note: gb10 is a signed FLARE package built for four Sparks (TP4,
511 GB in 17 shards, 16 concurrent, DSpark5 + adaptive verification, 1M ctx) and
belongs on the plan as the next FLARE test — with its own recommended flag set —
while eugr's recipe stays a separate vLLM checklist.
Alexander Korolev 1 hour ago
parent
commit
1544158c3d
1 changed files with 28 additions and 29 deletions
  1. 28 29
      specs/tech-architecture/dsv41-1017-tuning.md

+ 28 - 29
specs/tech-architecture/dsv41-1017-tuning.md

@@ -246,36 +246,36 @@ write the serving layer), not an evening. What *is* worth stealing:
 
 Re-check when the repo grows a serving path or an sm120/sm121 target.
 
-## Внешние контракты (2026-10-23): FLARE `gb10`-пакет и рецепт eugr
+## FLARE `gb10`-пакет (2026-10-23) — наш собственный случай, не про vLLM
 
-### local-inference-lab/DeepSeek-V4.1-Flash-1017-FLARE
-
-У репозитория есть **ветка `gb10`** (README: `/raw/gb10/README.md`) — подписанный
-FLARE-пакет ровно под наши четыре Spark:
+У `local-inference-lab/DeepSeek-V4.1-Flash-1017-FLARE` есть **ветка `gb10`**
+(README: `/raw/gb10/README.md`) — подписанный FLARE-пакет, собранный **ровно
+под четыре DGX Spark** (наш стенд), поэтому это отдельный кандидат на тест,
+а не источник флагов для vLLM:
 
 - `deepseek-v41-flash-1017-tp4-c16-dspark5.safetensors`: metadata-only первичный
   файл + **17 шардов ≈ 511.3 GB** (12 весовых + 5 графовых/вспомогательных,
-  каждый < 64 GB), lossless CSF-чекпойнт; `gb202` — отдельный пакет под 4
-  дискретные GPU на одной машине;
+  каждый < 64 GB), lossless CSF-чекпойнт; `gb202` — отдельный пакет под
+  четыре дискретные GPU на одной машине;
 - заявлено: TP4, **16 одновременных запросов**, DSpark до **5 драфтов с
-  adaptive verification**, prefill чанками **4096**, контекст **1,048,576** на
-  запрос (по KV), >= 515 GB на первом Spark;
-- рекомендованный набор флагов (это то, что надо воспроизвести в наших лейнах):
-
-| флаг FLARE | наш аналог в vLLM | у нас сейчас |
-|---|---|---|
-| `--embedding-table-storage disk` | `--engram-config '{"table_memory":"disk"}'` | ✅ есть |
-| `--embedding-table-resident-scales` | `disk_resident_scales: true` в том же JSON (≈ 5.72 GiB RAM на V4.1) | ❌ **не включено — A/B** |
-| `--embedding-table-cache-size 1GiB` | строкового кэша строк в `EngramConfig` нет (только `table_memory`/`disk_resident_scales`/`projection_tp`) | — |
-| `--max-concurrency 16` | `--max-num-seqs 16` (у нас 4) | ❌ 4 |
-| `--mtp-draft-tokens 5 --mtp-adaptive-verification` | `--speculative-config dspark k=5` (у нас без `enable_adaptive_verification`) | частично |
-
-Вывод: `disk_resident_scales` — наш аналог «resident scales», он прямо обещан
-в конфиге стокового vLLM 0.32 (`vllm/config/engram.py`), и это следующий
-дешёвый шаг тюнинга энгрэма (скейлы E8M0 не читаются с диска на каждом
-промахе; ~5.7 GiB RAM на ноде).
-
-### Рецепт eugr (`eugr/spark-vllm-docker`, `recipes/deepseek-v4-flash.yaml`)
+  adaptive verification**, prefill чанками **4096**, контекст **1,048,576**
+  на запрос (по KV), >= 515 GB на первом Spark;
+- рекомендованный запуск (verbatim): `--embedding-table-storage disk
+  --embedding-table-resident-scales --embedding-table-cache-size 1GiB
+  --max-concurrency 16 --mtp-draft-tokens 5 --mtp-adaptive-verification`;
+  resident scales ≈ **1.4 GiB RAM/хост** сверх 1 GiB кэша строк.
+
+Это тот тест, который надо поставить в план: у FLARE за последние дни много
+обновлений (вотчер `scripts/flare-upstream-watch.sh`, пин
+`specs/tech-architecture/flare-upstream.pin` — перед экспериментом прогнать,
+затем `git pull` + пересборка обеих сторон). Сравнение с нашим прошлым
+FLARE-bring-up (`specs/tech-architecture/flare-bringup.md`): тогда был другой
+пакет (`dsv41-flash-tp4.safetensors`), 1M ctx, 24 GiB KV/ранг и decode
+19.2 c1 / 29.6 c2 — то есть **в 2.4× медленнее прод-SGLang**, при prefill
+1430–1700 t/s. Пакет `gb10` + их рекомендованные флаги (c16, adaptive
+verification) — способ проверить, изменилось ли это.
+
+## Рецепт eugr как чек-лист (vLLM)
 
 1017-рецепта у него нет (только не-1017 `deepseek-v4-flash` на TP2), но форма
 полезна как чек-лист того, чего в нашем лейне нет:
@@ -290,12 +290,11 @@ FLARE-пакет ровно под наши четыре Spark:
 - бэкенд `ray`, у нас `mp`.
 
 Проверять по одному, с замером: `--tokenizer-mode`, `--default-chat-template-kwargs`,
-`disk_resident_scales`, затем `--max-num-seqs 16`.
+затем `--max-num-seqs 16`.
 
-### 512K + стандартный алиас (2026-10-23, 20:16 UTC)
+## 512K + стандартный алиас (2026-10-23, 20:16 UTC)
 
 Лейн `dsv41-flash-1017-4x-vllm032` поднят с `--max-model-len 524288` и
 `--served-model-name deepseek-v4.1-flash` (было 131072 / `dsv41`). Проверено:
 `/v1/models` → `deepseek-v4.1-flash 524288`; замер на уникальном промпте
-**24,005 токенов: TTFT 8.0 s, prefill 2,996 t/s** — то есть 512K-окно не
-сломало префилл (с локальным энгрэмом держится прод-уровень ~3k t/s).
+**24,005 токенов: TTFT 8.0 s, prefill 2,996 t/s** — 512K-окно префилл не сломало.