Действия

QAS. Руководство администратора

Материал из Флора AI

Общее описание

Сервис предназначен для поиска ответа на заданный вопрос. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.

Термины и определения

Question Answering System (QAS) – сервис ответов на вопросы.


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

Для нормальной работы сервиса, без GPU, необходимо не менее 8 CPU (минимальные требования для использование метода ask) >= 2.20GHz с поддержкой инструкций AVX2 или новее:

  • Intel Haswell
  • Intel Broadwell
  • Intel Skylake
  • Intel Kaby Lake
  • Intel Coffee Lake
  • Intel Comet Lake
  • Intel Rocket Lake
  • Intel Alder Lake
  • AMD Excavator
  • AMD Zen (AMD Ryzen)
  • AMD Zen 2 (AMD Ryzen)
  • AMD Zen 3 (AMD Ryzen)

Работа на CPU при использование метода ask крайне не рекомендуется. Оперативной памяти необходимо не менее 16Gb, для работы без GPU.


Установка/обновление сервиса

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

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

Установка/обновление QAS осуществляется скриптом chmod +x ./qas-<версия>-<релиз>.sh && ./qas-<версия>-<релиз>.sh -i с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор ./qas-<версия>-<релиз>.sh без ключей.

Загрузить последнюю версию пакета curl -s 'https://cloud.connect2ai.net/qas/' --user 'user_nexcloud:pass_nexcloud' | bash

Установить/обновить пакет одной командой curl -s 'https://cloud.connect2ai.net/qas/?name=s' --user 'user_nexcloud:pass_nexcloud' | bash && chmod +x ./qas.sh && ./qas.sh -i

Проверить актуальную версию пакета можно curl -s 'https://cloud.connect2ai.net/qas/?type=v'

Не забудьте запустить сервис и включить в автозапуск в системе:

sudo systemctl enable qas.service && sudo systemctl start qas.service

Удостоверьтесь, что сервис стартовал:

systemctl status qas.service

Разрешите доступ к порту 6187 на нужном интерфейсе по протоколу tcp.


Работа в составе кластера

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

  • База файловая, в папке data.
  • lsync настроен через конфиг QAS для репликации базы на все указанные серверы в списке cluster.nodes: [], указывем все слейв сервера.
  • На всех слейвах прописан в конфиге master, чтобы все операции добавления и изменения данных при автокэшировании они производили через мастер. Параметр в конфиге questions.master, на мастере значение "http://127.0.0.1:6187".
  • Векторная база на каждом сервере своя, она следит за своей папкой data и обновляет в оперативке по этой папке данные у себя.
  • UPS при изменении данных работает только с мастером QAS, а при запросе данных - со всем серверами cluster, распределяя нагрузку.
  • В конфигурации UPS: в servers.qas.cluster.trainer указываем матер сервер, в servers.qas.cluster перечисляем все сервера кластера QAS в том числе и мастер.
Конфигурирование параметров сервиса

Настройка параметров сервиса qas производится в файле /opt/qas/config.json

Описание параметров приведено в таблице

Параметр По умолчанию Назначение
logs.path logs/ Папка для хранения логов. Примеры абсолютного пути: "/var/log/qas/"
logs.backups 10 Количество файлов ротации
logs.maxSize 5242880 Максимальный размер файла в байтах, триггер для ротации
fragments.window 256 Ширина окна векторизации текста
fragments.shift 8 Cдвиг окна векторизации текста
fragments.neighbours 1 Количество предложений слева и справа от текущего векторизируемого предложения, которые попадут в векторизируемый фрагмент.
fragments.context 2048 Максимальная длина текста, которая будет подана в генератор для поиска ответа на вопрос
fragments.threshold 0.6 Уровень достоверности при векторном поиске фрагментов в загруженных документах
fragments.limit 2 Максимальное количество фрагментов, которые должны быть найдены в документах в порядке убывания доверия
questions.autocache true Разрешает автоматически кешировать вопросы и ответы на них
questions.master "http://127.0.0.1:6187" Адрес мастер-сервера для работы в кластере. Необходим чтобы добавленные вопросы распространились на серверы кластера
questions.threshold 0.7 Минимальный уровень достоверности ответа для попадания в кеш
cluster.logfile logs/sync.log Расположение лог файла синхронизации (актуально для мастер-сервера)
cluster.logfile logs/sync.status Расположение файла статуса lsyncd (актуально для мастер-сервера)
cluster.nodes [ ] Ноды кластера на которые с мастер-сервера будут распространяться изменения


Сбор данных об ошибках

Логи сервиса по умолчанию находятся в файле /opt/qas/logs/log.txt


Удаление

Для удаления выполните команду: /opt/qas/uninstall. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.


Часто задаваемые вопросы
Вопрос Ответ