Szczegóły ebooka

Spark. Rozproszone uczenie maszynowe na dużą skalę. Jak korzystać z MLlib, TensorFlow i PyTorch

Spark. Rozproszone uczenie maszynowe na dużą skalę. Jak korzystać z MLlib, TensorFlow i PyTorch

Adi Polak

Ebook

Jeśli chcesz dostosować swoją pracę do większych zbiorów danych i bardziej złożonych kodów, potrzebna Ci jest znajomość technik rozproszonego uczenia maszynowego. W tym celu warto poznać frameworki Apache Spark, PyTorch i TensorFlow, a także bibliotekę MLlib. Biegłość w posługiwaniu się tymi narzędziami przyda Ci się w całym cyklu życia oprogramowania ― nie tylko ułatwi współpracę, ale również tworzenie powtarzalnego kodu.

Dzięki tej książce nauczysz się holistycznego podejścia, które zdecydowanie usprawni współpracę między zespołami. Najpierw zapoznasz się z podstawowymi informacjami o przepływach pracy związanych z uczeniem maszynowym przy użyciu Apache Spark i pakietu PySpark. Nauczysz się też zarządzać cyklem życia eksperymentów dla potrzeb uczenia maszynowego za pomocą biblioteki MLflow. Z kolejnych rozdziałów dowiesz się, jak od strony technicznej wygląda korzystanie z platformy uczenia maszynowego. W książce znajdziesz również opis wzorców wdrażania, wnioskowania i monitorowania modeli w środowisku produkcyjnym.

Najciekawsze zagadnienia:

  • cykl życia uczenia maszynowego i MLflow
  • inżynieria cech i przetwarzanie wstępne za pomocą Sparka
  • szkolenie modelu i budowa potoku
  • budowa systemu danych z wykorzystaniem uczenia głębokiego
  • praca TensorFlow w trybie rozproszonym
  • skalowanie systemu i tworzenie jego wewnętrznej architektury

Właśnie takiej książki społeczność Sparka wyczekuje od dekady!

Andy Petrella, autor książki Fundamentals of Data Observability

Przedmowa

1. Rozproszone uczenie maszynowe. Terminologia i pojęcia

  • Etapy przepływu pracy uczenia maszynowego
  • Narzędzia i technologie w potoku uczenia maszynowego
  • Modele przetwarzania rozproszonego
    • Modele uniwersalne
    • Dedykowane modele przetwarzania rozproszonego
  • Wprowadzenie do architektury systemów rozproszonych
    • Systemy scentralizowane a zdecentralizowane
    • Modele interakcji
    • Komunikacja w środowisku rozproszonym
  • Wprowadzenie do metod uczenia zespołowego
    • Wysoka i niska stronniczość
    • Rodzaje metod zespołowych
    • Topologie szkolenia rozproszonego learner
  • Wyzwania związane z rozproszonymi systemami uczenia maszynowego
    • Wydajność
    • Zarządzanie zasobami
    • Odporność na błędy
    • Prywatność
    • Przenośność
  • Konfiguracja środowiska lokalnego
    • Środowisko samouczków z rozdziałów 2. - 6.
    • Środowisko samouczków z rozdziałów 7. - 10.
  • Podsumowanie

2. Wprowadzenie do Sparka i PySparka

  • Architektura Apache Spark
  • Wprowadzenie do PySparka
  • Podstawy Apache Spark
    • Architektura oprogramowania
    • PySpark a programowanie funkcyjne
    • Uruchamianie kodu PySparka
  • Ramki DataFrame biblioteki pandas kontra ramki DataFrame systemu Spark
  • Scikit-Learn kontra MLlib
  • Podsumowanie

3. Zarządzanie cyklem życia eksperymentu uczenia maszynowego za pomocą MLflow

  • Wymagania dotyczące zarządzania cyklem życia uczenia maszynowego
  • Czym jest MLflow?
    • Komponenty oprogramowania platformy MLflow
    • Użytkownicy platformy MLflow
  • Komponenty platformy MLflow
    • MLflow Tracking
    • MLflow Projects
    • MLflow Models
    • MLflow Model Registry
  • Korzystanie z platformy MLflow w rozwiązaniach dużej skali
  • Podsumowanie

4. Pozyskiwanie danych, wstępne przetwarzanie i statystyki opisowe

  • Pozyskiwanie danych za pomocą Sparka
    • Przetwarzanie obrazów
    • Przetwarzanie danych tabelarycznych
  • Wstępne przetwarzanie danych
    • Przetwarzanie wstępne a właściwe
    • Po co wstępnie przetwarzać dane?
    • Struktury danych
    • Typy danych MLlib
    • Przetwarzanie wstępne z wykorzystaniem transformatorów MLlib
    • Wstępne przetwarzanie danych obrazów
    • Zapisywanie danych i unikanie problemu małych plików
  • Statystyki opisowe: poznawanie danych
    • Obliczanie statystyk
    • Statystyki opisowe z wykorzystaniem obiektu Summarizer Sparka
    • Skośność danych
    • Korelacja
  • Podsumowanie

5. Inżynieria cech

  • Cechy i ich wpływ na modele uczenia maszynowego
  • Narzędzia do cechowania w bibliotece MLlib
    • Ekstraktory
    • Selektory
    • Przykład: Word2Vec
  • Proces cechowania obrazów
    • Wykonywanie działań na obrazach
    • Wyodrębnianie cech za pomocą API Sparka
  • Proces cechowania tekstu
    • Worek słów
    • TF-IDF
    • n-gramy
    • Techniki dodatkowe
  • Wzbogacanie zbioru danych
  • Podsumowanie

