Генеративный анализ данных

Улучшите диалоговый искусственный интеллект с помощью передовых методов маршрутизации с помощью Amazon Bedrock | Веб-сервисы Amazon

Дата:

Диалоговые помощники с искусственным интеллектом (ИИ) созданы для предоставления точных ответов в режиме реального времени посредством интеллектуальной маршрутизации запросов к наиболее подходящим функциям ИИ. С помощью генеративных сервисов искусственного интеллекта AWS, таких как Коренная порода АмазонкиРазработчики могут создавать системы, которые умело управляют запросами пользователей и реагируют на них. Amazon Bedrock — это полностью управляемый сервис, который предлагает выбор высокопроизводительных базовых моделей (FM) от ведущих компаний в области ИИ, таких как AI21 Labs, Anthropic, Cohere, Meta, Stability AI и Amazon, используя единый API, а также широкий набор возможности, необходимые для создания генеративных приложений ИИ с безопасностью, конфиденциальностью и ответственным ИИ.

В этом посте оцениваются два основных подхода к разработке помощников ИИ: использование управляемых сервисов, таких как Агенты Amazon Bedrockи использование технологий с открытым исходным кодом, таких как Лангчейн. Мы изучаем преимущества и проблемы каждого из них, чтобы вы могли выбрать наиболее подходящий путь для ваших нужд.

Что такое ИИ-помощник?

AI-помощник — это интеллектуальная система, которая понимает запросы на естественном языке и взаимодействует с различными инструментами, источниками данных и API-интерфейсами для выполнения задач или получения информации от имени пользователя. Эффективные помощники ИИ обладают следующими ключевыми возможностями:

  • Обработка естественного языка (НЛП) и разговорный поток
  • Интеграция базы знаний и семантический поиск для понимания и извлечения соответствующей информации на основе нюансов контекста разговора.
  • Выполнение задач, таких как запросы к базе данных и пользовательские AWS Lambda Функции
  • Обработка специализированных разговоров и запросов пользователей

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

Агенты для подхода Amazon Bedrock

Агенты Amazon Bedrock позволяет создавать генеративные приложения искусственного интеллекта, которые могут выполнять многоэтапные задачи в системах и источниках данных компании. Он предлагает следующие ключевые возможности:

  • Автоматическое создание подсказок на основе инструкций, сведений об API и информации об источнике данных, что экономит недели оперативных инженерных усилий.
  • Поисковая дополненная генерация (RAG) для безопасного подключения агентов к источникам данных компании и предоставления соответствующих ответов.
  • Оркестрация и выполнение многоэтапных задач путем разбиения запросов на логические последовательности и вызова необходимых API.
  • Видимость рассуждений агента посредством отслеживания цепочки мыслей (CoT), позволяющая устранять неполадки и управлять поведением модели.
  • Возможности разработки подсказок для изменения автоматически создаваемого шаблона подсказки для улучшения контроля над агентами.

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

Обзор решения

Это решение представляет собой диалогового помощника с искусственным интеллектом, предназначенного для управления и эксплуатации устройств Интернета вещей при использовании Anthropic Claude v2.1 на Amazon Bedrock. Основные функции AI-помощника регулируются комплексным набором инструкций, известных как системная подсказка, в котором очерчены его возможности и области знаний. Это руководство гарантирует, что ИИ-помощник сможет выполнять широкий спектр задач: от управления информацией об устройстве до выполнения рабочих команд.

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

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

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

