CoderCastrov logo
CoderCastrov
Искусственный интеллект

Как я создал автономного AI-агента для онлайн-исследований

Как я создал автономного AI-агента для онлайн-исследований
просмотров
5 мин чтение
#Искусственный интеллект

GPT Researcher: будущее всесторонних онлайн-исследований

После публикации AutoGPT я сразу же решил его опробовать. Первое применение, которое пришло в голову, было автономные онлайн-исследования. Формирование объективных выводов для задач ручного исследования может занимать время, иногда недели, чтобы найти правильные ресурсы и информацию. Увидев, насколько хорошо AutoGPT создавал задачи и выполнял их, я задумался о большом потенциале использования ИИ для проведения всесторонних исследований и о том, что это значит для будущего онлайн-исследований.

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

Тем не менее, информация и контекст, собранные во время исследования, терялись (например, отслеживание источников), а иногда и галлюцинировались.

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

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

Переход от бесконечных циклов к детерминированным результатам

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

Именно тогда я наткнулся на недавнюю статью Plan and Solve. В статье предлагается лучшее решение для указанных выше проблем. Идея довольно проста и состоит из двух компонентов: первый - разработка плана для разделения всей задачи на более мелкие подзадачи, а затем выполнение подзадач в соответствии с планом.

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

Следуя этой стратегии, удалось повысить надежность выполнения исследовательских задач до 100%. Теперь вызов состоит в том, как улучшить качество и скорость?


Стремление к объективным и непредвзятым результатам

Самая большая проблема с LLM заключается в отсутствии фактической и непредвзятой информации, вызванной галлюцинациями и устаревшими наборами данных для обучения (GPT в настоящее время обучается на наборах данных с 2021 года). Но ирония заключается в том, что для исследовательских задач крайне важно оптимизировать именно эти два критерия: фактичность и непредвзятость.

Чтобы справиться с этими проблемами, я предположил следующее:

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

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

Отлично! Похоже, что у нас есть идея о том, как создать детерминированные, фактические и непредвзятые результаты. Но как быть с проблемой скорости?

Ускорение процесса исследования

Еще одной проблемой с AutoGPT является то, что он работает синхронно. Основная идея заключается в создании списка задач и их последовательном выполнении. Таким образом, если, допустим, исследование требует посещения 20 сайтов, и каждый сайт занимает около одной минуты для парсинга и краткого изложения, общее время исследования составит не менее 20 минут. Это при условии, что оно вообще закончится. Но что, если мы смогли бы параллельно выполнять задачи агента?

Используя библиотеки Python, такие как [asyncio](https://docs.python.org/3/library/asyncio.html), задачи агента были оптимизированы для параллельной работы, что значительно сокращает время исследования.

# Создаем список для хранения задач агента в виде корутин
tasks = [async_browse(url, query, self.websocket) for url in await new_search_urls]

# Собираем результаты по мере их получения
responses = await asyncio.gather(*tasks, return_exceptions=True)

В приведенном выше примере мы запускаем парсинг всех URL-адресов параллельно и продолжаем выполнение задачи только после завершения всех операций. Исходя из множества тестов, среднее время выполнения исследовательской задачи составляет около трех минут (!!). Это на 85% быстрее, чем AutoGPT.

Завершение исследовательского отчета

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

После экспериментов с несколькими моделями OpenAI и даже с открытым исходным кодом я пришел к выводу, что лучшие результаты в настоящее время достигаются с помощью GPT-4. Задача проста - предоставить GPT-4 в качестве контекста всю собранную информацию и попросить его написать подробный отчет об этом, основываясь на исходной задаче исследования.

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

"{research_summary}" Используя вышеуказанную информацию, ответьте на следующий вопрос или тему: "{question}" в подробном отчете — Отчет должен сосредоточиться на ответе на вопрос, быть хорошо структурированным, информативным, глубоким, с фактами и цифрами, если они доступны, минимум 1 200 слов и с использованием синтаксиса markdown и формата APA. Укажите все URL-адреса источников в конце отчета в формате APA. Вы должны написать свой отчет только на основе предоставленной информации и ничего более.

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

Финальная архитектура

Теперь, когда мы рассмотрели необходимые шаги GPT Researcher, давайте разберем финальную архитектуру, как показано ниже:

GPT Researcher’s high-level architecture

Более конкретно:

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

Вперед

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

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

Все это только вопрос времени и именно о чем речь в GPT Researcher.