Passaggio 5 della procedura dettagliata: Distribuzione del servizio Web di Azure Machine Learning

Questo è il quinto passaggio della procedura dettagliata Sviluppare una soluzione predittiva in Azure Machine Learning

  1. Creare un'area di lavoro di Machine Learning
  2. Caricare i dati esistenti
  3. Creare un nuovo esperimento
  4. Eseguire il training e valutare i modelli
  5. Distribuire il servizio web
  6. Accedere al servizio Web

Per permettere ad altri utenti di usare il modello predittivo sviluppato in questa procedura dettagliata, il modello può ora essere distribuito come servizio Web in Azure.

Fino a questo punto è stato sperimentato il training da parte del modello, ma il servizio distribuito non dovrà più eseguire il training, perché genererà le stime assegnando un punteggio all'input dell'utente in base al modello. Di conseguenza, è necessario eseguire alcuni preparativi per convertire questo esperimento da esperimento di training a esperimento predittivo.

Il processo si articola in tre passaggi:

  1. Rimuovere uno dei modelli
  2. Convertire l'esperimento di training creato in esperimento predittivo
  3. Distribuire l'esperimento predittivo come servizio Web

Rimuovere uno dei modelli

Prima è necessario ridurre un po' questo esperimento. Nell'esperimento sono attualmente presenti due modelli diversi, ma si desidera usare un solo modello da distribuire come servizio Web.

Si supponga che il modello di albero con boosting sia il modello eseguito meglio con il modello SVM. La prima cosa da fare, quindi, è rimuovere il modulo Two-Class Support Vector Machine e i moduli usati per eseguirne il training. È possibile creare prima una copia dell'esperimento facendo clic su Save As nella parte inferiore dell'area di disegno dell'esperimento.

È necessario eliminare i seguenti moduli:

Selezionare ogni modulo e premere CANC oppure fare clic con il pulsante destro del mouse sul modulo e scegliere Delete (Elimina).

Rimuovere il modello SVM

Il modello avrà ora un aspetto analogo al seguente:

Rimuovere il modello SVM

Ora il modello è pronto per essere distribuito tramite il modulo Two-Class Boosted Decision Tree.

Convertire l'esperimento di training in un esperimento predittivo

Per preparare questo modello per la distribuzione, è necessario convertire l'esperimento di training in un esperimento predittivo. Questa operazione comporta tre passaggi:

  1. Salvare il modello di cui è stato eseguito il training e usarlo per sostituire i moduli di training
  2. Ridurre l'esperimento per rimuovere i moduli che sono serviti solo per il training
  3. Definire il punto in cui il servizio Web accetterà l'input e in cui genererà l'output

È possibile eseguire questa procedura manualmente, ma i tre passaggi possono essere effettuati facendo clic su Configura servizio Web nella parte inferiore dell'area di disegno dell'esperimento e selezionare l'opzione Predictive Web Service (Servizio Web predittivo) per eseguire tutti e tre i passaggi.

Suggerimento

Per informazioni dettagliate cosa accade quando si converte un esperimento di training in un esperimento predittivo, vedere l'articolo relativo alla preparazione del modello per la distribuzione in Azure Machine Learning Studio.

Quando si fa clic su Set Up Web Service(Configura servizio Web), vengono eseguite diverse operazioni:

  • Il modello di cui è stato eseguito il training viene convertito in un singolo modulo Trained Model e archiviato nella tavolozza dei moduli a sinistra dell'area di disegno dell'esperimento e sarà disponibile in Trained Models.
  • Vengono rimossi i moduli usati per il training, in particolare:
  • Il modello con training salvato viene aggiunto nuovamente all'esperimento
  • Vengono aggiunti i moduli Web service input (Input servizio Web) e Output servizio Web; queste informazioni identificano dove verranno immessi i dati dell'utente nel modello e i dati che verranno restituiti quando si accede al servizio Web
Nota

Si può notare che l'esperimento viene salvato in due parti sotto le schede che sono state aggiunte all'inizio dell'area di disegno dell'esperimento. L'esperimento di training originale si trova sotto la scheda Esperimento di training e l'esperimento predittivo appena creato si trova sotto Esperimento predittivo. L'esperimento predittivo è quello che verrà distribuito come servizio Web.

Con questo particolare esperimento è necessario effettuare un'operazione aggiuntiva. Sono stati aggiungi due moduli Execute R Script per fornire una funzione di ponderazione per i dati. Si tratta semplicemente di un espediente necessario per il training e il test ed è quindi possibile estrarre i moduli nel modello finale. Machine Learning Studio ha rimosso un modulo Execute R Script durante la rimozione del modulo Split Data. È possibile rimuovere l'altro modulo e connettere Metadata Editor direttamente a Score Model.

L'esperimento dovrebbe risultare simile al seguente:

Valutazione del modello sottoposto a training

Nota

Ci si chiederà perché il set di dati relativo alle carte di credito tedesche UCI sia stato lasciato nell'esperimento predittivo. Il servizio assegnerà un punteggio ai dati dell'utente, non al set di dati originale, quindi perché lasciare il set di dati originale nel modello?

Il servizio non necessita dei dati della carta di credito originali. Necessita però dello schema per tali dati, incluse informazioni come il numero di colonne presenti e quali colone sono numeriche. Queste informazioni sullo schema sono necessarie per interpretare i dati dell'utente. È necessario lasciare questi componenti connessi in modo che il modulo di punteggio abbia lo schema del set di dati quando il servizio è in esecuzione. I dati non vengono usati, solo lo schema.

Eseguire l'esperimento un'ultima volta, facendo clic su Run (Esegui). Se si vuole verificare che il modello funzioni ancora, fare clic sull'output del modulo Score Model e selezionare Visualizza risultati. Verranno visualizzati i dati originali, insieme al valore di rischio di credito "Scored Labels" (Etichette punteggio) e al valore di probabilità del punteggio "Scored Probabilities" (Probabilità punteggio).

Distribuire il servizio web

È possibile distribuire l'esperimento come servizio Web classico o come nuovo servizio Web basato su Azure Resource Manager.

Distribuire l'esperimento come servizio Web classico

Per distribuire un servizio Web classico derivato dall'esperimento, fare clic su Distribuisci servizio Web sotto l'area di disegno e selezionare Distribuisci servizio Web - Nuovo. Machine Learning Studio distribuisce l'esperimento come servizio Web e apre il dashboard del servizio. Da qui è possibile tornare all'esperimento (View snapshot (Visualizza snapshot) o View latest (Visualizza più recente)) ed eseguire un semplice test del servizio Web. Vedere Testare il servizio Web di seguito. Qui sono inoltre disponibili informazioni per la creazione di applicazioni in grado di accedere al servizio Web (altre informazioni nella sezione successiva di questa procedura dettagliata).

Dashboard del servizio Web

