Три приёма ускорить MoE-инференс на DGX Spark без потери GSM8K

На NVIDIA DGX Spark в тесте Ling-3.0-flash от Inclusion AI (124 млрд параметров, 5,1 млрд активных на токен при batch size 1) профилирование показало узкое место: декодинг упирается в память, а не в ядра — на каждый токен уходит чтение весов. Больше всего времени съедают MoE-слой (маршрутизация в восемь из 512 экспертов) и выходная проекция LM head на словарь из 157 184 токенов.
Отсюда и три приёма из Ling cookbook на SGLang: сначала быстрее гонять экспертов, потом урезать чтение на голове, в конце — черновик с проверкой. Базовая связка FlashInfer MXFP4 для MoE, CUTLASS для плотных GEMM и флаг --enable-fp32-lm-head давала 27,71 мс на токен и 36,09 tok/s на синтетике (контекст 32K, ответ 2K).
Три шага по очереди
- Humming MXFP4 MoE backend — вместо
flashinfer_mxfp4ядра humming-kernels с NVRTC и кэшем в~/.humming/cache; TPOT 25,35 мс, примерно +9,3% к пропускной способности. - Online FP8 LM head — FP8 только для головы при загрузке чекпоинта (
SGLANG_ENABLE_FP8_LM_HEAD=1), объём чтения весов слоя делится пополам; вместе с Humming — 22,76 мс и +21,7% к базе. - MTP speculative decoding с NEXTN — встроенный слой черновика (
num_nextn_predict_layers: 1), три шага draft и окно верификации на четыре токена; accept length 3,90 на синтетике, TPOT 9,72 мс и +185,1% к базе.
На полном GSM8K (1 319 вопросов, chain-of-thought, temperature 0,6) все три приёма вместе: 53,89 tok/s против 37,81 (+42,5%), средняя задержка 11,49 с против 15,21 (−24,5%), точность 96,82% против 96,89%. Синтетика завышает выигрыш от MTP — accept length там 3,90, на GSM8K 2,68.
Если совмещать FP8 LM head и MTP, черновик и цель должны делить весь модуль LM head, а не только веса: иначе фреймворк подставляет FP8 как BF16, accept length падает до 1,00 и связка оказывается медленнее базы. Ling-3.0-flash заточен под длинный контекст (256K, до 1M), tool calling и reasoning по переключателю — тот же класс моделей, что гоняют в агентных пайплайнах на своём железе.
Источник: 3 Ways to Boost MoE Inference on NVIDIA DGX Spark.