Gpt-Oss, первая модель открытого веса для рассуждений от OpenAI

Gpt-Oss, первая модель открытого веса для рассуждений от OpenAI


Представляем gpt-oss

Мы в восторге от некоторых релизов OSS, таких как Kimi K2, Qwen3 Coder и GLM-4.5 (статья скоро появится), учитывая потрясающий прогресс, который эти агентивные модели демонстрируют с их умной многомерной логикой, кодированием и способностями к использованию инструментов.

С gpt-oss OpenAI выпустила свою первую значимую открытую модель за более чем пять лет, после GPT-2 в 2019 году. Эта семья моделей выпущена под разрешающей лицензией Apache 2.0 — это просто означает, что у вас есть широкая свобода использовать, модифицировать и распространять программное обеспечение, даже в коммерческих целях, с основными условиями включения оригинальной лицензии и уведомлений о авторских правах, а также признания модификаций.

Модель представлена в двух вариантах: 120B и 20B, где модель 120B имеет 117 миллиардов общих параметров (с 5.1 миллиарда активных на токен) в 36 слоях, а модель 20B имеет 21 миллиард общих параметров (3.6 миллиарда активных на токен) и 24 слоя. Обе модели используют родную 4-битную (MXFP4) квантизацию для своих весов MoE, что позволяет модели 120B помещаться на одном GPU с 80 ГБ памяти, а модели 20B работать с около 16 ГБ памяти.

Gpt-oss доступен на DigitalOcean

DigitalOcean стремится упростить жизнь разработчикам и бизнесам, которые хотят расти. Узнайте больше о том, как использовать gpt-oss в нашем обновлении продукта.

Ключевые выводы

  • OpenAI выпускает gpt-oss, свою первую крупную открытую модель с момента GPT-2 (2019 года), под лицензией Apache 2.0
  • Варианты моделей: 120B и 20B, обе используют 4-битное (MXFP4) квантование для весов MoE; 120B помещается на одном 80-гигабайтном GPU.
  • Доступно на платформе AI DigitalOcean Gradient™
  • Ключевые архитектурные особенности: MoE, Gated SwiGLU, GQA, SWA, RoPE, расширенный контекст с помощью YaRN, точки внимания.
  • Квантование: родное микрошкалирование FP4 (MXFP4), веса MoE по 4.25 бита/параметр
  • Токенизатор: o200k_harmony (вариант BPE), доступный в TikToken
  • Фокус после обучения: Рассуждение, использование инструментов (поиск, Python, функции разработки), безопасность через CoT RL
  • Использует формат Harmony Chat для согласованности в обучении/развертывании

Предварительные условия

Эта статья может быть сложной, если у вас нет опыта работы с крупными языковыми моделями и архитектурами моделей. Рекомендуется, чтобы читатели имели представление о фундаментальных концепциях нейронных сетей, механизме внимания, трансформерах и типах данных перед тем, как продолжить. Мы перечислили некоторые дополнительные предварительные знания и ресурсы ниже. Не стесняйтесь также нажимать на гиперссылки, разбросанные по всей статье, чтобы лучше понять материал. Наша цель с этой статьей не в том, чтобы повторить модель gpt-oss, а скорее использовать этот захватывающий выпуск модели, чтобы развернуть подходы, инструменты и фреймворки, которые помогут вам в том, что бы вы ни хотели изучить и достичь.

Если вы не знакомы с квантизацией, «Визуальное руководство по квантизации» Мартена Грота — это отличное пособие. Это может предоставить вам контекст для понимания квантизации MXFP4.

Раздел «Внимание и его варианты» нашей статьи по оптимизации вывода может быть полезен для предварительного понимания механизмов внимания. Мы обсудим использование gpt-oss GQA и SWA.

Может быть полезно прочитать эту статью вместе с карточкой модели gpt-oss. Карточка модели более подробно рассматривает тестирование безопасности и производительность модели на бенчмарках — что мы здесь не охватываем. Раздел дополнительные ресурсы в конце этой статьи является золотой жилой, поэтому не забудьте также ознакомиться с ним. Не стесняйтесь провести быстрый тест модели на официальном сайте gpt-oss.

Архитектура модели

Мы начнем с обсуждения архитектуры модели. Мы суммировали ключевые спецификации и их важность в виде таблицы с надеждой, что это будет проще для восприятия.

