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


Установка и запуск контейнера Azure AI Translator

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

Из этой статьи вы узнаете, как установить и запустить контейнер Переводчика в Интернете с помощью API Docker. Контейнер Azure AI Translator поддерживает следующие операции:

  • Перевод текста. Перевод контекстного значения слов или фраз из поддерживаемых на поддерживаемый sourcetarget язык в режиме реального времени. Дополнительные сведения см. в разделе "Контейнер: перевод текста".

  • 🆕 Транслитерация текста. Преобразование текста из одной системы письменности или алфавита в другую систему письменности или алфавит в режиме реального времени. Дополнительные сведения см. в разделе"Контейнер: транслитерация текста".

  • 🆕 Перевод документов. Синхронно переводить документы, сохраняя структуру и формат в режиме реального времени. Дополнительные сведения см. в разделе"Контейнер:перевод документов".

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

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

Ресурсы Azure

Внимание

Ресурс переводчика должен соответствовать следующим требованиям:

  • Экземпляр Переводчика должен быть ресурсом Переводчика (а не ресурсом служб Azure AI).

  • Экземпляр Переводчика должен быть региональным ресурсом (а не глобальным ресурсом Azure AI Translator) в пределах доступного географического региона Azure. Дополнительные сведения см. в разделео ценах на регион Azure AI Translator.

  • Активная подписка Azure. Если у вас нет учетной записи, вы можете создать бесплатную учетную запись за 12 месяцев.

  • Утвержденный запрос доступа к подключенному контейнеру Переводчика или отключенному контейнеру Переводчика.

  • Ресурс Azure AI Translator региональный, созданный в соответствии с утвержденным идентификатором подписки.

    • Вам нужен ключ API и URI конечной точки, связанные с ресурсом.

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

    • Для подключенных контейнеров Переводчика выберите ценовую категорию S1.

      Снимок экрана: выбор уровня цен для подключенного контейнера Переводчика.

    • Для отключенных контейнеров Переводчика выберите Commitment tier disconnected containers в качестве вашей ценовой категории. Вы увидите возможность приобрести уровень обязательств только в том случае, если запрос на доступ к отключенным контейнерам утвержден.

      Снимок экрана, на котором показано создание ресурса на портале Azure.

Средства Docker

Вы должны иметь базовое представление о понятиях Docker, таких как реестры, репозитории, контейнеры и образы контейнеров, а также знания о базовой dockerтерминологии и командах. Ознакомьтесь с общими сведениями о Docker и контейнерах.

Совет

Рассмотрите возможность добавления Docker Desktop в среду вычислений. Docker Desktop — это графический пользовательский интерфейс (GUI), позволяющий создавать, запускать и совместно использовать контейнерные приложения непосредственно с рабочего стола.

DockerDesktop включает подсистему Docker, клиент Docker CLI, Docker Compose и предоставляет пакеты, которые настраивают Docker для предпочтительной операционной системы:

Инструмент Описание Условие
Подсистема Docker Подсистема Docker является основным компонентом платформы контейнеризации Docker. Он должен быть установлен на хост-компьютере, чтобы позволить создавать, запускать и управлять контейнерами. Требуется для всех операций.
Docker Compose Средство Docker Compose используется для определения и запуска многоконтейнерных приложений. Требуется для поддержки контейнеров.
Интерфейс командной строки Docker Интерфейс командной строки Docker позволяет взаимодействовать с подсистемой Docker и управлять контейнерами Docker непосредственно с локального компьютера. Рекомендуется
Требования к компьютеру узла

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

Операционная система Требования к системе
Windows • Установлена windows 10 или Windows 11
• 64-разрядный процессор
• Не менее 4 ГБ ОЗУ
• Функции Windows Hyper-V и контейнеры, а также виртуализация оборудования на уровне BIOS
• Дополнительные сведения см. в разделе"Установка Docker Desktop в Windows"
Mac • модель компьютера 2010 или более поздней версии
• ОС 10.13 или более поздней версии
• Не менее 4 ГБ ОЗУ
• Дополнительные сведения см. в разделе"Установка Docker Desktop на Mac"
Linux • 64-разрядная версия Ubuntu (последняя версия LTS (долгосрочная поддержка) или текущая версия, отличной от LTS), Debian 12, Fedora 38 или Fedora 39
• Поддержка ЦП для виртуализации
• Не менее 4 ГБ ОЗУ
• Дополнительные сведения см. в разделе"Установка Docker Desktop в Linux"

Примечание.

Минимальные и рекомендуемые характеристики основаны на ограничениях Docker, а не на ресурсах сервера.

В следующей таблице описаны минимальные и рекомендуемые спецификации и допустимые транзакции в секунду (TPS) для каждого контейнера.

Функция Минимально рекомендуемый Примечания.
Перевод текста 4 Ядра, 4 ГБ памяти
Транслитерация текста 4 Ядра, 2 ГБ памяти
Перевод документов 4 Ядра, 6 ГБ памяти Количество документов, которые можно обрабатывать одновременно, можно вычислить с помощью следующей формулы: [минимум (n-2), (m-6)/4)].
n число ядер ЦП.
m — это ГБ памяти.
Пример: 8-ядерный, 32 ГБ памяти, может обрабатывать шесть (6) одновременных документов [минимум (8-2), (36-6)/4)].
  • Для каждого ядра необходимо иметь по крайней мере 2,6 гигагерца (ГГц) или быстрее.

  • Для каждой языковой пары рекомендуется использовать 2 ГБ памяти.

  • Помимо базовых требований, 4 ГБ памяти для каждой параллельной обработки документов.

    Совет

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

     docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
    
     IMAGE ID         REPOSITORY                TAG
     <image-id>       <repository-path/name>    <tag-name>
    

Требуемые входные данные

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

  • Параметр принятия EULA. У вас должно быть лицензионное соглашение конечного пользователя (EULA) со значением Eula=accept.

  • Ключ API и URL конечной точки. Ключ API используется для запуска контейнера. Вы можете получить значения ключа API и URL-адреса конечной точки, перейдя на страницу ключей ресурсов Azure AI Translator и страницу конечной точки и выбрав Copy to clipboard значок.

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

Внимание

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

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

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

  • Запросы к контейнеру тарифицируются на уровне ценообразования ресурса Azure, используемого для API Key.

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

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

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

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

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

  • Контейнер сообщает об использовании примерно каждые 10–15 минут. Если контейнер не подключится к Azure в течение допустимого периода времени, контейнер будет продолжать работать, но не будет обслуживать запросы, пока не будет восстановлена конечная точка выставления счетов.

  • Подключение выполняется 10 раз в одно и то же время от 10 до 15 минут. Если контейнеру не удается подключиться к конечной точке выставления счетов за 10 попыток, контейнер перестает обрабатывать запросы. См. часто задаваемые вопросы о контейнере ИИ Azure, чтобы получить пример информации, отправляемой в Корпорацию Майкрософт для выставления счетов.

Образы и теги контейнеров

Образы контейнеров служб искусственного интеллекта Azure можно найти в каталоге Реестр артефактов Microsoft. Контейнер Azure AI Translator находится в репозитории azure-cognitive-services/translator и называется text-translation. Полное имя образа контейнера: mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest.

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

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

Выберите вкладку, чтобы выбрать среду контейнера Azure AI Translator:

Контейнеры Azure AI Translator позволяют запускать службу on-premise Azure AI Translator в собственной среде. Подключенные контейнеры выполняются локально и отправляют информацию об использовании в облако для целей выставления счетов.

Скачивание и запуск образа контейнера

Команда docker run загружает образ из Microsoft Artifact Registry и запускает контейнер.

Внимание

  • Команды Docker в следующих разделах используют обратную косую черту в \ качестве символа продолжения строки. Замените или удалите обратную косую черту в соответствии с требованиями основной операционной системы.
  • Для запуска контейнера необходимо указать параметры EULA, Billing и ApiKey; в противном случае контейнер не сможет запуститься.
  • Если вы переводите документы, обязательно используйте конечную точку перевода документов.
docker run --rm -it -p 5000:5000 --memory 12g --cpus 4 \
-v /mnt/d/TranslatorContainer:/usr/local/models \
-e apikey={API_KEY} \
-e eula=accept \
-e billing={ENDPOINT_URI} \
-e Languages=en,fr,es,ar,ru  \
mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest

Команда Docker:

  • Создает запущенный контейнер Переводчика из скачаированного образа контейнера.
  • Выделяет 12 гигабайт (ГБ) памяти и четыре ядра процессора.
  • Предоставляет протокол управления передачей (TCP) порт 5000 и выделяет псевдо-TTY для контейнера. localhost Теперь адрес указывает на сам контейнер, а не на хост-компьютер.
  • Принимает соглашение конечного пользователя (EULA).
  • Настраивает конечную точку выставления счетов.
  • Скачивает модели перевода на английский, французский, испанский, арабский и русский.
  • автоматически удаляет контейнер после завершения его работы. Образ контейнера остается доступным на главном компьютере.

Совет

Другая команда Docker:

  • docker ps перечисляет запущенные контейнеры.
  • docker pause {your-container name} приостанавливает запущенный контейнер.
  • docker unpause {your-container-name} возобновляет работу приостановленного контейнера.
  • docker restart {your-container-name} перезапускает запущенный контейнер.
  • docker exec позволяет выполнять команды для отсоединения или задания переменных среды в работающем контейнере.

Дополнительные сведения см. всправочнике по командной строке Docker.

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

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

Можно запустить этот контейнер и другой контейнер ИИ Azure вместе на базе HOST. Вы также можете использовать несколько контейнеров одного и того же контейнера ИИ Azure.

Запрос к API-эндпоинту контейнера Переводчика

Контейнер предоставляет API конечной точки переводчика на основе REST. Ниже приведен пример запроса на исходный язык (from=en).

  curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=zh-HANS" -H "Content-Type: application/json" -d "[{'Text':'Hello, what is your name?'}]"

Примечание.

  • Для обнаружения исходного языка требуется другой контейнер. Дополнительные сведения см. в разделе"Поддержка контейнеров"

  • Если запрос cURL POST возвращает Service is temporarily unavailable ответ, контейнер не готов. Подождите несколько минут, а затем повторите попытку.

Проверка, что контейнер работает

Есть несколько способов проверить, что контейнер запущен:

  • Контейнер предоставляет домашнюю страницу / в качестве визуальной проверки того, что контейнер работает.

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

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

Снимок экрана: домашняя страница контейнера.

Если у вас возникли проблемы с запуском контейнера служб искусственного интеллекта 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}

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

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

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

Варианты использования для вспомогательных контейнеров

Для выполнения некоторых запросов переводчика требуется поддержка контейнеров. Если вы используете документы Office и не требует обнаружения исходного языка, требуется только контейнер Переводчика. Однако если требуется обнаружение исходного языка или используется сканированные PDF-документы, требуются вспомогательные контейнеры:

В следующей таблице перечислены необходимые вспомогательные контейнеры для операций перевода текста и документов. Контейнер Переводчика отправляет сведения о выставлении счетов в Azure через ресурс Azure AI Translator в учетной записи Azure.

Операция Запрос запроса Тип документа Поддержка контейнеров
•Перевод текста
• Перевод документов
from указанный. Документы Office нет
•Перевод текста
• Перевод документов
from не задано. Требует автоматического обнаружения языка для определения исходного языка. Документы Office Контейнер "Анализ текста:язык" ✔️
•Перевод текста
• Перевод документов
from указанный. Сканированные PDF-документы ✔️ Контейнер Vision:read
•Перевод текста
• Перевод документов
from не указан, требующий автоматического обнаружения языка для определения исходного языка. Сканированные PDF-документы Контейнер "Анализ текста:язык" ✔️

✔️ Контейнер Vision:read

Запустите вспомогательные контейнеры с помощью docker compose

Docker Compose — это средство, которое позволяет настраивать многоконтейнерные приложения с помощью одного файла YAML, который обычно называется compose.yaml. docker compose up Используйте команду, чтобы запустить приложение контейнера и docker compose down команду, чтобы остановить и удалить контейнеры.

Если вы установили Интерфейс командной строки Docker Desktop, он включает в себя docker compose и его предварительные требования. Если у вас нет Docker Desktop, ознакомьтесь с обзором установки Docker Compose.

