
Data Science na GPU w Python – Kompleksowe wykorzystanie kart graficznych w analizie danych
Szkolenia otwarte
3 600 PLN
Szkolenia zamknięte
Cena ustalana indywidualnie
O szkoleniu
Iteruj, Iteruj, Iteruj to jedna z ważniejszych zasad podkreślanych przez Andrew Ng w jego książce Machine Learning Yearning. Algorytmy maszynowego uczenia trenowane są na danych w procesie iteracyjnym. Zamiast zastanawiać się jak zbudować perfekcyjny system możemy rozpocząć od prototypu który następnie będziemy udoskonalać. W ramach prototypowania zbudujemy intuicję którą wykorzystamy do ulepszenia w kolejnej iteracji naszego modelu. Im szybciej będziemy iterować tym szybciej zrobimy postępy na drodze poszukiwania najlepszego modelu.
W świecie analizy danych dominowanym przez duże zbiory danych szybkość iterowania ma ogromne znaczenie. Dotychczasowe implementacje algorytmów maszynowego uczenia wykorzystujące CPU w znaczącym stopniu ograniczają szybkość iterowania a tym samym możliwość otrzymania lepszych modeli w przeciwieństwie do GPU. Dodatkowym czynnikiem mającym wpływ na szybkość całego procesu jest etap przygotowania danych. Wraz z wykorzystaniem zbiorów big data czas i poziom skomplikowania całego procesu znacząco wzrasta.
Szkolenie Data Science na GPU w Python dostarcza rozwiązania powyższych problemów z pomocą GPU. Szkolenie prowadzone jest w oparciu o Python i skupia się na praktycznej implementacji GPU w data science. Uczestnicy szkolenia otrzymują zestaw narzędzi do analizy i modelowania danych z wykorzystaniem kart graficznych. Stworzone wraz z trenerem skrypty pozwalają na szybkie wdrożenie w organizacji. Dzięki kompleksowemu podejściu wszystkie operacje związane z ładowaniem, przetwarzaniem, obliczeniami danych i trenowaniem modeli wykonujemy w pamięci kart graficznych. W programie szkolenia przedstawiamy najważniejsze elementy technologii NVIDIA CUDA i prezentujemy jak ją wykorzystać w Data Science. Dodatkowo elementem poruszonym na szkoleniu jest wykorzystanie DASK dla Python umożliwiające skalowanie na wiele kart graficznych lub wiele maszyn.
Dla kogo jest to szkolenie?
- Data Scientist
- Inżynier Big Data
- Inżynier Machine Learning
- Analitycy danych
Czego się nauczę?
- Poznasz Architekture kart graficznych oraz CUDA
- Dowiesz się jak wykorzystać kilka kart graficznych oraz klaster maszyn z kartami do obliczeń
- Nauczysz się wydajnie przetwarzać dane na pamięci karty graficznej nawet do 800x szybciej
- Poznasz biblioteki Python z pomocą których wykorzystasz technologię NVIDIA CUDA
- Nauczysz się przekształcać obliczenia z NumPy do GPU
- Dowiesz się jak przetwarzać dane korzystając ze znanego z Pandas API DataFrame z pomocą Apache Arrow
- Przygotujesz dane do maszynowego uczenia w całości na GPU
- Nauczysz się trenować i tuningować algorytmy ml z pomocą GPU
- Zbudujesz głębokie sieci neuronowe w oparciu o różne biblioteki
Plan szkolenia
I Wykorzystanie GPU w Data Science
- Wprowadzenie do architektury GPU – obliczenia równoległe
- Compute-Unified Device Architecture CUDA
- Obliczenia równoległe GPU
- Konstrukcja GPU
- Core GPU
- Pamięć GPU
- Interakcje CPU/GPU
- GPU computing in Python
- Przegląd bibliotek i środowisk data science do pracy na GPU w Python
- Konfiguracja środowiska CUDA do obliczeń na GPU
- Skalowalność – praca na wielu kartach graficznych oraz klastrze maszyn z DASK
- Koszt tradycyjnego podejścia CPU GPU – serializacja danych
II Przetwarzanie danych na GPU
- Apache Arrow kolumnowy format danych
- Korzyści z wykorzystania Apache Arrow
- Najważniejsze elementy projektu
- CuPy – tablice wielowymiarowe i obliczenia numeryczne na GPU
- Wielowymiarowy array – ndarray
- Konwersja z NumPy ndarray do CuPy ndarray
- Reprezentacja danych typu Sparse
- Obliczenia w CuPy – ufuncs, Broadcasting, Agregacje
- Operacje na tablicach – indeksowanie, sortowaniem łączenie I dzielenie
- Ładowanie danych
- Tworzenie funkcji pod CUDA
- Numba CUDA kernel
- Ramki danych na GPU – przetwarzanie danych w formie DataFrame
- Przejście z DataFrame na CPU do GPU
- Ładowanie danych do format DataFrame w pamięci GPU
- Podstawowe struktury – Series, Index, DataFrame
- Podstawowe operacje– indeksowanie, wybieranie, filtrowanie, ,mapowanie funkcji, sortowanie, rangowanie, NaN, reindeksowanie, hierarchiczne indeksy, applymap
- Praca z brakującymi obserwacjami NULL
- Agregacja danych – GroupBy
- Przetwarzanie danych tekstowych i ze strukturą czasową
- Łączenie danych – Join, append, concat
- UDFs – tworzenie funkcji operujących na DataFrame
- Przetwarzanie dużych danych na kilku GPU – obliczenia równoległe z DASK
- Praca na wielu kartach jednej maszyny lub klastrze maszyn z GPU
- Reprezentacja DataFrame w partycjach
- Podstawowe obliczenia na danych
- Redukcja, Grupowanie, łączenie danych
III Machine Learning na GPU
- Przygotowanie danych do uczenia
- Przekodowanie zmiennych – Label, Feature Encoding
- Standaryzacja i Normalizacja
- Imputacja i usuwanie braków danych
- Podział danych na zbiór treningowy i testowy
- Wyznaczanie miar do walidacji modeli
- Algorytmy regresji I klasyfikacji
- Regresja liniowa, regularyzacja
- Regresja logistyczna
- KNN
- SVM
- ARIMA dla szeregów czasowych
- Drzewa klasyfikacji- Random Forest
- XGBoost na GPU DF oraz na rozproszonym DF z pomoca DASK
- LightGBM
- CatBoost
- Algorytmy analizy skupień
- K-means
- DBSCAN
- Liniowa i nieliniowa redukcja wymiaru
- PCA
- SVD
- TSNE
- Predykcja na GPU modeli bazujących na algorytmach Ensemble takich jak LightGBM, XGBoost
- Wizualizacja wyników z wykorzystaniem GPU
IV Deep Learning na GPU
- Narzędzia do budowy sieci neuronowych i architektur deep na GPU
- DLPack
- Chainer
- MXNet
- PyTorch
- Tensorflow
- Wprowadzenie do sieci neuronowych i architektur deep
- Reprezentacja danych w postaci tensorów
- Architektura sieci feed-forward i SGD
- Generalizacja metody backpropagation i obliczenie gradientu
- Komponenty sieci – Wagi, bias, funkcje aktywujące
- Parametry wpływające na uczenie sieci – learning rate, batch, dropout
- Tuningowanie sieci i dobór funkcji aktywujących i parametru dropout
- Budowa sieci konwolucyjnych w Tensorflow
- Konwolucje
- Pooling
- Case Study: Klasyfikacja obrazów
- Budowa sieci rekurencyjnych w PyTorch
- LSTM
- GRU
- Attention
- Transformer
- Case study: analiza sentymentu
- Transfer learning
- Adaptacja przytrenowanego modelu do problem
- Douczanie model na nowych danych
- Generative Adversarial Networks
- Generator
- Discriminator
- DCGAN
- Case study: Wykrywanie anomalii siecią GAN w Tensorflow
- Autoencoders
- Contrastive Divergence
- Autoencoders
- Variational autoencoders
- Case study: Wykrywanie anomalii siecią VA w PyTorch
- Deep Reinforcement Learning
- DQNs
- Deep Generating Agents
- Selecting Agents
- Wdrożenie modeli na produkcję