2026-10-15.md 5.0 KB

Night shift 2026-10-15 (day)

Mёртвый BASE: ночные теги vLLM прунены, kindling не собирается

После вчерашнего чат-шаблонного фикса sm121 serve --build-node попытался rebuild spark-glm53:v10 (чексумма каталога сменилась) и упал: FROM vllm/vllm-openai:nightly-ddd6fbca… → not found. Docker Hub прунул всю старую схему nightly-<fullsha> (сейчас только nightly-dev-<arch>-<cuda>-<shortsha>), база прунена и с узлов (dgx1/2), дайджест нигде не записан (сентябрьский лог затёрт, реестр на Mac не включён, web-jobs чисты) → образ-база невосстановим.

Промежуточный ручной путь (тонкая обёртка FROM spark-glm53:v10 + новый шаблон + label) построен на dgx1, но отклонён оператором: sm121 должен уметь собрать всё с нуля, без ручных обходов.

Решение: репин BASE на релиз v0.31.0 (постоянный тег)

  • v0.31.0 (cut 2026-10-02) — первый релиз, содержащий коммит базы ddd6fbca (09-26); multi-arch, arm64 ✓.
  • Дрейф-аудит ddd6fbca..v0.31.0 (6 дней mainline, 239 файлов):
    • все файлы, которые патчат kindling-патчеры (mla/_fa_common, mla/_core, sparse_attn_indexer_kpool, kernel_warmup, shm_broadcast, platforms/cuda, reasoning, glm5next/*) — без изменений;
    • routed_experts.py: vllm#58720 вкатился upstream дословно (_index_expert_mapping идентичен) → vllm-58720-routed-experts.patch удалён из Dockerfile (verify-base.py по-прежнему ассертит наличие фикса);
    • requirements: flashinfer 0.7.0 → 0.7.0.post1 (mикро-бамп), torch/NCCL/ cutlass-dsl без изменений.
  • ARG BASE=vllm/vllm-openai:v0.31.0, ARG VLLM_REF=db9527a4… (коммит тега — FlashKDA shim компилится против того же исходника, что в base).
  • Коммит 546e7b2 (shared repo).

Сборка через sm121 — успешна

sm121 build --recipe glm53-kindling-2x --build-node dgx1.lan: 11 m 16 s (pull base 145 s + flashkda + патчи + verify-base гейт + --load). Гейт verify-base прошёл (Glm5Next, glm45, glm47_failclosed, sm_120, MiaAI SM90 + indexer, spin-wait, FlashKDA 17a037d, mentat). Образ c4bf0a1a…, label 74087ade… (= чексумма каталога), шаблон внутри 6c444d8b… (фикс). Каталог снова полностью воспроизводим с нуля.

2x serve: падение через 9 с и настоящая причина

Первый serve упёрся в то, что контейнер умирал через ~9 с (с --rm — самоудалялся из store, в логах только TaskDelete). Причина: бейковые оверлеи experimental/ (build.sh генерирует Dockerfile.bake — COPY оверлеев поверх image/Dockerfile) написаны против дерева ddd6fbca и включают полные файлы с старыми импорт-блоками. На чистом v0.31.0 такой файл даёт ImportError в первый же импорт (hisparse get_hisparse_gpu_memory_usage). verify-base проходит — он ранит ДО bake- стадии.

23 оверлея из 38 имели дрейф базового файла. Ребейс на v0.31.0: new = v0.31.0-файл + (оверлей − ddd6fbca); 21 авто, 2 вручную (rejection_sampler — рефакторинг gather_draft_sampled(); flashinfer_mla_sparse_sm90 — 3-кортеж _kv_lens_host + early-return _TRITON). Коммит 5e04b7b. Ребильд 30 с (кэш), import smoke OK, serve с 08:12 (sync dgx1→dgx2 + загрузка весов).

Замечания

  • karmic-kraken dirs (шаблон тоже обновлён): его BASE — дайджест-закреплённая CUDA (вечная), rebuild воспроизводим, но полный clone-at-pin (долгий, 45+ мин) — сработает при следующем serve полос, использующих karmic-kraken (glm53-kindling-4x-karmic, mimo26-flash-mopd-4x-vllm, mimo26-flash-mopd-4x-sparkring).
  • Патчеры со «вступлением» (MiaAI retarget под flashinfer 0.7.0) прошли на 0.7.0.post1 — якоря не съехали.
  • Ночные vLLM-теги имеют TTL: любая схема на nightly-* мёртва через недели. Базы должны быть релизными/дайджестными (karmic — образец).