Создание приложения

  1. Используя предпочитаемый редактор или интегрированную среду разработки, создайте новый каталог для вашего приложения с именем container-environment или именем вашего выбора.

  2. Создайте файл YAML с именем compose.yaml. Расширения .yml или YAML можно использовать для compose файла.

  3. Скопируйте и вставьте следующий пример кода YAML в compose.yaml файл. {TRANSLATOR_KEY} Замените {TRANSLATOR_ENDPOINT_URI} значения ключей и конечных точек из экземпляра портал Azure Translator. Если вы переводите документы, обязательно используйте document translation endpoint.

  4. Имя верхнего уровня (azure-ai-translator, azure-ai-language, azure-ai-read) — это указанный параметр.

  5. Это container_name необязательный параметр, который задает имя контейнера при запуске, а не позволяет docker compose создавать имя.

    services:
      azure-ai-translator:
        container_name: azure-ai-translator
        image: mcr.microsoft.com/azure-cognitive-services/translator/text-translation::latest
        environment:
            - EULA=accept
            - billing={TRANSLATOR_ENDPOINT_URI}
            - apiKey={TRANSLATOR_KEY}
            - ladurl=http://azure-ai-language:5000
            - VISIONURL=http://azure-ai-read:5000
        ports:
              - "5000:5000"
        volumes:
              - {your local folder}:/usr/local/models
        azure-ai-language:
          container_name: azure-ai-language
          image:  mcr.microsoft.com/azure-cognitive-services/textanalytics/language:latest
          environment:
              - EULA=accept
              - billing={LANGUAGE_RESOURCE_ENDPOINT_URI}
              - apiKey={LANGUAGE_RESOURCE_KEY}
              - Languages=en,es
              - LADINCLUSTER=true
        azure-ai-read:
          container_name: azure-ai-read
          image:  mcr.microsoft.com/azure-cognitive-services/vision/read:latest
          environment:
              - EULA=accept
              - billing={COMPUTER_VISION_ENDPOINT_URI}
              - apiKey={COMPUTER_VISION_KEY}
    
  6. Откройте терминал, перейдите в container-environment папку и запустите контейнеры с помощью следующей docker-compose команды:

    docker compose up
    
  7. Чтобы остановить контейнеры, используйте следующую команду.

    docker compose down
    

    Совет

    Полезные команды Docker:

    • docker compose pause приостанавливает выполнение контейнеров.
    • docker compose unpause {your-container-name} возобновляет приостановленные контейнеры.
    • docker compose restart перезапускает все остановленные и запущенные контейнеры с сохранением всех предыдущих изменений. При внесении изменений в compose.yaml конфигурацию эти изменения не обновляются с помощью docker compose restart команды. Для отражения обновлений и изменений в docker compose up файле необходимо использовать compose.yaml команду.
    • docker compose ps -a выводит список всех контейнеров, включая остановленные контейнеры.
    • docker compose exec позволяет выполнять команды для отсоединения или установки переменных среды в работающем контейнере.

    Дополнительные сведения смотрите в справочнике по командной строке Docker.

Переводчик и поддержка образов контейнеров и тегов

Образы контейнеров служб искусственного интеллекта Azure можно найти в каталоге Реестр артефактов Microsoft. В следующей таблице перечислены полные расположения изображений для перевода текста и документа:

Контейнер Расположение образа Примечания.
Переводчик: перевод текста и документов mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest Полный список тегов версий перевода текста служб ИИ Azure можно просмотреть в MCR.
Анализ текста: язык mcr.microsoft.com/azure-cognitive-services/textanalytics/language:latest Полный список тегов версий службы Анализ текста для языков ИИ Azure можно просмотреть на MCR.
Зрение: чтение mcr.microsoft.com/azure-cognitive-services/vision/read:latest Вы можете просмотреть полный список служб ИИ Azure, включая Компьютерное зрение и чтение OCR версионных тегов на MCR.

Другие параметры и команды

Ниже приведены несколько дополнительных параметров и команд, которые можно использовать для запуска контейнера:

Записи об использовании

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

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

При запуске в среде без подключения к Интернету для хранения журналов использования необходимо, чтобы для контейнера было доступно выходное подключение. Например, можно включить -v /host/output:{OUTPUT_PATH} и Mounts:Output={OUTPUT_PATH} в следующем примере, заменив {OUTPUT_PATH} путь, в котором хранятся журналы:

Пример docker run команды

docker run -v /host/output:{OUTPUT_PATH} ... <image> ... Mounts:Output={OUTPUT_PATH}

Имена переменных среды в развертываниях Kubernetes

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

  • Kubernetes не принимает двоеточия в именах переменных среды. Чтобы устранить проблему, можно заменить двоеточия двумя символами подчеркивания (__) при развертывании в Kubernetes. См. следующий пример допустимого формата для имен переменных среды:

        env:
        - name: Mounts__License
          value: "/license"
        - name: Mounts__Output
          value: "/output"

Этот пример заменяет формат по умолчанию для Mounts:LicenseMounts:Output имен переменных среды в команде docker run.

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

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

Получите все записи

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

https://<service>/records/usage-logs/

Пример конечной точки HTTPS для получения всех записей

http://localhost:5000/records/usage-logs

Получение записей за определенный месяц

Следующая конечная точка содержит отчет об использовании в течение определенного месяца и года:

https://<service>/records/usage-logs/{MONTH}/{YEAR}

Пример конечной точки HTTPS для получения записей за определенный месяц и год

http://localhost:5000/records/usage-logs/03/2024

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

Подключенный контейнер

Расходы на использование вычисляются на quantity основе значения.

{
  "apiType": "string",
"serviceName": "string",
"meters": [
  {
    "name": "string",
    "quantity": 256345435
    }
  ]
}

Итоги

В этой статье вы узнали основные понятия и рабочие процессы для скачивания, установки и запуска контейнера Azure AI Translator:

  • Контейнер Azure AI Translator поддерживает перевод текста, синхронный перевод документов и транслитерацию текста.

  • Образы контейнеров загружаются из реестра контейнеров и запускаются в Docker.

  • При создании экземпляра контейнера необходимо указать данные для выставления счетов.

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