Ripetere il training e distribuire un servizio Web di Studio classico (versione classica)

SI APPLICA A:Si applicaa. Machine Learning Studio (versione classica) X che indica no.Non si applica a.

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

La ripetizione del training dei modelli di Machine Learning è un modo per garantire che rimangano accurati e si basino sui dati più rilevanti disponibili. Questo articolo illustra come eseguire il training di un servizio Web classico (versione classica). Per una guida su come ripetere il training di un nuovo servizio Web Studio (versione classica), visualizzare questo articolo su come eseguire il training.

Prerequisiti

Questo articolo presuppone che si disponga già di un esperimento di ripetizione del training e di un esperimento predittivo. Questi passaggi sono illustrati in Ripetere il training e distribuire un modello di Machine Learning. Tuttavia, invece di distribuire il modello di Machine Learning come nuovo servizio Web, si distribuirà l'esperimento predittivo come servizio Web classico.

Aggiungere un nuovo endpoint

Il servizio Web predittivo distribuito contiene un endpoint di assegnazione dei punteggi predefinito che viene mantenuto sincronizzato con il modello con training originale con esperimenti di training e di assegnazione dei punteggi. Per aggiornare il servizio Web con un nuovo modello con training, è necessario creare un nuovo endpoint di assegnazione dei punteggi.

Esistono due modi per aggiungere un nuovo endpoint a un servizio Web:

  • A livello di codice
  • Tramite il portale dei servizi Web di Azure

Nota

Assicurarsi di aggiungere l'endpoint al servizio Web predittivo, non al servizio Web di training. Se sono stati distribuiti correttamente sia un servizio Web di training che uno predittivo, verranno visualizzati due servizi Web elencati separatamente. Il servizio Web predittivo deve terminare con "[predictive exp.]".

Aggiungere un endpoint a livello di codice

È possibile aggiungere endpoint di assegnazione dei punteggi usando il codice di esempio disponibile in questo repository GitHub.

Usare il portale dei servizi Web di Azure per aggiungere un endpoint

  1. In Machine Learning Studio (versione classica), nella colonna di spostamento a sinistra fare clic su Servizi Web.
  2. Nella parte inferiore del dashboard del servizio Web fare clic su Gestisci endpoint in anteprima.
  3. Scegliere Aggiungi.
  4. Immettere un nome e una descrizione per il nuovo endpoint. Selezionare il livello di registrazione e indicare se i dati di esempio sono abilitati. Per altre informazioni sulla registrazione, vedere Abilitare la registrazione per i servizi Web di Machine Learning.

Aggiornare il modello sottoposto a training dell'endpoint aggiunto

Recuperare l'URL PATCH

Seguire questa procedura per ottenere l'URL PATCH corretto tramite il portale Web:

  1. Accedere al portale dei servizi Web di Azure Machine Learning.
  2. Fare clic su Servizi Web o Servizi Web classici nella parte superiore.
  3. Fare clic sul servizio Web di assegnazione dei punteggi in uso (se il nome predefinito del servizio Web non è stato modificato, terminerà in "[Scoring Exp.]").
  4. Fare clic su +NEW.
  5. Una volta aggiunto l'endpoint, fare clic sul nome dell'endpoint.
  6. Sotto all'URL patch fare clic su API Help (Guida API) per aprire la pagina della Guida relativa all'applicazione di patch.

Nota

Se l'endpoint è stato aggiunto al servizio Web training anziché al servizio Web predittivo, verrà visualizzato l'errore seguente quando si fa clic sul collegamento Aggiorna risorsa : "Scusa, ma questa funzionalità non è supportata o disponibile in questo contesto. Questo servizio Web non dispone di alcuna risorsa aggiornabile. Ci scusiamo per l'inconveniente e stiamo lavorando per migliorare questo flusso di lavoro.

La pagina della guida di PATCH contiene l'URL PATCH da usare e fornisce il codice di esempio che è possibile usare per chiamarlo.

URL patch.

Aggiornare l'endpoint

Ora è possibile usare il modello con training per aggiornare l'endpoint dei punteggi creato prima.

Il codice di esempio seguente mostra come usare BaseLocation, RelativeLocation, SasBlobToken e l'URL PATCH per aggiornare l'endpoint.

private async Task OverwriteModel()
{
    var resourceLocations = new
    {
        Resources = new[]
        {
            new
            {
                Name = "Census Model [trained model]",
                Location = new AzureBlobDataReference()
                {
                    BaseLocation = "https://esintussouthsus.blob.core.windows.net/",
                    RelativeLocation = "your endpoint relative location", //from the output, for example: "experimentoutput/8946abfd-79d6-4438-89a9-3e5d109183/8946abfd-79d6-4438-89a9-3e5d109183.ilearner"
                    SasBlobToken = "your endpoint SAS blob token" //from the output, for example: "?sv=2013-08-15&sr=c&sig=37lTTfngRwxCcf94%3D&st=2015-01-30T22%3A53%3A06Z&se=2015-01-31T22%3A58%3A06Z&sp=rl"
                }
            }
        }
    };

    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);

        using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), endpointUrl))
        {
            request.Content = new StringContent(JsonConvert.SerializeObject(resourceLocations), System.Text.Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                await WriteFailedResponse(response);
            }

            // Do what you want with a successful response here.
        }
    }
}

I valori di apiKey e endpointUrl per la chiamata possono essere ottenuti dal dashboard dell'endpoint.

Il valore del parametro Name in Resources deve corrispondere al nome della risorsa del modello sottoposto a training salvato nell'esperimento predittivo. Per ottenere il nome della risorsa:

  1. Accedere al portale di Azure.
  2. Nel menu a sinistra fare clic su Machine Learning.
  3. In Nome fare clic sull'area di lavoro e quindi su Servizi Web.
  4. In Nome fare clic su Censimento modello [predittivo exp.].
  5. Fare clic sul nuovo endpoint aggiunto.
  6. Nel dashboard dell'endpoint fare clic su Aggiorna risorsa.
  7. Nella pagina della documentazione sull'aggiornamento dell'API di risorsa per il servizio Web è possibile trovare Nome risorsa in Risorse aggiornabili.

Se il token di firma di accesso condiviso scade prima di avere terminato l'aggiornamento dell'endpoint, è necessario eseguire un'operazione GET con l'ID processo per ottenere un nuovo token.

Al termine dell'esecuzione del codice, il nuovo endpoint verrà avviato con il modello di cui è stato ripetuto il training in circa 30 secondi.

Passaggi successivi

Per altre informazioni su come gestire i servizi Web o tenere traccia di più esecuzioni degli esperimenti, vedere gli articoli seguenti: