Контейнеры Azure Cognitive Services

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

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

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

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

Контейнеры в Azure Cognitive Services

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

Примечание

См. раздел Установка и запуск контейнеров Распознавателя документов для инструкций по работе с контейнерами и расположений образов Распознавателя документов Службы прикладного ИИ.

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

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

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

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

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

Примечание

Чтобы использовать контейнеры речи, необходимо заполнить форму запроса в Интернете.

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

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

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

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

  • API Компьютерного зрения
  • LUIS
  • Языковая служба

Предварительные требования

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

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

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

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

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

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

Безопасность контейнеров Azure Cognitive Services

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

Важно!

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

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

Container security

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

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

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

Контейнеры Cognitive Services должны отправлять сведения об измерениях в целях выставления счетов. Если не разрешить различные сетевые каналы, от которых зависят контейнеры Cognitive Services, контейнеры работать не смогут.

Список разрешенных доменов и портов Cognitive Services

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

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

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

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

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

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

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

Дальнейшие действия

Ознакомьтесь с информацией о рецептах контейнеров, которые можно использовать с Cognitive Services.

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