Главные проблемы БЯМ (Больших языковых моделей):

  • Решение сложных логических проблем (Поиск неявно заданной информации)

  • Безопасность (Противодействие взломам и этичность поведения)

  • Галлюцинации (Генерация новой информации, которая не соответствует действительности)

Все проблемы комплексные, взаимно пересекающиеся. Когда решается сложная задача, мы ожидаем от модели чего-то нового, чего мы не знаем и не писали в запросе: то есть модель должна сгенерировать информацию, которая не представлена в запросе. Когда мы просим модель что-то найти, то ожидаем, что она напишет информацию, которая представлена в запросе. Часто сложная задача включает в себя поиск информации в запросе: тут уже видно противоречие, с которым сталкивается модель.

Введение

По первым проблемам OpenAI недавно нанесла удар с помощью новой модели. Новая модель использует технику Цепочку Размышлений Chain-of-Thoughts для решения задач.

Так выглядит диалог с ChatGPT o1-preview. Запрос пользователя запускает целую цепочку действий, в которой синтезируются данные моделью. Неизвестно все ли данные отображаются. В конце все размышления прячутся, а пользователь получает скомпонованный ответ.
Так выглядит диалог с ChatGPT o1-preview. Запрос пользователя запускает целую цепочку действий, в которой синтезируются данные моделью. Неизвестно все ли данные отображаются. В конце все размышления прячутся, а пользователь получает скомпонованный ответ.

При этом компания продолжает придерживаться принципа минималистичного интерфейса:

  • Пользователь вводит промпт

  • Модель внутри производит с ним ступенчатые действия

  • Пользователь получает суммированный ответ, что значительно снижает трудозатраты пользователя Все это сопровождается прикольной анимацией, в которой показаны этапы "размышлений" модели: это делает все более интуитивно понятным. На основе нескольких заявлений можно сделать определенные выводы:

  • Внутренний диалог будет скрыт от пользователя в дальнейшем

  • Увеличение времени размышлений рассматривается как благо (Думатель передает привет), подразумевая более глубокую и тщательную обработку информации.

  • Модель не хочет быть полиглотом, возможно для оптимизации использования токенов или специализации датасета. Однако с русским языком она работает вполне прилично.

  • Модель пожирает огромное количество токенов в сравнении с существующими, да и цена кусается, не говоря уж об ограничении доступа по апи к ней

  • Модель лучше работает с прямыми и четкими инструкциями

Иногда время, которое может потребоваться для решения, может быть... долгим.
Иногда время, которое может потребоваться для решения, может быть... долгим.

Абстрактно выражаясь, модель содержит цикл, в котором прогоняются входные данные. На каждом этапе цикла они обогащаются синтетической информацией. Причем в двух этапах: на первом генерируется "некая" инструкция, на втором получается ответ модели. В модели существует некий механизм выхода из цикла. Вся или какая-то часть информации проводится через суммаризацию. Как именно, реализована это модель мне неизвестно, но логика процесса достаточно очевидна:

  1. Цикл может быть реализован как внутри модели, так и как внешний инструмент

  2. Инструкция может быть фиксированной, выбираемой или генерируемой моделью

  3. Ответ модели может генерироваться внутренней моделью или внешней

  4. Цикл может управляться как моделью, так и неким внешним инструментом

  5. Суммаризация может управляться как внутренней моделью, так и внешней

  6. Пять пунктов выше это неизвестные переменные, которые будут влиять на качество итогового ответа. Возникает вопрос: должны ли все пять пунктов будут синтезироваться моделью или нет? Если нет, то сколько лучше отдать на синтез? Должна ли на каком-то этапе добавляться несинтетическая информация или нет? Должен ли пользователь видеть процесс мышления или нет, или частично не должен?

Вне зависимости от эффективности модели, а она есть, такой подход будет иметь долгосрочные последствия для всей индустрии: сколько данных будет ожидаться от пользователя, будут ли синтетические данные показаны пользователю и так далее.

Что такое Цепочка Размышлений?

Цепочку размышлений можно реализовать, в определенном варианте, можно реализовать не только с дорогущей о1, но и со всеми существующими моделями.

Каким образом?

Давайте разберемся подробнее, что имеется ввиду.

Структурно она представляет некий набор сообщений, который последовательно отправляется модели. Ключевой момент: к этому набору сообщений добавляются ответы модели. В самом стандартном сценарии, цепочка каждый раз удлиняется на ответ модели и запрос пользователя. Чем же отличает��я это от просто огромного промпта, одной простыней отправленного модели?

Цепочка вопросов для создания цепочки размышления
Цепочка вопросов для создания цепочки размышления
Слева (A) представлена нумерация позиций сравнения к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. В первом случае, также был получен ответ. Однако цепочка позволяет получить более размеченный ответ.
Слева (A) представлена нумерация позиций сравнения к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. В первом случае, также был получен ответ. Однако цепочка позволяет получить более размеченный ответ.


От значительного куска информации отправленного одновременно, это отличается следующими пунктами:

  • Структурированностью: возникает структура вместо единого ответа.

  • Поэтапностью: появляются этапы взаимодействия, детализируя взаимодействие с БЯМ.

  • Интерактивностью: каждый этап может быть независимо изменен. То есть тем, что это тот самый диалог, который ведет пользователь, с любым чатом.

Пример цепочки сообщений:

  • Вот у меня есть такая проблема. Как ее решить?

  • Ответ 1

  • Напиши мне недостатки решения

  • Ответ 2

  • Придумай как победить недостатки

  • Ответ 3

  • Дай мне конечное решение

  • Ответ 4

Пример цепочки размышлений
Пример цепочки размышлений
Слева (A) представлена генерация паттернов с помощью одного запроса к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. Очевидно, что справа ответ больше насыщен примерами и более конкретен.
Слева (A) представлена генерация паттернов с помощью одного запроса к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. Очевидно, что справа ответ больше насыщен примерами и более конкретен.

Стоит отметить, что все вопросы имеют крайне общий и абстрактный характер. Индивидуальный смысл добавляется уникальными текстами, в которых описана проблема пользователя, его ситуация, его возможности и т.п. Отвечая на запросы синтезированными ответами модель одновременно адаптируется к контексту беседы и углубляет понимание проблемы как свое, так и пользователя.

В модель цепочка размышлений отправляется по нарастающей: сначала первый вопрос, потом первая пара вопрос-ответ и второй вопрос и т.д. Диалог усложняется и обрастает данными на каждом этапе. Технически Цепочка Размышлений гораздо более прожорлива на токены, чем единая простыня: это дороже и медленнее(из-за количества токенов на отправку). Также она плохо работает с пост-отправкой, потому что для отправки следующего сообщение необходимо дождаться получения ответа на предыдущие. Поэтому я практически не использовал gpt-4, до появления gpt-4o-mini.

Цепочка Размышлений может помочь понять модель лучше:

  • Вот у меня есть такая проблема. Как ее решить? На втором этапе, будет отправлено не просто второе сообщение, а первое сообщение, ответ на него и второе сообщение:

  • Вот у меня есть такая проблема. Как ее решить?

  • Ответ модели 1

  • Указание добавить синтетические данные модели. Данные, которые помогут понять "как думает модель"

  • Ответ модели 2

  • Запрос итогового решения

Цепочка вопросов для генерации синтетической информации
Цепочка вопросов для генерации синтетической информации
Слева (A) представлена генерация паттернов с помощью одного запроса к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. В обоих случаях отмечена проблема в порядке вывода. Однако ответ слева значительно насыщен деталями.
Слева (A) представлена генерация паттернов с помощью одного запроса к GPT-4o-mini. Справа (B) через диалог/цепочку размышлений. В обоих случаях отмечена проблема в порядке вывода. Однако ответ слева значительно насыщен деталями.

Для модели Цепочка Размышлений будет выглядеть как текст, размеченный внутри как запросы пользователя, ее ответы и системные инструкции(по возможности). И она будет принимать его все в большем и большем количестве.

В данном случае, длительность цикла и момент окончания цикла будут фиксированы: они будут зависеть от количества вопрос, которые вы задаете. Дополнительно, вы можете самостоятельно контролировать работу модели на каждом этапе диалога. Инструкции могут быть как фиксированными, так и созданными при участии БЯМ.

К Цепочке Размышления следует относиться как к методу разбиения информации, которая предоставляется модели. Любая ваша проблема, с которой вы обращаетесь к модели, имеет определенные нюансы важные конкретно для вас. Эти нюансы необходимо предоставить модели, чтобы она подготовила максимально качественный ответ.

Эта информация состоит из следующих частей:

  • Ваши инструкции в Цепочке Размышления могут варьироваться от простых запросов до сложных, многоуровневых задач. Они могут включать в себя просьбы о создании текста, анализа данных, формулирования аргументов и т.д. Главное здесь - ясность и точность ваших инструкций, чтобы модель могла корректно понять ваши требования.

  • Ваши примеры играют важную роль в Цепочке Размышления. Они помогают модели понять, какого рода ответы вы ожидаете. Это могут быть как "хорошие" примеры, которые показывают желаемый результат, так и "плохие", которые помогают избегать нежелательных ответов.

Фактически, для создания Цепочки Размышления можно использовать любую модель, если позволяет размер контекста. Это интересный и многогранный инструмент для управления моделью. Для успешного использования Цепочки Размышления важно учитывать контекст. Это может включать в себя предыдущие запросы, информацию о пользователе, текущие обстоятельства и т.д. Наконец, Цепочка Размышления является динамическим процессом. Вы можете добавлять новые инструкции и примеры по мере необходимости, корректируя ответы модели и улучшая результаты.