Рабочий процесс состоит из следующих этапов:

  1. Процесс начинается, когда пользователь просит помощника выполнить задачу; например, запрашивая максимальное количество точек данных для конкретного устройства IoT. device_xxx. Этот вводимый текст фиксируется и отправляется помощнику искусственного интеллекта.
  2. Помощник ИИ интерпретирует вводимый пользователем текст. Он использует предоставленную историю разговоров, группы действий и базы знаний для понимания контекста и определения необходимых задач.
  3. После того как намерение пользователя проанализировано и понято, ИИ-помощник определяет задачи. Это основано на инструкциях, которые интерпретируются помощником в соответствии с подсказкой системы и вводом пользователя.
  4. Затем задачи выполняются посредством серии вызовов API. Это делается с помощью ReAct подсказка, которая разбивает задачу на ряд шагов, которые обрабатываются последовательно:
    1. Для проверки метрик устройства мы используем check-device-metrics группа действий, которая включает вызов API к функциям Lambda, которые затем запрашивают Амазонка Афина для запрошенных данных.
    2. Для прямых действий устройства, таких как запуск, остановка или перезагрузка, мы используем команду action-on-device группа действий, которая вызывает функцию Lambda. Эта функция инициирует процесс отправки команд на устройство Интернета вещей. Для этого поста функция Lambda отправляет уведомления, используя Простой почтовый сервис Amazon (Амазон СЭС).
    3. Мы используем базы знаний для Amazon Bedrock для извлечения исторических данных, хранящихся в виде вложений в Сервис Amazon OpenSearch векторная база данных.
  5. После выполнения задач Amazon Bedrock FM генерирует окончательный ответ и передает его обратно пользователю.
  6. Агенты для Amazon Bedrock автоматически сохраняют информацию, используя сеанс с отслеживанием состояния для поддержания одного и того же разговора. Состояние удаляется по истечении настраиваемого тайм-аута простоя.

Технический обзор

На следующей диаграмме показана архитектура развертывания ИИ-помощника с агентами для Amazon Bedrock.

Схема архитектуры для развертывания ИИ-помощника с агентами для Amazon Bedrock.

Он состоит из следующих ключевых компонентов:

  • Диалоговый интерфейс – В диалоговом интерфейсе используется Streamlit, библиотека Python с открытым исходным кодом, которая упрощает создание пользовательских визуально привлекательных веб-приложений для машинного обучения (ML) и анализа данных. Он размещен на Amazon Elastic Контейнерный Сервис (Amazon ECS) с АМС Фаргейт, и доступ к нему осуществляется с помощью балансировщика нагрузки приложений. Вы можете использовать Fargate с Amazon ECS для запуска контейнеры без необходимости управлять серверами, кластерами или виртуальными машинами.
  • Агенты Amazon Bedrock – Агенты для Amazon Bedrock завершают запросы пользователей посредством серии рассуждений и соответствующих действий на основе Подсказки ReAct:
    • Базы знаний для Amazon Bedrock – Базы знаний для Amazon Bedrock обеспечивают полностью управляемое КГР предоставить ИИ-помощнику доступ к вашим данным. В нашем случае мы загрузили спецификации устройства в файл Простой сервис хранения Amazon (Amazon S3) ведро. Он служит источником данных для базы знаний.
    • Группы действий – Это определенные схемы API, которые вызывают определенные функции Lambda для взаимодействия с устройствами Интернета вещей и другими сервисами AWS.
    • Anthropic Claude v2.1 на Amazon Bedrock – Эта модель интерпретирует запросы пользователей и организует поток задач.
    • Вложения Amazon Titan – Эта модель служит моделью встраивания текста, преобразуя текст на естественном языке — от отдельных слов до сложных документов — в числовые векторы. Это обеспечивает возможности векторного поиска, позволяя системе семантически сопоставлять запросы пользователей с наиболее релевантными записями базы знаний для эффективного поиска.

Решение интегрировано с сервисами AWS, такими как Lambda для запуска кода в ответ на вызовы API, Athena для запроса наборов данных, OpenSearch Service для поиска в базах знаний и Amazon S3 для хранения. Эти службы работают вместе, обеспечивая удобство управления операциями устройств Интернета вещей с помощью команд на естественном языке.

Преимущества

