Solución de problemas de implementaciones de flujo de mensajes
En este artículo se proporcionan instrucciones sobre cómo solucionar problemas de implementaciones desde el flujo de solicitud.
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 Data Scientist en el ámbito del área de trabajo, o un rol personalizado que contenga la acción "MachineLearningService/workspace/datastore/reader".
Problema de tiempo de espera de solicitud ascendente al consumir el punto de conexión
Si usa la CLI o el SDK para implementar el flujo, puede producirse un error de tiempo de espera. De manera predeterminada, el request_timeout_ms
es 5000. Puede especificar un máximo de 5 minutos, que son 300 000 ms. A continuación se muestra cómo especificar el tiempo de espera de la solicitud en el archivo yaml de implementación. Para obtener más información, consulte el esquema de implementación.
request_settings:
request_timeout_ms: 300000
La API de OpenAI alcanza el error de autenticación
Si vuelve a generar la clave de Azure OpenAI y actualiza manualmente la conexión que se usa en el flujo de solicitud, puede que encuentre errores como "No autorizado. Falta el token de acceso, no es válido, la audiencia es incorrecta o ha expirado." al invocar un punto de conexión existente creado antes de volver a generar la clave.
Esto se debe a que las conexiones usadas en los puntos de conexión o las implementaciones no se actualizarán automáticamente. Cualquier cambio de clave o de secretos en las implementaciones se debe realizar mediante la actualización manual, lo que pretende evitar afectar a la implementación de producción en línea debido a una operación sin conexión involuntaria.
- Si el punto de conexión se implementó en la interfaz de usuario de Studio, puede volver a implementar el flujo en el punto de conexión existente con el mismo nombre de implementación.
- Si el punto de conexión se implementó mediante el SDK o la CLI, debe realizar alguna modificación en la definición de implementación, como agregar una variable de entorno ficticia y, a continuación, usar
az ml online-deployment update
para actualizar la implementación.
Problemas de vulnerabilidad en las implementaciones de flujo de solicitud
En el caso de las vulnerabilidades relacionadas con el tiempo de ejecución del flujo de solicitud, estos son los enfoques que pueden ayudar a mitigar:
- Actualice los paquetes de dependencias del archivo requirements.txt en la carpeta de flujo.
- Si usa una imagen base personalizada para el flujo, debe actualizar el tiempo de ejecución del flujo de mensajes a la versión más reciente y volver a generar la imagen base y, a continuación, volver a implementar el flujo.
Para cualquier otra vulnerabilidad de las implementaciones en línea administradas, Azure Machine Learning corrige los problemas de forma mensual.
"Error MissingDriverProgram" o "No se pudo encontrar el programa de controladores en la solicitud".
Si implementa el flujo y encuentra el siguiente error, podría estar relacionado con el entorno de implementación.
'error':
{
'code': 'BadRequest',
'message': 'The request is invalid.',
'details':
{'code': 'MissingDriverProgram',
'message': 'Could not find driver program in the request.',
'details': [],
'additionalInfo': []
}
}
Could not find driver program in the request
Existen dos formas de solucionar este error.
(Recomendado) Puede encontrar el identificador 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 actualy el servicio back-end creará el entorno personalizado en función de 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.Para corregir este error, agregue
inference_config
en la definición de entorno personalizada.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 usado en el flujo no es lo suficientemente eficaz (por ejemplo: use GPT 3.5 en lugar de text-ada)
- La consulta de índice no está optimizada y tarda demasiado tiempo.
- El flujo tiene muchos pasos para procesar
Considere la posibilidad de optimizar el punto de conexión con las 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 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, puede probar los dos métodos siguientes para mitigar este problema:
- Asegúrese de que 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.
- Puede ser porque ejecutó el flujo en un runtime de una versión anterior y después implementó el flujo que la implementación usó el entorno del runtime que también estaba en la versión anterior. Para actualizar el runtime, siga Actualización de un runtime en la interfaz de usuario y vuelva a ejecutar el flujo en el runtime más reciente y después vuelva a implementar el flujo.
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.
Pasos siguientes
- Obtenga más información sobre el esquema de punto de conexión en línea administrado y el esquema de implementación en línea administrado.
- Obtenga más información sobre cómo solucionar problemas de puntos de conexión administrados en línea.