OpenAI представила "Структурированные выходные данные" - новую функцию API, призванную решить давнюю проблему надежной генерации структурированных данных из больших языковых моделей (LLM). Эта функция, доступная уже сейчас, гарантирует, что генерируемые моделью выходные данные будут соответствовать определенным разработчиком схемам JSON.
Генерация структурированных данных из неструктурированных исходных данных является краеугольным камнем многих современных приложений ИИ. Разработчики используют API OpenAI для создания сложных помощников, способных получать данные, отвечать на сложные вопросы с помощью вызова функций, извлекать структурированные данные для беспрепятственного ввода данных, а также создавать многоэтапные рабочие процессы, в которых LLM может выполнять определенные действия.
Однако присущие LLM ограничения, связанные с постоянным получением структурированных данных, вынуждают разработчиков использовать обходные пути, такие как инструменты с открытым исходным кодом, сложные методы подсказок и многократные повторные запросы. Эти обходные пути, несмотря на свою функциональность, усложняют задачу и снижают эффективность.
Структурированный вывод OpenAI обещает устранить эти обходные пути. Это достигается путем ограничения моделей OpenAI в соответствии со схемами, предоставленными разработчиками, а также путем обучения моделей лучшему пониманию и соблюдению сложных структур данных.
"Structured Outputs решает эту проблему, ограничивая модели OpenAI в соответствии со схемами, предоставленными разработчиками, и обучая наши модели лучше понимать сложные схемы", - говорится в сообщении OpenAI в блоге.
Внутренние оценки с использованием сложных схем JSON показали замечательные результаты. Последняя модель, gpt-4o-2024-08-06, набрала 100 % баллов за соответствие структурированным выводам, что значительно лучше, чем предыдущая модель gpt-4-0613, набравшая менее 40 %.

Структурированные выходные данные предлагаются в двух основных вариантах реализации:
Вызов функций: Этот метод, включаемый установкой strict: true в определении функции, позволяет разработчикам определять точную структуру данных, возвращаемых функциями, вызываемыми моделью. Эта возможность совместима со всеми инструментами поддержки моделей, включая gpt-4-0613, gpt-3.5-turbo-0613 и более поздние версии.
Параметр формата ответа: Этот подход позволяет разработчикам предоставлять JSON-схему с помощью новой опции json_schema в параметре response_format. Это особенно полезно, когда модель должна отвечать пользователям напрямую в структурированном формате без обращения к инструментам. В настоящее время эта возможность поддерживается последними моделями GPT-4o: gpt-4o-2024-08-06 и gpt-4o-mini-2024-07-18. Установка strict: true в response_format обеспечивает соответствие вывода модели предоставленной схеме.
OpenAI уделяет приоритетное внимание безопасности структурированных выходных данных, обеспечивая их соответствие уже существующим политикам безопасности. Модель сохраняет возможность отклонять небезопасные запросы, о чем разработчикам сообщает новое значение строки отказа в ответах API. Это позволяет программно обнаруживать отказы, обеспечивая предсказуемое поведение и упрощая обработку ошибок. Примечательно, что отсутствие значения отказа и успешный процесс генерации (о чем свидетельствует finish_reason) гарантируют корректный вывод JSON, соответствующий заданной разработчиком схеме.
Встроенная поддержка структурированного вывода была интегрирована в OpenAI SDK для Python и Node, что упрощает ее использование. Разработчики могут определять схемы для инструментов или форматы ответов, предоставляя объект Pydantic или Zod, который SDK автоматически преобразуют в JSON Schema. SDK также управляют десериализацией ответов JSON в типизированные структуры данных и обрабатывают потенциальные отказы.
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
Комментарии