Главная / Статьи

ReAct объяснен: как ИИ-агенты сочетают рассуждения с действиями в реальном мире

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

6 мин чтения1426 слов

Искусственный интеллект развивается гораздо дальше простых чат-ботов для генерации текста.

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

Ключевой концепцией, лежащей в основе этого сдвига, является ReAct — сокращение от Reason + Act.

ReAct представляет собой одновременно технику формулировки запросов и более широкую агентскую платформу. Она сочетает этапы рассуждений с конкретными действиями, такими как поиски, вызовы API, вычисления и использование других инструментов. Затем модель анализирует результаты этих действий и использует их для принятия решения о следующем шаге. Эту платформу в 2022 году представили Яо и его коллеги.

Что такое ReAct?

Простой способ представить себе ReAct — через следующий цикл:

Мышление → Действие → Наблюдение → Мышление → Действие → Наблюдение → Окончательный ответ

Предположим, вы задаете вопрос ИИ-системе:

«Найдите самую свежую информацию о компании и подведите итог её недавних событий».

Простая модель может просто ответить на основе того, что у неё уже есть внутри.

Система, построенная на принципе ReAct, решает эту задачу иначе:

  1. Рассуждение: Определить, какая информация действительно необходима.
  2. Действие: Провести поиск, чтобы её найти.
  3. Наблюдение: Проанализировать результаты поиска.
  4. Рассуждение: Решить, требуется ли дополнительная информация.
  5. Действие: Провести поиск снова или перейти к другому инструменту.
  6. Окончательный ответ: После сбора достаточного количества информации сформулировать ответ.

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

ReAct против Chain-of-Thought

ReAct во многом схож с концепцией пошагового рассуждения, но между ними существует ключевое отличие.

Chain-of-Thought заключается во внутреннем решении проблемы путем последовательных рассуждений.

ReAct сочетает эти рассуждения с фактическим взаимодействием с внешним миром.

Вот краткий умственный алгоритм:

CoT = Размышление ReAct = Размышление → Действие → Наблюдение → Размышление

Это делает ReAct особенно ценным, когда системе необходимо выходить за пределы собственных возможностей и взаимодействовать с внешней средой, а не полагаться исключительно на свои встроенные знания.

ReAct — это не метод обучения с подкреплением

Этот момент часто создаёт путаницу у многих людей.

Хотя цикл ReAct может напоминать взаимодействие агента с окружением, подобное тому в рекуррентном обучении с поощрением, он сам по себе не является методом рекуррентного обучения с поощрением.

Результат, возвращаемый при вызове инструмента, автоматически не является сигналом поощрения в смысле рекуррентного обучения с поощрением.

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

Какое место занимают модели рассуждений?

Ещё одной концепцией, стоитшей понимания, является идея модели рассуждений.

Эти модели создаются для того, чтобы выделять дополнительные вычислительные ресурсы на более сложные задачи, такие как:

  • Математика
  • Программирование
  • Планирование
  • Решение многоэтапных задач

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

Это дает нам ещё одно полезное сравнение:

Универсальная модель → широкое, эффективное взаимодействие Модель для рассуждений → дополнительные вычисления, применяемые к сложным задачам

Тем не менее применение большего количества рассуждений к задаче не гарантирует правильного результата.

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

Роль вычислений во время вывода

Частично различие в поведении моделей для рассуждений при выполнении сложных задач обусловлено вычислениями во время вывода.

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

Схема выглядит следующим образом:

Простая задача → меньше логических операций → более быстрый ответ

Сложная задача → больше логических операций → больше вычислений → потенциально лучший результат

Это даёт ИИ-системам дополнительный инструмент: производительность зависит не только от того, что было изучено во время обучения, но и от объёма вычислительных усилий, затрачиваемых в момент решения конкретной задачи.

ReAct, вызов инструментов, RAG и агенты

На практике эти четыре подхода пересекаются, но каждый из них относится к чему-то определённому.

Вызов инструментов — это ситуация, когда модель просит выполнить какой-либо внешний инструмент от её имени.

ReAct — это цикл, состоящий из логических рассуждений, действий и наблюдения за результатами.

RAG собирает внешнюю информацию и передаёт её модели, чтобы результаты работы были основаны на реальных данных.

Искусственный интеллект-агент — это более полная система, способная достигать цели путём планирования, использования инструментов, отслеживания состояния и принятия решений со временем.

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

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

Проверка повышает надёжность агентов

Помимо действий и наблюдения, агентные системы могут добавлять уровни проверки и анализа.

Типичная структура выглядит следующим образом:

Сгенерировать → Проверить → Исправить при необходимости → Окончательный ответ

Проверка — это этап, когда система убеждается, что полученный или сгенерированный результат действительно верен.

Анализ — это этап, когда система рассматривает свою предыдущую попытку и решает, нужно ли пробовать снова.

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

Более широкая перспектива

Развитие ИИ-систем можно рассматривать как серию уровней функциональности.

Формулировка запросов предоставляет модели инструкции.

Логическое мышление позволяет ему решать более сложные задачи.

Вызов инструментов даёт возможность взаимодействовать с другими системами за пределами самой системы.

ReAct связывает логическое мышление с действиями и наблюдениями.

Агенты объединяют всё это в целенаправленные системы, способные планировать, действовать, наблюдать, проверять и при необходимости повторять этот цикл.

Основной вывод прост:

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

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