В OpenAI представили структурированные выводы в API

В OpenAI представили структурированные выходные данные в API. Эта функция обеспечит, чтобы выходные данные, сгенерированные моделью, точно соответствовали схемам JSON разработчиков.

Как отмечает компания, разработчики используют API от OpenAI для создания ИИ-помощников, способных извлекать данные и отвечать на вопросы с помощью вызова функций. Они также работают над обходом ограничений LLM в этой области с помощью инструментов с открытым исходным кодом, подсказок и повторных запросов, чтобы гарантировать, что выходные данные модели соответствуют форматам, необходимым для взаимодействия с их системами. Именно эту проблему призваны решить структурированные выводы.

Новая модель gpt-4o-2024-08-06 со структурированными выходами набрала 100% в оценках со схемами JSON. Для сравнения — gpt-4-0613 набирала менее 40%.

Структурированные выводы доступны в двух форматах:

вызова функций при установке strict: true в определении. Эта функция работает со всеми моделями, включая gpt-4-0613, gpt-3.5-turbo-0613 и более поздние;

новой опции для параметра response_format через json_schema. Это полезно, когда модель не вызывает инструмент, а отвечает пользователю структурированным образом. Опция работает с новейшими моделями GPT-4o: gpt-4o-2024-08-06 и gpt-4o-mini-2024-07-18.

В API появилось новое значение строки отказа, которое позволяет разработчикам программно определять, сгенерировала ли его модель вместо выходных данных, соответствующих схеме.

В Python и Node SDK внедрили встроенную поддержку структурированных выводов. SDK будут обрабатывать преобразование типа данных в поддерживаемую схему JSON, автоматически десериализуя ответ JSON в типизированную структуру данных и анализируя отказы, если они возникнут.

В OpenAI использовали двухэтапный подход к повышению надёжности выходных данных модели, которые соответствуют схеме JSON. Во-первых, gpt-4o-2024-08-06 обучили понимать сложные схемы и то, как лучше всего создавать выходные данные, которые им соответствуют. Затем разработчики использовали детерминированный подход, чтобы ограничить выходные данные модели. Подход основан на методе, известном как ограниченная выборка или ограниченное декодирование. Он ограничивает модели только токенами, которые были бы допустимы в соответствии с предоставленной схемой, а не всеми доступными.

{ «reasoning_steps»: [ «First step is to compare the numbers 9.11 and 9.9.», «Both numbers have the same whole number part, which is 9.», «To compare the decimal parts, convert them to the same number of decimal places.», «9.11 has two decimal places: it is 9.11.», «9.9 has one decimal place: it can be rewritten as 9.90.», «Now, compare 9.11 and 9.90 by looking at the decimal parts.», «Compare 11 with 90.», «90 is greater than 11, so 9.90 is greater than 9.11.» ], «answer»: «9.9 is bigger than 9.11.» }

Для реализации подхода предоставленную схему JSON преобразовали в контекстно-свободную грамматику (CFG), которая соответствует определённым правилам. При выборке после каждого токена механизм вывода определит, какие токены являются допустимыми на основе ранее сгенерированных правил в грамматике. Затем этот список используется для маскировки следующего шага выборки. Так как схема была предварительно обработана, можно применять кэшированную структуру данных с минимальными издержками.

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

они допускают только подмножество схемы JSON, подробно описанное в документах компании;

первый ответ API с новой схемой влечёт дополнительную задержку, но последующие будут быстрыми. Это связано с тем, что во время первого запроса схема обрабатывается, а артефакты кэшируются для быстрого повторного использования в дальнейшем. Типичные схемы обрабатываются менее чем за 10 секунд при первом запросе, но более сложные могут потребовать до минуты;

модель может не следовать схеме, если она решит отклонить небезопасный запрос. Тогда в ответном сообщении будет установлено логическое значение отказа, равное true;

модель может не следовать схеме, если генерация достигнет max_tokens или другого условия остановки до завершения;

структурированные выходные данные не предотвращают все виды ошибок модели. Например, она может по-прежнему допускать ошибки в значениях объекта JSON;

такие данные несовместимы с параллельными вызовами функций. Вызов может не соответствовать предоставленным схемам. Разработчикам требуется установить parallel_tool_calls: false, чтобы отключить параллельный вызов;

схемы JSON, поставляемые со структурированными выводами, не соответствуют требованиям Zero Data Retention.

Новая функциональность доступна в API Chat Completions, Assistants API и Batch API. Структурированные выходные данные с вызовом функций также совместимы с входными данными Vision.

Структурированные выходные данные с форматами ответов доступны в gpt-4o-mini и gpt-4o-2024-08-06 и любых тонких настройках на основе этих моделей. Эта функциональность доступна в API Chat Completions, Assistants API и Batch API.

Ранее OpenAI объявила о проведении конференции разработчиков DevDay 2024, но компания не будет анонсировать в ходе неё крупную передовую модель искусственного интеллекта.

Источник: habr.com

0 0 голоса
Рейтинг новости
12526
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии