Немного про Chain-of-Thoughts (Цепочку размышлений)
Главные проблемы БЯМ (Больших языковых моделей):
Решение сложных логических проблем (Поиск неявно заданной информации)
Безопасность (Противодействие взломам и этичность поведения)
Галлюцинации (Генерация новой информации, которая не соответствует действительности)
Все проблемы комплексные, взаимно пересекающиеся. Когда решается сложная задача, мы ожидаем от модели чего-то нового, чего мы не знаем и не писали в запросе: то есть модель должна сгенерировать информацию, которая не представлена в запросе. Когда мы просим модель что-то найти, то ожидаем, что она напишет информацию, которая представлена в запросе. Часто сложная задача включает в себя поиск информации в запросе: тут уже видно противоречие, с которым сталкивается модель.
Введение
По первым проблемам OpenAI недавно нанесла удар с помощью новой модели. Новая модель использует технику Цепочку Размышлений Chain-of-Thoughts для решения задач.
Так выглядит диалог с ChatGPT o1-preview. Запрос пользователя запускает целую цепочку действий, в которой синтезируются данные моделью. Неизвестно все ли данные отображаются. В конце все размышления прячутся, а пользователь получает скомпонованный ответ.
При этом компания продолжает придерживаться принципа минималистичного интерфейса:
Пользователь вводит промпт
Модель внутри производит с ним ступенчатые действия
Пользователь получает суммированный ответ, что значительно снижает трудозатраты пользователя Все это сопровождается прикольной анимацией, в которой показаны этапы «размышлений» модели: это делает все более интуитивно понятным. На основе нескольких заявлений можно сделать определенные выводы:
Внутренний диалог будет скрыт от пользователя в дальнейшем
Увеличение времени размышлений рассматривается как благо (Думатель передает привет), подразумевая более глубокую и тщательную обработку информации.
Модель не хочет быть полиглотом, возможно для оптимизации использования токенов или специализации датасета. Однако с русским языком она работает вполне прилично.
Модель пожирает огромное количество токенов в сравнении с существующими, да и цена кусается, не говоря уж об ограничении доступа по апи к ней
Модель лучше работает с прямыми и четкими инструкциями
Иногда время, которое может потребоваться для решения, может быть… долгим.
Абстрактно выражаясь, модель содержит цикл, в котором прогоняются входные данные. На каждом этапе цикла они обогащаются синтетической информацией. Причем в двух этапах: на первом генерируется «некая» инструкция, на втором получается ответ модели. В модели существует некий механизм выхода из цикла. Вся или какая-то часть информации проводится через суммаризацию. Как именно, реализована это модель мне неизвестно, но логика процесса достаточно очевидна:
Цикл может быть реализован как внутри модели, так и как внешний инструмент
Инструкция может быть фиксированной, выбираемой или генерируемой моделью
Ответ модели может генерироваться внутренней моделью или внешней
Цикл может управляться как моделью, так и неким внешним инструментом
Суммаризация может управляться как внутренней моделью, так и внешней
Пять пунктов выше это неизвестные переменные, которые будут влиять на качество итогового ответа. Возникает вопрос: должны ли все пять пунктов будут синтезироваться моделью или нет? Если нет, то сколько лучше отдать на синтез? Должна ли на каком-то этапе добавляться несинтетическая информация или нет? Должен ли пользователь видеть процесс мышления или нет, или частично не должен?
Вне зависимости от эффективности модели, а она есть, такой подход будет иметь долгосрочные последствия для всей индустрии: сколько данных будет ожидаться от пользователя, будут ли синтетические данные показаны пользователю и так далее.
Что такое Цепочка Размышлений?
Цепочку размышлений можно реализовать, в определенном варианте, можно реализовать не только с дорогущей о1, но и со всеми существующими моделями.
Каким образом?
Давайте разберемся подробнее, что имеется ввиду.
Структурно она представляет некий набор сообщений, который последовательно отправляется модели. Ключевой момент: к этому набору сообщений добавляются ответы модели. В самом стандартном сценарии, цепочка каждый раз удлиняется на ответ модели и запрос пользователя. Чем же отличается это от просто огромного промпта, одной простыней отправленного модели?
Цепочка вопросов для создания цепочки размышления
Слева (A) представлена нумерация позиций сравнения к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. В первом случае, также был получен ответ. Однако цепочка позволяет получить более размеченный ответ.
От значительного куска информации отправленного одновременно, это отличается следующими пунктами:
Структурированностью: возникает структура вместо единого ответа.
Поэтапностью: появляются этапы взаимодействия, детализируя взаимодействие с БЯМ.
Интерактивностью: каждый этап может быть независимо изменен. То есть тем, что это тот самый диалог, который ведет пользователь, с любым чатом.
Пример цепочки сообщений:
Вот у меня есть такая проблема. Как ее решить?
Ответ 1
Напиши мне недостатки решения
Ответ 2
Придумай как победить недостатки
Ответ 3
Дай мне конечное решение
Ответ 4
Пример цепочки размышлений
Слева (A) представлена генерация паттернов с помощью одного запроса к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. Очевидно, что справа ответ больше насыщен примерами и более конкретен.
Стоит отметить, что все вопросы имеют крайне общий и абстрактный характер. Индивидуальный смысл добавляется уникальными текстами, в которых описана проблема пользователя, его ситуация, его возможности и т.п. Отвечая на запросы синтезированными ответами модель одновременно адаптируется к контексту беседы и углубляет понимание проблемы как свое, так и пользователя.
В модель цепочка размышлений отправляется по нарастающей: сначала первый вопрос, потом первая пара вопрос-ответ и второй вопрос и т.д. Диалог усложняется и обрастает данными на каждом этапе. Технически Цепочка Размышлений гораздо более прожорлива на токены, чем единая простыня: это дороже и медленнее (из-за количества токенов на отправку). Также она плохо работает с пост-отправкой, потому что для отправки следующего сообщение необходимо дождаться получения ответа на предыдущие. Поэтому я практически не использовал gpt-4, до появления gpt-4o-mini.
Цепочка Размышлений может помочь понять модель лучше:
Вот у меня есть такая проблема. Как ее решить? На втором этапе, будет отправлено не просто второе сообщение, а первое сообщение, ответ на него и второе сообщение:
Вот у меня есть такая проблема. Как ее решить?
Ответ модели 1
Указание добавить синтетические данные модели. Данные, которые помогут понять «как думает модель»
Ответ модели 2
Запрос итогового решения
Цепочка вопросов для генерации синтетической информации
Слева (A) представлена генерация паттернов с помощью одного запроса к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. В обоих случаях отмечена проблема в порядке вывода. Однако ответ слева значительно насыщен деталями.
Для модели Цепочка Размышлений будет выглядеть как текст, размеченный внутри как запросы пользователя, ее ответы и системные инструкции (по возможности). И она будет принимать его все в большем и большем количестве.
В данном случае, длительность цикла и момент окончания цикла будут фиксированы: они будут зависеть от количества вопрос, которые вы задаете. Дополнительно, вы можете самостоятельно контролировать работу модели на каждом этапе диалога. Инструкции могут быть как фиксированными, так и созданными при участии БЯМ.
К Цепочке Размышления следует относиться как к методу разбиения информации, которая предоставляется модели. Любая ваша проблема, с которой вы обращаетесь к модели, имеет определенные нюансы важные конкретно для вас. Эти нюансы необходимо предоставить модели, чтобы она подготовила максимально качественный ответ.
Эта информация состоит из следующих частей:
Ваши инструкции в Цепочке Размышления могут варьироваться от простых запросов до сложных, многоуровневых задач. Они могут включать в себя просьбы о создании текста, анализа данных, формулирования аргументов и т.д. Главное здесь — ясность и точность ваших инструкций, чтобы модель могла корректно понять ваши требования.
Ваши примеры играют важную роль в Цепочке Размышления. Они помогают модели понять, какого рода ответы вы ожидаете. Это могут быть как «хорошие» примеры, которые показывают желаемый результат, так и «плохие», которые помогают избегать нежелательных ответов.
Фактически, для создания Цепочки Размышления можно использовать любую модель, если позволяет размер контекста. Это интересный и многогранный инструмент для управления моделью. Для успешного использования Цепочки Размышления важно учитывать контекст. Это может включать в себя предыдущие запросы, информацию о пользователе, текущие обстоятельства и т.д. Наконец, Цепочка Размышления является динамическим процессом. Вы можете добавлять новые инструкции и примеры по мере необходимости, корректируя ответы модели и улучшая результаты.