Построение микросервиса для многоканальных чат-бекендов с использованием Llama и ChatGPT

Microservice creation for multi-channel chat backends using Llama and ChatGPT

 

Архитектура микросервисов способствует созданию гибких, независимых сервисов с четко определенными границами. Этот масштабируемый подход позволяет разработчикам поддерживать и развивать сервисы индивидуально, не затрагивая всего приложения. Однако, чтобы полностью раскрыть потенциал архитектуры микросервисов, особенно для чат-приложений, основанных на искусственном интеллекте, требуется надежная интеграция с последними моделями больших языковых моделей (LLM), такими как Meta Llama V2 и ChatGPT от OpenAI, а также с другими моделями, настроенными на каждый конкретный случай использования приложения, чтобы обеспечить многоуровневый подход для разнообразных решений.

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

В этом руководстве вы познакомитесь с интеграцией IntelliNode для ChatGPT и LLaMA V2 в архитектуре микросервисов с использованием Node.js и Express.

 

Варианты интеграции с помощью чат-бота

 

Вот несколько вариантов интеграции чата, предоставленных IntelliNode:

  1. LLaMA V2: Вы можете интегрировать модель LLaMA V2 либо через API Replicate для простого процесса, либо через свой хост AWS SageMaker для дополнительного контроля.

LLaMA V2 – это мощная модель большой языковой модели (LLM), которая была предварительно обучена и настроена с использованием до 70 миллиардов параметров. Она прекрасно справляется с сложными задачами рассуждения в различных областях, включая специализированные области, такие как программирование и творческое письмо. Методика ее обучения включает самонадзорные данные и выравнивание с предпочтениями человека через обучение с подкреплением с обратной связью от человека (RLHF). LLaMA V2 превосходит существующие модели с открытым исходным кодом и сравнима с моделями с закрытым исходным кодом, такими как ChatGPT и BARD, по использованию и безопасности.

  1. ChatGPT: Просто предоставьте свой ключ API OpenAI, и модуль IntelliNode позволит интегрировать модель в простой чат-интерфейс. Вы можете получить доступ к ChatGPT через модели GPT 3.5 или GPT 4. Эти модели были обучены на огромных объемах данных и настроены для предоставления высококонтекстных и точных ответов.

 

Пошаговая интеграция

 

Начнем с инициализации нового проекта Node.js. Откройте терминал, перейдите в каталог вашего проекта и выполните следующую команду:

npm init -y

 

Эта команда создаст новый файл `package.json` для вашего приложения.

Затем установите Express.js, который будет использоваться для обработки HTTP-запросов и ответов, и intellinode для подключения моделей LLM:

npm install express

npm install intellinode

 

После завершения установки создайте новый файл с именем `app.js` в корневом каталоге вашего проекта. Затем добавьте код инициализации express в `app.js`.

Код от автора

 

Интеграция Llama V2 с использованием API Replicate

 

Replicate предоставляет быстрый путь интеграции с Llama V2 через API-ключ, а IntelliNode обеспечивает интерфейс чат-бота, чтобы отделить вашу бизнес-логику от бэкэнда Replicate, позволяя вам переключаться между разными моделями чата.

Начнем с интеграции с Llama, размещенной на бэкэнде Replica:

Код от автора

Получите пробный ключ на replicate.com, чтобы активировать интеграцию.

 

Интеграция Llama V2 с использованием AWS SageMaker

 

Теперь рассмотрим интеграцию Llama V2 через AWS SageMaker, обеспечивающую конфиденциальность и дополнительный уровень контроля.

Для интеграции необходимо создать конечную точку API в вашей учетной записи AWS; сначала настроим код интеграции в нашем микросервисном приложении:

Код автора

Далее приведены шаги для создания конечной точки Llama в вашей учетной записи. После настройки API-шлюза скопируйте URL для запуска сервиса «/llama/aws».

Для настройки конечной точки Llama V2 в вашей учетной записи AWS выполните следующие действия:

1- Служба SageMaker: выберите службу SageMaker в своей учетной записи Amazon Web Services и щелкните на вкладке «домены».

2- Создайте домен SageMaker: начните с создания нового домена в AWS SageMaker. Этот шаг создает контролируемое пространство для выполнения операций в SageMaker.

3- Разверните модель Llama: используйте SageMaker JumpStart для развертывания интегрируемой модели Llama. Рекомендуется начать с модели 2B из-за более высокой ежемесячной стоимости для запуска модели 70B.

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

5- Создайте функцию Lambda: AWS Lambda позволяет запускать код бэк-энда без управления серверами. Создайте функцию Lambda на Node.js, которую можно использовать для интеграции развернутой модели.

6- Настройте переменную среды: создайте переменную среды в вашей функции Lambda с именем llama_endpoint и значением конечной точки SageMaker.

7- Импорт Lambda Intellinode: вам нужно импортировать подготовленный zip-файл Lambda, который устанавливает соединение с развернутым SageMaker Llama. Экспорт представляет собой zip-файл и находится в каталоге lambda_llama_sagemaker.

8- Конфигурация API-шлюза: нажмите кнопку «Добавить триггер» на странице функции Lambda и выберите «API-шлюз» из списка доступных триггеров.

aws account-lambda trigger

aws account-api gateway trigger

9- Настройки функции Lambda: обновите роль Lambda, чтобы предоставить необходимые разрешения для доступа к конечным точкам SageMaker. Кроме того, время ожидания функции должно быть увеличено, чтобы учесть время обработки. Внесите эти изменения на вкладке «Конфигурация» вашей функции Lambda.

Нажмите на имя роли, чтобы обновить разрешения и предоставить разрешение на доступ к SageMaker:

aws account-lambda role

Интеграция ChatGPT

Наконец, мы продемонстрируем шаги по интеграции Openai ChatGPT в качестве еще одной опции в архитектуре микросервисов:

Код автора

Получите пробный ключ на platform.openai.com.

Эксперимент выполнения

Сначала экспортируйте API-ключ в терминале следующим образом:

Код автора

Затем запустите приложение node:

node app.js

 

Введите следующий URL в браузере для тестирования сервиса chatGPT:

http://localhost:3000/chatgpt?message=hello

 

Мы создали микросервис, оснащенный возможностями больших языковых моделей, таких как Llama V2 и ChatGPT от OpenAI. Эта интеграция открывает двери для использования бесконечных бизнес-сценариев, основанных на передовом искусственном интеллекте.

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

 

Ссылки

 

  • API ChatGPT: ссылка.
  • API Replica: ссылка.
  • Начало работы с SageMaker Llama: ссылка
  • Начало работы с IntelliNode: ссылка
  • Репозиторий GitHub с полным кодом: ссылка

    Ахмад Альбаркави – инженер и магистр по науке о данных в Иллинойсском Университете Урбана-Шампейн.