Amazon MLS-C01: Uczenie głębokie i widzenie komputerowe — Przewodnik do nauki
Część AWS Machine Learning Specialty MLS-C01 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.
Architektury, uczenie transferowe i wybór modelu
Konwolucyjne sieci bazowe (backbones), takie jak rodzina ResNet i Inception, pozostają głównymi końmi roboczymi w dziedzinie wizji: ResNet (50/101) oferuje stabilne uczenie rezydualne dla głębokich hierarchii cech, podczas gdy moduły Inception zapewniają agregację cech w wielu skalach, co pomaga w przypadku obiektów o zróżnicowanych rozmiarach. W kontekście nowoczesnych kompromisów, EfficientNet i MobileNet priorytetyzują stosunek FLOPs do dokładności, co czyni je dobrym wyborem dla urządzeń mobilnych i brzegowych (edge). W praktyce na AWS, zacznij od wstępnie wytrenowanych wag z ImageNet (dostępnych w TorchVision, TensorFlow Hub lub poprzez kontenery treningowe SageMaker) i zastosuj uczenie transferowe, zastępując głowicę klasyfikacyjną, używając znacznie niższego współczynnika uczenia dla warstw bazowych i wyższego dla nowo zainicjowanych głowic. Zamroź wczesne warstwy w przypadku małych zbiorów danych i stopniowo je odblokowuj, aby uniknąć katastrofalnego zapominania. Kryteria decyzyjne: wybieraj cięższe sieci bazowe (ResNet101, Inception-ResNet) dla dużych zbiorów danych i punktów końcowych tolerujących opóźnienia (instancje ml.p3 lub ml.p4), a lekkie sieci bazowe (MobileNetV3, EfficientNet-lite) przy wdrażaniu na urządzeniach o ograniczonych zasobach za pomocą SageMaker Neo lub AWS IoT Greengrass. Częstą pułapką jest dostrajanie (fine-tuning) z tym samym wysokim współczynnikiem uczenia, który był używany do trenowania od zera; zamiast tego należy zastosować zróżnicowane współczynniki uczenia, użyć zaniku wag (weight decay) i walidować transferowalność, monitorując aktywacje warstw w przestrzeni cech oraz stratę walidacyjną w poszukiwaniu sygnałów przeuczenia (overfitting).
Praktyki treningowe, augmentacja i zagadnienia dotyczące zbiorów danych/etykietowania
Wysokiej jakości oznaczone dane są fundamentem niezawodnych modeli wizyjnych. Użyj Amazon SageMaker Ground Truth do budowania przepływów pracy etykietowania z użyciem ramek ograniczających (bounding boxes), wielokątów lub masek semantycznych, a także do egzekwowania kontroli dostępu do danych poprzez prywatne zespoły robocze, ograniczenia IAM i szyfrowanie S3 KMS. Ograniczaj szum w etykietach za pomocą rund konsensusu i przeglądu oraz stosuj uczenie aktywne, aby priorytetyzować niejednoznaczne lub rzadkie przykłady. Dla małych lub niezbalansowanych zbiorów danych stosuj agresywną, odpowiednią dla zadania augmentację: transformacje fotometryczne, losowe przycięcia, rotacje, augmentacje typu cutout, mixup lub mosaic dla detekcji; użyj próbkowania zbalansowanego klasowo, funkcji straty focal loss lub ważonej entropii krzyżowej (class-weighted cross-entropy), aby zaradzić poważnemu niezbalansowaniu klas. Podziel dane, aby uniknąć wycieku (leakage): w przypadku zależności na poziomie użytkownika lub sklepu, wykonuj podziały grupowe lub czasowe zamiast naiwnych podziałów losowych; częstą pułapką jest wyciek przyszłych znaczników czasu lub wielu obrazów tego samego obiektu między zbiory treningowy, walidacyjny i testowy. W przypadku danych medycznych lub regulowanych, włącz izolację sieciową dla zadań treningowych SageMaker, szyfruj S3 za pomocą KMS, ograniczaj dostęp do notatników przez punkty końcowe VPC i rotuj poświadczenia za pomocą Secrets Manager. Śledź eksperymenty i metryki za pomocą SageMaker Experiments, aby korelować wybory dotyczące augmentacji, współczynników uczenia i regularyzacji.
Detekcja i segmentacja obiektów: architektury, metryki i pułapki
Wybory w detekcji obiektów obejmują detektory jednostopniowe, takie jak YOLO i RetinaNet, dla przepustowości w czasie rzeczywistym, oraz detektory dwustopniowe, jak Faster R-CNN, dla wyższej dokładności i lokalizacji małych obiektów. Dodaj Feature Pyramid Networks (FPN), aby poprawić detekcję w wielu skalach; użyj Mask R-CNN lub DeepLabv3+ do zadań segmentacji instancji i segmentacji semantycznej. Kotwice (anchors), progi IoU oraz Non-Max Suppression (NMS) mają duży wpływ na wyniki: dostosuj rozmiary i proporcje kotwic do skali obiektów w zbiorze danych i wybierz odpowiednie IoU do przypisywania przykładów pozytywnych/negatywnych. Ewaluacja musi wykorzystywać mAP na różnych poziomach IoU (AP50, AP75) oraz krzywe precyzji/czułości (recall/precision) dla każdej klasy — poleganie wyłącznie na dokładności zaciemnia błędy lokalizacji. W przepływach pracy na AWS, używaj treningu SageMaker z kontenerami PyTorch/TensorFlow dla niestandardowych architektur, przechowuj zbiory danych w S3 z plikami manifestu dla Ground Truth i waliduj za pomocą zadań SageMaker Processing. Częstymi pułapkami są używanie zbyt dużych rozmiarów wejściowych do inferencji (co zwiększa opóźnienia) lub ignorowanie niezbalansowania klas w liczbie obiektów; optymalizuj, stosując augmentację specyficzną dla klasy, używając ważonych funkcji straty lub trenując dwuetapowo, gdzie po ogólnym detektorze następuje udoskonalanie dla poszczególnych klas. Na potrzeby produkcji, eksportuj modele do formatu ONNX lub TorchScript i waliduj wyniki wyeksportowanego modelu w porównaniu z wynikami z treningu, aby uniknąć niedopasowania operatorów.
Optymalizacja wnioskowania, wdrażanie i monitorowanie dla GPU i urządzeń brzegowych
Optymalizacja wnioskowania wymaga profilowania całego potoku, a nie tylko obliczeń na GPU. Niskie wykorzystanie GPU często wynika z przetwarzania wstępnego ograniczonego przez CPU, małych rozmiarów partii (batch sizes), opóźnień synchronicznego punktu końcowego lub oczekiwania na operacje I/O. Profiluj za pomocą SageMaker Debugger i metryk CloudWatch, aby zidentyfikować wąskie gardła, a następnie zastosuj rozwiązania: zwiększ rozmiar partii lub użyj wnioskowania asynchronicznego; przekonwertuj modele do formatu TorchScript/ONNX i włącz optymalizacje TensorRT na instancjach opartych o NVIDIA; użyj precyzji mieszanej (AMP/bfloat16) na instancjach p4/p3; skompiluj za pomocą SageMaker Neo dla docelowego sprzętu lub wdróż Elastic Inference, aby dołączyć częściową akcelerację do instancji CPU w celu uzyskania umiarkowanej przepustowości. W przypadku wdrożeń na urządzeniach brzegowych (edge) użyj SageMaker Edge Manager lub AWS IoT Greengrass z modelami skompilowanymi przez Neo, zastosuj kwantyzację i przycinanie (pruning), aby zmniejszyć rozmiar modelu, i w miarę możliwości uruchamiaj przetwarzanie wsadowe na urządzeniu. Skonfiguruj punkty końcowe SageMaker dla wielu modeli (multi-model endpoints) lub provisioned concurrency, aby obsłużyć zimne starty (cold starts), i używaj polityk automatycznego skalowania opartych na wykorzystaniu pamięci GPU i opóźnieniach żądań. Włącz również Model Monitor do wykrywania dryftu danych wejściowych (input drift) oraz SageMaker Model Registry do kontrolowanego promowania modeli; częste pułapki to kompilowanie modeli z nieobsługiwanymi operacjami dla Neo lub zapominanie o przydzieleniu ról IAM i punktów końcowych VPC dla prywatnego dostępu do S3, co powoduje błędy wdrożenia.
Problem praktyczny: Scenariusz użycia
Scenariusz: Firma QuickServe Corp używa lokalnego systemu point-of-sale i wykorzystuje SageMaker do trenowania i wnioskowania modeli; obrazy z kamer sklepowych są przechowywane w prywatnym buckecie S3 z szyfrowaniem KMS. Chcą stworzyć potok produkcyjny do wykrywania długości kolejek przy kasach i wdrożyć lekki model na urządzeniach brzegowych w celu generowania alertów w czasie rzeczywistym.
Wyzwanie: Zbudowanie i wdrożenie dokładnego modelu o niskim opóźnieniu do zliczania osób w kolejce, który respektuje bezpieczeństwo danych (prywatny S3, KMS) i działa na ograniczonym sprzętowo urządzeniu brzegowym, jednocześnie umożliwiając bezpieczne ponowne trenowanie na nowych, oznaczonych danych.
Zalecane podejście:
- Wytrenuj detektor, używając wstępnie wytrenowanego szkieletu (backbone) MobileNetV3 (w kontenerze SageMaker PyTorch), dostrojonego na danych z Ground Truth (bounding boxes) przechowywanych w zaszyfrowanym przez KMS S3; użyj podziałów zgrupowanych według sklepów, aby uniknąć wycieku danych (data leakage).
- Zastosuj augmentację danych (losowe przycinanie, odwracanie w poziomie, wahania jasności) oraz funkcję straty focal loss, aby poradzić sobie z niezbalansowaniem klas między klatkami z kolejką a klatkami bez kolejki; waliduj za pomocą metryk AP50 i per-class recall.
- Wyeksportuj model do formatu TorchScript/ONNX, skompiluj za pomocą SageMaker Neo z docelowym urządzeniem brzegowym i wdróż za pośrednictwem AWS IoT Greengrass lub SageMaker Edge Manager z podpisywaniem modelu i rolą IAM zezwalającą tylko na niezbędne artefakty S3.
- Monitoruj wydajność poprzez okresowe przesyłanie partii danych do S3, uruchamiaj zadania SageMaker Processing do wykrywania dryftu i ponownie trenuj model w SageMaker, używając wersjonowanych zbiorów danych w S3 i Model Registry z kontrolowanym wdrażaniem na urządzenia brzegowe.
Uzasadnienie: To podejście wykorzystuje efektywny transfer learning i kompilację specyficzną dla urządzenia, aby sprostać ograniczeniom opóźnień i rozmiaru, zapewnia bezpieczeństwo za pomocą KMS i IAM oraz implementuje monitorowaną pętlę ponownego trenowania w celu utrzymania dokładności, jednocześnie zapobiegając wyciekowi danych.
← Modelowanie — nadzorowane i nienadzorowane (klasyczne ML) · Wszystkie domeny · Przetwarzanie języka naturalnego i mowa →
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 →