¿Cómo puedo integrar métricas personalizadas de inferencia con Application Insights desde el script score.py en un endpoint de Azure Machine Learning?

JRN Calo 0 Puntos de reputación
2025-05-12T13:44:32.1166667+00:00

Hola comunidad. Estoy desplegando un modelo de lenguaje natural como servicio en Azure Machine Learning y quiero registrar métricas personalizadas (por ejemplo: tiempo de inferencia, número de tokens, longitud del input) en tiempo real durante la inferencia, y visualizar estos datos en Application Insights o el panel de Azure ML.

He leído que es posible extender el score.py para capturar este tipo de métricas, pero tengo dudas específicas:

¿Cómo inicializo correctamente la conexión con Application Insights desde score.py?

¿Qué SDK debo usar y cómo evito que el logging interfiera con el rendimiento del endpoint?

¿Puedo registrar excepciones o métricas cuando se producen errores (como timeouts o entradas vacías)?

¿Hay ejemplos actuales que combinen mlflow, logging, opencensus o azure.monitor.opentelemetry para esto?

Mi entorno está en Python 3.10 y utilizo el modelo desplegado con ml_client.online_endpoints.create_or_update.

¡Gracias de antemano por cualquier orientación, documentación o snippet actualizado!

Nota: No encontré etiquetas como "Azure Machine Learning" o "Application Insights", pero mi duda está enfocada en el registro de métricas personalizadas durante inferencias en endpoints de Azure ML con Python.

Control de acceso basado en rol de Azure
Control de acceso basado en rol de Azure
Un servicio de Azure que proporciona administración de acceso específico para los recursos de Azure, lo que permite conceder a los usuarios solo los derechos necesarios para realizar sus trabajos.
119 preguntas
{count} votos

1 respuesta

Ordenar por: Muy útil
  1. Sampath 3,745 Puntos de reputación Personal externo de Microsoft Moderador
    2025-05-26T15:43:28.95+00:00

    Hello @JRN Calo ,

    Puedes integrar métricas de inferencia personalizadas con Application Insights desde tu script score.py en un punto de conexión de Azure Machine Learning utilizando el SDK de Azure Monitor OpenTelemetry o OpenCensus para el registro de logs. Aquí tienes un enfoque general:

    1. Inicializar Application Insights en score.py

    • Usa el SDK de Azure Monitor OpenTelemetry o OpenCensus para enviar logs y métricas.
    • Ejemplo usando OpenCensus:
    
         from opencensus.ext.azure.log_exporter import AzureLogHandler
    
        import logging
    
        logger = logging.getLogger(**name**)
    
     logger.addHandler(AzureLogHandler(connection_string="InstrumentationKey=TU_CLAVE"))
    
    
    • Usa registro asíncrono para evitar bloquear las solicitudes de inferencia.
    • Ejemplo de registro del tiempo de inferencia:
    
          import time
    
        def run(data):
    
          start_time = time.time()
    
          # Realizar inferencia
    
          inference_time = time.time() - start_time
    
          logger.info(f"Tiempo de inferencia: {inference_time} segundos")
    
          return {"inference_time": inference_time}
    
    

    3. Capturar errores y excepciones

    • Registra excepciones cuando ocurran errores (timeouts, entradas vacías).
    • Ejemplo:
    
        try:
    
          result = model.predict(data)   
    
        except Exception as e:   
    
          logger.error(f"Inferencia fallida: {str(e)}")
    
    

    4. Combinar con MLflow y Azure Monitor

    • Puedes integrar MLflow para el seguimiento de experimentos y Azure Monitor OpenTelemetry para el registro de logs.
    • Ejemplo:
    
        import mlflow
    
        mlflow.log_metric("inference_time", inference_time)
    
    

    Estoy traduciendo las respuestas del inglés, así que disculpa cualquier problema gramatical.

    Hazme saber si tienes alguna pregunta y si los comentarios anteriores te resultaron útiles.

    Consulta los siguientes documentos para obtener más detalles:

    0 comentarios No hay comentarios

Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.