🌸Все про агенты в LLM🌸
#nlp #про_nlp #nlp_papers #agirussia
Когда привичных способностей LLM уже недостаточно, хочется добавить внешние модули — долгосрочную память, планирование, различные API. Прикрутить самокоррекцию и chain-of-thought. В таком случае, системе можно предоставить некоторую степень автономности — в ограниченных условиях. Такие системы принято называть агентами.
🟣Что такое агент?
Агент — автономная система, в которой LLM является основными "мозгами", к которым подключены API и возможность их самостоятельно вызывать и работать с результатами этих вызовов. Проекты-прототипы:
— AutoGPT — фреймворк для создания агентов и автоматизации LLM, приме проекта —
https://godmode.space/
— GPT-Engineer — ассистент для написания кода, который может создать репозиторий проекта, задать уточняющие вопросы походу, написать код и тесты.
— BabyAGI — Llama, RAG + планировщик в докере, такой LangChain на стероидах
Такой подход хорошо соотносится с
вики-определением AGI: для него нужна способность изъясняться на естественном языке, учиться новым навыкам, планировать, оперировать знаниями, принимать решения в условиях неопределенности.
🟣Что добавить в агента?
— Набор действий: генерация команд, релевантных домену, которые можно однозначно проинтерпретировать
(вызвать API, отправить поисковый запрос, отправить SQL-запрос в базу)
— Планирование: Цели и их декомпозиция на последовательность действий: агент разбивает крупные задачи на более мелкие действия. Интересный подход — LLM+P (
arxiv), где внешняя модель, а не LLM, отвечает за формализм планирования.
Рефлексия и уточнение своих ответов по ходу цепочки сообщений: Chain-of-thought (
arxiv), Tree-of-thought (
arxiv), саморефлекция как в статье react (
arxiv) или Chain of Hindsight (
arxiv).
— Память: RAG, векторные БД, хранение полезной информации в окне контекста.
— API/Инструменты: имеет смысл подключать в первую очередь те инструменты, которые перекрывают недостатки LLM в вашей области применения. Наример, поиск часто изменяющейся информации (курс валют, погода), поиск по StackOverflow, подключение песочницы для исполнения кода.
🟣Как оценивать агентов?
Оценка подразумевает тестирование агента в изолированной среде и % правильных ответов и действий в разнообразных задачах, обычно очень вольно сформированных. Может быть либо % правильных ответов, либо правильность цепочки действий, либо и то и то.
На текущий момент есть 2 бенчмарка, которые работают именно с логами принятия решений автономных LLM-агентов — это WebArena и AgentBench.
— WebArena смотрит на качество работы агента на основании автоматизации различных веб-задач
(найди за меня в интернете, найди за меня в базе, подпиши меня на рассылку, сделай такую-то страничку), и с помощью автоматичсеких метрик оценивает в изолированной среде качество полученных ответов.
Лидерборд пока выглядит странновато, и на 1 месте не GPT-4!
— AgentBench развивает идею дальше, и для проверки успешности агентов представляет уже 8 различных сред — веб-браузинг, веб-шоппинг, работу с ОС, работу с SQL-бд, работу с графами знаний, игры, интеллектуальные головоломки, работа по дому (sic!). Задачи предлагаются самые разнообразные, но метрики привязаны именно к среде и набору действий при планировании.
Свой бенчмарк есть формально и у проекта AutoGPT (
link), пока что там всего 6 задач и 3 прототипа в лидерборде. Но уже есть задача по safety!
🟣Открытые вопросы
— Как эффективно соединять все модули вместе? Наконец, нашлось применение для символьных методов?
— Новые уязвимости: можно заставить агента зациклиться, бесконечно генерировать
no_action_needed
, заставить его потратить все оплаченные API лимиты
— Генерация качественных синтетических данных с помощью агентов — решение проблем LLM?
— Нет способа оценивать мультимодальных агентов
Полезные ссылки:
🟣AgentBench
Github
🟣WebArena
link
🟣Agent Landscape SurveyAgent Landscape Survey
arxiv
🟣The Rise and Potential of Large Language Model Based Agents: A Survey
arxiv
🟣блог Lilian Weng - autonomous agents
link
🟣Agent protocol
link
🟣ICLR 2024 Workshop on LLM Agents
link