OpenAI o1 и новые инструменты для разработчиков

Day9_16x9_socialpreview.jpg?w=1600&h=900

Представляем OpenAI o1, улучшения Realtime API, новый метод тонкой настройки (fine-tuning) и многое другое для разработчиков.

Сегодня мы представляем более мощные модели, новые инструменты для кастомизации и обновления, которые повышают производительность, гибкость и экономичность для разработчиков, создающих приложения на базе ИИ. Среди них:

  • OpenAI o1 в API с поддержкой вызова функций (function calling), сообщений разработчика, структурированных выходов (Structured Outputs) и возможностей компьютерного зрения.
  • Обновления Realtime API, включая простую интеграцию WebRTC, снижение цен на 60% для аудио GPT‑4o и поддержку GPT‑4o mini по цене, составляющей одну десятую от прежних тарифов на аудио.
  • Тонкая настройка по предпочтениям (Preference Fine-Tuning) — новый метод кастомизации моделей, упрощающий их адаптацию под предпочтения пользователей и разработчиков.
  • Новые SDK для Go и Java доступны в бета-версии.

OpenAI o1 в API

OpenAI o1, наша модель рассуждений, созданная для решения сложных многоэтапных задач с повышенной точностью, становится доступна разработчикам на 5-м уровне использования (usage tier 5) в API. o1 является преемником OpenAI o1‑preview, которую разработчики уже использовали для создания агентных приложений с целью оптимизации техподдержки, цепочек поставок и прогнозирования сложных финансовых трендов.

o1 готова к промышленному использованию и обладает ключевыми функциями для реализации реальных сценариев применения:

  • Вызов функций (Function calling): плавная интеграция o1 с внешними данными и API.
  • Структурированные выходы (Structured Outputs): генерация ответов, строго соответствующих вашей пользовательской схеме JSON Schema.
  • Сообщения разработчика (Developer messages): задание инструкций или контекста для модели, таких как тон, стиль и другие поведенческие рекомендации.
  • Возможности компьютерного зрения: анализ изображений для расширения спектра применения в науке, производстве или программировании, где важны визуальные входные данные.
  • Сниженная задержка: o1 использует в среднем на 60% меньше токенов для рассуждений по сравнению с o1‑preview для заданного запроса.
  • Новый параметр API `reasoning_effort` позволяет контролировать, сколько времени модель думает перед ответом.

Поставляемый нами сегодня снимок o1 o1‑2024‑12‑17 представляет собой новую версию модели с дополнительным обучением, которую мы выпустили в ChatGPT две недели назад. Она улучшает аспекты поведения модели на основе отзывов пользователей, сохраняя при этом передовые возможности, которые мы оценивали в нашей системной карте o1 (o1 System Card). Скоро мы также обновим o1 в ChatGPT до этой версии. Приведенные ниже результаты оценки отражают производительность этого нового снимка, предоставляя разработчикам актуальные бенчмарки для данной версии.

o1‑2024‑12‑17 демонстрирует новые передовые результаты по ряду бенчмарков, повышая экономичность и производительность.

КатегорияБенчмаркo1–2024–12–17o1-preview
ОбщиеGPQA diamond75.773.3
MMLU (pass @1)91.890.8
ПрограммированиеSWE-bench Verified48.941.3
LiveBench (Coding)76.652.3
МатематикаMATH (pass @1)96.485.5
AIME 2024 (pass @1)79.242.0
MGSM (pass @1)89.390.8
ЗрениеMMMU (pass @1)77.3
MathVista (pass @1)71.0
ФактологичностьSimpleQA42.642.4
АгентыTAU-bench (розница)73.5
TAU-bench (авиалинии)54.2
Точность оценки моделей по различным метрикам
Точность

Кроме того, мы заметили, что o1‑2024‑12‑17 значительно превосходит gpt-4o в тестировании вызова функций и структурированных выходов.

Мы открываем доступ постепенно, одновременно расширяя его для дополнительных уровней использования и увеличивая лимиты запросов. Чтобы начать работу, ознакомьтесь с документацией по API.

Улучшения Realtime API

Интерфейс Realtime API позволяет разработчикам создавать естественные интерактивные диалоговые среды с низкой задержкой. Это идеальное решение для голосовых ассистентов, инструментов живого перевода, виртуальных репетиторов, интерактивных систем поддержки клиентов или даже вашего собственного виртуального Санта-Клауса. Сегодня мы выпускаем обновления в ответ на самые частые запросы разработчиков: прямую интеграцию WebRTC, сниженные цены и больший контроль над ответами.

Поддержка WebRTC

Мы внедряем поддержку WebRTC для Realtime API. WebRTC — это открытый стандарт, который упрощает создание и масштабирование продуктов с поддержкой голосового общения в реальном времени на различных платформах: будь то браузерные приложения, мобильные клиенты, IoT-устройства или прямые конфигурации сервер-сервер.

Наша интеграция WebRTC разработана для обеспечения плавной и быстрой реакции в реальных условиях, даже при переменном качестве сети. Она берет на себя задачи по кодированию аудио, потоковой передаче, подавлению шумов и управлению перегрузкой сети.

Благодаря WebRTC вы теперь можете добавить функции Realtime всего с помощью нескольких строк кода на JavaScript:

JavaScript

1
async function createRealtimeSession(localStream, remoteAudioEl, token) {
2
const pc = new RTCPeerConnection();
3
pc.ontrack = e => remoteAudioEl.srcObject = e.streams[0];
4
pc.addTrack(localStream.getTracks()[0]);
5
const offer = await pc.createOffer();
6
await pc.setLocalDescription(offer);
7
const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/sdp' };
8
const opts = { method: 'POST', body: offer.sdp, headers };
9
const resp = await fetch('https://api.openai.com/v1/realtime', opts);
10
await pc.setRemoteDescription({ type: 'answer', sdp: await resp.text() });
11
return pc;
12
}

Узнайте больше об интеграции WebRTC в документации по API.

Новые снимки GPT-4o и GPT-4o mini для работы в реальном времени по более низкой цене

Мы выпускаем gpt-4o-realtime-preview-2024-12-17 в рамках бета-тестирования Realtime API с улучшенным качеством звука, более надежным вводом (особенно для продиктованных чисел) и сниженными затратами. Благодаря оптимизации эффективности мы снижаем стоимость аудиотокенов на 60% — до $40 за 1 млн входных токенов и $80 за 1 млн выходных токенов. Стоимость кэшированного ввода аудио снижена на 87,5% — до $2,50 за 1 млн входных токенов.

Мы также добавляем GPT-4o mini в бета-версию Realtime API под именем gpt-4o-mini-realtime-preview-2024-12-17. GPT-4o mini — наша самая экономичная небольшая модель, которая предоставляет те же богатые возможности голосового взаимодействия в Realtime API, что и GPT-4o. Стоимость аудиотокенов для GPT-4o mini составляет $10 за 1 млн входных и $20 за 1 млн выходных токенов. Текстовые токены стоят $0,60 за 1 млн входных токенов и $2,40 за 1 млн выходных токенов. Кэшированные аудио и текст стоят $0,30 за 1 млн токенов.

Эти версии доступны в Realtime API, а также в Chat Completions API как gpt-4o-audio-preview-2024-12-17 и gpt-4o-mini-audio-preview-2024-12-17.

Больше контроля над ответами

Мы добавляем в Realtime API следующие функции, чтобы упростить создание исключительных голосовых интерфейсов:

  • Параллельные внедиалоговые ответы для выполнения фоновых задач, таких как модерация контента или классификация, без прерывания голосового взаимодействия с пользователем.
  • Пользовательский контекст ввода для указания элементов диалога, которые необходимо включить в качестве входных данных модели. Например, можно запустить проверку модерации только для последней реплики пользователя или повторно использовать прошлый ответ без перманентного изменения состояния сеанса.
  • Управляемое время ответапозволяет использовать серверное определение активности речи (VAD) без автоматического запуска ответа. Это дает возможность собрать необходимые данные (например, сведения об учетной записи) и добавить их в контекст модели до ручного инициирования голосового ответа, обеспечивая больший контроль над таймингом и точностью.
  • Увеличенная максимальная продолжительность сеанса с 15 до 30 минут.

Тонкая настройка по предпочтениям (Preference Fine-Tuning)

API тонкой настройки теперь поддерживает тонкую настройку по предпочтениям, что позволяет легко адаптировать модели под предпочтения пользователей и разработчиков. Этот метод использует прямую оптимизацию предпочтений (DPO) для сравнения пар ответов модели, обучая ее отличать предпочтительные результаты от непредпочтительных. Обучаясь на попарных сравнениях, а не на фиксированных целях, метод тонкой настройки по предпочтениям особенно эффективен для субъективных задач, где важны тон, стиль и креативность.

Ниже приведены основные различия между тонкой настройкой по предпочтениям и контролируемой тонкой настройкой (Supervised Fine-Tuning).


Контролируемая тонкая настройка (SFT)

Тонкая настройка по предпочтениям (PFT)

Цель

Побудить модель генерировать правильные ответы путем воспроизведения размеченных данных

Оптимизировать модель для поддержки желаемого поведения путем подкрепления предпочтительных ответов и снижения вероятности непредпочтительных

Обучающие данные

Точные пары входных и выходных данных

Пары предпочтительных и непредпочтительных ответов модели, полученные посредством разметки людьми, A/B-тестирования или генерации синтетических данных

Варианты использования

Задачи, для которых легко подготовить идеальный результат (например, кастомный формат кода), и где требуется строгая правильность

Эффективно для задач, где понятия «лучшего» ответа субъективны, таких как творческое письмо или создание резюме.

Мы начали тестировать тонкую настройку по предпочтениям с проверенными партнерами, которые уже добились многообещающих результатов. Например, Rogo AI создает ИИ-ассистента для финансовых аналитиков, который разбивает сложные запросы на подзапросы. Используя созданный экспертами бенчмарк Rogo-Golden, они выяснили, что в то время как контролируемая тонкая настройка сталкивалась с трудностями при расширении нетипичных запросов (например, при отсутствии таких метрик, как ARR для запросов вроде «насколько быстро растет компания X»), тонкая настройка по предпочтениям решила эти проблемы, увеличив точность базовой модели с 75% до более чем 80%.

Тонкая настройка по предпочтениям становится доступна сегодня для gpt-4o-2024-08-06 и скоро появится для gpt-4o-mini-2024-07-18. Она будет предлагаться по той же цене за обученный токен, что и контролируемая тонкая настройка, а поддержка наших новейших моделей появится в начале следующего года. Дополнительную информацию можно найти в нашем руководстве по тонкой настройке в документации по API.

Go- и Java-SDK в бета-версии

Наконец, мы представляем два новых официальных SDK для Go и Java в бета-версии, в дополнение к нашим существующим официальным библиотекам для Python, Node.js и .NET. Наша цель — сделать API OpenAI простыми в использовании независимо от выбранного вами языка программирования.

Go — это язык со статической типизацией, идеально подходящий для работы с параллелизмом и создания масштабируемых API и серверных систем. OpenAI Go SDK упрощает взаимодействие с моделями OpenAI в вашем коде на Go.

Go

1
client := openai.NewClient()
2
ctx := context.Background()
3
prompt := "Write me a haiku about Golang."
4

5
completion, err := client.Chat.Completions.New(
6
ctx,
7
openai.ChatCompletionNewParams{
8
Messages: openai.F(
9
[]openai.ChatCompletionMessageParamUnion{
10
openai.UserMessage(prompt),
11
},
12
),
13
Model: openai.F(openai.ChatModelGPT4o),
14
},
15
)

Дополнительную информацию об Go SDK можно найти в файле README на GitHub.

Java была и остается ключевым инструментом в разработке корпоративного программного обеспечения, ценимым за систему типов и огромную экосистему библиотек с открытым исходным кодом. OpenAI Java SDK предоставляет типизированные объекты запросов и ответов, а также полезные утилиты для управления запросами к API.

Java

1
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
2

3
ChatCompletionCreateParams params = ChatCompletionCreateParams
4
.builder()
5
.message(List.of(
6
ChatCompletionMessageParam.ofChatCompletionUserMessageParam(
7
ChatCompletionUserMessageParam
8
.builder()
9
.role(ChatCompletionUserMessageParam.Role.USER)
10
.content(
11
ChatCompletionUserMessageParam.Content.ofTextContent(
12
"What is the origin of Java's Duke mascot?"
13
)
14
)
15
.build()
16
)
17
))
18
.model(ChatModel.O1_PREVIEW)
19
.build();
20

21
ChatCompletion chatCompletion = client.chat().completions().create(params);

Дополнительную информацию о Java SDK можно найти в файле README на GitHub.

Заключение

Мы с нетерпением ждем возможности увидеть, что вы создадите с помощью этих обновлений — будь то новые голосовые приложения, настроенные модели или агентские приложения, расширяющие границы возможного. Ознакомьтесь с подробными руководствами по o1, Realtime API, интеграции WebRTC и тонкой настройке по предпочтениям в нашей документации по API, чтобы узнать больше и начать экспериментировать уже сегодня.

Есть вопросы? Обратитесь к нашей команде на форуме разработчиков OpenAI.

Авторы

OpenAI

Полный текст статьи читайте на OpenAI