Samouczek: Projektant — wdrażanie modelu uczenia maszynowego

Użyj projektanta, aby wdrożyć model uczenia maszynowego, aby przewidzieć cenę samochodów. Niniejszy samouczek jest drugą częścią dwuczęściowej serii.

Uwaga

Projektant obsługuje dwa typy składników, wstępnie utworzone składniki klasyczne (wersja 1) i składniki niestandardowe (wersja 2). Te dwa typy składników nie są zgodne.

Klasyczne wstępnie utworzone składniki udostępniają wstępnie utworzone składniki na potrzeby przetwarzania danych i tradycyjnych zadań uczenia maszynowego, takich jak regresja i klasyfikacja. Ten typ składników nadal jest obsługiwany, ale nie będą do niego dodawane żadne nowego składniki.

Składniki niestandardowe umożliwiają opakowywanie własnego kodu jako składnika. Obsługuje udostępnianie składników między obszarami roboczymi i bezproblemowe tworzenie w interfejsach programu Studio, interfejsu wiersza polecenia w wersji 2 i zestawu SDK w wersji 2.

W przypadku nowych projektów zdecydowanie zalecamy użycie składnika niestandardowego, który jest zgodny z usługą AzureML w wersji 2 i będzie nadal otrzymywać nowe aktualizacje.

Ten artykuł dotyczy klasycznych wstępnie utworzonych składników i nie jest zgodny z interfejsem wiersza polecenia w wersji 2 i zestawem SDK w wersji 2.

W części jednego z samouczków wytrenujesz model regresji liniowej na podstawie cen samochodów. W drugiej części wdrożysz model, aby dać innym możliwość korzystania z niego. W tym samouczku zostały wykonane następujące czynności:

  • Utwórz potok wnioskowania w czasie rzeczywistym.
  • Utwórz klaster wnioskowania.
  • Wdróż punkt końcowy w czasie rzeczywistym.
  • Przetestuj punkt końcowy w czasie rzeczywistym.

Wymagania wstępne

Ukończ część jedną z samouczków , aby dowiedzieć się, jak trenować i oceniać model uczenia maszynowego w projektancie.

Ważne

Jeśli nie widzisz elementów graficznych wymienionych w tym dokumencie, takich jak przyciski w studio lub projektancie, być może nie masz odpowiedniego poziomu uprawnień do obszaru roboczego. Skontaktuj się z administratorem subskrypcji platformy Azure, aby sprawdzić, czy udzielono Ci poprawnego poziomu dostępu. Aby uzyskać więcej informacji, zobacz Zarządzanie użytkownikami i rolami.

Tworzenie potoku wnioskowania w czasie rzeczywistym

Aby wdrożyć potok, należy najpierw przekonwertować potok trenowania na potok wnioskowania w czasie rzeczywistym. Ten proces powoduje usunięcie składników trenowania i dodanie danych wejściowych i wyjściowych usługi internetowej w celu obsługi żądań.

Uwaga

Potok wnioskowania tworzenia obsługuje tylko potoki trenowania, które zawierają tylko wbudowane składniki projektanta i muszą mieć składnik, taki jak Train Model (Trenowanie modelu ), który generuje wytrenowany model.

