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

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

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

  • Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
  • Docker, установленный на главном компьютере. Docker нужно настроить таким образом, чтобы контейнеры могли подключать и отправлять данные о выставлении счетов в Azure.
    • В Windows для поддержки контейнеров Linux также должен быть настроен Docker.
    • Необходимо знать основные принципы и основные понятия Docker.
  • Ресурс языка с бесплатной ценовой категорией (F0) или ценовой категории "Стандартный" (S). Для отключенных контейнеров требуется уровень DC0.

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

Требуются три основных параметра для всех контейнеров ИИ 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, включая следующие решения:

В следующей таблице описаны минимальные и рекомендуемые спецификации для навыков контейнера суммирования. Перечисленные сочетания ЦП и памяти предназначены для ввода маркера 4000 (потребление беседы предназначено для всех аспектов в одном запросе).

Тип контейнера Рекомендуемое количество ядер ЦП Рекомендуемая память Примечания.
Контейнер ЦП суммирования 16 48 ГБ
Контейнер GPU сводки 2 24 ГБ Требуется GPU Nvidia, поддерживающий Cuda 11.8 с 16 ГБ VRAM.

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

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

Образ контейнера суммирования можно найти в mcr.microsoft.com синдикате реестра контейнеров. Он находится в репозитории azure-cognitive-services/textanalytics/ и называется summarization. Полное имя образа контейнера — mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization.

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

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

docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu

для контейнеров ЦП,

docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu

для контейнеров GPU.

Совет

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

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

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

Скачивание моделей контейнеров сводных данных

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

docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ExtractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=AbstractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ConversationSummarization billing={ENDPOINT_URI} apikey={API_KEY}

Не рекомендуется скачать модели для всех навыков внутри одного и того же HOST_MODELS_PATH, так как контейнер загружает все модели внутри HOST_MODELS_PATH. Это позволит использовать большой объем памяти. Рекомендуется скачать модель только для определенного навыка HOST_MODELS_PATH.

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

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

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

Заполнитель Значение Формат или пример
{HOST_MODELS_PATH} Подключение тома хост-компьютера, которое Docker использует для сохранения модели. Примером является c:\SummarizationModel, где диск c:\ находится на хост-компьютере.
{ENDPOINT_URI} Конечная точка для доступа к API суммирования. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} Ключ для языкового ресурса. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
docker run -p 5000:5000 -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu eula=accept rai_terms=accept billing={ENDPOINT_URI} apikey={API_KEY}

Или если вы используете контейнер GPU, используйте эту команду.

docker run -p 5000:5000 --gpus all -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu eula=accept rai_terms=accept billing={ENDPOINT_URI} apikey={API_KEY}

Если на компьютере имеется несколько GPU, замените --gpus all на --gpus device={DEVICE_ID}.

Важно!

  • В командах Docker в следующих разделах используется обратная косая черта (\) как символ продолжения строки. Замените или удалите ее в соответствии с требованиями вашей операционной системы.
  • rai_termsBillingДля запуска контейнера необходимо указать параметры и ApiKey параметры. В Eulaпротивном случае контейнер не запустится. Дополнительные сведения см. в разделе о выставлении счетов.

Команда:

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

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

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

Этот контейнер можно использовать и другой контейнер служб ИИ Azure, работающий вместе на узле HOST. Кроме того, можно использовать несколько контейнеров одного и того же контейнера служб искусственного интеллекта Azure.

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

Контейнер предоставляет интерфейсы 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

Запуск контейнера, отключенного от Интернета

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

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

Параметр DownloadLicense=True в docker run команде скачит файл лицензии, который позволит запустить контейнер Docker, если он не подключен к Интернету. Он также содержит дату окончания срока действия, после которой файл лицензии станет недопустимым для запуска контейнера. Вы можете использовать файл лицензии только с тем контейнером, для которого получено утверждение. Например, нельзя использовать файл лицензии для преобразования речи в текстовый контейнер с контейнером языковых служб.

Скачивание отключенных моделей контейнеров с сводных данных

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

docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ExtractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=AbstractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ConversationSummarization billing={ENDPOINT_URI} apikey={API_KEY}

Не рекомендуется скачать модели для всех навыков внутри одного и того же HOST_MODELS_PATH, так как контейнер загружает все модели внутри HOST_MODELS_PATH. Это позволит использовать большой объем памяти. Рекомендуется скачать модель только для определенного навыка HOST_MODELS_PATH.

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

Запуск отключенного контейнера с помощью docker run

Заполнитель Значение Формат или пример
{IMAGE} Образ контейнера, который необходимо использовать. mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
{LICENSE_MOUNT} Путь для скачивания и подключения лицензии. /host/license:/path/to/license/directory
{HOST_MODELS_PATH} Путь, по которому были загружены модели и подключены. /host/models:/models
{ENDPOINT_URI} Конечная точка для проверки подлинности запроса на обслуживание. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} Ключ для ресурса Анализа текста. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{CONTAINER_LICENSE_DIRECTORY} Расположение папки license в локальной файловой системе контейнера. /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
-v {HOST_MODELS_PATH} \
{IMAGE} \
eula=accept \
rai_terms=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

После скачивания файла лицензии можно запустить контейнер в среде без подключения к Интернету. В следующем примере показано форматирование команды docker run, которую вы будете использовать, с заполнителями. Замените заполнители собственными значениями.

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

Заполнитель Значение Формат или пример
{IMAGE} Образ контейнера, который необходимо использовать. mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
{MEMORY_SIZE} Надлежащий объем памяти, который необходимо выделить для контейнера. 4g
{NUMBER_CPUS} Надлежащее количество ЦП, которое необходимо выделить для контейнера. 4
{LICENSE_MOUNT} Путь для размещения и подключения лицензии. /host/license:/path/to/license/directory
{HOST_MODELS_PATH} Путь, по которому были загружены модели и подключены. /host/models:/models
{OUTPUT_PATH} Выходной путь для ведения журнала использования. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Расположение папки license в локальной файловой системе контейнера. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Расположение папки output в локальной файловой системе контейнера. /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {HOST_MODELS_PATH} \
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
rai_terms=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

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

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

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

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

Совет

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

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

Контейнеры сводных данных отправляют сведения о выставлении счетов в 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
  • Образы контейнеров скачиваются из Реестра контейнеров Майкрософт (MCR).
  • Образы контейнеров выполняются в Docker.
  • При создании экземпляра контейнера нужно указать данные для выставления счетов.

Важно!

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

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