Создайте веб-интерфейс для взаимодействия с LLM с помощью Amazon SageMaker JumpStart | Веб-сервисы Amazon

Создайте веб-интерфейс для взаимодействия с LLM с помощью Amazon SageMaker JumpStart | Веб-сервисы Amazon

Запуск ChatGPT и рост популярности генеративного искусственного интеллекта захватили воображение клиентов, которым интересно, как они могут использовать эту технологию для создания новых продуктов и услуг на AWS, таких как корпоративные чат-боты, которые более интерактивны. В этом посте показано, как создать веб-интерфейс, который мы называем Chat Studio, чтобы начать разговор и взаимодействовать с базовыми моделями, доступными в Amazon SageMaker JumpStart такие как Llama 2, Stable Diffusion и другие модели, доступные на Создатель мудреца Амазонки. После развертывания этого решения пользователи смогут быстро приступить к работе и оценить возможности нескольких базовых моделей диалогового ИИ через веб-интерфейс.

Chat Studio также может дополнительно вызвать конечную точку модели Stable Diffusion, чтобы вернуть коллаж из соответствующих изображений и видео, если пользователь запрашивает отображение мультимедиа. Эта функция может помочь улучшить взаимодействие с пользователем за счет использования мультимедиа в качестве сопутствующего ресурса к ответу. Это всего лишь один пример того, как вы можете обогатить Chat Studio дополнительными интеграциями для достижения своих целей.

На следующих снимках экрана показаны примеры того, как выглядят пользовательский запрос и ответ.

Интерфейс запросов Chat Studio

Интерфейс ответа Студии чата

Большие языковые модели

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

Базовые модели SageMaker

В 2021 году Стэнфордский институт человеко-ориентированного искусственного интеллекта назвал некоторые программы LLM модели фундамента. Базовые модели предварительно обучаются на большом и широком наборе общих данных и призваны служить основой для дальнейшей оптимизации в широком диапазоне вариантов использования, от создания цифрового искусства до классификации многоязычного текста. Эти базовые модели пользуются популярностью у клиентов, поскольку обучение новой модели с нуля требует времени и может быть дорогостоящим. SageMaker JumpStart предоставляет доступ к сотням базовых моделей, поддерживаемых сторонними поставщиками с открытым исходным кодом и проприетарными поставщиками.

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

В этом посте рассматривается рабочий процесс с низким кодом для развертывания предварительно обученных и пользовательских LLM с помощью SageMaker и создания веб-интерфейса для взаимодействия с развернутыми моделями. Мы рассмотрим следующие шаги:

  1. Развертывание базовых моделей SageMaker.
  2. Развертывание AWS Lambda и Управление идентификацией и доступом AWS (IAM) разрешения с использованием AWS CloudFormation.
  3. Настройте и запустите пользовательский интерфейс.
  4. При необходимости добавьте другие модели фундамента SageMaker. Этот шаг расширяет возможности Chat Studio по взаимодействию с дополнительными базовыми моделями.
  5. При необходимости разверните приложение, используя АМС Усиление. На этом этапе Chat Studio развертывается в Интернете.

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

Архитектура решения Chat Studio

Предпосылки

Чтобы пройти через решение, у вас должны быть следующие предварительные условия:

  • An Аккаунт AWS с достаточными правами пользователя IAM.
  • npm установлен в вашей локальной среде. Для получения инструкций по установке npm, Ссылаться на Загрузка и установка Node.js и npm.
  • Квота службы 1 для соответствующих конечных точек SageMaker. Для чата Llama 2 13b мы используем экземпляр ml.g5.48xlarge, а для Stable Diffusion 2.1 — экземпляр ml.p3.2xlarge.

Чтобы запросить увеличение квоты на обслуживание, на Консоль квот сервисов AWS, перейдите в Сервисы AWS, SageMakerи запросите повышение квоты службы до значения 1 для ml.g5.48xlarge для использования конечной точки и ml.p3.2xlarge для использования конечной точки.

Утверждение запроса на квоту службы может занять несколько часов, в зависимости от доступности типа экземпляра.

Развертывание базовых моделей SageMaker

SageMaker — это полностью управляемый сервис машинного обучения (ML), позволяющий разработчикам быстро создавать и обучать модели машинного обучения. Выполните следующие шаги, чтобы развернуть базовые модели Llama 2 13b Chat и Stable Diffusion 2.1, используя Студия Amazon SageMaker:

  1. Создайте домен SageMaker. Инструкции см. Подключение к домену Amazon SageMaker с помощью быстрой настройки.

Домен настраивает все хранилище и позволяет добавлять пользователей для доступа к SageMaker.

  1. На консоли SageMaker выберите Студия в области навигации, затем выберите Открытая студия.
  2. После запуска Studio в разделе SageMaker JumpStart на панели навигации выберите Модели, ноутбуки, решения.
    Консоль SageMaker JumpStart
  3. В строке поиска найдите Llama 2 13b Chat.
  4. Под Конфигурация развертывания, Для Хостинг-экземпляр SageMaker, выберите мл.g5.48xбольшой и для Имя конечной точки, войти meta-textgeneration-llama-2-13b-f.
  5. Выберите Развертывание.

Конфигурация развертывания SageMaker JumpStart

После успешного развертывания вы сможете увидеть In Service Статус.

Статус модели ламы

  1. На Модели, ноутбуки, решения страница, найдите Стабильную диффузию 2.1.
  2. Под Конфигурация развертывания, Для Хостинг-экземпляр SageMaker, выберите мл.p3.2xбольшой и для Имя конечной точки, войти jumpstart-dft-stable-diffusion-v2-1-base.
  3. Выберите Развертывание.

Конфигурация развертывания SageMaker JumpStart

После успешного развертывания вы сможете увидеть In Service Статус.

Состояние стабильной диффузионной модели

Развертывание разрешений Lambda и IAM с помощью AWS CloudFormation

В этом разделе описывается, как запустить стек CloudFormation, который развертывает функцию Lambda, которая обрабатывает ваш пользовательский запрос и вызывает развернутую вами конечную точку SageMaker, а также развертывает все необходимые разрешения IAM. Выполните следующие шаги:

  1. Перейдите в Репозиторий GitHub и скачайте шаблон CloudFormation (lambda.cfn.yaml) на ваш локальный компьютер.
  2. В консоли CloudFormation выберите Создать стек выпадающее меню и выберите С новыми ресурсами (стандарт).
  3. На Укажите шаблон страницы, выберите Загрузить файл шаблона и Выберите файл.
  4. Выберите lambda.cfn.yaml файл, который вы скачали, затем выберите Следующая.
  5. На Укажите детали стека странице, введите имя стека и ключ API, полученный при выполнении предварительных требований, затем выберите Следующая.
  6. На Настроить параметры стека выберите страницу Следующая.
  7. Просмотрите и подтвердите изменения и выберите Отправить.

Настройка веб-интерфейса

В этом разделе описаны шаги по запуску веб-интерфейса (созданного с помощью Система дизайна Cloudscape) на вашем локальном компьютере:

  1. В консоли IAM перейдите к пользователю functionUrl.
  2. На Учетные данные безопасности , выберите Создать ключ доступа.
  3. На Получите доступ к ключевым передовым практикам и альтернативам страницы, выберите Интерфейс командной строки (CLI) , а затем выбрать Следующая.
  4. На Установить тег описания выберите страницу Создать ключ доступа.
  5. Скопируйте ключ доступа и секретный ключ доступа.
  6. Выберите Готово.
  7. Перейдите в Репозиторий GitHub и скачать react-llm-chat-studio код.
  8. Запустите папку в предпочитаемой вами IDE и откройте терминал.
  9. Перейдите в src/configs/aws.json и введите полученный ключ доступа и секретный ключ доступа.
  10. Введите в терминал следующие команды:
    npm install npm start

  11. Откройте http://localhost:3000 в своем браузере и начните взаимодействовать со своими моделями!

Чтобы использовать Chat Studio, выберите базовую модель в раскрывающемся меню и введите запрос в текстовое поле. Чтобы получить вместе с ответом изображения, сгенерированные ИИ, добавьте в конец запроса фразу «с изображениями».

Добавьте другие модели тональной основы SageMaker

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

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

  1. В SageMaker Studio разверните выбранную вами базовую модель SageMaker.
  2. Выберите SageMaker JumpStart и Запуск ресурсов JumpStart.
  3. Выберите конечную точку недавно развернутой модели и выберите Открыть блокнот.
  4. В консоли ноутбука найдите параметры полезной нагрузки.

Это поля, которые новая модель ожидает при вызове конечной точки SageMaker. На следующем снимке экрана показан пример.

Конфигурация конечной точки SageMaker

  1. В консоли Lambda перейдите к callSageMakerEndpoints.
  2. Добавьте собственный обработчик ввода для вашей новой модели.

На следующем снимке экрана мы преобразовали входные данные для Falcon 40B Instruct BF16 и GPT NeoXT Chat Base 20B FP16. Вы можете вставить свою логику настраиваемых параметров, как указано, чтобы добавить логику входного преобразования со ссылкой на скопированные вами параметры полезной нагрузки.

Фрагмент лямбда-кода

  1. Вернитесь к консоли ноутбука и найдите query_endpoint.

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

Конфигурация конечной точки SageMaker

  1. Ссылаясь на код в query_endpoint, добавьте собственный обработчик вывода для вашей новой модели.
    Лямбда-код
  2. Выберите Развертывание.
  3. Откройте свою IDE, запустите react-llm-chat-studio код и перейдите к src/configs/models.json.
  4. Добавьте название модели и конечную точку модели, а также введите параметры полезной нагрузки из шага 4 в разделе payload используя следующий формат:
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. Обновите браузер, чтобы начать взаимодействовать с вашей новой моделью!

Разверните приложение с помощью Amplify

Amplify — это комплексное решение, позволяющее быстро и эффективно развернуть ваше приложение. В этом разделе описаны шаги по развертыванию Chat Studio на Amazon CloudFront распространение с помощью Amplify, если вы хотите поделиться своим приложением с другими пользователями.

  1. Перейдите в react-llm-chat-studio папку кода, которую вы создали ранее.
  2. Введите в терминал следующие команды и следуйте инструкциям по настройке:
    npm install -g @aws-amplify/cli amplify configure

  3. Инициализируйте новый проект Amplify, используя следующую команду. Укажите имя проекта, примите конфигурации по умолчанию и выберите Ключи доступа к АВС когда будет предложено выбрать метод аутентификации.
    amplify init

  4. Разместите проект Amplify, используя следующую команду. Выбирать Amazon CloudFront и S3 когда будет предложено выбрать режим плагина.
    amplify hosting add

  5. Наконец, соберите и разверните проект с помощью следующей команды:
    amplify publish

  6. После успешного развертывания откройте URL-адрес, указанный в вашем браузере, и начните взаимодействовать со своими моделями!

Убирать

Чтобы избежать дополнительных расходов в будущем, выполните следующие действия:

  1. Удалите стек CloudFormation. Инструкции см. Удаление стека в консоли AWS CloudFormation.
  2. Удалите конечную точку SageMaker JumpStart. Инструкции см. Удалить конечные точки и ресурсы.
  3. Удалите домен SageMaker. Инструкции см. Удалить домен Amazon SageMaker.

Заключение

В этом посте мы объяснили, как создать веб-интерфейс для взаимодействия с LLM, развернутыми на AWS.

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

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

Приглашаем вас поэкспериментировать на AWS доступны различные предварительно обученные LLMили создайте свои собственные LLM в SageMaker. Дайте нам знать ваши вопросы и выводы в комментариях и получайте удовольствие!


Об авторах

Создайте веб-интерфейс для взаимодействия с LLM с помощью Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джарретт Йео Шан Вэй является младшим облачным архитектором в сфере профессиональных услуг AWS, охватывающей государственный сектор в странах АСЕАН, и выступает за помощь клиентам в модернизации и переходе в облако. Он получил пять сертификатов AWS, а также опубликовал исследовательскую работу по ансамблям машин для повышения градиента на 8-й Международной конференции по искусственному интеллекту. В свободное время Джарретт занимается и вносит свой вклад в сферу генеративного искусственного интеллекта в AWS.

Создайте веб-интерфейс для взаимодействия с LLM с помощью Amazon SageMaker JumpStart | Веб-сервисы Amazon PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Тэмми Лим Ли Синь — младший облачный архитектор в AWS. Она использует технологии, чтобы помочь клиентам достичь желаемых результатов на пути внедрения облака, и увлечена искусственным интеллектом и машинным обучением. Вне работы она любит путешествовать, ходить в походы и проводить время с семьей и друзьями.

Отметка времени:

Больше от Машинное обучение AWS