Tworzenie potoku wnioskowania w czasie rzeczywistym

  1. Na stronie szczegółów zadania potoku nad kanwą potoku wybierz pozycję Utwórz potok wnioskowania>w czasie rzeczywistym.

    Zrzut ekranu przedstawiający tworzenie potoku wnioskowania na stronie szczegółów zadania potoku.

    Nowy potok będzie teraz wyglądać następująco:

    Zrzut ekranu przedstawiający oczekiwaną konfigurację potoku po przygotowaniu go do wdrożenia.

    Po wybraniu pozycji Utwórz potok wnioskowania następuje kilka rzeczy:

    • Wytrenowany model jest przechowywany jako składnik zestawu danych w palecie składników. Możesz go znaleźć w obszarze Moje zestawy danych.
    • Składniki trenowania, takie jak Train Model (Trenowanie modelu ) i Split Data (Podział danych), są usuwane.
    • Zapisany wytrenowany model jest dodawany z powrotem do potoku.
    • Dodawane są składniki Web Service Input i Web Service Output. Te składniki pokazują, gdzie dane użytkownika wchodzą do potoku i gdzie są zwracane dane.

    Uwaga

    Domyślnie dane wejściowe usługi sieci Web będą oczekiwać tego samego schematu danych, co dane wyjściowe składnika, które łączą się z tym samym portem podrzędnym co dane wyjściowe. W tym przykładzie dane wejściowe usługi internetowej i dane cen samochodów (nieprzetworzone) łączą się z tym samym składnikiem podrzędnym, dlatego dane wejściowe usługi sieci Web oczekują tego samego schematu danych co dane cen samochodów (nieprzetworzone) i kolumna price zmiennej docelowej jest uwzględniona w schemacie. Jednak zwykle podczas oceniania danych nie wiadomo wartości zmiennych docelowych. W takim przypadku można usunąć kolumnę zmiennej docelowej w potoku wnioskowania przy użyciu składnika Select Columns in Dataset (Wybieranie kolumn w zestawie danych ). Upewnij się, że dane wyjściowe polecenia Select Columns in Dataset (Wybieranie kolumn w zestawie danych ) usuwające zmienną docelową są połączone z tym samym portem co dane wyjściowe składnika Web Service Input .

  2. Wybierz pozycję Prześlij i użyj tego samego docelowego obiektu obliczeniowego i eksperymentu, który został użyty w części 1.

    Jeśli jest to pierwsze zadanie, ukończenie działania potoku może potrwać do 20 minut. Domyślne ustawienia obliczeniowe mają minimalny rozmiar węzła wynoszący 0, co oznacza, że projektant musi przydzielić zasoby po bezczynności. Powtarzające się zadania potoku będą trwać krócej, ponieważ zasoby obliczeniowe są już przydzielone. Ponadto projektant używa buforowanych wyników dla każdego składnika w celu zwiększenia wydajności.

  3. Przejdź do szczegółów zadania potoku wnioskowania w czasie rzeczywistym, wybierając link Szczegóły zadania w okienku po lewej stronie.

  4. Wybierz pozycję Wdróż na stronie szczegółów zadania.

    Zrzut ekranu przedstawiający stronę szczegółów zadania wdrażania.

Tworzenie klastra wnioskowania

W wyświetlonym oknie dialogowym możesz wybrać dowolny istniejący klaster Azure Kubernetes Service (AKS), aby wdrożyć model. Jeśli nie masz klastra usługi AKS, wykonaj następujące kroki, aby je utworzyć.

  1. Wybierz pozycję Obliczenia w oknie dialogowym, które zostanie wyświetlone, aby przejść do strony Obliczenia .

  2. Na wstążce nawigacji wybierz pozycję Klastry> wnioskowania+ Nowe.

    Zrzut ekranu przedstawiający sposób uzyskiwania połączenia z nowym okienkiem klastra wnioskowania.

  3. W okienku klastra wnioskowania skonfiguruj nową usługę Kubernetes Service.

  4. Wprowadź wartość aks-compute dla nazwy obliczeniowej.

  5. Wybierz region w pobliżu, który jest dostępny dla regionu.

  6. Wybierz przycisk Utwórz.

    Uwaga

    Utworzenie nowej usługi AKS trwa około 15 minut. Stan aprowizacji można sprawdzić na stronie Klastry wnioskowania .

Wdrażanie punktu końcowego w czasie rzeczywistym

Po zakończeniu aprowizacji usługi AKS wróć do potoku wnioskowania w czasie rzeczywistym, aby ukończyć wdrażanie.

  1. Wybierz pozycję Wdróż nad kanwą.

  2. Wybierz pozycję Wdróż nowy punkt końcowy w czasie rzeczywistym.

  3. Wybierz utworzony klaster usługi AKS.

    Zrzut ekranu przedstawiający sposób konfigurowania nowego punktu końcowego w czasie rzeczywistym.

    Możesz również zmienić ustawienie Zaawansowane dla punktu końcowego w czasie rzeczywistym.

    Ustawienie zaawansowane Opis
    Włączanie diagnostyki i zbierania danych usługi Application Insights Czy włączyć aplikacja systemu Azure Insights w celu zbierania danych z wdrożonych punktów końcowych.
    Domyślnie: false.
    Limit czasu oceniania Limit czasu w milisekundach, który ma być wymuszany na potrzeby oceniania wywołań do usługi internetowej.
    Domyślnie: 60000.
    Włączone automatyczne skalowanie Określa, czy włączyć skalowanie automatyczne dla usługi internetowej.
    Domyślnie: true.
    Minimalna liczba replik Minimalna liczba kontenerów do użycia podczas skalowania automatycznego tej usługi internetowej.
    Domyślnie: 1.
    Maksymalna liczba replik Maksymalna liczba kontenerów do użycia podczas skalowania automatycznego tej usługi sieci Web.
    Domyślnie: 10.
    Wykorzystanie docelowe Wykorzystanie docelowe (w procentach na 100), które autoskalator powinien podjąć próbę utrzymania dla tej usługi internetowej.
    Domyślnie: 70.
    Okres odświeżania Jak często (w sekundach) autoskalator próbuje skalować tę usługę internetową.
    Domyślnie: 1.
    Pojemność rezerw procesora CPU Liczba rdzeni procesora CPU do przydzielenia dla tej usługi internetowej.
    Domyślnie: 0,1.
    Pojemność rezerw pamięci Ilość pamięci (w GB) do przydzielenia dla tej usługi sieci Web.
    Domyślnie: 0,5.
  4. Wybierz pozycję Wdróż.

    Po zakończeniu wdrażania zostanie wyświetlone powiadomienie o powodzeniu z centrum powiadomień. Może to potrwać kilka minut.

    Zrzut ekranu przedstawiający powiadomienie o wdrożeniu.

Porada

Możesz również wdrożyć w usłudze Azure Container Instance (ACI), jeśli wybierzesz pozycję Wystąpienie kontenera platformy Azure dla ustawienia Typ obliczeniowy w czasie rzeczywistym. Usługa Azure Container Instance jest używana do testowania lub programowania. Użyj usługi ACI dla obciążeń opartych na procesorach o niskiej skali, które wymagają mniej niż 48 GB pamięci RAM.

Testowanie punktu końcowego w czasie rzeczywistym

Po zakończeniu wdrażania możesz wyświetlić punkt końcowy w czasie rzeczywistym, przechodząc do strony Punkty końcowe .

  1. Na stronie Punkty końcowe wybierz wdrożony punkt końcowy.

    Na karcie Szczegóły można wyświetlić więcej informacji, takich jak identyfikator URI REST, definicja struktury Swagger, stan i tagi.

    Na karcie Użycie można znaleźć przykładowy kod użycia, klucze zabezpieczeń i ustawić metody uwierzytelniania.

    Na karcie Dzienniki wdrażania można znaleźć szczegółowe dzienniki wdrażania punktu końcowego w czasie rzeczywistym.

  2. Aby przetestować punkt końcowy, przejdź do karty Test . W tym miejscu możesz wprowadzić dane testowe i wybrać pozycję Testuj sprawdź dane wyjściowe punktu końcowego.

Aktualizowanie punktu końcowego w czasie rzeczywistym

Punkt końcowy online można zaktualizować przy użyciu nowego modelu wytrenowanego w projektancie. Na stronie szczegółów punktu końcowego online znajdź poprzednie zadanie potoku trenowania i zadanie potoku wnioskowania.

  1. Wersję roboczą potoku trenowania można znaleźć i zmodyfikować bezpośrednio na stronie głównej projektanta.

    Możesz też otworzyć link zadania potoku trenowania, a następnie sklonować go do nowej wersji roboczej potoku, aby kontynuować edycję.

    Zrzut ekranu przedstawiający link zadania trenowania na stronie szczegółów punktu końcowego.

  2. Po przesłaniu zmodyfikowanego potoku trenowania przejdź do strony szczegółów zadania.

  3. Po zakończeniu zadania kliknij prawym przyciskiem myszy pozycję Train Model (Trenowanie modelu ) i wybierz polecenie Register data (Zarejestruj dane).

    Zrzut ekranu przedstawiający rejestrowanie wytrenowanego modelu jako zestawu danych.

    Nazwa danych wejściowych i wybierz pozycję Typ pliku .

    Zrzut ekranu przedstawiający rejestrację jako zasób danych z wybranym nowym zasobem danych.

  4. Po pomyślnym zarejestrowaniu zestawu danych otwórz wersję roboczą potoku wnioskowania lub sklonuj poprzednie zadanie potoku wnioskowania do nowej wersji roboczej. W wersji roboczej potoku wnioskowania zastąp poprzedni wytrenowany model wyświetlany jako węzeł MD-XXXX połączony ze składnikiem Score Model (Generowanie wyników dla modelu ) nowo zarejestrowanym zestawem danych.

    Zrzut ekranu przedstawiający sposób modyfikowania potoku wnioskowania.

  5. Jeśli musisz zaktualizować część przetwarzania wstępnego danych w potoku trenowania i chcesz zaktualizować to do potoku wnioskowania, przetwarzanie jest podobne do powyższych kroków.

    Wystarczy zarejestrować dane wyjściowe przekształcenia składnika przekształcenia jako zestaw danych.

    Następnie ręcznie zastąp potok wnioskowania składnika TD zarejestrowanym zestawem danych.

    Zrzut ekranu przedstawiający sposób zastępowania składnika przekształcania.

  6. Po zmodyfikowaniu potoku wnioskowania przy użyciu nowo wytrenowanego modelu lub przekształcenia prześlij go. Po zakończeniu zadania wdróż je w istniejącym punkcie końcowym online wdrożonym wcześniej.

    Zrzut ekranu przedstawiający sposób zastępowania istniejącego punktu końcowego w czasie rzeczywistym.

