Что такое контейнеры ИИ Azure?

Службы искусственного интеллекта Azure предоставляют несколько контейнеров Docker, которые позволяют использовать одни и те же API, доступные в Локальной среде Azure. С помощью этих контейнеров вы можете обеспечить гибкость для приближения служб искусственного интеллекта Azure к данным по соответствию, безопасности или другим операционным причинам. Поддержка контейнеров в настоящее время доступна для подмножества служб ИИ Azure.

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

Возможности и преимущества

  • Неизменяемая инфраструктура: позволяет командам DevOps использовать согласованный и надежный набор известных системных параметров, а также возможность адаптироваться к изменениям. Контейнеры обеспечивают гибкость и подвижность внутри прогнозируемой экосистемы, это позволяет обходиться без перенастройки.
  • Контроль над данными. Выберите место обработки данных службами ИИ Azure. Это может быть важно, если вы не можете отправлять данные в облако, но вам нужен доступ к API служб искусственного интеллекта Azure. Поддержка согласованности в гибридной среде, в том числе данных, управления, идентификатора и безопасности.
  • Контроль за обновлениями модели: гибкость в управлении версиями и обновлении моделей, которые клиенты применяют в своих решениях.
  • Переносимая архитектура: возможность создания архитектуры переносимого приложения, которое можно развернуть в облаке, в локальной среде или на пограничных устройствах. Контейнеры можно развертывать непосредственно в Службе Azure Kubernetes, Экземплярах контейнеров Azure или в кластере Kubernetes, развернутом в Azure Stack. Дополнительные сведения см. в статье Развертывание Kubernetes в Azure Stack.
  • Высокая пропускная способность или низкая задержка. Предоставление клиентам возможности масштабирования для обеспечения высокой пропускной способности и требований к низкой задержке, позволяя службам ИИ Azure выполнять физически близко к логике приложения и данным. Контейнеры не ограничивают число транзакций в секунду (TPS), и их можно увеличивать и уменьшать для удовлетворения спроса, предоставив необходимые аппаратные ресурсы.
  • Масштабируемость: благодаря постоянно растущему спросу на программное обеспечение для управления контейнерами и их оркестрации, например Kubernetes; масштабируемость находится на переднем плане развития технологий. Основываясь на масштабируемой кластерной среде, разработка приложений предусматривает высокий уровень возможностей.

Контейнеры в службах ИИ Azure

Контейнеры ИИ Azure предоставляют следующий набор контейнеров Docker, каждый из которых содержит подмножество функций служб в службах ИИ Azure. В приведенных ниже таблицах представлены описания и расположение образов.

Примечание.

Инструкции и расположения образов см. в статье "Установка и запуск контейнеров аналитики документов" для azure AI Document Intelligence .

Контейнеры принятия решений

Service Контейнер Description Доступность
Детектор аномалий Детектор аномалий (образ) API Детектор аномалий позволяет отслеживать и обнаруживать отклонения в данных временных рядов с помощью машинного обучения. Общедоступно

Контейнеры для работы с языком

Service Контейнер Description Доступность
LUIS LUIS (образ) Загружает обученную или опубликованную модель Распознавания речи, также известную как приложение LUIS, в контейнер Docker и предоставляет доступ к прогнозам запроса из конечных точек API контейнера. Можно собирать журналы запросов из контейнера и отправлять их обратно на портал LUIS для повышения точности прогнозов приложения. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
Языковая служба Извлечение ключевых фраз (изображение) Извлекает ключевые фразы для определения основных идей текста. Например, для входного текста "Еда была вкусной и персонал был замечательным" API вернет основные тезисы в записи: "еда" и "замечательный персонал". Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
Языковая служба Распознавание языка текста (образ) Решение может определить язык введенного текста (поддерживается более 120 языков) и сообщить один код языка для каждого документа, отправленного в запросе. Код языка сопряжен с показателем, указывающим степень оценки. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
Языковая служба Анализ тональности (изображение) Анализирует необработанный текст на предмет положительной или отрицательной тональности. Данная версия анализа тональности возвращает метки тональности (например, положительная или отрицательная) для каждого документа и предложения внутри него. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
Языковая служба Анализ текста для работоспособности (изображение) Извлекает и делает разметку медицинских данных из неструктурированного медицинского текста. Общедоступно
Языковая служба Распознавание именованных сущностей (изображение) Извлеките именованные сущности из текста. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
Языковая служба Распознавание именованных сущностей (изображение) Извлеките именованные сущности из текста с помощью пользовательской модели, создаваемой с помощью данных. Общедоступно
Языковая служба Сводка (изображение) Суммирование текста из различных источников. Общедоступная предварительная версия.
Этот контейнер также может выполняться в отключенных средах.
Переводчик Переводчик (изображение) Переводите текст на несколько языков и диалектов. Общедоступная версия. Заготовка — запрос доступа.
Этот контейнер также может выполняться в отключенных средах.

Контейнеры Речи

