Перейти к основному содержимому

Как запустить 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 млрд параметров).

Быстрая настройка

  1. Установите зависимости
    Рекомендуется создать свежую среду Python. Установите transformers, accelerate, а также ядра Triton для поддержки MXFP4:

<<<FENCE_0>>>

  1. (Опционально) Включите мульти-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>>>