Udostępnij za pośrednictwem


Jak korzystać z usługi internetowej Machine Learning Studio (klasycznej)

DOTYCZY: Jest to znacznik wyboru, co oznacza, że ten artykuł dotyczy usługi Machine Learning Studio (klasycznej). Machine Learning Studio (wersja klasyczna) Jest to X, co oznacza, że ten artykuł dotyczy usługi Azure Machine Learning.Azure Machine Learning

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Po wdrożeniu modelu predykcyjnego usługi Machine Learning Studio (klasycznej) jako usługi internetowej możesz użyć interfejsu API REST do wysyłania danych i uzyskiwania przewidywań. Dane można wysyłać w czasie rzeczywistym lub w trybie wsadowym.

Więcej informacji na temat tworzenia i wdrażania usługi sieci Web Machine Learning przy użyciu usługi Machine Learning Studio (klasycznej) można znaleźć tutaj:

  • Aby zapoznać się z samouczkiem dotyczącym tworzenia eksperymentu w usłudze Machine Learning Studio (wersja klasyczna), zobacz Tworzenie pierwszego eksperymentu.
  • Aby uzyskać szczegółowe informacje na temat wdrażania usługi sieci Web, zobacz Wdrażanie usługi sieci Web Machine Learning.
  • Aby uzyskać więcej informacji na temat uczenia maszynowego w ogóle, odwiedź Centrum dokumentacji usługi Machine Learning.

Omówienie

Dzięki usłudze sieci Web Machine Learning zewnętrzna aplikacja komunikuje się z modelem oceniania przepływu pracy usługi Machine Learning w czasie rzeczywistym. Wywołanie usługi sieci Web usługi Machine Learning zwraca wyniki przewidywania do aplikacji zewnętrznej. Aby wywołać usługę internetową usługi Machine Learning, należy przekazać klucz interfejsu API utworzony podczas wdrażania przewidywania. Usługa sieci Web Machine Learning jest oparta na architekturze REST, popularnej architekturze dla projektów programowania internetowego.

Usługa Machine Learning Studio (klasyczna) ma dwa typy usług:

  • Request-Response Service (RRS) — usługa o małym opóźnieniu, wysoce skalowalna, która udostępnia interfejs dla modeli bezstanowych utworzonych i wdrożonych z poziomu usługi Machine Learning Studio (klasycznej).
  • Usługa wykonywania wsadowego (BES) — usługa asynchroniczna, która ocenia partię rekordów danych.

Aby uzyskać więcej informacji na temat usług sieci Web uczenia maszynowego, zobacz Deploy a Machine Learning Web Service (Wdrażanie usługi sieci Web Machine Learning).

Uzyskiwanie klucza autoryzacji

Podczas wdrażania eksperymentu klucze interfejsu API są generowane dla usługi sieci Web. Klucze można pobrać z kilku lokalizacji.

Z poziomu portalu usług sieci Web Machine Learning

Zaloguj się do portalu usług sieci Web Machine Learning.

Aby pobrać klucz interfejsu API dla nowej usługi sieci Web Machine Learning:

  1. W portalu usług sieci Web Machine Learning kliknij pozycję Usługi sieci Web w górnym menu.
  2. Kliknij usługę sieci Web, dla której chcesz pobrać klucz.
  3. W górnym menu kliknij pozycję Zużyj.
  4. Skopiuj i zapisz klucz podstawowy.

Aby pobrać klucz interfejsu API dla klasycznej usługi sieci Web Machine Learning:

  1. W portalu usług sieci Web Azure Machine Learning kliknij pozycję Klasyczne usługi sieci Web w górnym menu.
  2. Kliknij usługę sieci Web, z którą pracujesz.
  3. Kliknij punkt końcowy, dla którego chcesz pobrać klucz.
  4. W górnym menu kliknij pozycję Zużyj.
  5. Skopiuj i zapisz klucz podstawowy.

Klasyczna usługa sieci Web

Klucz klasycznej usługi internetowej można również pobrać z usługi Machine Learning Studio (klasycznej).

Machine Learning Studio (klasyczny)

  1. W usłudze Machine Learning Studio (wersja klasyczna) kliknij pozycję USŁUGI SIECI WEB po lewej stronie.
  2. Kliknij usługę sieci Web. Klucz interfejsu API znajduje się na karcie PULPIT NAWIGACYJNY.

Nawiązywanie połączenia z usługą sieci Web Machine Learning

Możesz nawiązać połączenie z usługą sieci Web Machine Learning przy użyciu dowolnego języka programowania obsługującego żądanie HTTP i odpowiedź. Przykłady można wyświetlić w językach C#, Python i R na stronie pomocy usługi internetowej Machine Learning.