Ograniczenia

  • Ze względu na ograniczenie dostępu do magazynu danych, jeśli potok wnioskowania zawiera składnik Importuj dane lub Eksportuj dane , zostaną one automatycznie usunięte podczas wdrażania do punktu końcowego w czasie rzeczywistym.

  • Jeśli masz zestawy danych w potoku wnioskowania w czasie rzeczywistym i chcesz wdrożyć je w punkcie końcowym w czasie rzeczywistym, obecnie ten przepływ obsługuje tylko zestawy danych zarejestrowane w magazynie danych obiektów blob . Jeśli chcesz używać zestawów danych z innych typów magazynów danych, możesz użyć opcji Wybierz kolumnę, aby nawiązać połączenie z początkowym zestawem danych z ustawieniami wybierania wszystkich kolumn, zarejestrować dane wyjściowe pozycji Wybierz kolumnę jako zestaw danych pliku, a następnie zastąpić początkowy zestaw danych w potoku wnioskowania w czasie rzeczywistym tym nowo zarejestrowanym zestawem danych.

  • Jeśli graf wnioskowania zawiera składnik "Wprowadź dane ręcznie", który nie jest połączony z tym samym portem co składnik "Dane wejściowe usługi internetowej", składnik "Wprowadź dane ręcznie" nie zostanie wykonany podczas przetwarzania wywołań HTTP. Obejściem jest zarejestrowanie danych wyjściowych tego składnika "Wprowadź dane ręcznie" jako zestawu danych, a następnie w wersji roboczej potoku wnioskowania zastąp składnik "Wprowadź dane ręcznie" zarejestrowanym zestawem danych.

    Zrzut ekranu przedstawiający sposób modyfikowania potoku wnioskowania zawierającego ręczne wprowadzanie danych.

Czyszczenie zasobów

Ważne

Utworzone zasoby możesz wykorzystać na potrzeby wymagań wstępnych innych samouczków i artykułów dotyczących usługi Azure Machine Learning.

Usuń wszystko

Jeśli nie planujesz używać żadnych utworzonych elementów, usuń całą grupę zasobów, aby nie ponosić żadnych opłat.

  1. W Azure Portal wybierz pozycję Grupy zasobów po lewej stronie okna.

    Usuwanie grupy zasobów w witrynie Azure Portal

  2. Na liście wybierz utworzoną grupę zasobów.

  3. Wybierz pozycję Usuń grupę zasobów.

Usunięcie grupy zasobów powoduje również usunięcie wszystkich zasobów utworzonych w projektancie.

Usuwanie pojedynczych zasobów

W projektancie, w którym utworzono eksperyment, usuń poszczególne zasoby, wybierając je, a następnie wybierając przycisk Usuń .

Docelowy obiekt obliczeniowy utworzony w tym miejscu automatycznie automatycznie skaluje do zera węzłów, gdy nie jest używany. Ta akcja jest podejmowana w celu zminimalizowania opłat. Jeśli chcesz usunąć docelowy obiekt obliczeniowy, wykonaj następujące kroki:

Usuwanie zasobów

Możesz wyrejestrować zestawy danych z obszaru roboczego, wybierając każdy zestaw danych i wyrejestrując.

Wyrejestrowywanie zestawu danych

Aby usunąć zestaw danych, przejdź do konta magazynu przy użyciu Azure Portal lub Eksplorator usługi Azure Storage i ręcznie usuń te zasoby.

Następne kroki

W tym samouczku przedstawiono kluczowe kroki tworzenia, wdrażania i korzystania z modelu uczenia maszynowego w projektancie. Aby dowiedzieć się więcej na temat korzystania z projektanta, zobacz następujące linki: