Skip to content

Latest commit

 

History

History
168 lines (94 loc) · 16.7 KB

File metadata and controls

168 lines (94 loc) · 16.7 KB

Open Source Models

Введение

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

В уроке будут рассмотрены следующие темы:

  • Понимание, что такое AI-агент — что именно представляет собой AI-агент?
  • Изучение четырех различных фреймворков для AI-агентов — что делает их уникальными?
  • Применение этих AI-агентов к разным сценариям использования — когда следует использовать AI-агентов?

Цели обучения

После прохождения этого урока вы сможете:

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

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

AI-агенты — это очень увлекательная область в мире генеративного ИИ. С этим воодушевлением иногда возникает путаница с терминами и их применением. Чтобы упростить и охватить большинство инструментов, которые относятся к AI-агентам, мы будем использовать следующее определение:

AI-агенты позволяют большим языковым моделям (LLM) выполнять задачи, предоставляя им доступ к состоянию и инструментам.

Model агента

Давайте определим эти термины:

Большие языковые модели — это модели, упоминаемые в этом курсе, такие как GPT-3.5, GPT-4, Llama-2 и другие.

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

Инструменты — чтобы выполнить задачу, которую запросил пользователь и которую спланировал LLM, LLM нужен доступ к инструментам. Примерами инструментов могут быть база данных, API, внешнее приложение или даже другая LLM!

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

LangChain Agents

LangChain Agents — реализация приведенных выше определений.

Для управления состоянием используется встроенная функция AgentExecutor. Она принимает определенного агента и доступные инструменты.

AgentExecutor также хранит историю чата для предоставления контекста при диалоге.

Langchain Agents

LangChain предлагает каталог инструментов, которые можно импортировать в ваше приложение, чтобы предоставить к ним доступ LLM. Эти инструменты созданы сообществом и командой LangChain.

Вы затем можете определить эти инструменты и передать их AgentExecutor.

Видимость — еще один важный аспект при работе с AI-агентами. Важно для разработчиков приложений понимать, какой инструмент использует LLM и почему. Для этого команда LangChain разработала LangSmith.

AutoGen

Следующий фреймворк AI-агентов, который мы рассмотрим, — AutoGen. Основное внимание в AutoGen уделяется разговорам. Агенты могут быть как общающимися, так и настраиваемыми.

Общаемые — LLM могут начать и вести разговор с другой LLM, чтобы выполнить задачу. Это достигается созданием AssistantAgents и предоставлением им определенного системного сообщения.

autogen.AssistantAgent( name="Coder", llm_config=llm_config, ) pm = autogen.AssistantAgent( name="Product_manager", system_message="Creative in software product ideas.", llm_config=llm_config, )

Настраиваемые — агенты могут быть определены не только как LLM, но и как пользователь или инструмент. Как разработчик, вы можете определить UserProxyAgent, который отвечает за взаимодействие с пользователем для получения обратной связи при выполнении задачи. Эта обратная связь может либо продолжить выполнение задачи, либо прекратить его.

user_proxy = UserProxyAgent(name="user_proxy")

Состояние и инструменты

Для изменения и управления состоянием помощник-агент генерирует Python-код для выполнения задачи.

Вот пример процесса:

AutoGen

LLM с определенным системным сообщением

system_message="For weather related tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done."

Это системное сообщение направляет конкретный LLM на те функции, которые релевантны для его задачи. Помните, с AutoGen вы можете иметь несколько определенных AssistantAgents с разными системными сообщениями.

Чат инициируется пользователем

user_proxy.initiate_chat( chatbot, message="I am planning a trip to NYC next week, can you help me pick out what to wear? ", )

Это сообщение от user_proxy (человека) запускает процесс, в ходе которого агент исследует возможные функции, которые должен выполнить.

Выполнение функции

chatbot (to user_proxy):

***** Suggested tool Call: get_weather ***** Arguments: {"location":"New York City, NY","time_periond:"7","temperature_unit":"Celsius"} ******************************************************** --------------------------------------------------------------------------------

>>>>>>>> EXECUTING FUNCTION get_weather... user_proxy (to chatbot): ***** Response from calling function "get_weather" ***** 112.22727272727272 EUR ****************************************************************

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

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

Taskweaver

Следующий фреймворк, который мы рассмотрим, — Taskweaver. Его называют "code-first" агентом, потому что вместо работы строго со строками он работает с DataFrame в Python. Это становится крайне полезным для задач анализа данных и генерации. Это может быть создание графиков, диаграмм или генерация случайных чисел.

Состояние и инструменты

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

Для выполнения задач Planner получает доступ к набору инструментов под названием Plugins. Это могут быть классы Python или общий интерпретатор кода. Эти плагины хранятся в виде embedding для улучшения поиска подходящего плагина LLM.

Taskweaver

Вот пример плагина для обнаружения аномалий:

class AnomalyDetectionPlugin(Plugin): def __call__(self, df: pd.DataFrame, time_col_name: str, value_col_name: str):

Код проверяется перед выполнением. Еще одна возможность для управления контекстом в Taskweaver — это experience. Experience позволяет сохранять контекст разговора на длительный срок в YAML-файле. Это можно настроить так, чтобы LLM со временем улучшалась в определенных задачах, получая доступ к предыдущим разговорам.

JARVIS

Последний фреймворк, который мы рассмотрим, — JARVIS. Уникальность JARVIS в том, что он использует LLM для управления состоянием разговора, а инструментами служат другие AI-модели. Каждая из этих AI-моделей — специализированная модель, выполняющая определённые задачи, такие как обнаружение объектов, транскрипция или создание описаний изображений.

JARVIS

LLM, являясь моделью общего назначения, получает запрос от пользователя, определяет конкретную задачу и любые аргументы/данные, необходимые для выполнения задачи.

[{"task": "object-detection", "id": 0, "dep": [-1], "args": {"image": "e1.jpg" }}]

Затем LLM форматирует запрос в формате, который может интерпретировать специализированная AI-модель, например JSON. После того, как AI-модель вернет прогноз по задаче, LLM получает ответ.

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

Пример ниже показывает, как это работает, когда пользователь запрашивает описание и подсчет объектов на изображении:

Задание

Для продолжения изучения AI-агентов вы можете построить с AutoGen:

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

Обучение на этом не заканчивается, продолжайте путешествие

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


Отказ от ответственности:
Этот документ был переведен с использованием сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, пожалуйста, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на языке оригинала следует считать авторитетным источником. Для получения критически важной информации рекомендуется воспользоваться услугами профессионального переводчика. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникающие при использовании этого перевода.