Interfejs API usługi Machine Learning pomaga w tworzeniu pomocy interfejsu API usługi Machine Learning podczas wdrażania usługi internetowej. Zobacz Samouczek 3. Wdrażanie modelu ryzyka kredytowego. Pomoc interfejsu API usługi Machine Learning zawiera szczegółowe informacje o usłudze sieci Web przewidywania.

  1. Kliknij usługę sieci Web, z którą pracujesz.
  2. Kliknij punkt końcowy, dla którego chcesz wyświetlić stronę pomocy interfejsu API.
  3. W górnym menu kliknij pozycję Zużyj.
  4. Kliknij stronę pomocy interfejsu API w obszarze Punktów końcowych Żądania i Wykonywanie wsadowe.

Aby wyświetlić pomoc interfejsu API usługi Machine Learning dla nowej usługi internetowej

W portalu usług sieci Web usługi Machine Learning:

  1. Kliknij pozycję USŁUGI SIECI WEB w górnym menu.
  2. Kliknij usługę sieci Web, dla której chcesz pobrać klucz.

Kliknij pozycję Użyj usługi sieci Web, aby pobrać identyfikatory URI dla usług Request-Response i Batch Execution Services oraz przykładowy kod w języku C#, R i Python.

Kliknij pozycję Swagger API , aby uzyskać dokumentację opartą na strukturze Swagger dla interfejsów API wywoływanych z podanych identyfikatorów URI.

Przykład w języku C#

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj elementu ScoreData z przekazywaniem elementu HttpClient . ScoreData zawiera element FeatureVector, nwymiarowy wektor cech liczbowych reprezentujący współczynnik ScoreData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.

Aby nawiązać połączenie z usługą sieci Web Machine Learning, należy zainstalować pakiet NuGet Microsoft.AspNet.WebApi.Client .

Instalowanie pakietu NuGet Microsoft.AspNet.WebApi.Client w programie Visual Studio

  1. Opublikuj zestaw danych Download from UCI: Adult 2 class dataset Web Service (Pobierz zestaw danych z UCI: usługa internetowa dla dorosłych 2 klasy).
  2. Kliknij pozycję Narzędzia>Menedżer pakietów NuGet>Konsola menedżera pakietów.
  3. Wybierz pozycję Install-Package Microsoft.AspNet.WebApi.Client.

Aby uruchomić przykładowy kod

  1. Opublikuj eksperyment "Sample 1: Download dataset from UCI: Adult 2 class dataset" (Przykład 1: pobieranie zestawu danych z uci: zestaw danych klasy dla dorosłych), część kolekcji przykładów usługi Machine Learning.
  2. Przypisz wartość apiKey przy użyciu klucza z usługi sieci Web. Zobacz Pobieranie klucza autoryzacji powyżej.
  3. Przypisz identyfikator serviceUri za pomocą identyfikatora URI żądania.

Oto, jak będzie wyglądać pełne żądanie.

using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace CallRequestResponseService
{
    class Program
    {
        static void Main(string[] args)
        {
            InvokeRequestResponseService().Wait();
        }

        static async Task InvokeRequestResponseService()
        {
            using (var client = new HttpClient())
            {
                var scoreRequest = new
                {
                    Inputs = new Dictionary<string, List<Dictionary<string, string>>> () {
                        {
                            "input1",
                            // Replace columns labels with those used in your dataset
                            new List<Dictionary<string, string>>(){new Dictionary<string, string>(){
                                    {
                                        "column1", "value1"
                                    },
                                    {
                                        "column2", "value2"
                                    },
                                    {
                                        "column3", "value3"
                                    }
                                }
                            }
                        },
                    },
                    GlobalParameters = new Dictionary<string, string>() {}
                };

                // Replace these values with your API key and URI found on https://services.azureml.net/
                const string apiKey = "<your-api-key>"; 
                const string apiUri = "<your-api-uri>";
                
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", apiKey);
                client.BaseAddress = new Uri(apiUri);

                // WARNING: The 'await' statement below can result in a deadlock
                // if you are calling this code from the UI thread of an ASP.NET application.
                // One way to address this would be to call ConfigureAwait(false)
                // so that the execution does not attempt to resume on the original context.
                // For instance, replace code such as:
                //      result = await DoSomeTask()
                // with the following:
                //      result = await DoSomeTask().ConfigureAwait(false)

                HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest);

                if (response.IsSuccessStatusCode)
                {
                    string result = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("Result: {0}", result);
                }
                else
                {
                    Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));

                    // Print the headers - they include the request ID and the timestamp,
                    // which are useful for debugging the failure
                    Console.WriteLine(response.Headers.ToString());

                    string responseContent = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseContent);
                }
            }
        }
    }
}

Przykład języka Python

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj biblioteki urllib2 dla języka Python 2.X i biblioteki urllib.request dla języka Python 3.X. Przekażesz wynik ScoreData, który zawiera element FeatureVector, nwymiarowy wektor cech liczbowych reprezentujących wartość ScoreData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.

Aby uruchomić przykładowy kod

  1. Wdróż eksperyment "Sample 1: Download dataset from UCI: Adult 2 class dataset" (Przykład 1: pobieranie zestawu danych z uci: zestaw danych klasy dla dorosłych), część kolekcji przykładów usługi Machine Learning.
  2. Przypisz wartość apiKey przy użyciu klucza z usługi sieci Web. Zobacz sekcję Pobieranie klucza autoryzacji na początku tego artykułu.
  3. Przypisz identyfikator serviceUri za pomocą identyfikatora URI żądania.

Oto, jak będzie wyglądać pełne żądanie.

import urllib2 # urllib.request and urllib.error for Python 3.X
import json

data = {
    "Inputs": {
        "input1":
        [
            {
                'column1': "value1",   
                'column2': "value2",   
                'column3': "value3"
            }
        ],
    },
    "GlobalParameters":  {}
}

body = str.encode(json.dumps(data))

# Replace this with the URI and API Key for your web service
url = '<your-api-uri>'
api_key = '<your-api-key>'
headers = {'Content-Type':'application/json', 'Authorization':('Bearer '+ api_key)}

# "urllib.request.Request(url, body, headers)" for Python 3.X
req = urllib2.Request(url, body, headers)

try:
    # "urllib.request.urlopen(req)" for Python 3.X
    response = urllib2.urlopen(req)

    result = response.read()
    print(result)
# "urllib.error.HTTPError as error" for Python 3.X
except urllib2.HTTPError, error: 
    print("The request failed with status code: " + str(error.code))

    # Print the headers - they include the request ID and the timestamp, which are useful for debugging the failure
    print(error.info())
    print(json.loads(error.read())) 

Przykład języka R

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj bibliotek RCurl i rjson , aby wysłać żądanie i przetworzyć zwróconą odpowiedź JSON. Przekażesz wynik ScoreData, który zawiera element FeatureVector, nwymiarowy wektor cech liczbowych reprezentujących wartość ScoreData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.

Oto, jak będzie wyglądać pełne żądanie.

library("curl")
library("httr")
library("rjson")

requestFailed = function(response) {
    return (response$status_code >= 400)
}

printHttpResult = function(response, result) {
    if (requestFailed(response)) {
        print(paste("The request failed with status code:", response$status_code, sep=" "))
    
        # Print the headers - they include the request ID and the timestamp, which are useful for debugging the failure
        print(response$headers)
    }
    
    print("Result:") 
    print(fromJSON(result))  
}

req = list(
        Inputs = list( 
            "input1" = list(
                "ColumnNames" = list("Col1", "Col2", "Col3"),
                "Values" = list( list( "0", "value", "0" ),  list( "0", "value", "0" )  )
            )                ),
        GlobalParameters = setNames(fromJSON('{}'), character(0))
)

body = enc2utf8(toJSON(req))
api_key = "abc123" # Replace this with the API key for the web service
authz_hdr = paste('Bearer', api_key, sep=' ')

response = POST(url= "<your-api-uri>",
        add_headers("Content-Type" = "application/json", "Authorization" = authz_hdr),
        body = body)

result = content(response, type="text", encoding="UTF-8")

printHttpResult(response, result)

Przykład w języku JavaScript

Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj pakietu npm żądania w projekcie. Obiekt będzie również używany JSON do formatowania danych wejściowych i analizowania wyniku. Zainstaluj przy użyciu polecenia npm install request --savelub dodaj "request": "*" do package.json w obszarze dependencies i uruchom polecenie npm install.

Oto, jak będzie wyglądać pełne żądanie.

let req = require("request");

const uri = "<your-api-uri>";
const apiKey = "<your-api-key>";

let data = {
    "Inputs": {
        "input1":
        [
            {
                'column1': "value1",
                'column2': "value2",
                'column3': "value3"
            }
        ],
    },
    "GlobalParameters": {}
}

const options = {
    uri: uri,
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + apiKey,
    },
    body: JSON.stringify(data)
}

req(options, (err, res, body) => {
    if (!err && res.statusCode == 200) {
        console.log(body);
    } else {
        console.log("The request failed with status code: " + res.statusCode);
    }
});