Google PDE: Uczenie maszynowe, AI i serwowanie danych — Przewodnik do nauki
Część Google Professional Data Engineer — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Google, albo rozwiąż testy na czas na ExamRoll.io.
Przegląd
Budowanie produkcyjnej klasy systemów uczenia maszynowego i serwowania danych na Google Cloud wymaga zdyscyplinowanego modelowania danych, solidnych potoków (pipelines) i operacyjnych barier ochronnych (guardrails). Ta sekcja obejmuje tworzenie modeli w BigQuery ML, zarządzany cykl życia na Vertex AI (zbiory danych, trenowanie, potoki, punkty końcowe, inżynieria cech i monitorowanie), projektowanie ścieżki predykcji (wsadowa a online), magazyny cech (feature stores) i poprawność w punkcie w czasie (point-in-time correctness), etykietowanie i kontrolę obciążenia (bias), wyszukiwanie wektorowe i wzorce generowania rozszerzonego o wyszukiwanie (retrieval-augmented generation), śledzenie pochodzenia danych (lineage) i ład (governance), monitorowanie dryftu i wyzwalacze ponownego trenowania, warstwy serwujące analitykę oraz użycie danych z poszanowaniem prywatności. Nacisk kładziony jest na decyzje projektowe, strategie skalowania i typowe tryby awarii, których należy unikać.
BigQuery ML i Inżynieria Cech
BigQuery ML umożliwia trenowanie, ewaluację i predykcję bezpośrednio w SQL, eliminując przemieszczanie danych i dopasowując rozwój modelu do analitycznych zbiorów danych.
Tworzenie modelu: użyj CREATE MODEL z jawnymi kolumnami etykiet i transformacjami cech, aby uniknąć wycieku danych (leakage) i standaryzować dane wejściowe. Przykład: CREATE OR REPLACE MODEL ds.churn_model OPTIONS( model_type=‘logistic_reg’, input_label_cols=[‘churned’], l1_reg=0.0, l2_reg=1.0, data_split_method=‘AUTO’ ) TRANSFORM( standardize(tenure_months) AS tenure_std, quantile_bucketize(monthly_spend, 10) AS spend_bkt, one_hot_encoder(region) AS region_ohe, ml.feature_cross(struct(bucketize(lat, 60), bucketize(lon, 60))) AS latlon_cross, (xx + yy) AS r2 – dodaj wsparcie dla kołowej granicy decyzyjnej, gdy jest to przydatne ) AS SELECT churned, tenure_months, monthly_spend, region, lat, lon, x, y FROM ds.customer_features;
Ewaluacja: użyj ML.EVALUATE, aby uzyskać metryki odpowiednie dla typu modelu (np. ROC AUC dla klasyfikacji, RMSE dla regresji). Śledź wartości bazowe i przedziały ufności; utrzymuj zbiory danych ewaluacyjnych w porządku chronologicznym, aby przybliżyć przyszłą wydajność. SELECT * FROM ML.EVALUATE(MODEL ds.churn_model, TABLE ds.eval_features);
Predykcja: użyj ML.PREDICT do scoringu typu online w BigQuery lub eksportuj modele do serwowania w innym miejscu. Rozważ budżety opóźnień modelu, używając BigQuery do scoringu synchronicznego; dla API o wysokim QPS, wdrażaj na zarządzanych punktach końcowych (endpoints). SELECT user_id, predicted_churn FROM ML.PREDICT(MODEL ds.churn_model, TABLE ds.scoring_candidates);
Transformacje cech: preferuj deklaratywne funkcje TRANSFORM (standardize, one_hot_encoder, bucketize, quantile_bucketize, ml.feature_cross) dla zapewnienia powtarzalności i powiązania przetwarzania wstępnego z artefaktem modelu. Utrzymuj transformacje jako idempotentne i deterministyczne.
Kwestie operacyjne i tryby awarii:
- Wstawianie strumieniowe i aktualność zapytań: Strumieniowanie w BigQuery cechuje się ostateczną spójnością (eventual consistency). Dla agregacji w czasie rzeczywistym, które muszą uwzględniać właśnie zapisane wiersze, uruchamiaj zapytania z opóźnieniem przekraczającym zmierzone opóźnienie bufora strumieniowania. Konserwatywnym punktem wyjścia jest odczekanie około dwukrotności obserwowanego średniego opóźnienia dostępności lub zaprojektowanie znaków wodnych (watermarks) i obsługi opóźnionych danych w Dataflow przed ich zapisaniem w BigQuery.
- Koszt i współbieżność: jeśli limity współbieżności slotów na żądanie (on-demand) stają się wąskim gardłem, przełącz się na rezerwacje o stałej cenie (flat-rate) lub elastyczne (flexible) i zaimplementuj zarządzanie obciążeniem (hierarchie i przypisania rezerwacji), aby zapewnić przewidywalną pojemność.
- Jakość danych: dla wsadów wsadowych z GCS zawierających nieprawidłowo sformatowane wiersze, użyj Dataflow do parsowania i walidacji rekordów, zapisując poprawne wiersze do BigQuery, a błędne do tabeli „martwych listów” (dead-letter table) w celu inspekcji. Unikaj sytuacji, w której BigQuery odrzuca całe pliki z powodu niewielkiej liczby błędnych wierszy.
Cykl życia Vertex AI, ścieżki predykcji i magazyny cech
Vertex AI dostarcza kompleksowe usługi zarządzane do trenowania, potoków (pipelines), rejestru modeli, punktów końcowych i monitorowania.
Zbiory danych i trenowanie: rejestruj zbiory danych i metadane; używaj niestandardowych zadań treningowych lub AutoML w zależności od potrzeb. Wybieraj algorytmy na podstawie ograniczeń:
- Zadania na pojedynczej maszynie wirtualnej z ograniczonymi zasobami preferują proste modele (np. regresja liniowa lub regresja logistyczna) ze względu na niskie zapotrzebowanie na pamięć/CPU.
- Zadania o wysokiej wymiarowości często korzystają z selekcji cech lub łączenia nadmiarowych cech, aby przyspieszyć trenowanie przy minimalnej utracie dokładności.
- Nienadzorowane wykrywanie anomalii jest odpowiednie, gdy pozytywne przykłady są rzadkie, a przyszłe anomalie prawdopodobnie będą przypominać znane sygnatury anomalii.
Potoki (Pipelines): zaimplementuj Vertex AI Pipelines, aby skodyfikować przygotowanie danych, trenowanie, ewaluację i bramki wdrożeniowe. Utrwalaj parametry, sumy kontrolne SHA commitów kodu, skróty kontenerów i migawki zbiorów danych, aby zagwarantować odtwarzalność.
Punkty końcowe i predykcja:
- Predykcja online dla zadań wymagających niskich opóźnień. Skonfiguruj minimalną i maksymalną liczbę replik oraz polityki autoskalowania; profiluj opóźnienie modelu na poziomie P95 i odpowiednio ustawiaj wskaźniki SLO. Dodaj wdrożenia typu canary i dzielenie ruchu (traffic splitting) dla bezpiecznych wdrożeń.
- Predykcja wsadowa dla zadań z priorytetem na przepustowość (np. nocne ocenianie). Przetwarzanie wsadowe unika narzutu na pojedyncze żądanie i jest tańsze przy dużych wolumenach, ale oferuje wyższe opóźnienia.
Inżynieria cech i magazyny cech: używaj Vertex AI Feature Store do:
- Magazynu offline w BigQuery do trenowania.
- Magazynu online do wyszukiwania o niskim opóźnieniu po ID encji. Wymuszaj spójność między trenowaniem a serwowaniem (training-serving consistency), współdzieląc tę samą logikę transformacji (np. bibliotekę Dataflow lub definicje cech) i używając znaczników czasu cech, aby zapobiec wyciekowi danych (data leakage). Utrzymuj poprawność w punkcie w czasie (point-in-time correctness) za pomocą złączeń temporalnych:
undefined
Kompromisy projektowe:
- Opóźnienie magazynu online a aktualność danych: magazyny online oparte na Bigtable zapewniają niskie opóźnienia; upewnij się, że uzupełnianie danych (backfills) i strumieniowe operacje upsert są idempotentne. Nadmierny write skew lub gorące klucze (hot keys) degradują wydajność — projektuj ID encji tak, aby równomiernie rozkładać ruch.
- Przetwarzanie wsadowe a online: przetwarzanie wsadowe zmniejsza złożoność i koszt serwowania, ale może dostarczać nieaktualne predykcje. W przypadku dynamicznych zachowań (np. rekomendacji) połącz okresowe ponowne trenowanie z aktualnymi cechami w czasie serwowania.
Jakość danych, etykietowanie, obciążenie (bias), prywatność i zarządzanie
Wysokiej jakości etykiety i rygorystyczne zarządzanie stanowią podstawę wiarygodnych modeli.
Etykietowanie i nierównowaga:
- Używaj jasnych wytycznych dotyczących etykietowania i próbkowania do kontroli jakości (QA). Śledź zgodność między adnotatorami.
- Radź sobie z nierównowagą klas za pomocą próbkowania warstwowego, przeważania lub resamplingu; monitoruj precyzję/czułość dla każdej klasy, a nie tylko ogólną dokładność.
- Celowo zachowuj wartości null. Jeśli model wymaga danych wejściowych numerycznych, koduj wartości null jawnie (np. jako 0 ze wskaźnikiem „was_null”) i weryfikuj wpływ na dalsze etapy przetwarzania; unikaj cichego usuwania brakujących danych, które mogą nieść informację.
Przeuczenie i generalizacja:
- Środki zaradcze obejmują bardziej zróżnicowane dane treningowe, mniejsze zestawy cech i silniejszą regularyzację.
- Wczesne zatrzymywanie (early stopping) i walidacja krzyżowa są kluczowe dla sieci neuronowych; podpróbkowanie (subsampling) może skrócić czas trenowania, gdy skalowanie architektury lub sprzętu nie jest możliwe.
Zarządzanie i pochodzenie danych (lineage):
- Śledź pochodzenie danych za pomocą Vertex ML Metadata, Model Registry i Data Catalog. Rejestruj wersje zbiorów danych, transformacje, hiperparametry i środowisko.
- Przepływy pracy zatwierdzania: wymagaj ludzkiej akceptacji przed wdrożeniem, używając stanów w Model Registry oraz Cloud Build/Deploy z weryfikacją polityk. Przechowuj artefakty w Artifact Registry; podpisuj kontenery i wymuszaj stosowanie Binary Authorization dla wdrożeń z bramkami kontrolnymi.
Monitorowanie, dryf i ponowne trenowanie:
- Włącz monitorowanie modelu pod kątem przesunięcia predykcji, dryfu cech i degradacji wydajności. Używaj metryk dystrybucyjnych (np. PSI, dywergencja KL) oraz ewaluacji uwzględniającej opóźnienie danych referencyjnych (ground-truth), gdy etykiety docierają z opóźnieniem.
- Ustanów wyzwalacze ponownego trenowania oparte na statystycznie istotnym dryfie, naruszeniach SLO lub oknach zdarzeń biznesowych. Automatyzuj potoki ponownego trenowania, ale promuj modele do wyższych środowisk dopiero po przejściu ewaluacji i kontroli obciążenia (bias).
- Uważaj na cichy dryf danych wynikający ze zmian schematu w systemach źródłowych; wymuszaj stosowanie kontraktów schematów i alertuj o brakujących lub przesuniętych cechach.
Projektowanie z uwzględnieniem prywatności:
- Klasyfikuj dane za pomocą tagów polityk w Data Catalog; wymuszaj bezpieczeństwo na poziomie kolumn i wierszy w BigQuery, stosując polityki maskowania danych.
- Minimalizuj zbieranie danych; wdrażaj umowy SLA dotyczące retencji i usuwania danych powiązane z ograniczeniem celu przetwarzania.
- Stosuj DLP do wykrywania i deidentyfikacji danych; szyfruj dane za pomocą CMEK; izoluj usługi za pomocą VPC Service Controls; zapewnij szczegółowe uprawnienia IAM i używaj dedykowanych kont serwisowych z zasadą najmniejszych uprawnień.
- W przypadku monitorowania i logowania, redaguj dane osobowe (PII) i unikaj logowania pełnej zawartości żądań (payload), jeśli nie jest to konieczne.
Wyszukiwanie wektorowe, potoki RAG i analityczne warstwy serwujące
Nowoczesne systemy wyszukiwania i serwowania wymagają zarówno komponentów natywnie wektorowych, jak i sprawdzonych magazynów analitycznych.
Wyszukiwanie wektorowe i osadzania (embeddings):
- Użyj Vertex AI Vector Search lub wyszukiwania wektorowego w BigQuery do wyszukiwania najbliższych sąsiadów na dużą skalę i z niskim opóźnieniem; wybierz AlloyDB for PostgreSQL z rozszerzeniem pgvector dla semantyki zorientowanej na aplikację i potrzeb transakcyjnych.
- Generuj osadzania wsadowo za pomocą Vertex Pipelines; przechowuj wektory wraz z gęstymi metadanymi; partycjonuj i indeksuj w inteligentny sposób (np. według domeny dokumentu), aby ograniczyć opóźnienia.
Potoki RAG (Retrieval-Augmented Generation):
- Pozyskuj treści za pomocą Dataflow lub Dataproc, ekstrahuj tekst, dziel na fragmenty (chunking), twórz osadzania i indeksuj w magazynie wektorowym. Utrzymuj referencje do źródła prawdy (source-of-truth) w celu zapewnienia identyfikowalności.
- Wdrażaj strategie aktualności danych: okresowe ponowne generowanie osadzeń, unieważnianie przy aktualizacji źródła oraz indeksowanie canary w celu weryfikacji jakości przed podmianą indeksów.
- Monitoruj jakość wyszukiwania (hit rate, MRR, nDCG) i bezpieczeństwo treści; egzekwuj zabezpieczenia (guardrails) i kontrolę dostępu dla danych o ograniczonym dostępie.
Analityczne warstwy serwujące i produkty danych:
- Przygotowuj produkty danych w warstwach bronze/silver/gold w BigQuery; używaj partycjonowania i klastrowania, aby minimalizować koszty skanowania. Widoki zmaterializowane mogą przyspieszyć typowe zapytania.
- Dla zapytań klucz-wartość o niskim opóźnieniu lub liczników o wysokim QPS, użyj Bigtable z dobrze rozproszonymi kluczami wierszy; unikaj hot-spottingu przez stosowanie saltingu lub haszowanie prefiksów.
- Dla obciążeń OLTP i silnej spójności, użyj Cloud SQL lub Spanner; przenoś analitykę do BigQuery za pomocą zaplanowanych procesów ELT.
- Architektura strumieniowa: Pub/Sub → Dataflow → BigQuery/Bigtable z automatycznym skalowaniem. Monitoruj zaległości (backlog) i metryki watermark; domyślne autoskalowanie jest wystarczające dla elastycznych obciążeń, jednocześnie kontrolując koszty.
Wskazówka operacyjna:
- Aby wyzwalać powiadomienia o konkretnych zadaniach wstawiania do tabeli BigQuery, wyeksportuj odpowiednie wpisy Cloud Logging do Pub/Sub za pomocą filtra zaawansowanego, a następnie podłącz alerty z subskrypcji:
undefined
undefined
undefined
Praktyczny scenariusz problemowy
AcmeStyle, platforma handlowa z modą, chce, aby rekomendacje na stronie były zawsze aktualne, ponieważ preferencje użytkowników zmieniają się co godzinę. Firma strumieniuje dane o kliknięciach i zakupach, i musi łączyć je z kontekstem katalogu, aby odświeżać rekomendacje z niskim opóźnieniem i przy kontrolowanych kosztach.
Podejście:
- Pozyskiwanie strumieniowe i bramki jakości
- Użyj Pub/Sub do pozyskiwania zdarzeń z aplikacji webowych i mobilnych. Zadanie strumieniowe Dataflow waliduje schematy, wzbogaca je o dane z katalogu i zapisuje:
- Czyste zdarzenia do partycjonowanych tabel BigQuery (event_date) na potrzeby analityki offline i trenowania.
- Zagregowane aktualizacje cech użytkownika do Vertex AI Feature Store (magazyn online) z kluczem user_id. Uzasadnienie: Pub/Sub oddziela producentów od konsumentów; Dataflow zapewnia semantykę exactly-once z idempotentnymi operacjami upsert; partycjonowany BigQuery zarządza kosztami i retencją; magazyn online umożliwia wyszukiwania na poziomie milisekund.
- Definicje cech z poprawnością w punkcie w czasie
- Zdefiniuj cechy takie jak kroczący CTR, powinowactwo z marką i aktualność (recency) z jawnym event_time. Zmaterializuj je do:
- Magazynu offline w BigQuery do trenowania z użyciem złączeń temporalnych ograniczonych do warunku
undefined
.
- Magazynu online do serwowania z TTL, aby zapobiec nieaktualnym wartościom. Uzasadnienie: Jasne znaczniki czasu zapobiegają wyciekowi etykiet (label leakage); spójne definicje w środowisku offline i online zapewniają spójność między trenowaniem a serwowaniem (training-serving parity).
- Trenowanie modelu i pochodzenie danych (lineage)
- Zaimplementuj potok Vertex AI Pipeline, który:
- Ekstrahuje dane treningowe z BigQuery przy użyciu okien czasowych (np. ostatnie 30 dni).
- Stosuje te same transformacje, które są używane podczas serwowania (współdzielona biblioteka).
- Trenuje model rankingowy; loguje metadane (identyfikatory migawek zbioru danych, SHA commita kodu, hiperparametry) do ML Metadata i rejestruje model w Model Registry. Uzasadnienie: Potoki sprawiają, że uruchomienia są powtarzalne i audytowalne; Model Registry centralizuje wersje i zatwierdzenia.
- Ścieżki predykcji wsadowej i online
- Nocne predykcje wsadowe oceniające pełną macierz katalog-użytkownik i zapisujące wyniki do BigQuery w celu uzupełniania danych historycznych (backfill) i testów A/B.
- Predykcje online za pośrednictwem punktu końcowego Vertex, który:
- Pobiera świeże cechy użytkownika z magazynu online.
- Ocenia kandydatów top-K przefiltrowanych według stanu magazynowego i dostępności.
- Buforuje wyniki na krótki czas, aby absorbować nagłe wzrosty ruchu. Uzasadnienie: Przetwarzanie wsadowe zapewnia szeroki zasięg i efektywność kosztową; przetwarzanie online przechwytuje najnowsze zachowania dla sesji o wysokiej wartości. Automatycznie skalowane punkty końcowe utrzymują SLO opóźnień; buforowanie redukuje opóźnienia krańcowe (tail latency) i koszty.
- Monitorowanie, wykrywanie dryftu i polityka ponownego trenowania
- Włącz monitorowanie modelu pod kątem dryftu cech i przechyłu predykcji (prediction skew); porównuj dystrybucje z bazowymi wynikami z treningu. Śledź SLO dla CTR/CVR i alertuj w przypadku pogorszenia.
- Trenuj ponownie w sposób ciągły, używając okna kroczącego łączącego dane historyczne i nowe; wyzwalaj ponowne trenowanie, gdy dryft przekroczy progi lub co najmniej raz w tygodniu. Uzasadnienie: Trendy w modzie szybko się zmieniają; łączenie historii z najnowszymi sygnałami stabilizuje proces uczenia, jednocześnie utrzymując aktualność.
- Prywatność i ład informacyjny (governance)
- Oznaczaj kolumny z PII (dane osobowe) za pomocą tagów polityk Data Catalog; egzekwuj bezpieczeństwo na poziomie kolumn w BigQuery i maskuj dane w razie potrzeby. Uruchamiaj skanowanie DLP na surowych zdarzeniach; przechowuj tylko niezbędne pola.
- Wymagaj ręcznego zatwierdzenia, aby promować modele ze środowiska przejściowego (staging) do produkcyjnego za pomocą wyzwalaczy Cloud Build zintegrowanych ze stanami zatwierdzenia w Model Registry. Uzasadnienie: Dostęp na zasadzie najmniejszych uprawnień zmniejsza ryzyko; bramkowanie wdrożeń zapewnia zgodność z przepisami i bezpieczeństwo.
- Kontrola kosztów i pojemności
- Użyj rezerwacji BigQuery, aby zagwarantować przewidywalną pojemność slotów dla okien treningowych.
- Skaluj workery Dataflow automatycznie w oparciu o zaległości (backlog); sharduj gorące klucze w feature store przez haszowanie prefiksów user_id, aby zapobiec hot-spottingowi. Uzasadnienie: Przewidywalna pojemność pozwala uniknąć rywalizacji o zasoby; autoskalowanie dopasowuje wydatki do zapotrzebowania; zrównoważone klucze utrzymują niskie opóźnienia aktualizacji.
Ta architektura utrzymuje świeżość rekomendacji poprzez ujednolicenie cech strumieniowych do serwowania z regularnym ponownym trenowaniem na najnowszych danych, przy jednoczesnym zachowaniu poprawności, ładu informacyjnego i przewidywalnej wydajności na dużą skalę.
← Orkiestracja przepływów pracy i automatyzacja potoków · Wszystkie domeny · Ład danych →
Przećwicz te pytania → · Testy na czas na ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Zdaj egzamin →