SGR (Schema Guided Reasoning)
Alexander FedkinПо умолчанию LLM отдают произвольный текст. Иногда это удобно, но иногда хочется строгий структурированный вывод. Например, в задачах классификации
Structured Output
Строгий вывод делается благодаря Structured Output
1. Задается JSON-схема ответа

2. LLM возвращает ответ строго в этом формате

SGR
Schema Guided Reasoning — это развитие этой идеи: давайте попросим LLM не просто структурировать ответ, но и структурировать рассуждения:
Попросим LLM возвращать не только класс, но и факты (цитаты, на основе которых она определила класс), а также короткое обоснование

Пример работы агента:

Почему это полезно? SGR позволяет зафреймить модель:
- сначала собрать доказательства
- написать обоснование
- и только потом дать вердикт
Это может помочь значительно увеличить воспроизводимость работы, а также уменьшить кол-во галлюцинаций. Плюсом к этому, дебажить и понимать, почему агент отработал именно так, становится сильно проще
SGR patterns
Такая базовая технология позволяет реализовать различные паттерны рассуждений модели. Примеры можно посмотреть в этой статье
Один из интересных паттернов — Counterfactual-Guided Decision
Мы просим модель написать, какое минимальное изменение входа должно было бы произойти, чтобы она изменила свое решение

Что ответит модель на спорный с точки зрения классификации текст

Можно заметить, что текст содержит как позитив, так и негатив. Модель это обосновывает и выбирает label: neutral
При этом добавляет, что
- если бы не было проблем с оплатой, то классифицировали как positive
- stability: fragile — вердикт не очень устойчивый, и при небольшом изменении отзыва мы бы изменили класс
Summary
Structured Output решает инженерную задачу и делает ответы модели предсказуемыми с точки зрения схемы, но сам по себе формат не гарантирует качество рассуждения
SGR в свою очередь позволяет зафреймить модель на определенный формат рассуждений и доказательств своего выбора
P.S. картинки с примерами с https://platform.openai.com/