È possibile configurare il servizio facendo clic sulla scheda CONFIGURATION (CONFIGURAZIONE), dove è possibile modificare il nome del servizio (per impostazione predefinita ha il nome dell'esperimento) e aggiungere una descrizione. È anche possibile inserire etichette più descrittive per i dati di input e output.

Configurare il servizio Web

Distribuire l'esperimento come nuovo servizio Web

Nota

Per distribuire un nuovo servizio Web è necessario disporre delle autorizzazioni sufficienti nella sottoscrizione a cui si sta distribuendo il servizio Web. Per altre informazioni, vedere Gestire un servizio Web usando il portale dei servizi Web di Azure Machine Learning.

Per distribuire un nuovo servizio Web derivato dall'esperimento:

  1. Fare clic su Deploy Web Service (Distribuisci servizio Web) sotto l'area di disegno e selezionare Deploy Web Service [New] (Distribuisci servizio Web [Nuovo]). Machine Learning Studio visualizza la pagina Deploy Experiment (Distribuisci esperimento) dei servizi Web di Azure Machine Learning.

  2. Immettere un nome per il servizio Web.

  3. Per Piano tariffario è possibile selezionare un piano tariffario esistente o selezionare "Nuovo" e denominare il nuovo piano, quindi selezionare l'opzione del piano mensile. Per impostazione predefinita vengono usati i livelli di piano per l'area predefinita e il servizio Web viene distribuito in questa area.

  4. Fare clic su Distribuisci.

Dopo alcuni minuti verrà visualizzata la pagina Avvio rapido per il servizio Web.

È possibile configurare il servizio facendo clic sulla scheda Configura. Qui è possibile modificare il titolo del servizio e assegnare una descrizione.

Per testare il servizio Web, selezionare la scheda Test. Vedere Testare il servizio Web di seguito. Per informazioni sulla creazione di applicazioni in grado di accedere al servizio Web, fare clic sull'opzione di menu Consumo. Altre informazioni sono disponibili nella sezione successiva di questa procedura dettagliata.

Suggerimento

È possibile aggiornare il servizio Web dopo averlo distribuito. Se, ad esempio, si vuole cambiare il modello, è possibile modificare l'esperimento di training, modificare i parametri del modello e fare clic su Deploy Web Service (Distribuisci servizio Web), selezionando Deploy Web Service [Classic] (Distribuisci servizio Web [Classico]) o Deploy Web Service [New] (Distribuisci servizio Web [Nuovo]). Quando si distribuisce di nuovo l'esperimento, il servizio Web viene sostituito con il modello aggiornato.

Testare il servizio Web

Quando viene eseguito l'accesso al servizio Web, i dati dell'utente vengono inseriti mediante il modulo Web service input (Input servizio Web)e trasferiti nel modulo Score Model (Modello punteggio), in cui viene assegnato un punteggio. In considerazione del modo in cui l'esperimento predittivo è configurato, il modello presuppone che i dati abbiano lo stesso formato del set di dati del rischio di credito originale. I risultati vengono quindi restituiti all'utente dal servizio Web tramite il modulo Output servizio Web.

Suggerimento

In considerazione del modo in cui l'esperimento predittivo è configurato, vengono restituiti tutti i risultati del modulo Score Model. Ciò include tutti i dati di input, il valore del rischio di credito e il valore di probabilità del punteggio. Ma è possibile restituire un elemento diverso se si desidera, ad esempio, si potrebbe restituire solo il valore di rischio di credito. A tale scopo, inserire un modulo Project Columns (Colonne progetto) tra Score Model (Modello punteggio) e Output servizio Web per eliminare le colonne che il servizio Web non deve restituire.

È possibile testare il servizio Web in Machine Learning Studio o nel portale dei servizi Web di Azure Machine Learning. È possibile testare un nuovo servizio Web solo dal portale dei servizi Web di Azure Machine Learning.

Suggerimento

Quando il test viene eseguito nel portale dei servizi Web di Azure Machine Learning, è possibile fare in modo che il portali crei dati di esempio da usare per testare il servizio di richiesta-risposta. Nella pagina Configura selezionare "Sì" per la richiesta di dati di esempio abilitati?. Quando si apre la scheda Richiesta-risposta della pagina Test, il portale compila i dati di esempio prelevati dal set di dati del rischio di credito originale.

Testare un servizio Web classico

È possibile testare un servizio Web classico in Machine Learning Studio o nel portale dei servizi Web di Azure Machine Learning.

Testare in Machine Learning Studio

  1. Nella pagina DASHBOARD del servizio Web fare clic sul pulsante Test in Default Endpoint (Endpoint predefinito). Viene visualizzata una finestra di dialogo che richiede i dati di input per il servizio. Sono le stesse colonne visualizzate nel set di dati del rischio di credito originale.

  2. Immettere un set di dati e quindi fare clic su OK.

Testare nel portale dei servizi Web di Azure Machine Learning

  1. Nella pagina DASHBOARD del servizio Web fare clic sul pulsante Test preview (Anteprima test) in Default Endpoint (Endpoint predefinito). Viene visualizzata la pagina di test nel portale del servizio Web di Azure Machine Learning per l'endpoint di servizio Web e vengono chiesti i dati di input per il servizio. Sono le stesse colonne visualizzate nel set di dati del rischio di credito originale.

  2. Fare clic su Test Request-Response (Test Richiesta-risposta).

Testare un nuovo servizio Web

È possibile testare un nuovo servizio Web solo dal portale dei servizi Web di Azure Machine Learning.

  1. Nel portale dei servizi Web di Azure Machine Learning fare clic su Test nella parte superiore della pagina. Viene visualizzata la pagina Test, in cui è possibile immettere i dati per il servizio. I campi di input visualizzati corrispondono alle colonne visualizzate nel set di dati del rischio di credito originale.

  2. Immettere un set di dati e quindi fare clic su Test Request-Response(Test Richiesta-risposta).

I risultati del test vengono visualizzati sul lato destro della pagina nella colonna di output.

Gestire il servizio Web

Gestire un servizio Web classico nel portale di Azure classico

Dopo aver distribuito il servizio Web classico, è possibile gestirlo dal portale di Azure classico.

  1. Accedere al portale di Azure classico
  2. Nel riquadro dei servizi di Microsoft Azure fare clic su MACHINE LEARNING
  3. Fare clic sull'area di lavoro.
  4. Fare clic sulla scheda Servizi Web.
  5. Fare clic sul servizio Web creato
  6. Fare clic sull'endpoint "predefinito".

Da qui è possibile eseguire varie operazioni, ad esempio monitorare come opera il servizio Web e apportare piccole modifiche alle prestazioni cambiando il numero di chiamate simultanee gestite dal servizio.

Per informazioni dettagliate, vedere:

Gestire un servizio Web nuovo o classico usando il portale dei servizi Web di Azure Machine Learning

Dopo avere distribuito il servizio Web, classico o nuovo, è possibile gestirlo dal portale dei servizi Web di Microsoft Azure Machine Learning.

Per monitorare le prestazioni del servizio Web:

  1. Accedere al portale dei servizi Web di Microsoft Azure Machine Learning
  2. Fare clic su Servizi Web
  3. Fare clic sul servizio Web
  4. Fare clic su Dashboard

Passaggio successivo:Accedere al servizio Web