NEURALDEEP Telegram 1606
Forwarded from Чуковский
Schema-Guided Reasoning

В профильных LLM-каналах начал набирать популярность термин SGR (Schema-Guided Reasoning), но по какой-то причине народ не всегда понимает, что он обозначает, и зачем нужен. Никакого секрета нет, главное запомнить одно уравнение:

SGR = SO + COT



Из чего складывается Schema-Guided Reasoning:

1️⃣Во-первых, нам нужна модель, которая поддерживает Stuctured Output (SO) - возможность управлять результатом работы LLM, "зануляя" вероятности токенов, не подходящих под описанную нами грамматику, прямо во время выполнения.

2️⃣Во-вторых, нам нужно определить структуру желаемого ответа так, чтобы она "помогала" модели мыслить (тот самый Chain-Of-Thought).
Мы как бы «заставляем» модель пройти определенные этапы размышления перед тем как дать ответ, чтобы в результате вероятность корректных токенов ответа была выше.

Отличным примером использования такой техники является бот для дип-ресерча на открытых модельках sgr-deep-research, разработанный автором канала @neuraldeep:

🟢Сначала (скриншот 1 в комментах) мы определяем несколько классов, которые описывают шаги размышления модели. Например, когда модель хочет сгенерировать список уточняющих вопросов - она должна сначала описать себе причину, зачем ей это уточнение потребовалось, далее перечислить список терминов, которые она не поняла, предположить что они обозначают, и только после этого сгенерировать вопросы пользователя

🟢Одновременно с этим, для описания шагов размышления мы используем Pydantic-классы. Зачем? Чтобы можно было их отправить в LLM в качестве грамматики, ограничивающей результат. Теперь, если LLM решит выполнить шаг «Уточнение вопроса», она обязательно должна будет пройти указанные выше шаги, и это ограничение будет завернуто прямо в движок ее инференса. Модель просто физически не сможет отойти от схемы и начать генерировать что-то нерелевантное (почти всегда, но об этом позже)

Далее, эти шаги объединяются в цепочку (скриншот 2), которая представляет собой финальный ответ, и структура которой будет отправлена в LLM в качестве промпта.

И вот на этом этапе, становится понятно, зачем понадобился вообще SGR, и в чем его преимущество относительно других методов. Для того, чтобы сгенерировать следующий шаг в размышлениях, LLM обязательно сгенерирует:
🟢1-4 предложения, как она видит текущую ситуацию;
🟢статус выполнения плана исследования, закончен ли он, сколько еще шагов нужно пройти
🟢сколько еще шагов поиска она может сделать
🟢достаточно ли ей данных для отчета
🟢и только после этого, она сможет выбрать инструмент, который будет запускать (или доуточнение, или веб-поиск, или генерация ответа).

Для больших моделей, такой подход часто избыточен - они и так достаточно умные, чтобы рассуждать прямо "из коробки", и всегда следовать нужной инструкции.
Но если ваша модель относительно небольшая, и может легко отклоняться от инструкций, или она недостаточно хорошо их выполняет, то такие вот "рельсы" в виде Structured Output + зашитый в ответ процесс размышлений в стиле Chain-Of-Thought могут дать значительный прирост качества на ряде задач.

Конечно, у такого подхода есть и минусы, и его тоже нужно правильно готовить, но об этом как-нибудь в другой раз

@korneychukov
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3417🔥5



tgoop.com/neuraldeep/1606
Create:
Last Update:

Schema-Guided Reasoning

В профильных LLM-каналах начал набирать популярность термин SGR (Schema-Guided Reasoning), но по какой-то причине народ не всегда понимает, что он обозначает, и зачем нужен. Никакого секрета нет, главное запомнить одно уравнение:

SGR = SO + COT



Из чего складывается Schema-Guided Reasoning:

1️⃣Во-первых, нам нужна модель, которая поддерживает Stuctured Output (SO) - возможность управлять результатом работы LLM, "зануляя" вероятности токенов, не подходящих под описанную нами грамматику, прямо во время выполнения.

2️⃣Во-вторых, нам нужно определить структуру желаемого ответа так, чтобы она "помогала" модели мыслить (тот самый Chain-Of-Thought).
Мы как бы «заставляем» модель пройти определенные этапы размышления перед тем как дать ответ, чтобы в результате вероятность корректных токенов ответа была выше.

Отличным примером использования такой техники является бот для дип-ресерча на открытых модельках sgr-deep-research, разработанный автором канала @neuraldeep:

🟢Сначала (скриншот 1 в комментах) мы определяем несколько классов, которые описывают шаги размышления модели. Например, когда модель хочет сгенерировать список уточняющих вопросов - она должна сначала описать себе причину, зачем ей это уточнение потребовалось, далее перечислить список терминов, которые она не поняла, предположить что они обозначают, и только после этого сгенерировать вопросы пользователя

🟢Одновременно с этим, для описания шагов размышления мы используем Pydantic-классы. Зачем? Чтобы можно было их отправить в LLM в качестве грамматики, ограничивающей результат. Теперь, если LLM решит выполнить шаг «Уточнение вопроса», она обязательно должна будет пройти указанные выше шаги, и это ограничение будет завернуто прямо в движок ее инференса. Модель просто физически не сможет отойти от схемы и начать генерировать что-то нерелевантное (почти всегда, но об этом позже)

Далее, эти шаги объединяются в цепочку (скриншот 2), которая представляет собой финальный ответ, и структура которой будет отправлена в LLM в качестве промпта.

И вот на этом этапе, становится понятно, зачем понадобился вообще SGR, и в чем его преимущество относительно других методов. Для того, чтобы сгенерировать следующий шаг в размышлениях, LLM обязательно сгенерирует:
🟢1-4 предложения, как она видит текущую ситуацию;
🟢статус выполнения плана исследования, закончен ли он, сколько еще шагов нужно пройти
🟢сколько еще шагов поиска она может сделать
🟢достаточно ли ей данных для отчета
🟢и только после этого, она сможет выбрать инструмент, который будет запускать (или доуточнение, или веб-поиск, или генерация ответа).

Для больших моделей, такой подход часто избыточен - они и так достаточно умные, чтобы рассуждать прямо "из коробки", и всегда следовать нужной инструкции.
Но если ваша модель относительно небольшая, и может легко отклоняться от инструкций, или она недостаточно хорошо их выполняет, то такие вот "рельсы" в виде Structured Output + зашитый в ответ процесс размышлений в стиле Chain-Of-Thought могут дать значительный прирост качества на ряде задач.

Конечно, у такого подхода есть и минусы, и его тоже нужно правильно готовить, но об этом как-нибудь в другой раз

@korneychukov

BY Neural Kovalskii


Share with your friend now:
tgoop.com/neuraldeep/1606

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? Unlimited number of subscribers per channel bank east asia october 20 kowloon ZDNET RECOMMENDS The SUCK Channel on Telegram, with a message saying some content has been removed by the police. Photo: Telegram screenshot.
from us


Telegram Neural Kovalskii
FROM American