Как запустить gpt-oss с Hugging Face Transformers
Библиотека Transformers от Hugging Face предоставляет гибкий способ загрузки и запуска больших языковых моделей локально или на сервере. В этом руководстве мы рассмотрим, как запустить OpenAI gpt-oss-20b или OpenAI gpt-oss-120b с использованием Transformers, как через высокоуровневый pipeline, так и через низкоуровневые generate
вызовы с сырыми идентификаторами токенов.
Мы расскажем об использовании OpenAI gpt-oss-20b или OpenAI gpt-oss-120b с абстракцией высокоуровневого pipeline, низкоуровневыми `generate` вызовами, а также о локальном развертывании моделей с `transformers serve`, совместимом с Responses API.
В этом руководстве мы пройдемся по различным оптимизированным способам запуска gpt-oss моделей через Transformers.
Бонус: Вы также можете дообучать модели через transformers, ознакомьтесь с нашим руководством по дообучению здесь.
Выберите модель
Обе gpt-oss модели доступны на Hugging Face:
openai/gpt-oss-20b
- Требование примерно 16 ГБ видеопамяти при использовании MXFP4
- Отлично подходит для одиночных высококлассных потребительских GPU
openai/gpt-oss-120b
- Требуется ≥60 ГБ видеопамяти или многократная настройка GPU
- Идеально для оборудования уровня H100
Обе модели по умолчанию квантованы в MXFP4. Обратите внимание, что MXFP4 поддерживается на архитектурах Hopper и новее. Это включает серверные GPU, такие как H100 или GB200, а также последние потребительские карты семейства RTX 50xx.
Если вы используете bfloat16
вместо MXFP4, потребление памяти будет больше (около 48 ГБ для модели с 20 млрд параметров).
Быстрая настройка
- Установите зависимости
Рекомендуется создать свежую среду Python. Установите transformers, accelerate, а также ядра Triton для поддержки MXFP4:
<<<FENCE_0>>>
- (Опционально) Включите мульти-GPU
Если вы запускаете большие модели, используйте Accelerate или torchrun для автоматического управления распределением устройств.
Создайте endpoint для Open AI Responses / Chat Completions
Чтобы запустить сервер, просто используйте команду CLI transformers serve
:
<<<FENCE_1>>>
Самый простой способ взаимодействовать с сервером — через CLI для чата transformers
<<<FENCE_2>>>
или отправляя HTTP-запросы с помощью cURL, например
<<<FENCE_3>>>
Дополнительные варианты использования, такие как интеграция transformers serve
с Cursor и другими инструментами, описаны в документации.
Быстрый вывод с помощью pipeline
Самый простой способ запустить gpt-oss модели — использовать высокоуровневый API pipeline
из Transformers:
<<<FENCE_4>>>
Расширенный вывод с помощью .generate()
Если вам нужен больший контроль, вы можете загрузить модель и токенизатор вручную и вызвать метод .generate()
:
<<<FENCE_5>>>
Шаблон чата и вызов инструментов
Модели OpenAI gpt-oss используют формат ответов harmony для структурирования сообщений, включая обоснование и вызовы инструментов.
Для построения подсказок можно использовать встроенный шаблон чата Transformers. В качестве альтернативы, вы можете установить и использовать библиотеку openai-harmony для более тонкого контроля.
Как использовать шаблон чата:
<<<FENCE_6>>>
Для интеграции библиотеки openai-harmony
для подготовки подсказок и парсинга ответов, сначала установите её так:
<<<FENCE_7>>>
Вот пример использования библиотеки для построения подсказок и их кодирования в токены:
<<<FENCE_8>>>
Обратите внимание, что роль Developer
в Harmony соответствует подсказке system
в шаблоне чата.
Мульти-GPU и распределённый вывод
Большая модель gpt-oss-120b помещается на одном GPU H100 при использовании MXFP4. Если хотите запустить её на нескольких GPU, вы можете:
- Использовать
tp_plan="auto"
для автоматического размещения и тензорного параллелизма - Запускать с помощью
accelerate launch or torchrun
для распределённых конфигураций - Использовать Expert Parallelism
- Применять специализированные ядра Flash Attention для ускорения вывода
<<<FENCE_9>>>
Далее вы можете запустить модель на узле с четырьмя GPU через
<<<FENCE_10>>>