Structured Outputs
Узнай, как структурированные выходные данные предоставляют машиночитаемую информацию ИИ. Изучи контроль схем и задачи компьютерного зрения с Ultralytics YOLO26 на платформе Ultralytics.
Структурированные выходные данные — это методология в области искусственного интеллекта, при которой ответы модели строго соответствуют заранее заданному формату данных, обычно схеме JSON. В традиционных больших языковых моделях (LLMs) генерация текста основана на вероятностном предсказании токенов, что часто приводит к неструктурированному тексту в свободной форме. Используя структурированные выходные данные, разработчики могут гарантировать, что система ИИ возвращает машиночитаемые и предсказуемые данные, устраняя необходимость в хрупких скриптах разбора и сложной обработке ошибок.
Сравнение структурированных выходных данных и режима JSON#
Хотя первые версии генеративного ИИ предлагали базовый «режим JSON», он лишь гарантировал валидность выходных данных как JSON, но не гарантировал наличие конкретных запрошенных ключей или типов данных. Структурированные выходные данные решают эту проблему с помощью метода, называемого декодированием с ограничениями. Во время генерации движок инференса на каждом шаге фильтрует словарь модели, маскируя токены, которые нарушили бы схему, заданную разработчиком. Это обеспечивает 100%-ное соответствие схеме.
Концепция вызова функций (использования инструментов) тесно связана с этой методологией. Вызов функций позволяет моделям определять, когда выполнять внешний инструмент, но полностью опирается на структурированные выходные данные, чтобы точно заполнять обязательные параметры инструмента без галлюцинаций.
Внедрение в отрасли и фреймворки#
В период с 2024 по 2025 год ведущие поставщики ИИ сделали структурированные выходные данные встроенной функцией для повышения надежности корпоративных систем. Например, API структурированных выходных данных OpenAI позволяет разработчикам задавать строгие схемы с помощью Pydantic в Python или Zod в JavaScript. Аналогичным образом, инструменты структурированных выходных данных Claude от Anthropic и структурированных выходных данных Google Gemini теперь поддерживают строгое соблюдение схем для сложных запросов.
Экосистемы с открытым исходным кодом также используют такие фреймворки, как vLLM и Outlines, чтобы предоставлять методологии декодирования с ограничениями для пользовательских моделей, созданных с помощью PyTorch.
Практические применения#
Реализация структурированных выходных данных превращает неоднозначные ответы ИИ в полезные данные для предиктивного моделирования. К основным вариантам использования относятся:
- Конвейеры извлечения данных: предприятия используют структурированные выходные данные для извлечения определенных сущностей (например, имен кандидатов, итоговых сумм счетов и дат) из необработанных неструктурированных документов и их непосредственной загрузки в базы данных SQL без ручного ввода данных.
- Автономные агенты ИИ: агентные рабочие процессы используют структурированные данные для навигации по сложному программному обеспечению. Агент может проанализировать запрос пользователя и сформировать строго заданную полезную нагрузку JSON, которая запускает внешний API, безопасно масштабируя операции с помощью таких систем, как Databricks Model Serving.
Структурированные выходные данные в компьютерном зрении#
Хотя о структурированных выходных данных много говорят в контексте обработки естественного языка, они являются фундаментальным принципом работы компьютерного зрения. Модели компьютерного зрения не выводят текст в свободной форме: они изначально формируют высокоорганизованные тензоры, представляющие координаты, классы и оценки уверенности. Например, современные модели, такие как Ultralytics YOLO26, анализируют изображение и возвращают данные о пространственном расположении в строго заданном формате, что идеально подходит для бесшовного развертывания моделей в периферийных средах с низкой задержкой.
Следующий фрагмент показывает, насколько легко извлекать структурированные результаты обнаружения объектов с помощью пакета ultralytics:
from ultralytics import YOLO
# Load the recommended Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference to generate structured visual data
results = model("image.jpg")
# The model strictly outputs structured bounding box objects
for box in results[0].boxes:
print(f"Class ID: {box.cls}, Confidence: {box.conf}, Coordinates: {box.xyxy}")Устраняя разрыв между вероятностной логикой ИИ и детерминированными требованиями программного обеспечения, структурированные выходные данные становятся важнейшим компонентом создания масштабируемых систем, готовых к эксплуатации, на платформе Ultralytics и за ее пределами.