Спецификация Актуальность
Смешанная экспертиза Архитектура Смешанной Экспертизы (MoE) в gpt-oss использует разреженные слои Полносвязных Нейронных Сетей (FFN), известные как эксперты, вместе с механизмом управления (маршрутизатор) для направления токенов к четырем лучшим экспертам, тем самым активируя только подмножество параметров для каждого токена. Эта архитектура является эффективной альтернативой плотным моделям.
Гейтед SwiGLU функция активации Активационные функции вводят нелинейность, позволяя сети обучаться и моделировать сложные паттерны в данных. Блоки MoE в gpt-oss используют активационную функцию SwiGLU с управлением – SwiGLU является текущим стандартом в современных LLM. В карточке модели gpt-oss отмечается, что реализация SwiGLU необычна тем, что включает в себя ограничение и остаточную связь. Это, вероятно, связано с тем, что эти модификации приводят к более плавной оптимизации и более быстрому сходимости, особенно в архитектурах больших трансформеров. Остаточные связи, или пропускные связи, являются компонентами архитектуры нейронной сети, которые создают «обходной» путь, позволяя входным данным слоя быть добавленными непосредственно к его выходу, минуя один или несколько промежуточных слоев.
Групповое внимание к запросам (GQA) Скользящее оконное внимание (SWA) В модельной карточке это называют полностью плотным и ленточным оконным паттерном, чередующим блоки внимания. Но на самом деле это просто означает, что блоки внимания чередуются между группированным вниманием к запросам и скользящим оконным вниманием. Механизм внимания gpt-oss имеет 8 головок ключей и значений. Каждая головка внимания имеет обученный сдвиг в знаменателе softmax, аналогично вниманию с ошибкой в один.
Ротационные позиционные вложения RoPE кодирует позицию через вращение векторов запроса и ключа в зависимости от позиции токена. Кодирование позиции является критически важным, поскольку внимание не учитывает порядок входных токенов.
Длина контекста плотных слоев=131 072 Длина контекста плотных слоев gpt-oss расширена до 131072 токенов с использованием YaRN. YaRN (еще один метод масштабирования RoPE) — это вычислительно-эффективная техника, предназначенная для эффективного увеличения окна контекста моделей на основе трансформеров.
Внимание погружается Слушающие знаки — это токены, размещенные в начале последовательности для стабилизации внимания. Это особенно полезно в сценариях с длинным контекстом.

Квантование

Мы очень заинтересованы в квантовании, использованном здесь. Семейство моделей gpt-oss обучается нативно с использованием Microscaling FP4 или MXFP4, где веса MoE (90% от общего количества параметров) квантованы до 4,25 бит на параметр. Чтобы лучше понять микрошкалирование, мы рекомендуем прочитать Спецификацию форматов OCP Microscaling (MX) версии 1.0 — в частности, раздел 5.

Токенизатор

Токенизатор o200k_harmony, вариант BPE с вокабуляром из 200 тыс. токенов, используется на всех этапах обучения модели. Этот открытый токенизатор доступен в библиотеке TikToken и основан на токенизаторе o200k, использовавшемся в других моделях OpenAI.

Фокус после тренировки

Фокус пост-тренировки gpt-oss направлен на рассуждение, использование инструментов (поиск в интернете, Python и функции разработчиков), безопасность с помощью техник обучения с подкреплением на основе цепочек размышлений (CoT RL) и формат гармоничного чата. Насколько нам известно, датасеты/окружения RL для этой модели не были опубликованы.

Формат чата OpenAI Harmony

Существует несколько причин, почему шаблоны чатов являются критически важными. Последовательность форматов чатов между форматами обучения и развертывания уменьшает деградацию производительности. Как и токенизаторы, шаблоны чатов хранят информацию о том, как обрабатываются данные. Open AI использует пользовательский формат чата при обучении gpt-oss, который называется форматом гармоничного чата, с особыми токенами для границ сообщений и тегами ролей, такими как Пользователь, Ассистент, Система, и Разработчик.

Модель следует иерархии ролей Системы, Разработчика, Пользователя, Ассистента и Инструмента для разрешения конфликтов и использует каналы для управления видимостью сообщений для анализа, комментариев и финального вывода.

Этот подход обеспечивает продвинутые агентные функции, такие как переплетенные вызовы инструментов.

Дополнительные ресурсы

Концептуальные Обзоры

Иллюстрированный GPT-OSS — Джей Алламар: Визуальные материалы в этой статье прекрасно помогают лучше понять архитектуру gpt-oss и форматирование сообщений, которое использует модель. Нам действительно нравится, как эта статья рассказывает о различных ролях пользователей (например, конечных пользователей chatGPT, разработчиков приложений LLM, таких как cursor, или тех, кто выполняет последующую тренировку модели) и о том, как форматирование форм входных и выходных данных (например, трассировки рассуждений, взаимодействия с инструментами) поддерживает их.

От GPT-2 до gpt-oss: анализ архитектурных достижений — Себастьяна Рашки: Эта статья замечательна тем, что предоставляет перспективу того долгого пути, который мы прошли с момента появления GPT-2. Объяснения различных концепций (например: RoPE, SwiGLU, смесь экспертов, GQA, SWA, RMSNorm) очень понятные и подробные.

