Details zum E-Book

Jak projektować systemy uczenia maszynowego. Iteracyjne tworzenie aplikacji gotowych do pracy

Jak projektować systemy uczenia maszynowego. Iteracyjne tworzenie aplikacji gotowych do pracy

Chip Huyen

E-book

Systemy uczenia maszynowego (ML) charakteryzują się złożonością i unikatowością. Zmiana w jednym z wielu komponentów może istotnie wpłynąć na całość. Zastosowane w modelach dane diametralnie różnią się od siebie w poszczególnych przypadkach użycia. To wszystko sprawia, że bardzo trudno jest stworzyć taki system, jeśli każdy komponent zostaje zaprojektowany oddzielnie. Aby zbudować aplikację korzystającą z ML i nadającą się do wdrożenia w środowisku produkcyjnym, konieczne jest podejmowanie decyzji projektowych z uwzględnieniem cech systemu jako całości.

To książka przeznaczona dla inżynierów, którzy chcą stosować systemy uczenia maszynowego do rozwiązywania rzeczywistych problemów biznesowych. Zaprezentowano w niej systemy ML używane w szybko rozwijających się startupach, a także przedstawiono holistyczne podejście do ich projektowania ― z uwzględnieniem różnych komponentów systemu i celów osób zaangażowanych w proces. Dużo uwagi poświęcono analizie decyzji projektowych, dotyczących między innymi sposobu tworzenia i przetwarzania danych treningowych, wyboru wskaźników, częstotliwości ponownego treningu modelu czy techniki monitorowania pracy aplikacji. Zaprezentowana tu koncepcja iteracyjna natomiast pozwala na uzyskanie pewności, że podejmowane decyzje są optymalne z punktu widzenia pracy całości systemu. Co ważne, poszczególne zagadnienia zostały zilustrowane rzeczywistymi studiami przypadków.

W książce między innymi:

  • wybór wskaźników właściwych dla danego problemu biznesowego
  • automatyzacja ciągłego rozwoju, ewaluacji, wdrażania i aktualizacji modeli
  • szybkie wykrywanie i rozwiązywanie problemów podczas wdrożenia produkcyjnego
  • tworzenie wszechstronnej platformy ML
  • odpowiedzialne tworzenie systemów ML

Wdrażaj i skaluj modele tak, aby uzyskiwać najlepsze wyniki!

Wstęp

1. Przegląd systemów uczenia maszynowego

  • Kiedy należy używać uczenia maszynowego?
    • Przypadki użycia uczenia maszynowego
  • Zrozumienie systemów uczenia maszynowego
    • Uczenie maszynowe w badaniach i przemyśle
    • Krytyka rankingów modeli uczenia maszynowego
    • Systemy uczenia maszynowego a oprogramowanie tradycyjne
  • Podsumowanie

2. Wprowadzenie do projektowania systemów uczenia maszynowego

  • Biznes i cele uczenia maszynowego
  • Wymagania dla systemów uczenia maszynowego
    • Niezawodność
    • Skalowalność
    • Łatwość utrzymania
    • Adaptacyjność
  • Proces iteracyjny
  • Sformalizowanie problemów związanych z uczeniem maszynowym
    • Rodzaje zadań związanych z uczeniem maszynowym
    • Funkcje celu
  • Umysł a dane
  • Podsumowanie

3. Podstawy inżynierii danych

  • Źródła danych
  • Formaty danych
    • JSON
    • Formaty wierszowe i kolumnowe
    • Format tekstowy a binarny
  • Modele danych
    • Model relacyjny
    • Model NoSQL
    • Dane ustrukturyzowane a nieustrukturyzowane
  • Silniki przechowywania danych i ich przetwarzanie
    • Przetwarzanie transakcyjne i analityczne
    • Proces ETL - wyodrębnij, przekształć, wczytaj
  • Tryby przepływu danych
    • Dane przekazywane przez bazy danych
    • Dane przekazywane przez usługi
    • Dane przekazywane przez połączenia w czasie rzeczywistym
  • Przetwarzanie wsadowe a przetwarzanie strumieniowe
  • Podsumowanie

4. Dane treningowe

  • Próbkowanie
    • Próbkowanie nieprobabilistyczne
    • Proste próbkowanie losowe
    • Próbkowanie warstwowe
    • Próbkowanie ważone
    • Próbkowanie do rezerwuaru
    • Próbkowanie istotnościowe
  • Etykietowanie
    • Etykiety nadawane ręcznie
    • Etykiety naturalne
    • Co zrobić w przypadku braku etykiet?
  • Niezrównoważenie klas
    • Wyzwania związane z niezrównoważeniem klas
    • Rozwiązywanie problemu niezrównoważenia klas
  • Generowanie sztucznych danych
    • Proste transformacje zachowujące etykiety
    • Perturbacja
    • Synteza danych
  • Podsumowanie

5. Inżynieria cech

  • Cechy wyuczone a cechy zaprojektowane
  • Operacje często stosowane w inżynierii cech
    • Obsługa wartości brakujących
    • Skalowanie
    • Dyskretyzacja
    • Kodowanie cech skategoryzowanych
    • Krzyżowanie cech
    • Dyskretne i ciągłe osadzenia pozycji
  • Wyciek danych
    • Najczęstsze przyczyny wycieków danych
    • Wykrywanie wycieku danych
  • Tworzenie poprawnych cech
    • Ważność cech
    • Uogólnianie cech
  • Podsumowanie

6. Projektowanie modelu i ewaluacja offline

  • Projektowanie i trenowanie modelu
    • Ewaluacja modeli uczenia maszynowego
    • Metody zespołowe
    • Monitorowanie i wersjonowanie eksperymentów
    • Trenowanie rozproszone
    • Zautomatyzowane uczenie maszynowe (AutoML)
  • Ewaluacja modelu w trybie offline
    • Punkty odniesienia
    • Metody ewaluacji
  • Podsumowanie

7. Wdrażanie modelu i usługi prognozowania

  • Mity związane z wdrażaniem systemów uczenia maszynowego
    • Mit 1. Jednocześnie wdrażamy tylko jeden lub dwa modele
    • Mit 2. Jeśli nic nie zrobimy, wydajność modelu pozostanie taka sama
    • Mit 3. Modeli nie trzeba często aktualizować
    • Mit 4. Większość inżynierów uczenia maszynowego nie musi się przejmować wielkoskalowymi wdrożeniami
  • Prognozowanie wsadowe a prognozowanie online
    • Od prognozowania wsadowego do prognozowania online
    • Ujednolicenie potoku wsadowego i strumieniowego
  • Kompresowanie modelu
    • Faktoryzacja niższego rzędu
    • Destylacja wiedzy
    • Przycinanie
    • Kwantyzacja
  • Uczenie maszynowe w chmurze i na urządzeniu brzegowym
    • Kompilowanie i optymalizowanie modeli dla urządzeń brzegowych
    • Wykorzystanie uczenia maszynowego w przeglądarkach
  • Podsumowanie

8. Zmiana rozkładu danych i monitorowanie

  • Przyczyny awarii w systemach uczenia maszynowego
    • Awarie systemu oprogramowania
    • Awarie specyficzne dla uczenia maszynowego
  • Zmiany rozkładów danych
    • Rodzaje zmian rozkładów danych
    • Ogólne rodzaje zmian rozkładów danych
    • Wykrywanie zmian rozkładów danych
    • Rozwiązywanie problemów związanych ze zmianą rozkładu danych
  • Monitorowanie i obserwowalność
    • Wskaźniki specyficzne dla uczenia maszynowego
    • Narzędzia wspierające proces monitorowania
    • Obserwowalność
  • Podsumowanie

9. Uczenie ciągłe i testy w środowisku produkcyjnym

  • Uczenie ciągłe
    • Ponowne trenowanie bezstanowe i trenowanie stanowe
    • Dlaczego powinno się stosować uczenie ciągłe?
    • Wyzwania związane z uczeniem ciągłym
    • Cztery etapy uczenia ciągłego
    • Jak często należy aktualizować modele?
  • Testowanie w środowisku produkcyjnym
    • Użycie kopii rozwiązania
    • Testy A/B
    • Testy kanarkowe
    • Eksperymenty przeplatane
    • Algorytmy bandyty
  • Podsumowanie

10. Infrastruktura i narzędzia stosowane w metodyce MLOps

  • Pamięć masowa i moc obliczeniowa
    • Chmura publiczna a prywatne centrum danych
  • Środowisko projektowe
    • Konfiguracja środowiska projektowego
    • Proces standaryzacji środowisk projektowych
    • Przejście ze środowiska projektowego do produkcyjnego - kontenery
  • Zarządzanie zasobami
    • Narzędzie cron, zarządcy procesów i orkiestratory
    • Zarządzanie procesami w danetyce
  • Platforma uczenia maszynowego
    • Wdrażanie modelu
    • Magazyn modeli
    • Magazyn cech
  • Tworzyć czy kupować?
  • Podsumowanie

11. Ludzka strona uczenia maszynowego

  • Doświadczenia użytkownika
    • Zapewnianie spójności doświadczeń użytkownika
    • Unikanie prognoz "przeważnie poprawnych"
    • Kompromis szybkość - dokładność
  • Struktura zespołu
    • Współpraca w zespołach międzydyscyplinarnych
    • Wszechstronni danetycy
  • Odpowiedzialna sztuczna inteligencja
    • Nieodpowiedzialna sztuczna inteligencja - studia przypadków
    • Zasady tworzenia odpowiedzialnej sztucznej inteligencji
  • Podsumowanie

Epilog

  • Titel: Jak projektować systemy uczenia maszynowego. Iteracyjne tworzenie aplikacji gotowych do pracy
  • Autor: Chip Huyen
  • Originaler Titel: Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications
  • Übersetzung: Jacek Janusz
  • ISBN: 978-83-283-9913-6, 9788328399136
  • Veröffentlichungsdatum: 2023-02-28
  • Format: E-book
  • Artikelkennung: jakpsu
  • Verleger: Helion