Implementación de un flujo como punto de conexión en línea administrado para la inferencia en tiempo real

Advertencia

Prompt flow en Microsoft Foundry y Azure Machine Learning se retirará el 20 de abril de 2027. Prompt flow ya no se recomienda para nuevos desarrollos. Migre las aplicaciones e implementaciones existentes de Prompt flow a Microsoft Agent Framework antes del 20 de abril de 2027.

Las imágenes de contenedor de Prompt flow ya no reciben actualizaciones, incluidas las actualizaciones de seguridad y de paquetes. Esto se aplica a las imágenes de entorno de ejecución de Prompt flow, incluidas promptflow-runtime, promptflow-runtime-stable y promptflow-python.

Después del 20 de abril de 2027, Prompt flow, incluida la experiencia de creación web en Microsoft Foundry y Azure Machine Learning, las extensiones de VS Code y las imágenes de contenedor relacionadas de Prompt flow, dejará de ser compatible y de estar disponible.

Si su aplicación depende de implementaciones de Prompt flow o de imágenes en tiempo de ejecución, planifique trasladar esas cargas de trabajo a alternativas compatibles, como Microsoft Agent Framework, antes de la fecha de retirada. Para obtener instrucciones sobre la migración, consulte la guía de migración de flujo de mensajes y ejemplos de código de migración.

Después de compilar un flujo y probarlo correctamente, es posible que quiera implementarlo como punto de conexión para poder invocar el punto de conexión para la inferencia en tiempo real.

En este artículo, aprenderá a implementar un flujo como punto de conexión en línea administrado para la inferencia en tiempo real. Los pasos que realizará son:

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. La versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

Requisitos previos

  • Obtenga información cómo compilar y probar un flujo en el flujo de avisos del sistema.

  • Tenga conocimientos básicos sobre los puntos de conexión en línea administrados. Los puntos de conexión en línea administrados funcionan con máquinas eficaces de CPU y GPU en Azure de una manera escalable y totalmente administrada que le libera de la sobrecarga de configurar y administrar la infraestructura de implementación subyacente. Para más información sobre los puntos de conexión en línea administrados, consulte Puntos de conexión en línea e implementaciones para la inferencia en tiempo real.

  • Los controles de acceso basados en rol de Azure (Azure RBAC) se usan para conceder acceso a las operaciones en Azure Machine Learning. Para poder implementar un punto de conexión en el flujo de trabajo, a su cuenta de usuario se le debe asignar el rol de Científico de Datos de AzureML o un rol con más privilegios para el área de trabajo Azure Machine Learning.

  • Tenga conocimientos básicos sobre las identidades administradas. Obtenga más información sobre las identidades administradas.

Nota

El punto de conexión en línea administrado solo admite la red virtual administrada. Si el área de trabajo está en una red virtual personalizada, debe probar otras opciones de implementación, como implementar en el punto de conexión en línea de Kubernetes mediante la CLI o el SDK, o implementar en otras plataformas, como Docker.

Creación del flujo y preparación para la implementación

Si ya ha completado el tutorial de introducción, ya ha probado correctamente el flujo mediante el envío de la ejecución por lotes y la evaluación de los resultados.

Si no ha completado el tutorial, debe crear un flujo. Probar el flujo correctamente mediante la ejecución por lotes y la evaluación antes de la implementación es un procedimiento recomendado.

Usaremos el flujo de muestra clasificación web como ejemplo para mostrar cómo implementar el flujo. Este flujo de ejemplo es un flujo estándar. La implementación de flujos de chat es similar. El flujo de evaluación no admite la implementación.

Definición del entorno usado por la implementación

Al implementar el flujo de solicitud en un punto de conexión en línea administrado a través de la interfaz de usuario, la implementación usará por defecto el entorno creado en función de la imagen más reciente del flujo de solicitud y las dependencias especificadas en el requirements.txt del flujo de solicitud. Puede especificar paquetes adicionales que necesita en requirements.txt. Puede encontrar requirements.txt en la carpeta raíz de la carpeta de flujo.

Captura de pantalla del texto de los requisitos de flujo.

Nota

Si usa fuentes privadas en Azure devops, primero debe crear la imagen con fuentes privadas y seleccionar el entorno personalizado para implementarlo en la interfaz de usuario.

Creación de una implementación en línea

Ahora que ha creado un flujo y lo ha probado correctamente, es el momento de crear el punto de conexión en línea para la inferencia en tiempo real.

El flujo de avisos le permite implementar puntos de conexión a partir de un flujo o de una ejecución por lotes. Se recomienda probar el flujo antes de la implementación.

En la página de creación de flujos o en la página de detalles de ejecución, seleccione Implementar.

Página de creación de flujo de trabajo:

Captura de pantalla de clasificación web en la página de creación de flujos.

Página de detalles de ejecución:

Captura de pantalla de la clasificación web en la página de detalles de ejecución.

Aparecerá un asistente para que configure el punto de conexión que incluye los siguientes pasos.

Configuración básica

Captura de pantalla del asistente de despliegue en la página del punto de conexión.

Este paso le permite configurar las opciones básicas de la implementación.

Propiedad Descripción
Punto de conexión Puede seleccionar si desea implementar un nuevo punto de conexión o actualizar un punto de conexión existente.
Si selecciona Nuevo, debe especificar el nombre del punto de conexión.
Nombre de implementación - Dentro del mismo punto de conexión, el nombre de implementación debe ser único.
- Si selecciona un punto de conexión existente y escribe un nombre de implementación existente, esa implementación se sobrescribirá con las nuevas configuraciones.
Máquina virtual Tamaño de máquina virtual que se va a usar para la implementación. Para obtener la lista de tamaños admitidos, consulte la lista de SKU de extremos en línea administrados.
Conteo de instancias Número de instancias que se van a usar para la implementación. Especifique el valor de la carga de trabajo que espera. Para lograr una alta disponibilidad, se recomienda establecer el valor en al menos 3. Reservamos un adicional de 20% para realizar actualizaciones. Para más información, consulte Cuotas de puntos de conexión en línea administrados.
Recopilación de datos de inferencia Si lo habilita, las entradas y salidas del flujo se recopilarán automáticamente en un recurso de datos de Azure Machine Learning y se pueden usar para la supervisión posterior. Para más información, consulte cómo supervisar las aplicaciones de ia generativas.

Después de finalizar la configuración básica, puede revisar y crear directamente para finalizar la creación, o bien puede seleccionar Siguiente para configurar opciones avanzadas.

Configuración avanzada: punto de conexión

Puede especificar la siguiente configuración para el punto de conexión.

Captura de pantalla de la configuración del punto de conexión del asistente de implementación.

Tipo de autenticación

Método de autenticación para el punto de conexión. La autenticación basada en claves proporciona una clave principal y secundaria que no expira. Azure Machine Learning autenticación basada en tokens proporciona un token que se actualiza periódicamente automáticamente. Para obtener más información sobre la autenticación, consulte Autenticación en un punto de conexión en línea.

Tipo de identidad

El punto de conexión debe acceder a los recursos de Azure, como Azure Container Registry o las conexiones del espacio de trabajo para realizar inferencias. Puede permitir que el punto de conexión acceda a los recursos de Azure concediéndole permiso a su identidad administrada.

La identidad asignada por el sistema se creará automáticamente después de que se cree el punto de conexión, mientras que la identidad asignada por el usuario debe ser creada por el usuario. Obtenga más información sobre las identidades administradas.

Asignado por el sistema

Observará que hay una opción para Imponer acceso a secretos de conexión (versión preliminar). Si el flujo usa conexiones, el punto de conexión debe acceder a las conexiones para realizar la inferencia. La opción está habilitada de forma predeterminada, se le concederá al punto de conexión el rol Azure Machine Learning Workspace Connection Secrets Reader para acceder a las conexiones automáticamente si posee permiso de lector de secretos de conexión. Si deshabilita esta opción, debe conceder manualmente este rol a la identidad asignada por el sistema o pedir ayuda al administrador. Obtenga más información sobre cómo conceder permiso a la identidad del punto de conexión.

Nota

En el caso de las identidades asignadas por el sistema, se asignan automáticamente varios roles (como AcrPull, Lector de datos de Storage Blob y Escritor de métricas de AzureML). Para obtener más información, consulte Autenticación y autorización para puntos de conexión en línea.

Asignado por el usuario

Al crear una implementación, Azure intenta extraer la imagen del contenedor del usuario del área de trabajo de Azure Container Registry (ACR) y montar el modelo de usuario y los artefactos de código en el contenedor del usuario desde la cuenta de almacenamiento del área de trabajo.

Si creó el punto de conexión asociado con una identidad asignada por el usuario, se deben conceder los siguientes roles a esta identidad antes de la creación de la implementación; de lo contrario, fallará la creación de la implementación.

Ámbito Rol Por qué es necesario
área de trabajo de Azure Machine Learning Rol de Lector de secretos de conexión del área de trabajo de Azure Machine LearningO BIEN un rol personalizado con "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action" Obtener conexiones del área de trabajo
Registro de contenedor del área de trabajo Extracción de ACR Extracción de imagen de contenedor
Almacenamiento predeterminado del área de trabajo Lector de datos de Storage Blob Carga del modelo desde el almacenamiento
(Opcional) área de trabajo de Azure Machine Learning Escritor de métricas del área de trabajo Después de implementar el punto de conexión, si desea supervisar las métricas relacionadas con el punto de conexión, como uso de CPU, GPU, disco o memoria, debe conceder este permiso a la identidad.

Consulte instrucciones detalladas sobre cómo conceder permisos a la identidad del punto de conexión en Concesión de permisos al punto de conexión.

Importante

Si el flujo usa conexiones de autenticación basadas en Microsoft Entra ID, independientemente de que use la identidad asignada por el sistema o la identidad asignada por el usuario, siempre debe conceder a la identidad administrada los roles adecuados de los recursos correspondientes para que pueda realizar llamadas API a ese recurso. Por ejemplo, si la conexión de Azure OpenAI usa la autenticación basada en Microsoft Entra ID, debe conceder la identidad administrada del punto de conexión Rol de colaborador de OpenAI de Cognitive Services o de OpenAI de Cognitive Services de los recursos de Azure OpenAI correspondientes.

Configuración avanzada: implementación

En este paso, excepto las etiquetas, también puede especificar el entorno usado por la implementación.

Captura de pantalla del entorno de implementación.

Uso del entorno de definición de flujo actual

De forma predeterminada, la implementación usará el entorno creado a partir de la imagen base especificada en el flow.dag.yaml y las dependencias especificadas en el requirements.txt.

  • Puede especificar la imagen base en flow.dag.yaml seleccionando Raw file mode del flujo. Si no se especifica ninguna imagen, la imagen base predeterminada es la imagen base del flujo de mensajes más reciente.

    Captura de pantalla de la especificación de la imagen base en el archivo yaml en bruto del flujo.

  • Puede encontrar requirements.txt en la carpeta raíz de la carpeta de flujo y agregar dependencias dentro de ella.

    Captura de pantalla del texto de los requisitos de flujo.

Uso del entorno personalizado

También puede crear un entorno personalizado y usarlo para la implementación.

Nota

El entorno personalizado debe cumplir los siguientes requisitos:

  • La imagen de Docker debe crearse basada en la imagen base de prompt flow, mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version>. Puede encontrar la versión más reciente aquí.
  • la definición del entorno debe incluir inference_config.

A continuación se muestra un ejemplo de definición de entorno personalizada.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
  path: ./image_build
  dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
  liveness_route:
    port: 8080
    path: /health
  readiness_route:
    port: 8080
    path: /health
  scoring_route:
    port: 8080
    path: /score

Habilitación del seguimiento mediante la activación de diagnósticos de Application Insights (versión preliminar)

Si habilita esto, los datos de seguimiento y las métricas del sistema durante el tiempo de inferencia (como el recuento de tokens, la latencia de flujo, la solicitud de flujo, etc.) se recopilarán en Application Insights vinculado al área de trabajo. Para más información, consulte métricas y datos de seguimiento de servicio de flujo de avisos.

Si desea especificar una instancia de Application Insights diferente a la del área de trabajo vinculada, puede configurarla mediante la CLI.

Configuración avanzada: salidas y conexiones

En este paso, puede ver todas las salidas de flujo y especificar qué salidas se incluirán en la respuesta del punto de conexión que implemente. De forma predeterminada, se seleccionan todas las salidas de flujo.

También puede especificar las conexiones que usa el punto de conexión cuando realiza la inferencia. De forma predeterminada, se heredan del flujo.

Una vez configurado y revisado todos los pasos anteriores, puede seleccionar Revisar y crear para finalizar la creación.

Nota

Espere que la creación del punto de conexión tarde aproximadamente más de 15 minutos, ya que contiene varias fases, como la creación de un punto de conexión, el registro del modelo, la creación de la implementación, etc.

Puede comprender el progreso de la creación de la implementación a través de la notificación iniciada por implementación del flujo de avisos. Captura de pantalla de la notificación de implementación.

Concesión de permisos al punto de conexión

Importante

La concesión de permisos (agregar asignación de roles) solo está habilitada para el Owner de los recursos de Azure específicos. Es posible que tenga que pedir ayuda al administrador de TI. Se recomienda conceder roles a la identidad asignada por el usuarioantes de la implementación. El permiso concedido puede tardar más de 15 minutos en surtir efecto.

Puede conceder todos los permisos en Azure interfaz de usuario del portal siguiendo los pasos que se indican a continuación.

  1. Vaya a la página de información general del área de trabajo de Azure Machine Learning en Azure portal.

  2. Seleccione Control de acceso y seleccione Agregar asignación de roles. Captura de pantalla de Control de acceso con asignación de roles adicional resaltada.

  3. Seleccione Lector de secretos de conexión del espacio de trabajo de Azure Machine Learning, vaya a Siguiente.

    Nota

    Lector de secretos de conexión del área de trabajo de Azure Machine Learning es un rol integrado que tiene permiso para obtener conexiones del área de trabajo.

    Si desea usar un rol personalizado, asegúrese de que el rol personalizado dispone del permiso "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action". Obtenga más información sobre cómo crear roles personalizados.

  4. Seleccione Identidad administrada y seleccione miembros.

    Para la identidad asignada por el sistema, seleccione Punto de conexión en línea de Machine Learning en Identidad administrada asignada por el sistema y busque por nombre de punto de conexión.

    Para la identidad asignada por el usuario, seleccione Identidad administrada asignada por el usuario y busque por nombre de identidad.

  5. Para la identidad asignada por el usuario, también debe conceder permisos al registro de contenedor del área de trabajo. Puede encontrar el registro de contenedor y la cuenta de almacenamiento en la página de información general del área de trabajo en Azure portal.

    Captura de pantalla de la página de información general con almacenamiento y registro de contenedor resaltado.

    Vaya a la página de información general del registro de contenedores del área de trabajo, seleccione Control de acceso, seleccione Añadir asignación de rol, y asigne Extracción de ACR |Extraer imagen de contenedor a la identidad del punto de conexión.

    Vaya a la página de información general del almacenamiento predeterminado del área de trabajo, seleccione Control de acceso, y seleccione Agregar asignación de roles, y asigne Storage Blob Data Reader a la identidad del punto de conexión.

  6. (opcional) En el caso de la identidad asignada por el usuario, si desea supervisar las métricas relacionadas con el punto de conexión, como el uso de CPU, GPU, disco o memoria, debe concederle a la identidad también el rol de escritor de métricas del área de trabajo.

Comprobación del estado del punto de conexión

Habrá notificaciones después de finalizar el asistente de implementación. Una vez que el punto de conexión y la implementación se han creado correctamente, puede seleccionar Implementar detalles en la página de detalles de la notificación al punto de conexión.

También puede ir directamente a la página Endpoints en Studio y comprobar el estado del endpoint que desplegó.

Captura de pantalla de la página de detalles del punto de conexión que muestra una implementación correcta.

Prueba del punto de conexión con datos de ejemplo

En la página de detalles del punto de conexión, cambie a la pestaña Prueba .

Puede escribir los valores y seleccionar el botón Probar .

El resultado de la prueba muestra lo siguiente:

Captura de pantalla de la página de detalles del endpoint en la pestaña de prueba.

Prueba del punto de conexión implementado desde un flujo de chat

En el caso de los puntos de conexión implementados desde el flujo de chat, puede probarlos en una ventana de chat inmersiva.

Captura de pantalla de un punto de conexión implementado desde el flujo de chat.

El parámetro chat_input se estableció durante el desarrollo del flujo de chat. Puede escribir el chat_input mensaje en el cuadro de entrada. El panel de Entradas en el lado derecho es para que especifiques los valores de otras entradas además de chat_input. Obtenga más información sobre cómo desarrollar un flujo de chat.

Consumo del punto de conexión

En la página de detalles del punto de conexión, cambie a la pestaña Consumir. Puede encontrar el punto de conexión REST y la clave o token para consumir su punto de conexión. También hay código de ejemplo para que usted pueda utilizar el endpoint en distintos idiomas.

Tenga en cuenta que debe rellenar los valores de datos según las entradas de flujo. Tome el flujo de ejemplo usado en este artículo Clasificación web como ejemplo. Debe especificar data = {"url": "<the_url_to_be_classified>"} y rellenar la clave o el token en el código de consumo de ejemplo.

Captura de pantalla de la página de detalles del punto de conexión con el código de consumo.

Supervisión de puntos de conexión

Visualización de las métricas comunes de puntos de conexión en línea administrados mediante Azure Monitor (opcional)

Puede ver varias métricas (número de solicitudes, latencia de solicitud, bytes de la red, uso de CPU/GPU/disco/memoria, etc.) para un punto de conexión en línea y sus implementaciones siguiendo los vínculos de la página Detalles del punto de conexión en el studio. A continuación, estos vínculos le llevan a la página de métricas exactas del portal de Azure para el punto de conexión o la implementación.

Nota

Si especifica la identidad asignada por el usuario para el punto de conexión, asegúrese de que ha asignado el escritor de métricas de área de trabajo de área de trabajo de Azure Machine Learning a la identidad asignada por el usuario. De lo contrario, el punto de conexión no podrá registrar las métricas.

Captura de pantalla de la página de detalles del punto de conexión con las métricas de vista resaltadas.

Para obtener más información sobre cómo ver las métricas de puntos de conexión en línea, consulte Supervisión de puntos de conexión en línea.

Ver métricas y datos de seguimiento específicos de los puntos de conexión del flujo de avisos (opcional)

Si habilita Diagnósticos de Application Insights en el asistente para la implementación de la interfaz de usuario, las métricas específicas del flujo de avisos y los datos de seguimiento se recopilarán en la instancia de Application Insights vinculada al área de trabajo. Consulte los detalles sobre la habilitación del seguimiento para su implementación.

Solución de problemas de puntos de conexión implementados desde el flujo de mensajes

Falta autorización para realizar la acción "Microsoft. MachineLearningService/workspaces/datastores/read"

Si el flujo contiene la herramienta Búsqueda de índices, después de implementar el flujo, el punto de conexión debe acceder al almacén de datos del área de trabajo para leer el archivo yaml de MLIndex o la carpeta FAISS que contiene fragmentos e incrustaciones. Por lo tanto, debe conceder manualmente el permiso de identidad del punto de conexión para hacerlo.

Puede conceder la identidad del punto de conexión AzureML Científico de datos en el ámbito del área de trabajo o un rol personalizado que contenga la acción "MachineLearningService/workspace/datastore/reader".

Error MissingDriverProgram

Si implementa su flujo con un entorno personalizado y encuentra el siguiente error, podría deberse a que no especificó el inference_config en la definición de su entorno personalizado.

'error': 
{
    'code': 'BadRequest', 
    'message': 'The request is invalid.', 
    'details': 
         {'code': 'MissingDriverProgram', 
          'message': 'Could not find driver program in the request.', 
          'details': [], 
          'additionalInfo': []
         }
}

Hay dos maneras de corregir este error.

  • (Recomendado) Puede encontrar el URI de la imagen de contenedor en la página de detalles del entorno personalizado y establecerlo como la imagen base de flujo en el archivo flow.dag.yaml. Al implementar el flujo en la interfaz de usuario, solo tiene que seleccionar Usar entorno de definición de flujo actual y el servicio back-end creará el entorno personalizado basado en esta imagen base y requirement.txt para la implementación. Obtenga más información sobre el entorno especificado en la definición de flujo.

    Captura de pantalla de la página de detalles del entorno personalizado.

    Captura de pantalla de la especificación de la imagen base en el archivo yaml en bruto del flujo.

  • Para corregir este error, agregue inference_config en su definición del entorno personalizado. Obtenga más información sobre cómo usar el entorno personalizado.

    A continuación se muestra un ejemplo de definición de entorno personalizada.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
  path: ./image_build
  dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
  liveness_route:
    port: 8080
    path: /health
  readiness_route:
    port: 8080
    path: /health
  scoring_route:
    port: 8080
    path: /score

La respuesta del modelo tarda demasiado tiempo

A veces, es posible que observe que la implementación tarda demasiado tiempo en responder. Hay varios factores potenciales para que esto ocurra.

  • El modelo no es lo suficientemente potente (por ejemplo, usar gpt en lugar de text-ada)
  • La consulta de índice no está optimizada y tarda demasiado tiempo
  • Flow tiene muchos pasos para procesar

Considere la posibilidad de optimizar el punto de conexión con consideraciones anteriores para mejorar el rendimiento del modelo.

No se puede capturar el esquema de implementación

Después de implementar el punto de conexión y de probarlo en la pestaña Prueba de la página de detalles del punto de conexión, si la pestaña Prueba muestra No se puede capturar el esquema de implementación como el siguiente, puede probar los siguientes 2 métodos para mitigar este problema:

Captura de pantalla del error

Acceso denegado a enumerar el secreto del área de trabajo

Si se produce un error como "Acceso denegado a enumerar el secreto del área de trabajo", compruebe si ha concedido el permiso correcto a la identidad del punto de conexión. Obtenga más información sobre cómo conceder permiso a la identidad del punto de conexión.

Limpieza de recursos

Si no va a usar el punto de conexión después de completar este tutorial, debe eliminar el punto de conexión.

Nota

La eliminación completa puede tardar aproximadamente 20 minutos.

Pasos siguientes