# DeepSeek-V4-Flash 0731 на двух DGX Spark: рецепт с размеченными ловушками

> Точный серверный рецепт за нашими опубликованными цифрами на GB10: пиненные веса и образ, порядок запуска head-first против зависания TCPStore, MoE-флаг, который пропускает автовыбор, что мониторить, когда NVML молчит — и какие цифры ждать.

- Published: 2026-08-16
- Evidence level: lab_single_run
- Funding: Собственное финансирование, внутреннее исследование
- Canonical: https://agmind.ai/ru/reports/deepseek-v4-flash-0731-dgx-spark-recipe/

Это ранбук за нашими опубликованными цифрами DeepSeek-V4-Flash-0731 на
паре DGX Spark (GB10, TP=2 по 200G RoCE) — каждый шаг так, как мы реально
запускаем, с ловушками, стоившими нам времени, размеченными как ловушки.
Авторитетная версионируемая копия живёт в
[публичном репозитории](https://github.com/botAGI/dspark-0731-gb10) вместе с
манифестом прогонов и сырыми выводами; эта страница — аннотированная
экскурсия.

## Пять шагов

**1. Веса на ОБА узла** — ~156 ГиБ на диске на узел . Мы
бенчмаркали community-чекпоинт FP8, пиненный ревизией; официальный
чекпоинт в репо упомянут, но наши цифры описывают не его. Пиньте ревизию —
`main` едет.

**2. Образ рантайма по digest, на оба узла.** Теги двигаются; digest в
репо — нет. Каждая опубликованная цифра называет digest, под которым
бежала, — именно это делает будущее расхождение диагностируемым.

**3. Сначала HEAD, потом peer.** Rank 0 держит TCPStore; peer,
подключившийся до того, как head начал слушать, виснет на broken pipe без
внятной ошибки. Запустите head, дождитесь порта стора в `ss -tln`, только
потом запускайте peer. Записанным этот баг порядка читается очевидным —
вживую он стоил нам часов.

**4. Готово, когда отвечает `/v1/models`.** Загрузка весов занимает
≈6–7 минут ; настройки фабрики (IP head/peer, HCA, GID index) —
переменные окружения в шапке launch-скрипта.

**5. Проверьте, что MoE-бэкенд реально взялся.** Движок везёт ядро,
специально собранное под MXFP4-экспертов этой модели на GB10, и
сознательно исключает его из `auto`:

```
docker logs vllm_dsv4 2>&1 | grep "Mxfp4 MoE backend"
# нужно: Using 'B12X_MXFP4'     не: Using 'DEEPGEMM_MXFP4'
```

Пропуск этой проверки — самая частая причина, по которой опубликованная
цифра Spark'а оказывается в высоких пятидесятых вместо высоких
шестидесятых: `auto` дал нам 59.7 tok/s клиентского декода там, где
`flashinfer_b12x` дал 67.6 , движковый замер — 9–12%  по
частоте шагов верификации.

## Какие цифры ждать

Финальная конфигурация, медианы по повторным запросам, из
[публичных результатов](https://github.com/botAGI/dspark-0731-gb10#results) :

| Ячейка | tok/s |
| --- | --- |
| card-like короткий вывод, c=1 | 67.6 |
| code-профиль, c=1 | 65.5 |
| тяжёлая проза с 4K-контекстом, c=1 | 43.7 |
| code-профиль, c=12 агрегат | 260.4 |

Разброс по профилям больше большинства конфигурационных изменений —
цифра без профиля нефальсифицируема. Почему гуляющие по форумам числа
не сходятся друг с другом —
[отдельная страница](https://agmind.ai/ru/reports/dspark-speed-numbers-disagree/).

**Считайте токены по `usage.completion_tokens`, никогда по числу
SSE-событий.** Под спекулятивным декодингом одно событие может нести
несколько принятых токенов; счёт по событиям молча раздувает throughput.

## Ловушка мониторинга

На unified memory GB10 `dcgm-exporter` не работает совсем, а NVML отдаёт
N/A на заметную долю запросов — ваша Grafana будет зелёной и пустой. Мы
парсим `nvidia-smi` собственным textfile-коллектором в метрики
node-exporter; разбор — [на Habr](https://habr.com/ru/articles/1030802/).
Заложите это в бюджет: серверная коробка, которую нельзя наблюдать, —
коробка, которую нельзя эксплуатировать.

## Секция честности

- Всё здесь — `lab_single_run`: одиночные проходы с прогревами, одна пара
  юнитов, вне трёхповторной методологии. Разброс на этом классе железа
  широкий — идентичные агрегатные прогоны расходились на 18–24% ,
  так что однодесятичную точность из любого источника, включая наш,
  считайте оптимизмом.
- Наш собственный первый замер был смещён клиентской методикой, и мы
  пометили его в репо superseded, а не удалили; цитировать следует
  движковую серию.
- Нашли расходящуюся цифру?
  [Пришлите её](https://github.com/botAGI/agmind-lab/issues/new?template=conflicting-number.md) —
  конфигурационная дельта за расхождением обычно информативнее любой из
  цифр.

Связанное: [кривая глубины до 1M](https://agmind.ai/ru/reports/dspark-speculative-1m-dgx-spark/) ·
[отчёт про MoE-бэкенд](https://agmind.ai/ru/reports/dsv4-flash-moe-backend-dgx-spark/) ·
[стоит ли Spark вообще](https://agmind.ai/ru/reports/dgx-spark-worth-it/).

---

Machine-readable claim registry: https://agmind.ai/claims.json · llms.txt: https://agmind.ai/llms.txt
