Как упоминалось в главе 6, мы думаем, что LLM будут все больше наделяться качествами агентов и они смогут взаимодействовать со средой для совершения покупок и других действий на основании разговора с пользователями. На рис. 8.1 показаны основные функциональные возможности LLM-агента, который пытается выполнить задачу с помощью внешнего инструмента или набора инструментов. В этом примере пользователь вводит промпт «Найди мне рубашку стоимостью менее 15 долларов», который модель преобразует в поисковый запрос для торгового API. API выполняет запрос, и среда – в данном случае интернет-магазин или торговая площадка – выдает результаты, которые LLM показывает пользователю. В других версиях LLM может по-настоящему совершать покупку от имени пользователя.
Рис. 8.1. Общая схема работы LLM-агента
Первые исследования показали, что в некоторых случаях LLM может довольно эффективно использовать внешние инструменты. В феврале 2023 года группа исследователей из Meta [96] опубликовала статью под заголовком «Toolformer: языковые модели могут самостоятельно научиться пользоваться инструментами» (Toolformer: Language Models Can Teach Themselves to Use Tools)5. Они показали, как LLM под названием Toolformer – хотя ей было сложно решать определенные задачи, например по арифметике, – смогла научиться, в каких ситуациях для выполнения задачи необходимо вызывать внешние API, при этом ей было показано лишь несколько примеров. Модель Toolformer использовала такие инструменты, как поисковая система, калькулятор, API календаря и две другие LLM: переводчик и модель, прошедшую тонкую настройку для ответов на вопросы. В главе 5 мы рассмотрели механизм поиска внешней информации в интернете как инструмент, который помогает снизить частоту галлюцинаций, поскольку после поиска неизвестной для модели информации уже не нужно генерировать догадки. С помощью внешних инструментов можно устранить и другие недостатки LLM.
Кроме того, если LLM могут всего по нескольким примерам научиться вызывать API, возможности системы в целом значительно расширятся. Например, LLM может не только генерировать код, но и выполнять его. В документации к агенту LLM, созданному на LangChain для работы с датафреймами Pandas [97], сказано, что на вопрос типа «Каков средний возраст?», агент может написать необходимый код на языке Python, запустить его на датафрейме и выдать ответ пользователю. LLM-агенты необходимы для полной автоматизации задач, в которых выполняются разные операции помимо генерации текста. Однако у таких моделей есть обратная сторона: если LLM допустит ошибку, это повлечет за собой реальные последствия, а не просто генерацию небезопасного или некорректного текста. На главной странице агента по работе с данными Pandas жирным шрифтом написано предупреждение на этот счет:
«ПРИМЕЧАНИЕ. „За кадром“ этот агент вызывает Python-агента, который выполняет код, сгенерированный LLM, – это может привести к плохим последствиям, если LLM сгенерировала опасный код на Python. Используйте с осторожностью»6.
В настоящее время основным препятствием для внедрения LLM-агентов является отсутствие гарантии, что не будут допущены опасные ошибки, поскольку генерации модели носят вероятностный характер.
Как отмечалось в главе 6, наиболее креативные LLM-агенты создаются сообществом разработчиков свободного ПО. Всплеск активности – Андрей Карпаты в мае 2023 года назвал его «первыми признаками кембрийского взрыва»7 – отчасти стал возможен благодаря нескольким достижениям, которые сделали LLM более эффективными, а следовательно, более быстрыми и дешевыми для тонкой настройки и обслуживания. LLM также использовались для обучения языковых моделей меньшего размера, которые смогут добиться производительности в решении определенных задач, сравнимой с большими моделями, при этом снижая затраты и барьеры для входа8. Общий эффект от этого заключается в том, что теперь еще больше людей могут создавать новые приложения, используя языковые модели, а это означает, что мы можем увидеть новые области применения этих агентов. Более подробно о трендах в сообществе разработчиков свободного ПО мы поговорим в главе 9.