Gönderi içeriği
Новая хайповая вещь: SGR Что такое SGR и какую проблему он решает 💃 До сих пор проблема галлюцинирования LLM является самой большой пробемой всех инженеров, которые с ними работают. К тому же модель периодически может отвечать по разному и желание зафиксировать ответ, особенно для локальных моделей, является очень большим вызовом. Для решения этой задачи появился подход Schema-Guided Reasoning (SGR). Идея проста и эффективна: заставить модель мыслить не хаотично, а внутри заданной схемы. Как он работает 🍑 В SGR схема — это структурированное описание того, как модель должна рассуждать. Обычно её задают через Pydantic-модели или JSON-схемы, где для каждого элемента указаны тип данных и описание. from pydantic import BaseModel from typing import List class MathReasoning(BaseModel): problem: str steps: List[str] final_answer: float SGR использует структурированный вывод и ограниченное декодирование. Проще говоря, с помощью такого вывода модель может выдать ответ только в том виде, который заранее определили. Например, если в схеме указано, что final_answer должно быть числом, модель не напишет там «около сорока» или «сложно сказать». Она будет вынуждена предоставить конкретное число в нужном формате. Схема не «зажимает» модель, а даёт ей понятный алгоритм. Это похоже на чек-лист доктора: сначала собрать симптомы и проверить показатели, потом выдвинуть гипотезы и назначить анализы и лишь затем ставит диагноз. Модель может думать как хочет, но в итоге обязана заполнить все поля. Что мы получаем: 1. Предсказуемость ответа 2. Большую интерпретируемость 3. Возможность добавлять экспертные данные внутри схемы, не теряя контекст Паттерны работы 👍 1️⃣Каскад Каскад подходит, когда задачу можно разбить на последовательные этапы, где каждый следующий шаг зависит от предыдущего. Например, при анализе текста: сначала краткое содержание, затем оценка качества и только потом итоговая рекомендация. class TextAnalysis(BaseModel): summary: str quality_rating: int final_recommendation: str 2️⃣Маршрутизация Маршрутизация нужна, когда заранее неизвестен тип входящей задачи. Например, нужно проанализировать юридические, финансовые или технические документы. Каждому типу нужен свой алгоритм разбора. class DocumentAnalysis(BaseModel): document_type: str # "legal", "financial", "technical" analysis_result: dict 3️⃣Цикл Цикл полезен, когда результат нужно постепенно уточнять. Модель выдвигает гипотезу, затем сама её проверяет — ищет противоречия — и при необходимости пересматривает ответ. Это похоже на процесс редактирования: черновик, правки, готовый вариант. class ComplianceAnalysis(BaseModel): hypothesis: str verification_questions: List[str] final_verdict: str Что почитать 🤑 1️⃣Schema-Guided Reasoning: как научить языковые модели последовательно рассуждать 2️⃣Schema-Guided Reasoning (SGR) от создателя этой технологии 3️⃣SGR Agent Core — the first SGR open-source agentic framework for Schema-Guided Reasoning