1. Przegląd
W tym laboratorium użyjesz Vertex AI do wytrenowania i udostępnienia modelu z danymi tabelarycznymi. Jest to najnowsza usługa AI w Google Cloud, która jest obecnie dostępna w wersji testowej.
Czego się dowiesz
Poznasz takie zagadnienia jak:
- Przesyłanie zarządzanego zbioru danych do Vertex AI
- Trenowanie modelu za pomocą AutoML
- Wdrożenie wytrenowanego modelu AutoML w punkcie końcowym i używanie tego punktu końcowego do uzyskiwania prognoz
Całkowity koszt ukończenia tego laboratorium w Google Cloud wynosi około 22 USD.
2. Wprowadzenie do Vertex AI
W tym module wykorzystujemy najnowszą ofertę produktów AI dostępną w Google Cloud. Vertex AI integruje oferty ML w Google Cloud, zapewniając płynne środowisko programistyczne. Wcześniej modele wytrenowane za pomocą AutoML i modele niestandardowe były dostępne w ramach osobnych usług. Nowa oferta łączy je w jeden interfejs API wraz z innymi nowymi usługami. Możesz też przeprowadzić migrację istniejących projektów do Vertex AI. Jeśli masz jakieś uwagi, odwiedź stronę pomocy.
Vertex AI obejmuje wiele różnych usług, które obsługują kompleksowe przepływy pracy związane z uczeniem maszynowym. To laboratorium skupi się na produktach wymienionych poniżej: AutoML do danych w formie tabeli, Prognozowanie i Workbench.

3. Konfigurowanie środowiska
Aby wykonać to ćwiczenie, musisz mieć projekt w Google Cloud Platform z włączonymi płatnościami. Aby utworzyć projekt, postępuj zgodnie z instrukcjami.
Krok 1. Włącz interfejs Compute Engine API
Przejdź do Compute Engine i kliknij Włącz, jeśli nie jest jeszcze włączona. Będzie Ci potrzebny do utworzenia instancji notatnika.
Krok 2. Włącz interfejs Vertex AI API
Otwórz sekcję Vertex AI w konsoli Cloud i kliknij Włącz interfejs Vertex AI API.

Krok 3. Tworzenie instancji Vertex AI Workbench
W sekcji Vertex AI w konsoli Cloud kliknij Workbench:

Następnie w sekcji Notatniki zarządzane przez użytkownika kliknij Nowy notatnik:

Następnie wybierz najnowszą wersję typu instancji TensorFlow Enterprise (z LTS) bez procesorów graficznych:

Użyj opcji domyślnych, a potem kliknij Utwórz.
Krok 5. Otwórz notatnik
Po utworzeniu instancji wybierz Otwórz JupyterLab:

Dane, których użyjemy do wytrenowania modelu, pochodzą z tego zbioru danych dotyczących wykrywania oszustw związanych z kartami kredytowymi. Użyjemy wersji tego zbioru danych udostępnionej publicznie w BigQuery.
4. Tworzenie zarządzanego zbioru danych
W Vertex AI możesz tworzyć zarządzane zbiory danych dla różnych typów danych. Następnie możesz wygenerować statystyki dotyczące tych zbiorów danych i użyć ich do trenowania modeli za pomocą AutoML lub własnego kodu modelu niestandardowego.
Krok 1. Utwórz zbiór danych
W menu Vertex w konsoli wybierz Zbiory danych:

W tym laboratorium zbudujemy model wykrywania oszustw, który będzie określać, czy dana transakcja kartą kredytową powinna zostać zaklasyfikowana jako oszustwo.
Na stronie Zbiory danych nadaj zbiorowi danych nazwę, a potem kliknij kolejno Tabelaryczny i Regresja/klasyfikacja. Następnie utwórz zbiór danych:

Dane do zarządzanych zbiorów danych w Vertex możesz importować na kilka sposobów:
- Przesyłanie pliku lokalnego z komputera
- Wybieranie plików z Cloud Storage
- Wybieranie danych z BigQuery
W tym przypadku będziemy przesyłać dane z publicznej tabeli BigQuery.
Krok 2. Importowanie danych z BigQuery
Jako metodę importu wybierz „Wybierz tabelę lub widok z BigQuery”, a następnie skopiuj poniższy tekst do pola Tabela BigQuery: bigquery-public-data.ml_datasets.ulb_fraud_detection. Następnie kliknij Dalej:

Po zaimportowaniu zbioru danych powinien pojawić się ekran podobny do tego:

Jeśli chcesz, możesz kliknąć Wygeneruj statystyki, aby wyświetlić dodatkowe informacje o tym zbiorze danych, ale nie jest to wymagane przed przejściem do następnego kroku. Ten zbiór danych zawiera prawdziwe transakcje kartą kredytową. Większość nazw kolumn została ukryta, dlatego są one nazywane V1, V2 itp.
5. Trenowanie modelu za pomocą AutoML
Po przesłaniu zarządzanego zbioru danych możemy wytrenować model na podstawie tych danych. Wytrenujemy model klasyfikacji, który będzie prognozować, czy dana transakcja jest oszustwem. Vertex AI oferuje 2 opcje trenowania modeli:
- AutoML trenowanie wysokiej jakości modeli przy minimalnym nakładzie pracy i bez specjalistycznej wiedzy z tej dziedziny.
- Trenowanie niestandardowe: uruchamiaj w chmurze niestandardowe aplikacje do trenowania, korzystając z jednego z gotowych kontenerów Google Cloud lub własnego.
W tym laboratorium użyjemy AutoML do trenowania.
Krok 1. Uruchom zadanie trenowania
Na stronie szczegółów zbioru danych, na której skończyliśmy w poprzednim kroku, kliknij Trenuj nowy model w prawym górnym rogu. Jako cel wybierz Klasyfikacja, pozostaw zaznaczoną opcję AutoML w przypadku trenowania modelu, a następnie kliknij Dalej:

Nadaj modelowi nazwę lub użyj nazwy domyślnej. W sekcji Kolumna docelowa wybierz Klasa. Jest to liczba całkowita wskazująca, czy dana transakcja była oszukańcza (0 – nieoszukańcza, 1 – oszukańcza).
Następnie kliknij Dalej:

W tym kroku przewiń w dół i kliknij, aby rozwinąć Opcje zaawansowane. Ten zbiór danych jest mocno niezrównoważony (mniej niż 1% danych zawiera transakcje oszukańcze), więc wybierz opcję AUC PRC, która maksymalizuje precyzję i czułość w przypadku mniej popularnej klasy:

Kliknij Dalej, a potem przejdź do ostatniego kroku (Obliczenia i ceny). Wpisz tutaj 1 jako liczbę godzin węzła w budżecie i pozostaw włączone wczesne zatrzymywanie. Trenowanie modelu AutoML przez 1 godzinę obliczeniową to zwykle dobry początek, aby sprawdzić, czy istnieje związek między wybranymi przez Ciebie cechami a etykietą. Możesz tam zmodyfikować funkcje i trenować model dłużej, aby zwiększyć jego wydajność. Następnie kliknij Rozpocznij trenowanie.
Gdy zadanie trenowania się zakończy, otrzymasz e-maila. Trenowanie potrwa nieco ponad godzinę, ponieważ trzeba uwzględnić czas potrzebny na uruchomienie i zamknięcie zasobów.
6. Poznaj wskaźniki oceny modelu
W tym kroku sprawdzimy, jak działa nasz model.
Po zakończeniu zadania trenowania modelu otwórz kartę Modele w Vertex. Kliknij wytrenowany model i otwórz kartę Ocena. Istnieje wiele wskaźników oceny, ale my skupimy się na 2: macierzy pomyłek i ważności cech.
Krok 1. Zapoznaj się z tablicą pomyłek
Macierz pomyłek pokazuje odsetek przykładów z każdej klasy w zbiorze testowym, które model prawidłowo przewidział. W przypadku niezrównoważonego zbioru danych, takiego jak ten, z którym mamy do czynienia, jest to lepsza miara wydajności modelu niż ogólna dokładność.
Pamiętaj, że mniej niż 1% przykładów w naszym zbiorze danych to transakcje oszukańcze, więc jeśli dokładność naszego modelu wynosi 99%, istnieje duże prawdopodobieństwo, że w 99% przypadków losowo zgaduje klasę transakcji nieoszukańczych. Dlatego lepszym wskaźnikiem jest w tym przypadku dokładność modelu w przypadku każdej klasy.
Jeśli przewiniesz w dół kartę Ocena, zobaczysz macierz pomyłek podobną do tej (dokładne wartości procentowe mogą się różnić):

Tablica pomyłek pokazuje, że nasz początkowy model jest w stanie prawidłowo sklasyfikować 85% przykładów oszustw w naszym zbiorze testowym. To całkiem niezły wynik, zwłaszcza biorąc pod uwagę znaczną nierównowagę w naszym zbiorze danych. Następnie możemy spróbować trenować model przez więcej godzin obliczeniowych, aby sprawdzić, czy uda nam się uzyskać wynik lepszy niż 85%.
Krok 2. Sprawdzanie ważności funkcji
Pod macierzą pomyłek powinien być widoczny wykres ważności cech podobny do tego:

Pokazuje to, które cechy dostarczyły naszemu modelowi najsilniejszego sygnału podczas generowania prognoz. Ważność funkcji to jeden z rodzajów wyjaśnialnej AI – dziedziny, która obejmuje różne metody uzyskiwania większej ilości informacji o tym, jak model ML tworzy prognozy. Wykres znaczenia cech widoczny tutaj jest obliczany jako suma na podstawie wszystkich prognoz modelu w zbiorze testowym. Pokazuje najważniejsze cechy w przypadku wielu przykładów.
Ten wykres byłby ciekawszy, gdyby większość elementów w naszym zbiorze danych nie była zasłonięta. Możemy na przykład dowiedzieć się, że największym wskaźnikiem oszustwa był typ transakcji (przelew, wpłata itp.).
W rzeczywistości wartości ważności cech mogą pomóc nam ulepszyć model i zwiększyć zaufanie do jego prognoz. Podczas następnego trenowania modelu możemy zdecydować się na usunięcie najmniej istotnych cech lub połączenie 2 ważniejszych cech w cechę złożoną, aby sprawdzić, czy poprawi to skuteczność modelu.
Sprawdzamy tu ważność cech w przypadku wsadu, ale w Vertex AI możemy też uzyskać ważność cech dla poszczególnych prognoz. Gdy wdrożymy model, zobaczymy, jak to zrobić.
7. Wdrażanie modelu w punkcie końcowym
Po wytrenowaniu modelu kolejnym krokiem jest utworzenie punktu końcowego w Vertex. Z zasobem Model w Vertex AI może być powiązanych wiele punktów końcowych, a ruch można dzielić między nimi.
Krok 1. Tworzenie punktu końcowego
Na stronie modelu otwórz kartę Wdróż i przetestuj i kliknij Wdróż w punkcie końcowym:

Nadaj punktowi końcowemu nazwę, np. fraud_v1, pozostaw ustawienie Dostępu na Standardowy i kliknij Dalej.
Pozostaw domyślne ustawienia podziału ruchu i typu maszyny, kliknij Gotowe, a potem Dalej.
Nie będziemy używać monitorowania modelu w tym punkcie końcowym, więc możesz pozostawić to pole niezaznaczone i kliknąć Wdróż. Wdrożenie punktu końcowego może potrwać kilka minut. Gdy proces dobiegnie końca, obok niego pojawi się zielony znacznik wyboru:

Jesteś coraz bliżej. Teraz możesz uzyskać prognozy na podstawie wdrożonego modelu.
8. Uzyskiwanie prognoz z wdrożonego modelu
Prognozy modelu możesz uzyskać na kilka sposobów:
- Interfejs Vertex AI
- Vertex AI API
Obie te opcje wyświetlimy tutaj.
Krok 1. Uzyskiwanie prognoz modelu w interfejsie
Na stronie modelu, na której wyświetlany jest punkt końcowy (w miejscu, w którym skończyliśmy w ostatnim kroku), przewiń w dół do sekcji Testowanie modelu:

Vertex AI wybrał losowe wartości dla każdej cechy naszego modelu, których możemy użyć do uzyskania prognozy testowej. Jeśli chcesz, możesz zmienić te wartości. Przewiń stronę w dół i kliknij Wykonaj prognozę.
W sekcji Wynik prognozy na stronie powinny być widoczne prognozowane przez model wartości procentowe dla każdej klasy. Wynik ufności 0.99 dla klasy 0 oznacza na przykład, że model uważa, że w 99% przypadków ten przykład nie jest oszustwem.
Krok 2. Uzyskiwanie prognoz modelu za pomocą interfejsu Vertex AI API
Interfejs użytkownika to świetny sposób na sprawdzenie, czy wdrożony punkt końcowy działa zgodnie z oczekiwaniami, ale prawdopodobnie będziesz chcieć uzyskiwać prognozy dynamicznie za pomocą wywołania interfejsu API REST. Aby pokazać, jak uzyskać prognozy modelu, użyjemy instancji Vertex Workbench utworzonej na początku tego modułu.
Następnie otwórz utworzoną instancję notatnika i otwórz notatnik w Pythonie 3 z menu z aplikacjami:

Aby zainstalować pakiet SDK Vertex, w komórce notatnika uruchom to polecenie:
!pip3 install google-cloud-aiplatform --upgrade --user
Następnie dodaj komórkę w notatniku, aby zaimportować pakiet SDK i utworzyć odwołanie do właśnie wdrożonego punktu końcowego:
from google.cloud import aiplatform
endpoint = aiplatform.Endpoint(
endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)
W powyższym ciągu endpoint_name musisz zastąpić 2 wartości numerem projektu i punktem końcowym. Numer projektu znajdziesz w panelu informacyjnym projektu.
Identyfikator punktu końcowego znajdziesz w sekcji punktów końcowych w konsoli:

Na koniec utwórz prognozę dla punktu końcowego, kopiując i uruchamiając w nowej komórce poniższy kod:
test_instance={
'Time': 80422,
'Amount': 17.99,
'V1': -0.24,
'V2': -0.027,
'V3': 0.064,
'V4': -0.16,
'V5': -0.152,
'V6': -0.3,
'V7': -0.03,
'V8': -0.01,
'V9': -0.13,
'V10': -0.18,
'V11': -0.16,
'V12': 0.06,
'V13': -0.11,
'V14': 2.1,
'V15': -0.07,
'V16': -0.033,
'V17': -0.14,
'V18': -0.08,
'V19': -0.062,
'V20': -0.08,
'V21': -0.06,
'V22': -0.088,
'V23': -0.03,
'V24': 0.01,
'V25': -0.04,
'V26': -0.99,
'V27': -0.13,
'V28': 0.003
}
response = endpoint.predict([test_instance])
print('API response: ', response)
W przypadku klasy 0 powinna pojawić się prognoza w okolicach .67, co oznacza, że model uważa, że istnieje 67% szans, że ta transakcja nie jest oszustwem.
🎉 Gratulacje! 🎉
Dowiedziałeś się, jak używać Vertex AI do:
- Przesyłanie zarządzanego zbioru danych
- Trenowanie i ocenianie modelu na podstawie danych tabelarycznych za pomocą AutoML
- Wdrażanie modelu w punkcie końcowym
- Uzyskiwanie prognoz w punkcie końcowym modelu za pomocą pakietu SDK Vertex
Więcej informacji o poszczególnych częściach Vertex AI znajdziesz w dokumentacji.
9. Czyszczenie
Jeśli chcesz nadal korzystać z notatnika utworzonego w tym module, zalecamy wyłączanie go, gdy nie jest używany. W interfejsie Workbench w konsoli Cloud wybierz notatnik, a następnie kliknij Zatrzymaj.
Jeśli chcesz całkowicie usunąć notatnik, kliknij przycisk Usuń w prawym górnym rogu.
Aby usunąć wdrożony punkt końcowy, otwórz sekcję Punkty końcowe w konsoli Vertex AI i wycofaj wdrożenie modelu z punktu końcowego:

Aby usunąć zasobnik Storage, w menu nawigacyjnym w konsoli Cloud otwórz Storage, wybierz zasobnik i kliknij Usuń:
