Поделиться через


Установка и запуск контейнеров 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.
Ресурс Детектора аномалий Для использования контейнеров необходимо следующее:

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

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

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

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

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

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

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

Снимок экрана: сбор URI конечной точки для дальнейшего использования.

Ключи

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

Снимок экрана: получение одного из двух ключей для дальнейшего использования.

Внимание

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

Хост-компьютер

На хосте, основанном на архитектуре x64, выполняется контейнер 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, чтобы скачать образ контейнера.

Контейнер Репозиторий
когнитивные сервисы - детектор аномалий 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 и выделяет псевдо-TTY для контейнера.
  • автоматически удаляет контейнер после завершения. Образ контейнера остается доступным на главном компьютере.

Внимание

Для запуска контейнера необходимо указать параметры 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-заголовков и текста.

Домашняя страница контейнера

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

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

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

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

Совет

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

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

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

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

Затем запустите контейнер. Замените {ENDPOINT_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 AI для примера информации, отправляемой Microsoft для выставления счетов.

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

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

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

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

Итоги

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

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

Внимание

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

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