Установка и запуск контейнеров Docker для API Детектора аномалий

Важно!

Начиная с 20 сентября 2023 г. вы не сможете создавать новые Детектор аномалий ресурсы. Служба Детектор аномалий отменяется 1 октября 2026 года.

Примечание.

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

Контейнеры позволяют использовать API Детектора аномалий в собственной среде. Контейнеры соответствуют конкретным требованиям к безопасности и управлению данными. В этой статье вы узнаете, как скачать, установить и запустить контейнер Детектора аномалий.

Детектор аномалий предлагает один контейнер Docker для локального использования API. Контейнер позволяет выполнять следующие задачи:

  • использовать алгоритмы Детектора аномалий для данных;
  • отслеживать потоковые данные и выявлять аномалии в режиме реального времени;
  • Обнаружение аномалий набора данных в пакетном режиме.
  • обнаруживать точки изменения тенденций в наборе данных в пакетном режиме;
  • настраивать чувствительность алгоритма к обнаружению аномалий в соответствии со своими данными.

Подробные сведения об API см. в следующей статье.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Необходимые компоненты

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

Обязательное поле Назначение
Модуль Docker На главном компьютере должен быть установлен модуль Docker. Docker предоставляет пакеты, которые настраивают среду Docker в ОС macOS, Windows и Linux. Ознакомьтесь с общими сведениями о Docker и контейнерах.

Docker нужно настроить таким образом, чтобы контейнеры могли подключать и отправлять данные о выставлении счетов в Azure.

В ОС Windows для Docker нужно также настроить поддержку контейнеров Linux.

Опыт работы с Docker Требуется базовое представление о понятиях Docker, включая реестры, репозитории, контейнеры и образы контейнеров, а также знание основных команд docker.
Ресурс Детектора аномалий Для использования контейнеров необходимо следующее:

Ресурс Детектора аномалий Azure для получения соответствующего ключа API и URI конечной точки. Оба значения доступны на страницах "Обзор" и "Ключи" Детектора аномалий на портале Azure и необходимы для запуска контейнера.

{API_KEY}: один из двух доступных ключей ресурсов на странице Ключи

{ENDPOINT_URI}: конечная точка, указанная на странице Обзор

Сбор обязательных параметров

Требуются три основных параметра для всех контейнеров ИИ Azure. Для условий лицензионного соглашения на использование программного обеспечения корпорации Майкрософт должно быть задано значение accept. Также требуются URI конечной точки и ключ API.

URI конечной точки

Это {ENDPOINT_URI} значение доступно на странице обзора портал Azure соответствующего ресурса служб ИИ Azure. Перейдите на страницу Обзор, наведите указатель мыши на конечную точку. Отобразится значок Копировать в буфер обмена. Скопируйте и используйте конечную точку по мере необходимости.

Screenshot that shows gathering the endpoint URI for later use.

Ключи

Значение {API_KEY} используется для запуска контейнера и доступно на странице ключей портал Azure соответствующего ресурса служб ИИ Azure. Перейдите на страницу Ключи и выберите значок Копировать в буфер обмена.

Screenshot that shows getting one of the two keys for later use.

Важно!

Эти ключи подписки используются для доступа к API служб искусственного интеллекта Azure. Не предоставляйте доступ к ключам другим пользователям. Храните их в безопасном месте. Например, используйте Azure Key Vault. Также рекомендуется регулярно повторно создавать эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа второй ключ можно использовать для бесперебойного доступа к службе.

Главный компьютер

Узел — это 64-разрядный компьютер, на котором выполняется контейнер Docker. Это может быть компьютер в локальной среде или служба размещения Docker в Azure, включая следующие решения:

Требования к контейнеру и рекомендации

В приведенной ниже таблице описаны минимальное и рекомендуемое число ядра ЦП и памяти для каждого контейнера Детектора аномалий.

Число запросов в секунду Минимальная конфигурация Рекомендуемая конфигурация
10 запросов в секунду 4 ядра, 1 ГБ памяти 8 ядер, 2 ГБ памяти
20 запросов в секунду 8 ядер, 2 ГБ памяти 16 ядер, 4 ГБ памяти

