QAS. Руководство администратора: различия между версиями
Материал из Флора AI
Нет описания правки |
Нет описания правки |
||
| Строка 29: | Строка 29: | ||
* Установка/обновление QAS осуществляется скриптом <code>chmod +x ./qas-<версия>-<релиз>.sh && ./qas-<версия>-<релиз>.sh -i</code> с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор <code>./qas-<версия>-<релиз>.sh</code> без ключей. | * Установка/обновление QAS осуществляется скриптом <code>chmod +x ./qas-<версия>-<релиз>.sh && ./qas-<версия>-<релиз>.sh -i</code> с правами администратора. Список всех ключей инсталлятора можно посмотреть, запустив инсталлятор <code>./qas-<версия>-<релиз>.sh</code> без ключей. | ||
* Загрузить последнюю версию | * Загрузить последнюю версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/qas/new</nowiki>" --user '[user]:[pass]' 2>&1 | bash</code> или в интерактивном режиме <code>bash -c "$(curl -s <nowiki>https://repo.connect2ai.net/api/pve</nowiki> --user '[user]:[pass]' 2>&1)"</code>. | ||
* Обновить | * Обновить QAS <code>/opt/qas/inupdate</code> в интерактивном режиме. Или запустить с ключём: | ||
* Установить модели <code>/opt/qas/inmodel</code>. | ** <code>/opt/qas/inupdate -b</code> - обновить до последней beta версии; | ||
* Проверить актуальную версию | ** <code>/opt/qas/inupdate -r</code> - обновить до последней release версии; | ||
** <code>/opt/qas/inupdate -n</code> - обновить до последней версии (не важно beta или release). | |||
* Установить модели <code>/opt/qas/inmodel</code> в интерактивном режиме. | |||
* Проверить актуальную версию продукта <code>curl -s "<nowiki>https://repo.connect2ai.net/api/qas/version</nowiki></code>. | |||
* Посмотреть лог изменений <code>curl -s "<nowiki>https://repo.connect2ai.net/api/qas/changelog</nowiki>" --user '[user]:[pass]'</code>. | * Посмотреть лог изменений <code>curl -s "<nowiki>https://repo.connect2ai.net/api/qas/changelog</nowiki>" --user '[user]:[pass]'</code>. | ||
* Полное описание всех команд API репозитория можно найти по ссылке '''https://repo.connect2ai.net/api'''. <code>[user]:[pass]</code> - это тот же логин и пароль, что и от [https://cloud.connect2ai.net Nextcloud.] | * Полное описание всех команд API репозитория можно найти по ссылке '''https://repo.connect2ai.net/api'''. <code>[user]:[pass]</code> - это тот же логин и пароль, что и от [https://cloud.connect2ai.net '''Nextcloud'''.] | ||
* В папке с продуктом можно добавить 2 файла | * В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/): | ||
** echo -n <code>"[user]:[pass]"</code> > /opt/qas/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей) | ** echo -n <code>"[user]:[pass]"</code> > /opt/qas/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей) | ||
** echo -n <code>"<nowiki>http://example.com:3128</nowiki> [user] [password]"</code> > /opt/qas/.proxy (это файл конфигурации | ** echo -n <code>"<nowiki>http://example.com:3128</nowiki> [user] [password]"</code> > /opt/qas/.proxy (это файл конфигурации proxy необходим для обновления и загрузки моделей, при отсутсвующем прямом подключение к интернету) | ||
Не забудьте запустить сервис и включить в автозапуск в системе: | Не забудьте запустить сервис и включить в автозапуск в системе: | ||
Версия от 18:15, 16 сентября 2024
Общее описание
Сервис предназначен для поиска ответа на заданный вопрос. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате 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://repo.connect2ai.net/api/qas/new" --user '[user]:[pass]' 2>&1 | bashили в интерактивном режимеbash -c "$(curl -s https://repo.connect2ai.net/api/pve --user '[user]:[pass]' 2>&1)". - Обновить QAS
/opt/qas/inupdateв интерактивном режиме. Или запустить с ключём:/opt/qas/inupdate -b- обновить до последней beta версии;/opt/qas/inupdate -r- обновить до последней release версии;/opt/qas/inupdate -n- обновить до последней версии (не важно beta или release).
- Установить модели
/opt/qas/inmodelв интерактивном режиме. - Проверить актуальную версию продукта
curl -s "https://repo.connect2ai.net/api/qas/version. - Посмотреть лог изменений
curl -s "https://repo.connect2ai.net/api/qas/changelog" --user '[user]:[pass]'. - Полное описание всех команд API репозитория можно найти по ссылке https://repo.connect2ai.net/api.
[user]:[pass]- это тот же логин и пароль, что и от Nextcloud. - В папке с продуктом можно добавить 2 файла конфигурации (допускается один общий файл на все продукты в папке с окружением /opt/pve/):
- echo -n
"[user]:[pass]"> /opt/qas/.userapi (это файл авторизации в API, нужен для обновления и загрузки моделей) - echo -n
"http://example.com:3128 [user] [password]"> /opt/qas/.proxy (это файл конфигурации proxy необходим для обновления и загрузки моделей, при отсутсвующем прямом подключение к интернету)
- echo -n
Не забудьте запустить сервис и включить в автозапуск в системе:
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 | Максимальный размер файла в байтах, триггер для ротации |
| 256 | ||
| 8 | ||
| 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. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.
Часто задаваемые вопросы
| Вопрос | Ответ |
|---|---|