Это решение предлагает следующие преимущества:

  • Сложность реализации:
    • Требуется меньше строк кода, поскольку Agents for Amazon Bedrock абстрагирует большую часть базовой сложности, сокращая усилия по разработке.
    • Управление векторными базами данных, такими как OpenSearch Service, упрощается, поскольку векторизацию и хранение выполняют базы знаний для Amazon Bedrock.
    • Интеграция с различными сервисами AWS упрощается благодаря заранее определенным группам действий.
  • Опыт разработчика:
    • Консоль Amazon Bedrock предоставляет удобный интерфейс для быстрой разработки, тестирования и анализа первопричин (RCA), улучшая общий опыт разработчиков.
  • Ловкость и гибкость:
    • Агенты для Amazon Bedrock позволяют выполнять плавное обновление до более новых FM (например, Claude 3.0), когда они становятся доступными, поэтому ваше решение всегда будет в курсе последних достижений.
    • Квоты и ограничения сервисов управляются AWS, что снижает накладные расходы на мониторинг и масштабирование инфраструктуры.
  • Безопасность:
    • Amazon Bedrock — это полностью управляемый сервис, соответствующий строгим стандартам безопасности и соответствия AWS, что потенциально упрощает проверку безопасности организации.

Хотя Agents for Amazon Bedrock предлагает оптимизированное и управляемое решение для создания диалоговых приложений искусственного интеллекта, некоторые организации могут предпочесть подход с открытым исходным кодом. В таких случаях вы можете использовать такие фреймворки, как LangChain, о которых мы поговорим в следующем разделе.

Подход к динамической маршрутизации LangChain

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

В этом посте мы используем тот же пример, что и AI-помощник для управления устройствами Интернета вещей. Однако основное отличие состоит в том, что нам нужно обрабатывать системные подсказки отдельно и рассматривать каждую цепочку как отдельный объект. Цепочка маршрутизации определяет цепочку назначения на основе ввода пользователя. Решение принимается при поддержке LLM путем передачи системной подсказки, истории чата и вопроса пользователя.

Обзор решения

На следующей диаграмме показан рабочий процесс решения динамической маршрутизации.

Рабочий процесс решения динамической маршрутизации с LangChain

Рабочий процесс состоит из следующих шагов:

  1. Пользователь задает вопрос ИИ-помощнику. Например: «Каковы максимальные показатели для устройства 1009?»
  2. LLM оценивает каждый вопрос вместе с историей чата из того же сеанса, чтобы определить его характер и предметную область, к которой он относится (например, SQL, действие, поиск или SME). LLM классифицирует входные данные, а цепочка маршрутизации LCEL принимает эти входные данные.
  3. Цепочка маршрутизаторов выбирает цепочку назначения на основе входных данных, а LLM получает следующую системную подсказку:
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

LLM оценивает вопрос пользователя вместе с историей чата, чтобы определить характер запроса и к какой предметной области он относится. Затем LLM классифицирует входные данные и выводит ответ JSON в следующем формате:

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

Цепочка маршрутизаторов использует этот ответ JSON для вызова соответствующей цепочки назначения. Существует четыре тематических цепочки назначения, каждая из которых имеет свою собственную системную подсказку:

  1. Запросы, связанные с SQL, отправляются в цепочку назначения SQL для взаимодействия с базой данных. Вы можете использовать LCEL для создания SQL-цепочка.
  2. Вопросы, ориентированные на действие, вызывают специальную цепочку назначения Lambda для выполнения операций. С помощью LCEL вы можете определить свой собственный пользовательская функция; в нашем случае это функция запуска предопределенной функции Lambda для отправки электронного письма с проанализированным идентификатором устройства. Пример пользовательского ввода может быть «Выключить устройство 1009».
  3. Запросы, ориентированные на поиск, переходят на КГР Цепь назначения для поиска информации.
  4. Вопросы, связанные с МСП, направляются в цепочку адресатов МСП/экспертов для получения специализированной информации.
  5. Каждая цепочка назначения принимает входные данные и запускает необходимые модели или функции:
    1. Цепочка SQL использует Athena для выполнения запросов.
    2. Цепочка RAG использует службу OpenSearch для семантического поиска.
    3. Пользовательская цепочка Lambda запускает функции Lambda для действий.
    4. Цепочка МСП/экспертов предоставляет ценную информацию, используя модель Amazon Bedrock.
  6. Ответы из каждой цепочки назначения формулируются LLM в виде последовательных выводов. Эти сведения затем передаются пользователю, завершая цикл запроса.
  7. Пользовательский ввод и ответы сохраняются в Amazon DynamoDB чтобы предоставить контекст LLM для текущего сеанса и прошлых взаимодействий. Продолжительность хранения информации в DynamoDB контролируется приложением.

