Развертывание сервиса AI-ассистент LLM

Средний
PDF

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

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

Настройка окружения

Решение поставляется в виде архива для установки при помощи Docker Compose.

В случае отсутствия в системе Docker и Docker Compose выполните их установку по инструкции с официального сайта Docker для соответствующей версии операционной системы.

Дополнительно для работы модели необходимо установить следующее программное обеспечение на сервер:

  • CUDA 12;
  • Nvidia Driver версии совместимой с установленной версией CUDA;
  • NVIDIA Container Toolkit.

Все перечисленное программное обеспечение можно скачать с официальных ресурсов NVIDIA.

Порядок установки

Развертывание сервиса

Для развертывания сервиса необходимо последовательно выполнить следующие команды:

  1. Распаковать архив:
  2. unzip llm-knowledge-base.zip
  3. Перейти в директорию с распакованными файлами:
  4. cd LLM_for_Knowledge_Base
  5. Выполнить команды для запуска скрипта установки:
  6. chmod +x install.sh
    ./install.sh
  7. В файле .env необходимо установить значения переменных:

Таблица 1 — Параметры файла .env

Параметр Описание Требуется заполнение
MODEL_PATH Путь до LLM модели Заполнено по умолчанию
EMBEDDING_MODEL_PATH Путь до модели эмбеддингов Заполнено по умолчанию
MYSQL_ADDRESS Адрес MySQL базы данных Да
MYSQL_USER Пользователь MySQL базы данных Заполнено по умолчанию
MYSQL_PASSWORD Пароль для пользователя MySQL базы данных Заполнено по умолчанию
MYSQL_DB Имя базы данных Заполнено по умолчанию
BPMSOFT_LINK Адрес школы BPMSoft Заполнено по умолчанию
API_ADDRESS Адрес API сервиса Да
BACKEND_PORT номер порта backend Заполнено по умолчанию
TAG=0.1.0 версия сервиса, которую требуется запустить Заполнено по умолчанию
TENSOR_PARALLEL_SIZE=1 число одновременно используемых видеокарт Заполнено по умолчанию
WORKER_USE_RAY=False True, если TENSOR_PARALLEL_SIZE > 1, иначе – False Заполнено по умолчанию
GPU_MEMORY_UTILIZATION Доля видеопамяти, используемой под вычисления. Не рекомендуется превышать значение 0.8, так как для работы модели необходим кэш, который также хранится в видеопамяти. При возникновении ошибки «Out of memory» можно уменьшить значение параметра до 0.6-0.7, что, однако, может негативно сказаться на производительности Заполнено по умолчанию
GENERATE_SERVICE_USER Имя учетной записи администратора сервиса дообучения. Должно совпадать со значением системной настройки «LlmUser» в BPMSoft Да
GENERATE_SERVICE_PASSWORD Пароль учетной записи администратора сервиса дообучения. Должно совпадать со значением системной настройки «LlmPassword» в BPMSoft Да
CES_URL Адрес CES для проверки статуса лицензии Да
MAX_CONTEXT_LENGTH Параметр, определяющий максимальную длину контекста, на основе которого модель формирует свой ответ. В нашем случае контекст представляет собой статьи базы знаний, а его длина измеряется в символах. Значение по умолчанию оптимизировано для соответствия системным требованиям, и изменение этого параметра без необходимости не рекомендуется. При возникновении ошибки «Out of memory» допустимо уменьшение значения, однако это может привести к снижению качества работы модели в некоторых случаях Заполнено по умолчанию
MAX_MODEL_LENGTH Максимальная длина входа модели, которая измеряется в символах. Его длина измеряется в символах. Значение параметра по умолчанию оптимизировано под системные требования, не рекомендуется менять без необходимости. Должно быть по меньшей мере на 4000 больше, чем MAX_CONTEXT_LENGTH. При возникновении ошибки «Out of memory» допускается уменьшение значения, что в некоторых случаях может приводить к снижению качества. Заполнено по умолчанию
При развертывании используется пароль базы данных по умолчанию, рекомендуется изменить его после установки.
  1. В файле docker-compose.yml в параметре device_ids необходимо указать идентификатор видеокарты, который будет использоваться для каждого из сервисов. По умолчанию — ["0"] для сервиса генерации и ["1"] для сервиса дообучения.
    При необходимости развернуть несколько сервисов дообучения на одном сервере на разных видеокартах следует выполнить следующие шаги:
    1. Добавить в файл docker-compose.yml еще 1 сервис, взяв за основу сервис backend-llmgeneration.
    2. Изменить название нового сервиса с backend-llm-generation на любое незанятое (например, backend-llm-generation-2).
    3. Изменить имя контейнера в параметре container_name на любое незанятое (например, backend-llm-generation-api-2).
    4. В параметре device_ids указать номер видеокарты, которая будет использоваться экземпляром сервиса.

    Управление контейнерами осуществляется при помощи стандартных механизмов docker и docker compose.

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

  2. Выполнить команду для запуска образа:
  3. sudo docker compose up -d

Настройка для дообучения модели

Для настройки интеграции между сервисом и платформой BPMSoft выполните следующие шаги:

  1. Перейдите в раздел «Системные настройки» одниv из следующих способов:
    • Рабочее место «Конструктор» → раздел «Системные настройки»;
    • Дизайнер системы Дизайнер системы (3).svg → блок «Настройка системы» → раздел «Системные настройки».
  2. Откройте системную настройку «Llm user» (код «LlmUser»). В поле «Значение по умолчанию» укажите значение параметра GENERATE_SERVICE_USER из файла среды .env и сохраните изменения.

Рисунок 1 — Системная настройка «Llm user»

Рисунок 1 — Системная настройка «Llm user».png

  1. Откройте системную настройку «Llm password» (код «LlmPassword»). В поле «Значение по умолчанию» укажите значение параметра GENERATE_SERVICE_ PASSWORD из файла среды .env и сохраните изменения.

Рисунок 2 — Системная настройка «Llm password»

Рисунок 2 — Системная настройка «Llm password».png

  1. Откройте системную настройку «Адрес сервиса llm» (код «LlmUrlTrain»). В поле «Значение по умолчанию» укажите значение параметра API_ADDRESS из файла среды .env и сохраните изменения.

Рисунок 3 — Системная настройка «Адрес сервиса llm»

Рисунок 3 — Системная настройка «Адрес сервиса llm».png

Схема работы сервиса

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

Экземпляры сервиса генерации и дообучения представляют собой REST API сервисы. Порты, на которых сервисы ожидают запросы указываются в переменных окружения BACKEND_PORT и TRAIN_SERVICE_PORT в файле .env.

База данных должна быть развернута в одном экземпляре, параметры подключения к базе данных задаются в конфигурационном файле .env в переменных MYSQL_ADDRESS, MYSQL_PASSWORD, MYSQL_USER, MYSQL_DB, MYSQL_PORT. По умолчанию в docker-compose.yaml установлено развертывание базы данных. Для отключения развертывания базы данных на тех узлах, где это не нужно, следует удалить из docker-compose.yaml сервис llm-mysql-db.

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

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

Для горизонтального масштабирования рекомендуется применять стандартные практики масштабирования REST API сервисов. На схеме ниже приведен возможный пример реализации, когда несколько экземпляров сервиса находятся за балансировщиком, который распределяет запросы между узлами. Рекомендуемое правило балансировки — round robin.

Рисунок 4 — Схема работы сервиса

Рисунок 4 — Схема работы сервиса.jpg

Рекомендуем изучить

Настройка черного списка
AI-ассистент по базе знаний BPMSoft

Материал был полезен для вас?
Приглашаем на вебинар 26 ноября

BPMSoft больше, чем CRM С участием МодульКасса, Доброфлот, АвтоТрейд Москва 07:00-08:00 Новосибирск 11:00-12:00 Иркутск 12:00-13:00 Владивосток 14:00-15:00

ТОП российских CRM-систем

Фонд «Сколково» и аналитический центр TAdviser провели исследование отечественного рынка CRM-систем. В нем приняли участие 23 отечественных вендора. Кто оказался в лидерах?

Оставить заявку

Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время

Демонстрационная версия BPMSoft

Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней

Заказать презентацию

Наш менеджер свяжется с Вами в ближайшее время

Рассчитать стоимость

Стоимость лицензии BPMSoft от 13 480 руб. Для корректного расчета заполните форму

Задать вопрос
Присоединяйтесь к партнерской сети BPMSoft

Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время

Тип партнерства
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Есть вопросы?

Не нашли для себя подходящую вакансию, или остались вопросы?

Есть вопросы?

Не нашли для себя подходящую вакансию, или остались вопросы?

Стать Вузом-партнером

Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.

Заявка на консультацию
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Вы подписаны на новости BPMSoft
Пожалуйста, подтвердите свой электронный адрес, пройдя по ссылке в письме.
Telegram Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее