Что такое srt-slurm и зачем это нужно
NVIDIA выпустила открытый фреймворк srt-slurm, который решает проблему воспроизводимости и сложности развертывания распределенных сервисов больших языковых моделей (LLM). Основной инструмент — утилита командной строки srtctl — преобразует декларативные YAML-конфигурации в готовые рабочие процессы SLURM. Это позволяет инженерам тестировать гиперпараметры и конфигурации кластеров в среде разработки (например, Google Colab), а затем безопасно переносить их на реальные GPU-кластеры без ручного написания скриптов sbatch.
Архитектура и поддержка бэкендов
Фреймворк спроектирован как модульная система, включающая ядро для валидации схем, генераторы скриптов и адаптеры для различных движков инференса. Поддерживаются следующие бэкенды:
- SGLang (через контейнер
lmsysorg/sglang:v0.5.5.post2) - TensorRT-LLM
- vLLM
- Mocker (для smoke-тестов и симуляции нагрузки)
Внутренняя структура репозитория включает модули для работы с топологией кластера, валидации конфигураций и парсинга логов. Для анализа результатов используется встроенная панель на базе Streamlit, которая визуализирует данные бенчмарков.
Дисагрегированная архитектура: пример DeepSeek-R1
Ключевая возможность srt-slurm — поддержка дисагрегированных (disaggregated) развертываний, где задачи предварительной обработки (prefill) и декодирования (decode) разделяются между разными узлами. Это критически важно для оптимизации использования GPU в высоконагруженных системах. В примере конфигурации для модели DeepSeek-R1 задана следующая структура:
| Параметр | Значение | Назначение |
|---|---|---|
| GPU Type | GB200 | Тип используемых графических процессоров |
| Precision | FP8 | Точность вычислений (kv-cache dtype: fp8_e4m3) |
| Prefill Nodes | 1 | Количество узлов для этапа prefill |
| Decode Nodes | 2 | Количество узлов для этапа decode |
| GPUs per Node | 4 | Тензорная параллельность (tensor-parallel-size: 4) |
| Benchmark Type | SaBench | Тип нагрузочного тестирования |
| Concurrency | 64, 128, 256 | Уровни параллельных запросов для теста |
Параметрические поиски (Sweeps) и Pareto-анализ
srt-slurm позволяет автоматически генерировать сетки гиперпараметров (parameter sweeps). Система создает отдельные конфигурационные файлы для каждой комбинации параметров (например, chunked-prefill-size и max-total-tokens) и запускает их в режиме dry-run для проверки корректности. После получения результатов метрик (пропускная способность vs задержка) инструмент строит Pareto-фронт, помогая инженерам выбрать оптимальную конфигурацию, которая максимизирует throughput при приемлемой latency.
Интеграция с Python API
Помимо CLI, фреймворк предоставляет типизированный Python API (srtctl.core.config, srtctl.core.sweep). Это позволяет программно загружать конфигурации, расширять списки параметров и генерировать шаблоны скриптов непосредственно в коде. Такой подход обеспечивает строгую типизацию и упрощает интеграцию процессов бенчмаркинга в CI/CD пайплайны разработки AI-инфраструктуры.
Источник: MarkTechPost ↗
