Szczegóły ebooka

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

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

Chip Huyen

Ebook

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

  • Tytuł: Jak projektować systemy uczenia maszynowego. Iteracyjne tworzenie aplikacji gotowych do pracy
  • Autor: Chip Huyen
  • Tytuł oryginału: Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications
  • Tłumaczenie: Jacek Janusz
  • ISBN: 978-83-283-9913-6, 9788328399136
  • Data wydania: 2023-02-28
  • Format: Ebook
  • Identyfikator pozycji: jakpsu
  • Wydawca: Helion