Azure Machine Learning Solicitud de latencia de respuesta

Hice un Experimento de aprendizaje a máquina de Azure que toma un pequeño conjunto de datos (matriz 12×3) y algunos parámetros y realiza algunos cálculos utilizando algunos módulos de Python (un cálculo de regresión lineal y algunos más). Todo esto funciona bien.

He implementado el experimento y ahora quiero lanzarle datos desde la parte frontal de mi aplicación. La llamada a la API entra y vuelve con resultados correctos, pero se tarda hasta 30 segundos en calcular una regresión lineal simple. A veces son 20 segundos, a veces solo 1 segundo. Incluso lo bajé a 100 ms una vez (que es lo que me gustaría), pero el 90% del tiempo la solicitud tarda más de 20 segundos en completarse, lo cual es inaceptable.

Supongo que tiene algo que ver con que aún sea un experimento, o aún esté en una ranura de desarrollo, pero no puedo encontrar la configuración para que se ejecute en una máquina más rápida.

¿Hay alguna manera de acelerar mi ejecución?

Edición: para aclarar: los distintos tiempos se obtienen con los mismos datos de prueba, simplemente enviando la misma solicitud varias veces. Esto me hizo llegar a la conclusión de que debe tener algo que ver con que mi solicitud se coloque en una cola, hay un poco de latencia de inicio o estoy limitado de alguna otra manera.

    Primero, asumo que está haciendo su prueba de sincronización en el punto final de AML publicado.

    Cuando se realiza una llamada a la AML, la primera debe calentar el contenedor. Por defecto, un servicio web tiene 20 contenedores. Cada contenedor está frío, y un contenedor frío puede causar un gran retraso (30 segundos). En la cadena devuelta por el punto final de AML, solo cuente las solicitudes que tienen el indicador isWarm establecido en verdadero. Al aplastar el servicio con MUCHAS solicitudes (en relación con la cantidad de contenedores que está ejecutando) puede calentar todos sus contenedores.

    Si está enviando docenas de solicitudes a una instancia, el punto final podría estar estrangulado. Puede ajustar el número de llamadas que su punto final puede aceptar yendo a manage.windowsazure.com/

    1. manage.windowsazure.com/
    2. Sección de Azure ML de la barra izquierda
    3. selecciona tu espacio de trabajo
    4. ir a la pestaña de servicios web
    5. Seleccione su servicio web de la lista
    6. ajustar el número de llamadas con control deslizante

    Al habilitar la depuración en su punto final, puede obtener registros sobre el tiempo de ejecución de cada uno de sus módulos para completar. Puede usar esto para determinar si un módulo no se está ejecutando como esperaba, lo que puede boost el tiempo.

    En general, hay una sobrecarga cuando se usa el módulo Execute python, pero espero que esta solicitud se complete en menos de 3 segundos.