Running GPT-OSS-120B at 500 tokens per second on Nvidia GPUs
-
В день выхода открытой модели вроде gpt-oss-120b мы сразу ускоряем её для клиентов, как партнёры запуска OpenAI. К концу дня запуска стали лидерами на NVIDIA по латентности и пропускной способности по данным OpenRouter.
-
Быстрая оптимизация обеспечена гибким стеком инференса и экспертизой команды; за время написания поста прибавили ещё ~100 ток/с при 100% аптайме.
-
Работы включали:
- Тесты и бенчмарки в TensorRT-LLM, vLLM и SGLang.
- Совместимость с архитектурами Hopper и Blackwell.
- Интеграцию с нашим стеком (в т. ч. NVIDIA Dynamo).
- Оптимизации: маршрутизация с учётом KV-кэша, спекулятивная генерация с Eagle.
Шаг 1: Первый инференс
- Запускаем базовый инференс в любом доступном фреймворке и на нужных GPU/серверных уровнях.
- Параллелим работу: одни пробуют vLLM и SGLang, другие — TensorRT-LLM; быстрее всего взлетел TensorRT-LLM.
- Важно обслуживать модель и на Hopper (H100), и на Blackwell (B200) для широкой доступности и максимальной скорости.
- Гибкость рантайма позволяет быстро переключать инструменты и обновлять матрицу поддержки.
Шаг 2: Исправление багов совместимости
- Новые архитектуры приводят к тонким несовместимостям; GPT OSS добавил, например, Harmony — новый формат ответов.
- Итеративно чиним и валидируем на скорость и корректность; по возможности контрибутим обратно в open source.
- Благодаря сообществу есть несколько отличных путей запуска GPT OSS, проблемы быстро выявляются и чинятся.
Шаг 3: Оптимизация конфигурации
- Хотя GPT OSS 120B можно запустить на одном H100, оптимально масштабировать на 4–8 GPU для лучшей латентности/throughput.
- Рассмотрены два подхода параллелизма для MoE: тензорный и экспертный. Тензорный даёт меньшую задержку, экспертный — выше системную пропускную способность. Мы выбрали тензорный, так как приоритет — латентность.
- Приняли MoE Backend в TensorRT-LLM (поддерживается на Blackwell, не на Hopper), который добавляет более быстрые CUDA-ядра и превосходит предыдущие решения.