Home Машинное обучение Создайте веб-интерфейс для взаимодействия с LLM с помощью Amazon SageMaker JumpStart. | DeepTech

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

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

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

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

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

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

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

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

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

Модели фундаментов SageMaker

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

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

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

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

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

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

Предварительные условия

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

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

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

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

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

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

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

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

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

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

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

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

  1. На Модели, ноутбуки, решения страница, найдите Стабильную диффузию 2.1.
  2. Под Конфигурация развертываниядля Экземпляр хостинга SageMakerвыбирать ml.p3.2xlarge и для Имя конечной точкивходить 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. Введите в терминал следующие команды:
  11. Открыть http://локальный хост: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, используя следующую команду. Укажите имя проекта, примите конфигурации по умолчанию и выберите Ключи доступа к AWS когда будет предложено выбрать метод аутентификации.
  4. Разместите проект Amplify, используя следующую команду. Выбирать Amazon CloudFront и S3 когда будет предложено выбрать режим плагина.
  5. Наконец, соберите и разверните проект с помощью следующей команды:
  6. После успешного развертывания откройте URL-адрес, указанный в вашем браузере, и начните взаимодействовать со своими моделями!

Очистить

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

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

Заключение

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

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

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

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


Об авторах

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

Тэмми Лим Ли Синь — младший облачный архитектор в AWS. Она использует технологии, чтобы помочь клиентам достичь желаемых результатов на пути внедрения облака, и увлечена искусственным интеллектом и машинным обучением. Вне работы она любит путешествовать, ходить в походы и проводить время с семьей и друзьями.

LEAVE A REPLY

Please enter your comment!
Please enter your name here