6. Szkolenie modeli za pomocą biblioteki MLlib platformy Spark

  • Algorytmy
  • Nadzorowane uczenie maszynowe
    • Klasyfikacja
    • Regresja
  • Nienadzorowane uczenie maszynowe
    • Wydobywanie częstych wzorców
    • Klasteryzacja
  • Ocena
    • Ewaluatory nadzorowane
    • Ewaluatory nienadzorowane
  • Hiperparametry i eksperymenty dostrajania
    • Budowanie siatki parametrów
    • Podział danych na zbiory szkoleniowe i testowe
    • Walidacja krzyżowa: lepszy sposób testowania modeli
  • Potoki uczenia maszynowego
    • Budowa potoku
    • Jak działa podział dla API Pipeline?
  • Utrwalanie
  • Podsumowanie

7. Łączenie Sparka z frameworkami uczenia głębokiego

  • Podejście oparte na danych i dwóch klastrach
  • Implementacja dedykowanej warstwy dostępu do danych
    • Cechy DAL
    • Wybór warstwy DAL
  • Czym jest Petastorm?
    • SparkDatasetConverter
    • Petastorm jako magazyn Parquet
  • Projekt Hydrogen
    • Barierowy tryb wykonania
    • Harmonogramowanie z uwzględnieniem akceleratorów
  • Wprowadzenie do API Horovod Estimator
  • Podsumowanie

8. Rozproszone uczenie maszynowe z wykorzystaniem TensorFlow

  • Przegląd podstawowych wywołań API biblioteki TensorFlow
    • Czym jest sieć neuronowa?
    • Role i obowiązki w procesie klastra TensorFlow
  • Ładowanie danych Parquet do zbioru danych TensorFlow
  • Strategie rozproszonego uczenia maszynowego TensorFlow
    • ParameterServerStrategy
    • CentralStorageStrategy: jedna maszyna, wiele procesorów
    • MirroredStrategy: jedna maszyna, wiele procesorów, lokalna kopia
    • MultiWorkerMirroredStrategy: wiele maszyn, tryb synchroniczny
    • TPUStrategy
    • Co się zmienia po zmianie strategii?
  • Szkoleniowe interfejsy API
    • API Keras
    • Niestandardowa pętla szkoleniowa
    • API Estimator
  • Połączmy kropki
  • Rozwiązywanie problemów
  • Podsumowanie

9. Rozproszone uczenie maszynowe z wykorzystaniem frameworka PyTorch

  • Przegląd podstaw frameworka PyTorch
    • Graf obliczeniowy
    • Mechanika frameworka PyTorch i związane z nim pojęcia
  • Strategie rozproszonego szkolenia modeli frameworka PyTorch
    • Wprowadzenie do podejścia rozproszonego wykorzystywanego przez framework PyTorch
    • Rozproszone i równoległe szkolenie danych (DDP)
    • Szkolenie rozproszone oparte na RPC
    • Topologie komunikacji frameworka PyTorch (c10d)
    • Do czego można wykorzystać niskopoziomowe wywołania API frameworka PyTorch?
  • Ładowanie danych za pomocą frameworka PyTorch i biblioteki Petastorm
  • Rozwiązywanie problemów podczas korzystania z biblioteki Petastorm i frameworka PyTorch w środowisku rozproszonym
    • Enigma niedopasowanych typów danych
    • Tajemnica marudnych węzłów roboczych
  • Czym PyTorch różni się od TensorFlow?
  • Podsumowanie

10. Wzorce wdrażania modeli uczenia maszynowego

  • Wzorce wdrażania
    • Wzorzec 1. Prognozy zbiorcze
    • Wzorzec 2. Model w ramach usługi
    • Wzorzec 3. Model jako usługa
    • Decydowanie o wykorzystywanym wzorcu
    • Wymagania dotyczące oprogramowania produkcyjnego
  • Monitorowanie modeli uczenia maszynowego w produkcji
    • Dryf danych
    • Dryf modelu, dryf koncepcji
    • Przesunięcie dziedziny rozkładu (długi ogon)
    • Jakie wskaźniki należy monitorować w produkcji?
    • W jaki sposób wykorzystać system monitorowania do mierzenia zmian?
    • Jak to wygląda w systemie produkcyjnym?
  • Produkcyjna pętla sprzężenia zwrotnego
  • Wdrażanie z wykorzystaniem biblioteki MLlib
    • Produkcyjne potoki uczenia maszynowego ze strukturalnym przesyłaniem strumieniowym
  • Wdrażanie z wykorzystaniem biblioteki MLflow
    • Definiowanie wrappera MLflow
    • Wdrażanie modelu jako mikrousługi
    • Ładowanie modelu jako funkcji UDF platformy Spark
  • Jak pracować nad systemem w sposób iteracyjny?
  • Podsumowanie

Skorowidz

  • Tytuł: Spark. Rozproszone uczenie maszynowe na dużą skalę. Jak korzystać z MLlib, TensorFlow i PyTorch
  • Autor: Adi Polak
  • Tytuł oryginału: Scaling Machine Learning with Spark: Distributed ML with MLlib, TensorFlow, and PyTorch
  • Tłumaczenie: Radosław Meryk
  • ISBN: 978-83-289-1235-9, 9788328912359
  • Data wydania: 2024-08-06
  • Format: Ebook
  • Identyfikator pozycji: sparkr
  • Wydawca: Helion