Instalación y ejecución de contenedores de Reconocimiento de entidades con nombre personalizadas

Los contenedores permiten hospedar la API de Reconocimiento de entidades con nombre personalizadas en su propia infraestructura mediante su propio modelo entrenado. Si tiene requisitos de seguridad o de gobernanza de datos que no se pueden cumplir mediante la llamada remota al Reconocimiento de entidades con nombre personalizadas, es posible que los contenedores sean una buena opción.

Nota

  • La cuenta gratuita se limita a 5000 registros de texto al mes y solo los planes de tarifaGratis y Estándar son válidos para los contenedores. Para obtener más información sobre las tasas de solicitudes de las transacciones, consulte Límites de datos y del servicio.

Requisitos previos

Recopilación de todos los parámetros obligatorios

Se requieren tres parámetros principales para todos los contenedores Azure AI. Los Términos de licencia del software de Microsoft deben estar presentes con el valor Acepto. También se necesitan un URI de punto de conexión y una clave de API.

URI de punto de conexión

El valor de {ENDPOINT_URI} está disponible en la página Información general de Azure Portal del recurso de servicios de Azure AI correspondiente. Vaya a la página Información general, mantenga el puntero sobre el punto de conexión y aparecerá un icono Copiar en el Portapapeles. Copie y use el punto de conexión cuando sea necesario.

Captura de pantalla que muestra la recopilación del URI de punto de conexión para su uso posterior.

Teclas

El valor {API_KEY} se usa para iniciar el contenedor y está disponible en la página Claves de Azure Portal del recurso de servicios de Azure AI correspondiente. Vaya a la página Claves y seleccione el icono Copiar en el Portapapeles.

Captura de pantalla que muestra la obtención de una de las dos claves para su uso posterior.

Importante

Estas claves de suscripción se usan para acceder a la API de servicios de Azure AI. No comparta sus claves. Almacénelas de forma segura. Por ejemplo, use Azure Key Vault. También se recomienda volver a generar estas claves con regularidad. Solo se necesita una clave para realizar una llamada API. Al volver a generar la primera clave, puede usar la segunda para seguir teniendo acceso al servicio.

Recomendaciones y requisitos del equipo host

El host es un equipo basado en x64 que ejecuta el contenedor de Docker. Puede ser un equipo del entorno local o un servicio de hospedaje de Docker incluido en Azure, como:

En la tabla siguiente se describen las especificaciones mínimas y recomendadas para el contenedor de Reconocimiento de entidades con nombre personalizadas. Cada núcleo de CPU debe ser de 2,6 gigahercios (GHz) como mínimo. También se enumeran las transacciones permitidas por segundo (TPS).

Especificaciones de host mínimas Especificaciones de host recomendadas TPS mínimas TPS máximas
Reconocimiento de entidades con nombre personalizado 1 núcleo, 2 GB de memoria 1 núcleo, 4 GB de memoria 15 30

El núcleo de CPU y la memoria corresponden a los valores de --cpus y --memory que se usan como parte del comando docker run.

Exportación del modelo de Reconocimiento de entidades con nombre personalizadas

Antes de continuar con la ejecución de la imagen de Docker, deberá exportar su propio modelo entrenado para exponerlo al contenedor. Use el siguiente comando para extraer el modelo y reemplazar los marcadores de posición siguientes por sus propios valores:

Marcador de posición Value Formato o ejemplo
{CLAVE_API} Clave del recurso de Reconocimiento de entidades con nombre personalizadas. Puede encontrarla en la página Clave y punto de conexión del recurso en Azure Portal. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{URI_PUNTODECONEXIÓN} Punto de conexión para acceder a la API de Reconocimiento de entidades con nombre personalizadas. Puede encontrarla en la página Clave y punto de conexión del recurso en Azure Portal. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT_NAME} Nombre del proyecto que contiene el modelo que desea exportar. Puede encontrarlo en la pestaña Proyectos del portal de Language Studio. myProject
{TRAINED_MODEL_NAME} Nombre del modelo entrenado que desea exportar. Puede encontrar los modelos entrenados en la pestaña Evaluación del modelo en el proyecto en el portal de Language Studio. myTrainedModel
curl --location --request PUT '{ENDPOINT_URI}/language/authoring/analyze-text/projects/{PROJECT_NAME}/exported-models/{TRAINED_MODEL_NAME}?api-version=2023-04-15-preview' \
--header 'Ocp-Apim-Subscription-Key: {API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "TrainedmodelLabel": "{TRAINED_MODEL_NAME}"
}'

Obtención de la imagen del contenedor con docker pull

La imagen de contenedor de Reconocimiento de entidades con nombre personalizadas se puede encontrar en la distribución del registro de contenedor mcr.microsoft.com. Reside en el repositorio azure-cognitive-services/textanalytics/ y se denomina customner. El nombre completo de la imagen de contenedor es mcr.microsoft.com/azure-cognitive-services/textanalytics/customner.

Para usar la versión más reciente del contenedor, puede usar la etiqueta latest. También puede encontrar una lista completa de etiquetas en el MCR.

Use el comando docker pull para descargar la imagen de contenedor del Registro de contenedor de Microsoft.

docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/customner:latest

Sugerencia

Puede usar el comando docker images para enumerar las imágenes de contenedor descargadas. Por ejemplo, el comando siguiente muestra el id., el repositorio y la etiqueta de cada imagen de contenedor descargada, con formato de tabla:

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

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

Ejecute el contenedor con docker run.

Una vez que el contenedor esté en el equipo host, use el comando docker run para ejecutar los contenedores. El contenedor continuará ejecutándose hasta que lo detenga.

Importante

  • Los comandos de Docker de las secciones siguientes usan la barra diagonal inversa, \, como un carácter de continuación de línea. Puede quitarla o reemplazarla en función de los requisitos del sistema operativo del host.
  • Para poder ejecutar el contenedor, las opciones Eula, Billing y ApiKey deben estar especificadas; de lo contrario, el contenedor no se iniciará. Para obtener más información, vea Facturación.

Para ejecutar el contenedor Reconocimiento de entidades con nombre personalizadas, ejecute el siguiente comando docker run. Reemplace los marcadores de posición por sus propios valores:

Marcador de posición Value Formato o ejemplo
{CLAVE_API} Clave del recurso de Reconocimiento de entidades con nombre personalizadas. Puede encontrarla en la página Clave y punto de conexión del recurso en Azure Portal. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{URI_PUNTODECONEXIÓN} Punto de conexión para acceder a la API de Reconocimiento de entidades con nombre personalizadas. Puede encontrarla en la página Clave y punto de conexión del recurso en Azure Portal. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT_NAME} Nombre del proyecto que contiene el modelo que desea exportar. Puede encontrarlo en la pestaña Proyectos del portal de Language Studio. myProject
{LOCAL_PATH} Ruta de acceso en la que se descargará el modelo exportado en el paso anterior. Puede elegir cualquier ruta que prefiera. C:/custom-ner-model
{TRAINED_MODEL_NAME} Nombre del modelo entrenado que desea exportar. Puede encontrar los modelos entrenados en la pestaña Evaluación del modelo en el proyecto en el portal de Language Studio. myTrainedModel
docker run --rm -it -p5000:5000  --memory 4g --cpus 1 \
-v {LOCAL_PATH}:/modelPath \
mcr.microsoft.com/azure-cognitive-services/textanalytics/customner:latest \
EULA=accept \
BILLING={ENDPOINT_URI} \
APIKEY={API_KEY} \
projectName={PROJECT_NAME}
exportedModelName={TRAINED_MODEL_NAME}

Este comando:

  • Ejecuta un contenedor de Reconocimiento de entidades con nombre personalizadas y descarga el modelo exportado en la ruta de acceso local especificada.
  • Asigna un núcleo de CPU y 4 gigabytes (GB) de memoria.
  • Expone el puerto TCP 5000 y asigna un seudo-TTY para el contenedor.
  • Una vez que se produce la salida, quita automáticamente el contenedor. La imagen del contenedor sigue estando disponible en el equipo host.

Ejecución de varios contenedores en el mismo host

Si tiene pensado ejecutar varios contenedores con puertos expuestos, asegúrese de que ejecuta cada contenedor con un puerto expuesto diferente. Por ejemplo, ejecute el primer contenedor en el puerto 5000 y el segundo en el puerto 5001.

Puede tener este contenedor y un contenedor de servicios de Azure AI diferente en ejecución simultáneamente en el HOST. También puede tener varios contenedores del mismo contenedor de servicios de Azure AI en ejecución.

Consulta del punto de conexión de predicción del contenedor

El contenedor proporciona varias API de puntos de conexión de predicción de consultas basadas en REST.

Utilice el host, http://localhost:5000, con las API de contenedor.

Comprobación de que un contenedor está en ejecución

Hay varias maneras de comprobar que el contenedor está en ejecución. Busque la dirección IP externa y el puerto expuesto del contenedor en cuestión y abra el explorador web que prefiera. Use las distintas direcciones URL de solicitud que se indican a continuación para validar que el contenedor se está ejecutando. Las direcciones URL de solicitud de ejemplo que se enumeran aquí son http://localhost:5000, pero el contenedor específico puede variar. Asegúrese de confiar en la dirección IP externa y el puerto expuesto del contenedor.

URL de la solicitud Propósito
http://localhost:5000/ El contenedor ofrece una página principal.
http://localhost:5000/ready Esta URL, solicitada con GET, proporciona una comprobación de que el contenedor está listo para aceptar una consulta para el modelo. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.
http://localhost:5000/status Esta URL, también solicitada con GET, comprueba si el valor de api-key usado para iniciar el contenedor es válido sin generar una consulta de punto de conexión. Esta solicitud se puede usar con los sondeos de ejecución y preparación de Kubernetes.
http://localhost:5000/swagger El contenedor cuenta con un completo conjunto de documentación sobre los puntos de conexión y una característica de prueba. Esta característica le permite especificar la configuración en un formulario HTML basado en web y realizar la consulta sin necesidad de escribir código. Una vez que la consulta devuelve resultados, se proporciona un ejemplo del comando CURL para mostrar los encabezados HTTP y el formato de cuerpo requeridos.

Página principal del contenedor

Detención del contenedor

Para apagar el contenedor, en el entorno de la línea de comandos donde se ejecuta el contenedor, seleccione Ctrl + C.

Solución de problemas

Si ejecuta el contenedor con un montaje de salida y el registro habilitados, el contenedor genera archivos de registro que resultan útiles para solucionar problemas que se producen al iniciar o ejecutar el contenedor.

Sugerencia

Para obtener más información y guía sobre la solución de problemas, consulte las Preguntas más frecuentes (FAQ) sobre los contenedores Azure AI.

Facturación

Los contenedores de Reconocimiento de entidades con nombre personalizadas envían información de facturación a Azure mediante un recurso de Reconocimiento de entidades con nombre personalizadas en su cuenta de Azure.

Las consultas en el contenedor se facturan con el plan de tarifa del recurso de Azure que se usa para el parámetro ApiKey.

Los contenedores de servicios de Azure AI no tienen licencia para ejecutarse si no están conectados al punto de conexión de medición o facturación. Debe habilitar los contenedores para que comuniquen la información de facturación al punto de conexión de facturación en todo momento. Los contenedores de servicios de Azure AI no envían datos de los clientes (por ejemplo, la imagen o el texto que se está analizando) a Microsoft.

Conexión con Azure

El contenedor necesita que se ejecuten los valores del argumento de facturación. Estos valores permiten al contenedor conectarse al punto de conexión de facturación. El contenedor informa sobre el uso cada 10 a 15 minutos. Si el contenedor no se conecta a Azure en la ventana de tiempo permitida, continuará ejecutándose pero no atenderá las consultas hasta que se restaure el punto de conexión de facturación. Se intenta 10 veces la conexión en el mismo intervalo de tiempo de 10 a 15 minutos. Si no se puede conectar con el punto de conexión de facturación en esos 10 intentos, el contenedor deja de atender solicitudes. Consulte Preguntas más frecuentes acerca de los contenedores de servicios de Azure AI para obtener un ejemplo de la información que se envía a Microsoft para la facturación.

Argumentos de facturación

El comando docker run iniciará el contenedor cuando se especifiquen las tres opciones siguientes con valores válidos:

Opción Descripción
ApiKey La clave de API del recurso de servicios de Azure AI que se usa para realizar un seguimiento de la información de facturación.
El valor de esta opción se debe establecer en una clave de API para el recurso aprovisionado que se especifica en Billing.
Billing El punto de conexión del recurso de servicios de Azure AI que se usa para realizar el seguimiento de la información de facturación.
El valor de esta opción debe establecerse en el URI del punto de conexión de un recurso aprovisionado de Azure.
Eula Indica que ha aceptado la licencia del contenedor.
El valor de esta opción debe establecerse en accept.

Resumen

En este artículo, ha aprendido los conceptos y el flujo de trabajo para la descarga, instalación y ejecución de contenedores de Reconocimiento de entidades con nombre personalizadas. En resumen:

  • El Reconocimiento de entidades con nombre personalizadas proporciona contenedores de Linux para Docker.
  • Las imágenes del contenedor se descargan desde Microsoft Container Registry (MCR).
  • Las imágenes de contenedor se ejecutan en Docker.
  • Puede usar la API de REST o el SDK para llamar a operaciones en contenedores de Reconocimiento de entidades con nombre personalizadas mediante la especificación del URI de host del contenedor.
  • Debe especificar la información de facturación al crear una instancia de un contenedor.

Importante

Los contenedores de Azure AI no tienen licencia para ejecutarse sin estar conectados a Azure para realizar mediciones. Los clientes tienen que habilitar los contenedores para comunicar la información de facturación con el servicio de medición en todo momento. Los contenedores de Azure AI no envían datos de los clientes (por ejemplo, el texto que se está analizando) a Microsoft.

Pasos siguientes