Ho creato un esperimento di apprendimento automatico di Azure che utilizza un piccolo set di dati (matrice 12x3) e alcuni parametri e esegue alcuni calcoli utilizzando alcuni moduli Python (un calcolo di regressione lineare e altri). Tutto funziona bene.Latenza di risposta alla macchina di Azure Risposta latenza
Ho distribuito l'esperimento e ora voglio lanciare i dati dal front-end della mia applicazione. La chiamata API entra e torna con i risultati corretti, ma per calcolare una semplice regressione lineare sono necessari fino a 30 secondi. A volte sono 20 secondi, a volte solo 1 secondo. L'ho persino ridotto a 100 ms una volta (che è quello che mi piacerebbe), ma il 90% delle volte la richiesta richiede più di 20 secondi per essere completata, il che è inaccettabile.
Suppongo che abbia qualcosa a che fare con il fatto che sia ancora un esperimento o che sia ancora in uno slot di sviluppo, ma non riesco a trovare le impostazioni per farlo funzionare su una macchina più veloce.
C'è un modo per velocizzare la mia esecuzione?
Modifica: Per chiarire: i tempi variabili sono ottenuti con gli stessi dati di test, semplicemente inviando la stessa richiesta più volte. Questo mi ha fatto concludere che deve avere qualcosa a che fare con la mia richiesta di essere messa in coda, c'è qualche latenza di start-up o sono strozzata in qualche altro modo.
La tua risposta insieme a [questo articolo] (http://jiffie.blogspot.be/2015/10/trying-to-figure-out-azure-ml.html) mi ha fatto capire il problema: per impostazione predefinita, lì Sono 20 i contenitori assegnati che sono tutti freddi per iniziare. Non stavo facendo chiamate simultanee e aggiornavo parecchio, quindi più spesso non chiamavo uno di quei contenitori freddi, che impiegava circa 30 secondi. Solo dopo aver colpito tutti i contenitori, una volta garantita la risposta rapida. Per il test, ho effettuato il downgrade a 4 contenitori, il che significa che inizio con 4 chiamate lente dopo le quali tutti i contenitori sono caldi. – JrtPec
Grazie, esaminerò l'articolo e aggiungerò qualsiasi cosa mi sia sfuggita alla risposta. –
Questi contenitori "freddi" sono comunque un inconveniente. Supponiamo che io aggiorni il servizio web, le prime 20 richieste che i client faranno saranno molto lente (a seconda del numero di chiamate simultanee nelle impostazioni, sarà ancora peggio). C'è un modo per dire a tutti i contenitori di "scaldarsi" dopo la distribuzione? – JrtPec