SwiGLU

Что такое SwiGLU? автор jcarlosroldan. Эта статья хорошо объясняет контекст вокруг SwiGLU как предпочтительной функции активации в современных LLM.

Формат чата

Шаблоны чата: конец молчаливому падению производительности. Шаблоны чата — это шаблоны на основе Jinja, встроенные в токенизаторы. Они автоматически форматируют сообщения разговора в правильную структуру, на которой модель была обучена. Эта статья объясняет, как если вы не форматируете запросы точно так, как ожидает модель, её производительность может незаметно ухудшаться, не обязательно с ошибками, но с плохими результатами.

Напоминаем, что gpt-oss использует формат чата Harmony.

Микромасштабирование

Спецификация форматов микроскалирования OCP (MX) версии 1.0: этот ресурс предоставляет дополнительную информацию о форматах микроскалирования от Open Compute Project (OCP). Раздел 2 объясняет, как форматы MX соответствуют основным принципам OCP. Они являются открытыми, совместно разработанными крупными игроками индустрии и основанными на предыдущих открытых стандартах; эффективными, обеспечивающими снижение точности и использования памяти для снижения затрат и повышения производительности; влиятельными, с широкой поддержкой, что делает их вероятными кандидатами на статус отраслевого стандарта; масштабируемыми, предназначенными для легкого внедрения на существующем оборудовании; и устойчивыми, снижая потребление энергии и углеродные выбросы в рабочих нагрузках AI.

GitHub — microsoft/microxcaling: Библиотека эмуляции PyTorch для форматов данных, совместимых с Microscaling (MX): Эта библиотека GitHub эмулирует форматы, совместимые с MX, и квантование bfloat в PyTorch. Вычисления используют float32/bfloat16/fp16, но учитывают представимый диапазон форматов MX или bfloat. Библиотека GitHub для эмуляции PyTorch форматов данных, совместимых с MX, поддерживает умножение матриц (в частности torch.matmul, torch.linear и torch.bmm) для тензоров MX, а также поэлементные операции, такие как GELU, softmax и layernorm, где основные операции (такие как сложение, вычитание, квадратный корень и экспонента) выполняются с точностью bfloat.

Микромасштабирование форматов данных для глубокого обучения: это статья, в которой введено понятие микромасштабирования форматов данных.

1.5x быстрее обучение MoE на Blackwell с ядрами MXFP8, созданными с нуля | Cursor — AI редактор кода: Эта статья описывает, как Cursor добился ускорения в 1.5 раза в обучении крупных языковых моделей от начала до конца на графических процессорах Blackwell. Переосмыслив слои смешивания экспертов (MoE) с использованием пользовательских ядер MXFP8, они значительно сократили время и затраты на обучение, ускоряя разработку и развертывание моделей на уровне SOTA.

Обратите внимание, что gpt-oss использует MXFP4, а не MXFP8 для весов линейной проекции в слое MoE.

Реализации

Тонкая настройка с использованием gpt-oss и Transformers Hugging Face: «На GPU H100 это занимает около 18 минут для обучения, но может занять больше времени в зависимости от вашего оборудования.»

Ollama (gpt-oss 20b, ~14 ГБ VRAM): «Ollama поддерживает MXFP4 формат нативно без дополнительных квантизаций или преобразований. Новые ядра разработаны для нового движка Ollama для поддержки MXFP4 формата. Ollama сотрудничала с OpenAI для проведения бенчмаркинга по сравнению с их эталонными реализациями, чтобы гарантировать, что реализации Ollama имеют такое же качество. »

Unsloth (GPT-OSS 20B, ~ 14 ГБ VRAM): « мы использовали библиотеку ядра Triton Openai непосредственно для того, чтобы сделать вывод MXFP4. Для создания / обучения, однако, ядра MXFP4 еще не поддерживает обучение, так как обратный проход еще не реализуется. Мы активно работаем над реализацией его в TRITON!

Дополнительные реализации можно найти по ссылке в репозитории gpt-oss.

Существуют определенно отличные ресурсы, так что не стесняйтесь комментировать все, что было упущено.

Заключительные мысли

При проведении исследований для этой статьи мы были поражены огромным количеством материалов, появившихся по теме gpt-oss, будь то новостные статьи, видео на YouTube, блоги, внешние базовые модели и т.д. Очевидно, что сообщество очень взволновано выходом открытых моделей от OpenAI, и нам интересно увидеть, как они будут использоваться и как будут сравниваться с другими подобными моделями.

Подождите — мы упомянули, что gpt-oss доступен на платформе DigitalOcean Gradient™ AI?

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *