Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контейнеры позволяют размещать API Azure AI Translator в собственной инфраструктуре. Образ контейнера включает все библиотеки, инструменты и зависимости, необходимые для последовательного запуска приложения в любой частной, общедоступной или личной вычислительной среде. Если требования к безопасности или управлению данными не могут быть выполнены путем удаленного вызова API Переводчика ИИ Azure, контейнеры являются хорошим вариантом.
Из этой статьи вы узнаете, как установить и запустить контейнер Переводчика в Интернете с помощью API Docker. Контейнер Azure AI Translator поддерживает следующие операции:
Перевод текста. Перевод контекстного значения слов или фраз из поддерживаемых на поддерживаемый
source
target
язык в режиме реального времени. Дополнительные сведения см. в разделе "Контейнер: перевод текста".🆕 Транслитерация текста. Преобразование текста из одной системы письменности или алфавита в другую систему письменности или алфавит в режиме реального времени. Дополнительные сведения см. в разделе"Контейнер: транслитерация текста".
🆕 Перевод документов. Синхронно переводить документы, сохраняя структуру и формат в режиме реального времени. Дополнительные сведения см. в разделе"Контейнер:перевод документов".
Предварительные условия
Чтобы приступить к работе, вам потребуются следующие ресурсы, утверждение закрытого доступа и средства:
Ресурсы Azure
Внимание
Ресурс переводчика должен соответствовать следующим требованиям:
Экземпляр Переводчика должен быть ресурсом Переводчика (а не ресурсом служб Azure AI).
Экземпляр Переводчика должен быть региональным ресурсом (а не глобальным ресурсом 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 для предпочтительной операционной системы:
Инструмент | Описание | Условие |
---|---|---|
Подсистема Docker | Подсистема Docker является основным компонентом платформы контейнеризации Docker. Он должен быть установлен на хост-компьютере, чтобы позволить создавать, запускать и управлять контейнерами. | Требуется для всех операций. |
Docker Compose | Средство Docker Compose используется для определения и запуска многоконтейнерных приложений. | Требуется для поддержки контейнеров. |
Интерфейс командной строки Docker | Интерфейс командной строки Docker позволяет взаимодействовать с подсистемой Docker и управлять контейнерами Docker непосредственно с локального компьютера. | Рекомендуется |
Требования к компьютеру узла
Хост — это компьютер с архитектурой x64, на котором выполняется контейнер 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) для каждого контейнера.
Функция | Минимально рекомендуемый | Примечания. |
---|---|---|
Перевод текста | 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.
Создание приложения
Используя предпочитаемый редактор или интегрированную среду разработки, создайте новый каталог для вашего приложения с именем
container-environment
или именем вашего выбора.Создайте файл YAML с именем
compose.yaml
. Расширения .yml или YAML можно использовать дляcompose
файла.Скопируйте и вставьте следующий пример кода YAML в
compose.yaml
файл.{TRANSLATOR_KEY}
Замените{TRANSLATOR_ENDPOINT_URI}
значения ключей и конечных точек из экземпляра портал 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
команды. Для отражения обновлений и изменений в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: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.
При создании экземпляра контейнера необходимо указать данные для выставления счетов.