Частота каждого ядра должна быть минимум 2,6 ГГц.

Ядро и память соответствуют параметрам --cpus и --memory, которые используются как часть команды docker run.

Получение образа контейнера с помощью docker pull

Образ контейнера Детектор аномалий можно найти в mcr.microsoft.com синдикате реестра контейнеров. Он находится в репозитории azure-cognitive-services/decision и называется anomaly-detector. Полное имя образа контейнера: mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector.

Чтобы использовать последнюю версию контейнера, можно использовать latest тег. Вы также можете найти полный список тегов изображений в MCR.

Воспользуйтесь командой docker pull, чтобы скачать образ контейнера.

Контейнер Репозиторий
cognitive-services-anomaly-detector mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest

Совет

При использовании docker pullобратите внимание на регистр реестра контейнеров, репозитория, имени образа контейнера и соответствующего тега. Регистр при этом учитывается.

Совет

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

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Извлечение контейнера Детектора аномалий из Docker

docker pull mcr.microsoft.com/azure-cognitive-services/anomaly-detector:latest

Использование контейнера

После размещения контейнера на главном компьютере воспользуйтесь следующей процедурой для работы с ним.

  1. Запустите контейнер с необходимыми настройками выставления счетов. Доступны дополнительные примеры команды docker run.
  2. Запрос конечной точки прогнозирования контейнера.

Запуск контейнера с помощью команды docker run

Воспользуйтесь командой docker run для запуска контейнера. Дополнительные сведения о том, как получить значения {ENDPOINT_URI} и {API_KEY}, см. в разделе Сбор обязательных параметров.

Имеются примеры команды docker run.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Команда:

  • Запуск контейнера Детектора аномалий из образа контейнера.
  • выделяет одно ядро ЦП и 4 ГБ памяти;
  • предоставляет TCP-порт 5000 и выделяет псевдотелетайп для контейнера;
  • автоматически удаляет контейнер после завершения его работы. Образ контейнера остается доступным на главном компьютере.

Важно!

Для запуска контейнера необходимо указать параметры Eula, Billing и ApiKey. В противном случае контейнер не запустится. Дополнительные сведения см. в разделе о выставлении счетов.

Запуск нескольких контейнеров на одном узле

Если вы планируете запускать несколько контейнеров при открытых портах, обязательно назначьте каждому контейнеру отдельный порт. Например, запускайте первый контейнер на порте 5000, а второй — на порте 5001.

Замените <container-registry> и <container-name> значениями используемых контейнеров. При этом можно использовать разные контейнеры. Вы можете одновременно запустить на узле контейнер Детектора аномалий и контейнер LUIS или же несколько контейнеров Детектора аномалий.

Выполните первый контейнер на главном порте 5000.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Выполните второй контейнер на главном порте 5001.

docker run --rm -it -p 5001:5000 --memory 4g --cpus 1 \
<container-registry>/microsoft/<container-name> \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Каждому последующему контейнеру должен быть назначен отдельный порт.

Запрос конечной точки прогнозирования контейнера

Контейнер предоставляет интерфейсы REST API конечной точки прогнозирования запросов.

Используйте узел http://localhost:5000 для API контейнера.

Проверка состояния контейнера

Проверить это можно несколькими способами. Получите адрес и открытый порт для рассматриваемого контейнера из его параметра Внешний IP-адрес и запустите веб-браузер. Используйте приведенные ниже URL-адреса запросов, чтобы убедиться, что контейнер работает. В примерах в качестве URL-адресов запросов используется значение http://localhost:5000, однако ваш конкретный контейнер может иметь отличия. Убедитесь в правильности внешнего IP-адреса и открытого порта контейнера.

