SMC. Руководство администратора: различия между версиями
Материал из Флора AI
E.Elagina (обсуждение | вклад) |
|||
| Строка 51: | Строка 51: | ||
===== '''Установка моделей SMC''' ===== | ===== '''Установка сервисных моделей SMC''' ===== | ||
Установка | Установка сервисных моделей возможна только копированием файла(файлов) модели в каталог c названием модели. Названия моделей предопределены и соответствуют их назначению ('''compressor correction embeddings emotions normalization punctuation'''). Установка сервисных моделей в отличие от моделей классификации невозможна через API. | ||
Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/<название модели>/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc. При наличии в модели файла requirements.txt требуется установка в окружении PVE перечисленных в файле зависимостей командой pip3. | Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/<название модели>/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc. При наличии в модели файла requirements.txt требуется установка в окружении PVE перечисленных в файле зависимостей командой pip3. | ||
Проверить корректность работы модели ''пунктуации'' можно | Проверить корректность работы модели ''пунктуации'' можно запросом к API с отправкой текста на распознавание: | ||
<code>curl -H "accept: application/json" -X GET "<nowiki>http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=</nowiki><текст>"</code> | <code>curl -H "accept: application/json" -X GET "<nowiki>http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=</nowiki><текст>"</code> | ||
Модели: | |||
* '''embeddings''' - языковая, отвечает за вычисление векторов при обучения модели. Проверить работу напрямую запросом к API не получится, метод не предусмотрен. | |||
* '''compressor''' - модель сжатия фраз. Убирает из фразы слова не влияющие на ее смысл. Проверить работу можно через API запросом: '''''пример запроса''''' <code>curl -s -G -X GET "<nowiki>http://10.2.1.204:6181/smc/compress?threshold=30</nowiki>" --data-urlencode "text=как можно было бы получить выплату мне бы" -H "accept: application/json"|jq</code> '''''пример ответа''''' <code>{ "text": "получить выплату мне бы" }</code> | |||
* '''emotions''' - анализ эмоций. Проверить работу можно через API запросом: '''''пример запроса''''' <code>curl -s -G -X GET "<nowiki>http://10.2.1.204:6181/smc/emotion</nowiki>" --data-urlencode "text=спасибо все хорошо" -H "accept: application/json"|jq</code> '''''пример ответа''' <code>{ "emotion": "positive", "score": 0.9601 }</code>'' | |||
* '''punctuation''' - пунктуация. Проверить работу можно через API запросом: '''''пример запроса''' <code>curl -s -G -X GET "<nowiki>http://10.2.1.204:6181/smc/punctuate</nowiki>?" --data-urlencode "text=я пришел как мне получить услугу" -H "accept: application/json"|jq</code> '''пример ответа''''' <code>{ "text": "Я пришел. Как мне получить услугу?" }</code> | |||
* '''normalization''' | |||
* '''correction'''<br /> | |||
===== '''Конфигурирование параметров сервиса''' ===== | ===== '''Конфигурирование параметров сервиса''' ===== | ||
| Строка 88: | Строка 93: | ||
|gpu.productionModels | |gpu.productionModels | ||
|true | |true | ||
| rowspan="6" |Флаг загрузки модели в GPU. productionModels подразумевает все рабочие модели, которые создаются в системе | | rowspan="6" |Флаг загрузки модели в GPU. productionModels подразумевает все рабочие модели классификации, которые создаются в системе. Остальные модели - сервисные: embeddingModel - языковая, punctuationModel - пунктуация, emotionsModel - анализ эмоций, compressorModel - модель сжатия фраз. Можно отдельно по названию сервисной модели включать/выключать ее загрузку в GPU. Рабочие модели можно включить в память gpu только все вместе. | ||
|- | |- | ||
|gpu.embeddingModel | |gpu.embeddingModel | ||
Версия от 16:18, 16 мая 2024
Общее описание
Сервис предназначен для классификации текстовой информации на предопределенные классы. Входным значением для сервиса являются данные в текстовом формате. В ответ на входящий запрос сервис возвращает данные в формате JSON.
Термины и определения
Simple Message Classifier (SMC) – сервис классификации.
Системные требования для SMC
Для нормальной работы сервиса на каждые 100 одновременных запросов классификации необходимо обеспечить 1 CPU >= 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)
Оперативной памяти необходимо не менее 4Gb.
Установка/обновление сервиса SMC
Дистрибутив распространяется в виде установочных пакетов для окружения и сервиса. Загрузите установочные пакеты на сервер и выполните команды для Вашей системы в каталоге с пакетом.
Перед установкой непосредственно сервиса необходимо установить сервисный пакет окружения.
Установка/обновление SMC осуществляется скриптом chmod +x ./smc-<версия>-<релиз>.sh && ./smc-<версия>-<релиз>.sh -i с правами администратора. Список всех ключей инсталятора можно посмотреть, запустив инсталятор ./smc-<версия>-<релиз>.sh без ключей.
Загрузить последнюю версию пакета curl -s 'https://cloud.connect2ai.net/smc/' --user 'user_nexcloud:pass_nexcloud' | bash
Установить/обновить пакет одной командой curl -s 'https://cloud.connect2ai.net/smc/?name=s' --user 'user_nexcloud:pass_nexcloud' | bash && chmod +x ./smc.sh && ./smc.sh -i
Проверить актуальную версию пакета можно curl -s 'https://cloud.connect2ai.net/smc/?type=v'
Не забудьте запустить сервис и включить в автозапуск в системе:
sudo systemctl enable smc.service && sudo systemctl start smc.service
Удостоверьтесь, что сервис стартовал:
systemctl status smc.service
Разрешите доступ к порту 6181 на нужном интерфейсе по протоколу tcp.
Установка сервисных моделей SMC
Установка сервисных моделей возможна только копированием файла(файлов) модели в каталог c названием модели. Названия моделей предопределены и соответствуют их назначению (compressor correction embeddings emotions normalization punctuation). Установка сервисных моделей в отличие от моделей классификации невозможна через API.
Модели располагаются в каталоге /opt/smc/pretrained/. Для установки модели необходимо создать каталог /opt/smc/pretrained/<название модели>/ и распаковать в неё архив модели, после чего перезагрузить сервис командой systemctl restart smc. При наличии в модели файла requirements.txt требуется установка в окружении PVE перечисленных в файле зависимостей командой pip3.
Проверить корректность работы модели пунктуации можно запросом к API с отправкой текста на распознавание:
curl -H "accept: application/json" -X GET "http://АДРЕС_СЕРВЕРА:6181/smc/punctuate?text=<текст>"
Модели:
- embeddings - языковая, отвечает за вычисление векторов при обучения модели. Проверить работу напрямую запросом к API не получится, метод не предусмотрен.
- compressor - модель сжатия фраз. Убирает из фразы слова не влияющие на ее смысл. Проверить работу можно через API запросом: пример запроса
curl -s -G -X GET "http://10.2.1.204:6181/smc/compress?threshold=30" --data-urlencode "text=как можно было бы получить выплату мне бы" -H "accept: application/json"|jqпример ответа{ "text": "получить выплату мне бы" } - emotions - анализ эмоций. Проверить работу можно через API запросом: пример запроса
curl -s -G -X GET "http://10.2.1.204:6181/smc/emotion" --data-urlencode "text=спасибо все хорошо" -H "accept: application/json"|jqпример ответа{ "emotion": "positive", "score": 0.9601 } - punctuation - пунктуация. Проверить работу можно через API запросом: пример запроса
curl -s -G -X GET "http://10.2.1.204:6181/smc/punctuate?" --data-urlencode "text=я пришел как мне получить услугу" -H "accept: application/json"|jqпример ответа{ "text": "Я пришел. Как мне получить услугу?" } - normalization
- correction
Конфигурирование параметров сервиса
Настройка параметров сервиса smc производится в файле /opt/smc/config.json
Описание параметров приведено в таблице
| Параметр | По умолчанию | Назначение |
|---|---|---|
| logs.path | logs/ | Дерриктория для хранения логов. Примеры абсолютного пути: "/var/log/smc/" |
| logs.backups | 10 | Количество файлов ротации |
| logs.maxSize | 5242880 | Максимальный размер файла в байтах, триггер для ротации |
| gpu.productionModels | true | Флаг загрузки модели в GPU. productionModels подразумевает все рабочие модели классификации, которые создаются в системе. Остальные модели - сервисные: embeddingModel - языковая, punctuationModel - пунктуация, emotionsModel - анализ эмоций, compressorModel - модель сжатия фраз. Можно отдельно по названию сервисной модели включать/выключать ее загрузку в GPU. Рабочие модели можно включить в память gpu только все вместе. |
| gpu.embeddingModel | true | |
| gpu.punctuationModel | true | |
| gpu.emotionsModel | true | |
| gpu.compressorModel | true | |
| gpu.emotionsModel | true |
Сбор данных об ошибках
Логи сервиса по умолчанию находятся в файле /opt/smc/logs/log.txt
Удаление
Для удаления выполните команду: /opt/smc/uninstall. Команда деинсталлирует сервис и удалит рабочий каталог, включая все установленные модели.
Практические рекомендации
Сервис SMC в работе использует большую языковую модель которая формирует многомерное семантическое пространство. Смысл фразы для ее классификации вычисляется на основании вектора фразы в этом пространстве. Для производительности таких вычислений рекомендуется использовать GPU с 16 Гб видеопамяти. В случае отсутствия видеокарт рекомендуется использовать не менее 3 серверов по 8 ядер и 16Гб оперативной памяти. При этом желательно в строке запуска gunicorn в файле сервиса добавить параметр "-w 2". Это приведет к загрузке в память 2-х экземпляров приложения и моделей и позволит при высокой нагрузке полностью загрузить процессорные ядра.
Часто задаваемые вопросы
| Вопрос | Ответ |
|---|---|