Установка и запуск контейнера Azure AI Translator
Контейнеры позволяют размещать API Azure AI Translator в собственной инфраструктуре. Образ контейнера включает все библиотеки, инструменты и зависимости, необходимые для последовательного запуска приложения в любой частной, общедоступной или личной вычислительной среде. Если требования к безопасности или управлению данными не могут быть выполнены путем удаленного вызова API Переводчика ИИ Azure, контейнеры являются хорошим вариантом.
Из этой статьи вы узнаете, как установить и запустить контейнер Переводчика в Интернете с помощью API Docker. Контейнер Azure AI Translator поддерживает следующие операции:
Перевод текста. Перевод контекстного значения слов или фраз из поддерживаемых на поддерживаемый
source
target
язык в режиме реального времени. Дополнительные сведения см. в разделе "Контейнер: перевод текста".🆕 Транслитерация текста. Преобразование текста из одного языка или записи системы в другой языковой скрипт или запись системы в режиме реального времени. Дополнительные сведения см. в разделе "Контейнер: транслитерация текста".
🆕 Перевод документов. Синхронно переводить документы, сохраняя структуру и формат в режиме реального времени. Дополнительные сведения см. в разделе "Контейнер:перевод документов".
Необходимые компоненты
Чтобы приступить к работе, вам потребуются следующие ресурсы, утверждение закрытого доступа и средства:
Ресурсы Azure
Внимание
Ресурс переводчика должен соответствовать следующим требованиям:
Экземпляр Переводчика должен быть ресурсом Переводчика (а не ресурсом служб искусственного интеллекта Azure).
Экземпляр Переводчика должен быть региональным ресурсом (а не глобальным ресурсом Azure AI Translator) в пределах географического региона Azure. Дополнительные сведения см. в разделе о ценах на регион Azure AI Translator.
Активная подписка Azure. Если у вас нет учетной записи, вы можете создать бесплатную учетную запись за 12 месяцев.
Утвержденный запрос доступа к подключенного контейнера Переводчика или отключенного контейнера Переводчика.
Региональный ресурс Azure AI Translator, созданный в соответствии с утвержденным идентификатором подписки.
Вам нужен ключ API и URI конечной точки, связанные с ресурсом.
Оба значения необходимы для запуска контейнера и можно найти на странице обзора ресурсов в портал Azure.
Для подключенных контейнеров Переводчика выберите ценовую категорию
S1
.Для отключенных контейнеров Переводчика выберите
Commitment tier disconnected containers
ценовую категорию. Вы увидите возможность приобрести уровень обязательств только в том случае, если запрос на доступ к отключенным контейнерам утвержден.
Средства Docker
Вы должны иметь базовое представление о понятиях Docker, таких как реестры, репозитории, контейнеры и образы контейнеров, а также знания о базовой docker
терминологии и командах. Ознакомьтесь с общими сведениями о Docker и контейнерах.
Совет
Рассмотрите возможность добавления Docker Desktop в среду вычислений. Docker Desktop — это графический пользовательский интерфейс (GUI), позволяющий создавать, запускать и совместно использовать контейнерные приложения непосредственно с рабочего стола.
DockerDesktop включает подсистему Docker, клиент Docker CLI, Docker Compose и предоставляет пакеты, которые настраивают Docker для предпочтительной операционной системы:
Средство | Description | Условие |
---|---|---|
Подсистема Docker | Подсистема Docker является основным компонентом платформы контейнеризации Docker. Он должен быть установлен на хост-компьютере, чтобы позволить создавать, запускать и управлять контейнерами. | Требуется для всех операций. |
Docker Compose | Средство Docker Compose используется для определения и запуска многоконтейнерных приложений. | Требуется для поддержки контейнеров. |
Интерфейс командной строки Docker | Интерфейс командной строки Docker позволяет взаимодействовать с подсистемой Docker и управлять контейнерами Docker непосредственно с локального компьютера. | Рекомендуется |
Требования к компьютеру узла
Узел — это 64-разрядный компьютер, на котором выполняется контейнер Docker. Он может быть компьютером в локальной среде или одной из этих служб размещения Docker в Azure:
- Служба Azure Kubernetes.
- Экземпляры контейнеров Azure.
- Кластер Kubernetes, развернутый в Azure Stack. Дополнительные сведения см. в статье Развертывание Kubernetes в Azure Stack.
Операционная система | Требования к системе |
---|---|
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) для каждого контейнера.
Function | Минимальный рекомендуемый | Примечания. |
---|---|---|
Перевод текста | 4 Ядра, 4 ГБ памяти | |
Транслитерация текста | 4 Ядра, 2 ГБ памяти | |
Перевод документов | 4 Ядра, 6 ГБ памяти | Количество документов, которые можно обрабатывать одновременно, можно вычислить с помощью следующей формулы: [минимум (n-2 ), (m-6)/4 )]. • n число ядер ЦП.• m — это ГБ памяти.• Пример: 8 Core, 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=accept
.Ключ API и URL конечной точки. Ключ API используется для запуска контейнера. Вы можете получить значения ключа API и URL-адреса конечной точки, перейдя на страницу ключей ресурсов Azure AI Translator и страницу конечной точки и выбрав
Copy to clipboard
значок.Если вы переводите документы, обязательно используйте конечную точку перевода документов.
Внимание
Ключи используются для доступа к ресурсу ИИ Azure. Не предоставляйте доступ к ключам. Храните их защищенным образом, например в Azure Key Vault.
Также рекомендуется регулярно обновлять эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа можно использовать второй ключ для продолжения доступа к службе.
Выставление счетов
Запросы к контейнеру выставляются по ценовой категории ресурса Azure, используемого для API
Key
.Плата взимается за каждый экземпляр контейнера, используемый для обработки документов и изображений.
Команда запуска docker загружает образ из Реестр артефактов 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 загружает образ из Реестр артефактов Microsoft и запускает контейнер.
Внимание
- В командах 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
позволяет выполнять команды lto отсоединять или задавать переменные среды в работающем контейнере.
Дополнительные сведения см. в справочнике по интерфейсу командной строки Docker.
Запуск нескольких контейнеров на одном узле
Если вы планируете запускать несколько контейнеров при открытых портах, обязательно назначьте каждому контейнеру отдельный открытый порт. Например, запускайте первый контейнер на порте 5000, а второй — на порте 5001.
Этот контейнер можно использовать и другой контейнер ИИ Azure, работающий вместе на узле HOST. Вы также можете использовать несколько контейнеров одного и того же контейнера ИИ Azure.
Запрос конечной точки контейнера Переводчика
Контейнер предоставляет 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?'}]"
Примечание.
Для обнаружения исходного языка требуется дополнительный контейнер. Дополнительные сведения см. в разделе "Поддержка контейнеров"
Если запрос post cURL возвращает
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}
на 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.
Операция | Запрос запроса | Document type | Поддержка контейнеров |
---|---|---|---|
•Перевод текста • Перевод документов |
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.
Создание приложения
Используя предпочитаемый редактор или интегрированную среду разработки, создайте новый каталог для вашего приложения с именем
container-environment
или именем вашего выбора.Создайте файл YAML с именем
compose.yaml
. Расширения .yml или YAML можно использовать дляcompose
файла.Скопируйте и вставьте следующий пример кода YAML в
compose.yaml
файл.{TRANSLATOR_ENDPOINT_URI}
Замените{TRANSLATOR_KEY}
значения ключей и конечных точек из экземпляра портал Azure Translator. Если вы переводите документы, обязательно используйте егоdocument translation endpoint
.Имя верхнего уровня (
azure-ai-translator
,azure-ai-language
,azure-ai-read
) — это указанный параметр.Это
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}
Откройте терминал, перейдите в
container-environment
папку и запустите контейнеры с помощью следующейdocker-compose
команды:docker compose up
Чтобы остановить контейнеры, используйте следующую команду.
docker compose down
Совет
Полезные команды Docker:
docker compose pause
приостанавливает выполнение контейнеров.docker compose unpause {your-container-name}
нераспакованные контейнеры приостановлены.docker compose restart
перезапускает все остановленные и запущенные контейнеры со всеми предыдущими изменениями без изменений. При внесении изменений вcompose.yaml
конфигурацию эти изменения не обновляются с помощьюdocker compose restart
команды. Для отражения обновлений и изменений вcompose.yaml
файле необходимо использоватьdocker compose up
команду.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:License
Mounts: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.
При создании экземпляра контейнера необходимо указать данные для выставления счетов.