|
|
@@ -0,0 +1,60 @@
|
|
|
+# DeepSeek-V4.1-Flash-1017 через FLARE — их собственный пакет под четыре Spark.
|
|
|
+#
|
|
|
+# Ветка `gb10` репозитория local-inference-lab/DeepSeek-V4.1-Flash-1017-FLARE —
|
|
|
+# подписанный FLARE-пакет ровно под наш стенд: ~525.5 GB, TP4, 32 одновременных
|
|
|
+# запроса, DSpark до 5 драфтов с adaptive verification, prefill чанками 4096,
|
|
|
+# контекст до 1M на запрос (README ветки gb10, обновлён 2026-10-27).
|
|
|
+#
|
|
|
+# Запуск: `sm121 serve --recipe dsv41-flash-1017-4x-flare-gb10-prod4 --cluster 4nodes-switch` (прод-половина dgx1-4; отдельный рецепт/ledger — сам лейн dgx58 держит свой открытый run)
|
|
|
+# Лаунчер сам: preflight агентов на всех нодах, `flare download` на контроллере
|
|
|
+# (идемпотентно, ~525 GB один раз), `flare orbit run --detach`, затем ждёт
|
|
|
+# /health + /v1/models. `sm121 stop` → `flare orbit stop`, `sm121 logs` →
|
|
|
+# `flare orbit attach`.
|
|
|
+#
|
|
|
+# Креды (ключ издателя, publisher) — в приватном config: [flare] accept_key /
|
|
|
+# accept_publisher / orbit_cluster. В репозиторий рецептов они не попадают.
|
|
|
+
|
|
|
+engine = "flare"
|
|
|
+deploy = "native"
|
|
|
+name = "DeepSeek-V4.1-Flash-1017 (FLARE gb10, 4x TP4, c32, DSpark5)"
|
|
|
+model = "deepseek-ai/DeepSeek-V4.1-Flash-1017"
|
|
|
+parent_model = "deepseek-ai/DeepSeek-V4.1-Flash"
|
|
|
+required_nodes = 4
|
|
|
+cluster = "4nodes-switch"
|
|
|
+
|
|
|
+# адрес модели для клиентов — общий кластерный алиас (FLARE отдаёт его же
|
|
|
+# через --name, но лаунчеру/бенчу нужен явный id в args)
|
|
|
+args = ["--served-model-name", "deepseek-v4.1-flash"]
|
|
|
+
|
|
|
+[flare]
|
|
|
+package = "local-inference-lab/DeepSeek-V4.1-Flash-1017-FLARE"
|
|
|
+revision = "gb10"
|
|
|
+name = "dsv41-flash-1017-4x-flare-gb10-prod4"
|
|
|
+http_port = 30000
|
|
|
+# их же рекомендованный набор (README ветки gb10), verbatim
|
|
|
+serve_flags = [
|
|
|
+ "--served-model-name", "deepseek-v4.1-flash",
|
|
|
+ "--max-concurrency", "32",
|
|
|
+ "--mtp-draft-tokens", "5",
|
|
|
+ "--mtp-adaptive-verification",
|
|
|
+ # Engram = 2 таблицы (слои 1, 14) × 4 шарда: 196.6 GB весов + 6.1 GB
|
|
|
+ # скейлов на пакет ⇒ ~50.7 GB на ранг. Файлами engram не выделить — он
|
|
|
+ # лежит в тех же восьми шардах, что и веса, — поэтому «локальность» делаем
|
|
|
+ # RAM-кэшем строк: 1 GiB горячих строк на ранг (рекомендация README для
|
|
|
+ # unified-memory GB10), промахи идут на диск (пакет на локальном NVMe
|
|
|
+ # контроллера, у пиров — свои срезы в кэше).
|
|
|
+ # (Проба 48 GiB кэша выедала бюджет continuation rows —
|
|
|
+ # «selected concurrency and verification width exceed available memory».)
|
|
|
+ #
|
|
|
+ # --embedding-table-resident-scales НЕ включён: держит E8M0-плоскость
|
|
|
+ # скейлов engram в pinned host RAM (~6.1 GB на пакет ⇒ ~1.5 GB на ранг),
|
|
|
+ # чтобы промахи не читали скейлы с диска вторым заходом. Смысл только при
|
|
|
+ # disk (с ram падает: «RAM storage already retains all planes»).
|
|
|
+ # Кандидат на A/B: +1.5 GB RAM за меньшее число random-read.
|
|
|
+ "--embedding-table-storage", "disk",
|
|
|
+ "--embedding-table-cache-size", "1GiB",
|
|
|
+ # включено 2026-10-24 и подтверждено README: скейлы engram (~1.4 GB/ранг)
|
|
|
+ # резидентно в host RAM, чтобы промахи кэша читали только веса. Пакет
|
|
|
+ # заявляет 13–17 GB available на Spark; следим за continuation rows при c32.
|
|
|
+ "--embedding-table-resident-scales",
|
|
|
+]
|