Технический обзор

На следующей диаграмме показана архитектура решения динамической маршрутизации LangChain.

Схема архитектуры решения динамической маршрутизации LangChain

Веб-приложение создано на базе Streamlit, размещенного на Amazon ECS с помощью Fargate, и доступ к нему осуществляется с помощью балансировщика нагрузки приложений. В качестве LLM мы используем Claude v2.1 от Anthropic на Amazon Bedrock. Веб-приложение взаимодействует с моделью с помощью библиотек LangChain. Он также взаимодействует с множеством других сервисов AWS, такими как OpenSearch Service, Athena и DynamoDB, для удовлетворения потребностей конечных пользователей.

Преимущества

Это решение предлагает следующие преимущества:

  • Сложность реализации:
    • Хотя LangChain требует больше кода и специальной разработки, он обеспечивает большую гибкость и контроль над логикой маршрутизации и интеграцией с различными компонентами.
    • Управление векторными базами данных, такими как OpenSearch Service, требует дополнительных усилий по установке и настройке. Процесс векторизации реализован в коде.
    • Интеграция с сервисами AWS может потребовать большего количества пользовательского кода и конфигурации.
  • Опыт разработчика:
    • Подход LangChain, основанный на Python, и обширная документация могут понравиться разработчикам, уже знакомым с Python и инструментами с открытым исходным кодом.
    • Быстрая разработка и отладка могут потребовать больше ручных усилий по сравнению с использованием консоли Amazon Bedrock.
  • Ловкость и гибкость:
    • LangChain поддерживает широкий спектр LLM, что позволяет вам переключаться между различными моделями или поставщиками, обеспечивая гибкость.
    • Открытый исходный код LangChain позволяет вносить улучшения и настройки по инициативе сообщества.
  • Безопасность:
    • Будучи инфраструктурой с открытым исходным кодом, LangChain может потребовать более строгих проверок безопасности и проверок внутри организаций, что потенциально увеличивает накладные расходы.

Заключение

Разговорные ИИ-помощники — это революционные инструменты для оптимизации операций и улучшения пользовательского опыта. В этом посте были рассмотрены два мощных подхода к использованию сервисов AWS: управляемые агенты для Amazon Bedrock и гибкая динамическая маршрутизация LangChain с открытым исходным кодом. Выбор между этими подходами зависит от требований вашей организации, предпочтений в области разработки и желаемого уровня настройки. Независимо от выбранного пути, AWS дает вам возможность создавать интеллектуальных помощников с искусственным интеллектом, которые революционизируют взаимодействие бизнеса и клиентов.

Найдите код решения и ресурсы для развертывания в нашем Репозиторий GitHub, где вы можете выполнить подробные шаги для каждого подхода к диалоговому ИИ.


Об авторах

Амир Хакме — архитектор решений AWS из Пенсильвании. Он сотрудничает с независимыми поставщиками программного обеспечения (ISV) в северо-восточном регионе, помогая им проектировать и создавать масштабируемые и современные платформы в облаке AWS. Эксперт в области искусственного интеллекта, машинного обучения и генеративного искусственного интеллекта, Амир помогает клиентам раскрыть потенциал этих передовых технологий. В свободное время он любит кататься на мотоцикле и проводить время со своей семьей.

Шарон Ли — архитектор решений искусственного интеллекта и машинного обучения в Amazon Web Services в Бостоне. Он увлекается проектированием и созданием приложений генеративного искусственного интеллекта на AWS. Она сотрудничает с клиентами, чтобы использовать сервисы AWS AI/ML для инновационных решений.

Каусар Камаль — старший архитектор решений в Amazon Web Services с более чем 15-летним опытом работы в области автоматизации инфраструктуры и безопасности. Он помогает клиентам проектировать и создавать масштабируемые решения DevSecOps и AI/ML в облаке.

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?