Запросить URL-адрес Назначение
http://localhost:5000/ Контейнер предоставляет домашнюю страницу.
http://localhost:5000/ready При запросе с помощью команды GET этот URL-адрес подтверждает, что контейнер готов принять запрос к модели. Этот запрос может использоваться для проб активности и готовности Kubernetes.
http://localhost:5000/status Этот URL-адрес, который можно также запросить с помощью GET, проверяет, действителен ли ключ API, используемый для запуска контейнера, без запроса конечной точки. Этот запрос может использоваться для проб активности и готовности Kubernetes.
http://localhost:5000/swagger Контейнер предоставляет полный набор документации по конечным точкам и функции Попробовать. Эта функция позволяет ввести параметры в веб-форму HTML и создать запрос без необходимости писать код. После возвращения результатов запроса предоставляется пример команды CURL с примером требуемого формата HTTP-заголовков и текста.

Container's home page

Остановка контейнера

Чтобы завершить работу контейнера, в среде командной строки, где выполняется контейнер, нажмите комбинацию клавиш Ctrl+C.

Устранение неполадок

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

Совет

Дополнительные сведения об устранении неполадок и рекомендации см. в статье часто задаваемые вопросы о контейнерах ИИ Azure.

Если у вас возникли проблемы с запуском контейнера служб искусственного интеллекта Azure, можно попробовать использовать контейнер Microsoft диагностика. Используйте этот контейнер для диагностики распространенных ошибок в среде развертывания, которые могут предотвратить работу контейнеров ИИ Azure должным образом.

Чтобы получить контейнер, используйте следующую команду docker pull:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Затем запустите контейнер. Замените {ENDPOINT_URI} на URI конечной точки, а {API_KEY} — на свой ключ для ресурса:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Контейнер проверит сетевое подключение к конечной точке выставления счетов.

Выставление счетов

Контейнеры Детектора аномалий отправляют сведения о выставлении счетов в Azure с помощью ресурса Детектор аномалий в учетной записи Azure.

Запросы к контейнеру оплачиваются согласно ценовой категории ресурса Azure, используемого для параметра ApiKey.

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

Подключение к Azure

Для запуска контейнера необходимо указать значения аргументов, касающихся выставления счетов. Эти значения обеспечивают подключение контейнера к конечной точке выставления счетов. Отчеты об использовании контейнера примерно каждые 10—15 минут. Если контейнер не подключится к Azure в течение допустимого периода времени, контейнер будет продолжать работать, но не будет обслуживать запросы, пока не будет восстановлена конечная точка выставления счетов. Попытки подключения выполняются 10 раз на протяжении одинакового интервала времени (10–15 минут). Если контейнеру не удается подключиться к конечной точке выставления счетов за 10 попыток, он останавливает запросы на обслуживание. Дополнительные сведения о выставлении счетов см. в контейнере служб искусственного интеллекта Azure.

Аргументы для выставления счетов

Команда docker run запустит контейнер, когда все три из следующих параметров предоставляются допустимыми значениями:

Вариант Описание
ApiKey Ключ API ресурса служб ИИ Azure, который используется для отслеживания сведений о выставлении счетов.
Этому параметру следует присвоить значение ключа API для подготовленного ресурса, который можно получить в Billing.
Billing Конечная точка ресурса служб искусственного интеллекта Azure, которая используется для отслеживания сведений о выставлении счетов.
Этому параметру следует присвоить URI конечной точки подготовленного ресурса Azure.
Eula Указывает, что вы приняли условия лицензии для контейнера.
Для этого параметра следует задать значение accept.

Дополнительные сведения об этих параметрах см. в статье Настройка контейнеров.

Итоги

В этой статье вы узнали основные понятия и рабочий процесс для скачивания, установки и выполнения контейнеров Детектора аномалий. В разделе "Сводка" сделайте следующее.

  • Детектор аномалий предоставляет один контейнер Linux для Docker, в котором инкапсулируются возможности обнаружения аномалий в пакетных или потоковых данных, вывода ожидаемого диапазона и настройки чувствительности.
  • Образы контейнера скачиваются из закрытого Реестра контейнеров Azure, выделенного для контейнеров.
  • Образы контейнеров выполняются в Docker.
  • Указав URI узла контейнера, вы можете применять или пакет SDK, или REST API для вызова операций из контейнеров Детектора аномалий.
  • При создании экземпляра контейнера нужно указать данные для выставления счетов.

Важно!

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

Следующие шаги