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


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

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

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

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

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

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

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

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

Ресурсы Azure

Внимание

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

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

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

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

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

  • Региональный ресурс Azure 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 10 или Windows 11
• 64-разрядный процессор
• Не менее 4 ГБ ОЗУ
• Функции Windows Hyper-V и контейнеры, а также виртуализация оборудования на уровне BIOS
• Дополнительные сведения см. в разделе"Установка Docker Desktop в Windows"
Мак • модель компьютера 2010 или более поздней версии
• ОС 10.13 или более поздней версии
• Не менее 4 ГБ ОЗУ
• Дополнительные сведения см. в разделе"Установка Docker Desktop на Mac"
Линукс • 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 Translator и конечной точки и выбрав Copy to clipboard значок.

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда 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 и формат текста.

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

Если у вас возникли проблемы с запуском контейнера средств Foundry, вы можете попробовать использовать контейнер диагностики Майкрософт. Используйте этот контейнер для диагностики распространенных ошибок в среде развертывания, которые могут препятствовать работе контейнеров 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-документы, требуются вспомогательные контейнеры:

В следующей таблице перечислены необходимые вспомогательные контейнеры для операций перевода текста и документов. Контейнер Translator отправляет сведения о выставлении счетов в Azure через ресурс Azure 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
            - Languages=en,es
    
        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 Translator в инструментах Foundry и поддержка образов контейнеров и тегов

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

Контейнер Расположение образа Примечания.
Переводчик: перевод текста и документов mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest Полный список тегов версий Foundry Tools Text translation можно просмотреть в MCR.
Анализ текста: язык mcr.microsoft.com/azure-cognitive-services/textanalytics/language:latest Вы можете просмотреть полный список тегов версий Foundry Tools Text Analytics Language на MCR.
Зрение: чтение mcr.microsoft.com/azure-cognitive-services/vision/read:latest Вы можете просмотреть полный список тегов версий Foundry Tools Computer Vision Read 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 Translator:

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

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

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

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