Wdrażanie Machine Learning Studio (klasycznej) sieci Web, które korzystają z modułów importowania i eksportowania danych

DOTYCZY:  Dotyczy. Machine Learning Studio (wersja klasyczna)  Nie dotyczy. Azure Machine Learning

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do Azure Machine Learning tej daty.

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

ML Studio (wersja klasyczna) zostanie wycofana i może nie zostać zaktualizowana w przyszłości.

Podczas tworzenia eksperymentu predykcyjnego zwykle dodaje się dane wejściowe i wyjściowe usługi internetowej. Podczas wdrażania eksperymentu użytkownicy mogą wysyłać i odbierać dane z usługi internetowej za pośrednictwem danych wejściowych i wyjściowych. W przypadku niektórych aplikacji dane użytkownika mogą być dostępne ze źródła danych lub mogą już znajdować się w zewnętrznym źródle danych, takim jak usługa Azure Blob Storage. W takich przypadkach nie muszą odczytywać i zapisywać danych przy użyciu danych wejściowych i wyjściowych usługi internetowej. Zamiast tego mogą używać usługi wykonywania wsadowego (BES, Batch Execution Service) do odczytywania danych ze źródła danych przy użyciu modułu Importuj dane i zapisu wyników oceniania w innej lokalizacji danych przy użyciu modułu Eksportuj dane.

Moduły Importuj dane i Eksportuj dane mogą odczytywać i zapisywać w różnych lokalizacjach danych, takich jak internetowy adres URL za pośrednictwem protokołu HTTP, zapytanie programu Hive, baza danych w usłudze Azure SQL Database, usługa Azure Table Storage, usługa Azure Blob Storage, źródło danych lub SQL Server danych.

W tym temacie użyto przykładu "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" (Przykład 5: uczenie, testowanie, ocena klasyfikacji binarnej: zestaw danych dla dorosłych) i przyjęto założenie, że zestaw danych został już załadowany do tabeli usługi Azure SQL o nazwie censusdata.

Tworzenie eksperymentu trenowania

Po otwarciu przykładu "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" (Przykład 5: uczenie, testowanie, ocena klasyfikacji binarnej: zestaw danych dla dorosłych) jest używany przykładowy zestaw danych klasyfikacji binarnej dochodów dla dorosłych. Eksperyment na kanwie będzie wyglądać podobnie jak na poniższej ilustracji:

Początkowa konfiguracja eksperymentu.

Aby odczytać dane z tabeli Azure SQL tabeli:

  1. Usuń moduł zestawu danych.

  2. W polu wyszukiwania składników wpisz import.

  3. Na liście wyników dodaj moduł Import Data (Importuj dane) do obszaru roboczego eksperymentu.

  4. Połączenie dane wyjściowe modułu Import danych są danymi wejściowymi modułu Clean Missing Data (Czyszczenie brakujących danych).

  5. W okienku właściwości wybierz pozycję Azure SQL Database liście rozwijanej Źródło danych.

  6. W polach Nazwa serwera bazy danych, Nazwa bazy danych, Nazwa użytkownika i Hasło wprowadź odpowiednie informacje dla bazy danych.

  7. W polu Zapytanie bazy danych wprowadź następujące zapytanie.

     select [age],
        [workclass],
        [fnlwgt],
        [education],
        [education-num],
        [marital-status],
        [occupation],
        [relationship],
        [race],
        [sex],
        [capital-gain],
        [capital-loss],
        [hours-per-week],
        [native-country],
        [income]
     from dbo.censusdata;
    
  8. W dolnej części obszaru roboczego eksperymentu kliknij pozycję Uruchom.

Tworzenie eksperymentu predykcyjnego

Następnie skonfiguruj eksperyment predykcyjny, z którego wdrożysz usługę internetową.

  1. W dolnej części obszaru roboczego eksperymentu kliknij pozycję Set Up Web Service (Skonfiguruj usługę internetową) i wybierz pozycję Predictive Web Service [Recommended] (Predykcyjna usługa internetowa [zalecana]).
  2. Usuń moduły Web Service Input (Dane wejściowe usługi internetowej) i Web Service Output (Dane wyjściowe usługi internetowej) z eksperymentu predykcyjnego.
  3. W polu wyszukiwania składników wpisz export.
  4. Na liście wyników dodaj moduł Eksportuj dane do obszaru roboczego eksperymentu.
  5. Połączenie modułu Score Model (Ocena modelu) dane wejściowe modułu Export Data (Eksportowanie danych).
  6. W okienku właściwości wybierz Azure SQL Database na liście rozwijanej miejsca docelowego danych.
  7. W polach Nazwa serwera bazy danych, Nazwa bazy danych, Nazwa konta użytkownika serwera i Hasło konta użytkownika serwera wprowadź odpowiednie informacje dla bazy danych.
  8. W polu Rozdzielana przecinkami lista kolumn do zapisania wpisz Scored Labels (Etykiety z wynikami).
  9. W polu Nazwa tabeli danych wpisz dbo. ScoredLabels(Etykiety z wynikami). Jeśli tabela nie istnieje, jest tworzona podczas uruchamiania eksperymentu lub wywoływania usługi internetowej.
  10. W polu Lista kolumn tabeli danych rozdzielonych przecinkami wpisz ScoredLabels.

Podczas pisania aplikacji, która wywołuje końcową usługę internetową, możesz określić inne zapytanie wejściowe lub tabelę docelową w czasie wykonywania. Aby skonfigurować te dane wejściowe i wyjściowe, użyj funkcji Parametry usługi internetowej, aby ustawić właściwość Źródło danych modułu Importuj dane i właściwość miejsca docelowego danych trybu eksportowania danych. Aby uzyskać więcej informacji na temat parametrów usługi sieci Web, zobacz wpis Machine Learning Studio (classic) Web Service Parameters (Parametry usługi sieci Web w programie Cortana Intelligence and Machine Learning Blog).

Aby skonfigurować parametry usługi sieci Web dla zapytania importu i tabeli docelowej:

  1. W okienku właściwości modułu Import danych kliknij ikonę w prawym górnym rogu pola Zapytanie o bazę danych i wybierz pozycję Ustaw jako parametr usługi internetowej.
  2. W okienku właściwości modułu Eksportuj dane kliknij ikonę w prawym górnym rogu pola Nazwa tabeli danych i wybierz pozycję Ustaw jako parametr usługi internetowej.
  3. W dolnej części okienka właściwości modułu Eksportuj dane w sekcji Parametry usługi internetowej kliknij pozycję Zapytanie bazy danych i zmień jego nazwę na Zapytanie.
  4. Kliknij pozycję Nazwa tabeli danych i zmień jej nazwę na Tabela.

Gdy wszystko będzie gotowe, eksperyment powinien wyglądać podobnie jak na poniższej ilustracji:

Końcowy wygląd eksperymentu.

Teraz możesz wdrożyć eksperyment jako usługę internetową.

Wdrażanie usługi internetowej

Wdrożenie można wdrożyć w klasycznej lub nowej usłudze internetowej.

Wdrażanie klasycznej usługi internetowej

Aby wdrożyć usługę jako klasyczną usługę sieci Web i utworzyć aplikację, która będzie z niego korzystać:

  1. W dolnej części obszaru roboczego eksperymentu kliknij pozycję Uruchom.

  2. Po zakończeniu uruchamiania kliknij pozycję Deploy Web Service (Wd wdrażaj usługę internetową) i wybierz pozycję Deploy Web Service [Classic] (Wd wdrażaj usługę internetową [klasyczną]).

  3. Na pulpicie nawigacyjnym usługi internetowej znajdź klucz interfejsu API. Skopiuj go i zapisz do późniejszego użycia.

  4. W tabeli Domyślny punkt końcowy kliknij link Wykonywanie wsadowe, aby otworzyć stronę pomocy interfejsu API.

  5. W Visual Studio utwórz aplikację konsolową w języku C#: New > Project > Visual C# Windows Classic > Desktop Console > App (.NET Framework).

  6. Na stronie pomocy interfejsu API znajdź sekcję Przykładowy kod w dolnej części strony.

  7. Skopiuj i wklej przykładowy kod w języku C# do pliku Program.cs i usuń wszystkie odwołania do magazynu obiektów blob.

  8. Zaktualizuj wartość zmiennej apiKey za pomocą zapisanego wcześniej klucza interfejsu API.

  9. Znajdź deklarację żądania i zaktualizuj wartości parametrów usługi internetowej, które są przekazywane do modułów Import danych i Eksportuj dane. W tym przypadku należy użyć oryginalnego zapytania, ale zdefiniować nową nazwę tabeli.

    var request = new BatchExecutionRequest()
    {
        GlobalParameters = new Dictionary<string, string>() {
            { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" },
            { "Table", "dbo.ScoredTable2" },
        }
    };
    
  10. Uruchom aplikację.

Po zakończeniu uruchomienia do bazy danych zawierającej wyniki oceniania zostanie dodana nowa tabela.

Wdrażanie nowej usługi internetowej

Uwaga

Aby wdrożyć nową usługę sieci Web, musisz mieć wystarczające uprawnienia w subskrypcji, w której wdrażasz usługę internetową. Aby uzyskać więcej informacji, zobacz Manage a Web service using the Machine Learning Web Services portal (Zarządzanie usługą sieci Web przy użyciu portalu usług Machine Learning Sieci Web).

Aby wdrożyć jako nową usługę sieci Web i utworzyć aplikację, która będzie z niego korzystać:

  1. W dolnej części obszaru roboczego eksperymentu kliknij pozycję Uruchom.

  2. Po zakończeniu uruchamiania kliknij pozycję Wd wdrażaj usługę internetową i wybierz pozycję Wd wdrażaj usługę internetową [Nowa].

  3. Na stronie Deploy Experiment (Wdrażanie eksperymentu) wprowadź nazwę usługi internetowej, wybierz plan cenowy, a następnie kliknij przycisk Deploy (Wd wdrażaj).

  4. Na stronie Szybki start kliknij pozycję Consume (Zużyj).

  5. W sekcji Przykładowy kod kliknij pozycję Batch.

  6. W Visual Studio utwórz aplikację konsolową w języku C#: New > Project > Visual C# Windows Classic > Desktop Console > App (.NET Framework).

  7. Skopiuj i wklej przykładowy kod w języku C# do pliku Program.cs.

  8. Zaktualizuj wartość zmiennej apiKey przy użyciu klucza podstawowego znajdującego się w sekcji Podstawowe informacje o użyciu.

  9. Znajdź deklarację scoreRequest i zaktualizuj wartości parametrów usługi internetowej, które są przekazywane do modułów Import danych i Eksportuj dane. W tym przypadku należy użyć oryginalnego zapytania, ale zdefiniować nową nazwę tabeli.

    var scoreRequest = new
    {
        Inputs = new Dictionary<string, StringTable>()
        {
        },
        GlobalParameters = new Dictionary<string, string>() {
            { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" },
            { "Table", "dbo.ScoredTable3" },
        }
    };
    
  10. Uruchom aplikację.