Как усилить свою LLM с помощью агентов LangChain

Улучшите LLM с агентами LangChain

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

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

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

Что такое агенты?

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

Очевидно, что сам по себе Агент недостаточен. Нам также нужно создавать/использовать инструменты, которыми сможет пользоваться Агент. Агент Executor – это среда выполнения, которая выполняет как Агент, так и используемые им инструменты. Инструменты могут быть просто отдельными функциями или они могут представлять собой набор инструментов, называемых наборами инструментов.

Инструменты и наборы инструментов

Инструменты – это функции, которые выполняют действия от имени LLM. Агент получает список инструментов для использования, и он может запросить использование одного, нескольких или ни одного. Агент Executor выполнит требуемые инструменты и передаст результат обратно Агенту. Примером инструмента является функция Google Search, которая позволяет LLM проверить информацию, которой у него нет, с помощью поиска в Google.

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

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

Какие стратегии используют агенты?

После того, как Агенту предоставлен набор инструментов, как он знает, какой из них использовать? Агенты могут использовать различные стратегии проектирования подсказки, чтобы заставить LLM рассуждать и принимать решения о необходимых действиях. Некоторые популярные практики проектирования подсказки были обсуждены в предыдущей статье: Проектирование Подсказок.

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

  • Мысли, записанные из стратегий рассуждения.
  • Действия, которые позволяют LLM взаимодействовать с окружающей средой вербально.
  • Наблюдения, полученные после выполнения действий.

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

Как использовать агентов LangChain

LangChain – это библиотека Python (а также JS/TS), которая очень полезна для быстрого начала интеграции LLM в ваши приложения. В ней доступно множество стратегий подсказки “из коробки”, а также множество агентов.

Вы можете начать писать свои собственные инструменты, используя инструменты LangChain, например, так (ОЧЕНЬ ВАЖНО: дайте функции описание документационной строки; это будет использоваться агентом для выбора инструмента для использования):

После этого используйте этот инструмент вместе с выбранным вами агентом, также с Langchain:

Вы можете узнать больше о LangChain и его инструментах, посетив его документацию.

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