Service Контейнер Description Доступность
API службы "Речь" Речь к тексту (изображение) Расшифровывает непрерывную речь в режиме реального времени в текстовый формат. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
API службы "Речь" Настраиваемая речь к тексту (изображение) Преобразует непрерывную речь в текст в режиме реального времени на базе пользовательских настроек. Общедоступная версия
Этот контейнер также может выполняться в отключенных средах.
API службы "Речь" Нейронный текст для речи (изображение) Преобразует текст в речь с помощью технологии глубокой нейронной сети, делая синтезированную речь более естественной. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
API службы "Речь" Идентификация языка речи (изображение) Определяет язык звучащей речи. "Предварительная версия"

Контейнеры Компьютерного зрения

Service Контейнер Description Доступность
Визуальное распознавание искусственного интеллекта Azure Чтение OCR (образ) Контейнер "Чтение OCR" (оптическое распознавание символов) позволяет извлекать печатные и рукописные тексты из изображений и документов с поддержкой форматов JPEG, PNG, BMP, PDF и TIFF. Дополнительные сведения см. в Документации по API Read. Общедоступная версия.
Этот контейнер также может выполняться в отключенных средах.
Пространственный анализ Пространственный анализ (образ) Анализирует потоковую передачу видео в реальном времени, чтобы распознать пространственное взаимное расположение между людьми, их движение и взаимодействие с объектами в физических средах. "Предварительная версия"

Кроме того, некоторые контейнеры поддерживаются в предложении ресурсов нескольких служб ИИ Azure. Вы можете создать один ресурс служб ИИ Azure All-In-One и использовать один и тот же ключ выставления счетов в поддерживаемых службах для следующих служб:

  • Визуальное распознавание искусственного интеллекта Azure
  • LUIS
  • Языковая служба

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

Перед использованием контейнеров ИИ Azure необходимо выполнить следующие предварительные требования:

Модуль Docker. Модуль Docker нужно установить в локальной среде. Docker предоставляет пакеты для настройки среды с Docker для macOS, Linux и Windows. В Windows Docker нужно настроить для поддержки контейнеров Linux. Контейнеры Docker можно также развертывать непосредственно в Службе Azure Kubernetes или Экземплярах контейнеров Azure.

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

Опыт работы с Реестром контейнеров Майкрософт и Docker. Требуется базовое представление о Реестре контейнеров Майкрософт и понятиях Docker, таких как реестры, репозитории, контейнеры и образы контейнеров, а также знание основных команд docker.

Ознакомьтесь с общими сведениями о Docker и контейнерах.

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

Безопасность контейнеров служб искусственного интеллекта Azure

Безопасность должна быть основной задачей при разработке приложений. Принципы безопасности являются залогом успеха. При разработке программного решения, включающего контейнеры ИИ Azure, важно понимать ограничения и возможности, доступные для вас. Дополнительные сведения о сетевой безопасности см. в статье "Настройка виртуальных сетей служб ИИ Azure".

Важно!

По умолчанию нет безопасности в API контейнеров служб искусственного интеллекта Azure. Это связано с тем, что чаще всего контейнер работает как часть модуля pod, которая защищена извне сетевым мостом. Однако пользователи могут создать собственную инфраструктуру проверки подлинности, чтобы приблизить методы проверки подлинности, используемые при доступе к облачным службам ИИ Azure.

На следующей схеме показан подход по умолчанию и небезопасный подход.

Container security

В качестве примера альтернативного и безопасного подхода потребители контейнеров ИИ Azure могут расширить контейнер с внешним компонентом, сохраняя частную конечную точку контейнера. Рассмотрим ситуацию, когда мы используем Istio в качестве шлюза входящего трафика. Istio поддерживает HTTPS/TLS и проверку подлинности на основе сертификата клиента. В этом сценарии интерфейс Istio предоставляет доступ к контейнеру, представляя сертификат клиента, который утверждается заранее с помощью Istio.

Nginx — это еще один популярный вариант в той же категории. Как Istio, так и Nginx выступают в качестве уровня service mesh и предлагают дополнительные функции, такие как балансировка нагрузки, маршрутизация и контроль скорости.

Работа с контейнерами в сети

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

Список доменов и портов служб ИИ Azure

Узел должен разрешить порт 443 и следующие домены:

  • *.cognitive.microsoft.com
  • *.cognitiveservices.azure.com

Отключение глубокой проверки пакетов

Глубокая проверка пакетов (DPI) — это тип обработки данных, который подробно проверяет данные, отправленные через компьютерную сеть, и обычно принимает меры, блокируя, перенаправляя или регистрируя их соответствующим образом.

Отключите DPI на защищенных каналах, создаваемых контейнерами ИИ Azure на серверах Майкрософт. В противном случае контейнер будет работать некорректно.

Примеры для разработчиков

Примеры для разработчиков доступны в нашем репозитории GitHub.

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

Узнайте о рецептах контейнеров, которые можно использовать со службами ИИ Azure.

Установите и изучите функциональные возможности, предоставляемые контейнерами в службах ИИ Azure: