Analityka wysokiej wydajności. Przegląd możliwości technologii SAS. Adam Bartos
Analityka wysokiej wydajności. Właściwie po co? Big Data 3xV Competing on Analytics
Aspekty wysokiej wydajności Wydajność obliczeń Wydajność procesu Act Evaluate Ask Prepare Data Integracja danych Eksploracja analityczna Transformacja danych Modelowanie Skoring Modelowanie masowe Przekazanie na produkcję Zarządzanie modelami Implement Explore Model
Uproszczona architektura rozwiązań analitycznych SAS Enterprise Miner Enterprise Guide SAS Factory Miner Workspace Server Serwer SMP Źródła danych Workspace Server Klasyka czyli Single User SMP Silnik analityczny jest uruchamiany niezależnie dla każdego użytkownika na wspólnym serwerze (np. AIX) Algorytm analityczny wykorzystuje wielowątkowość w ramach jednego procesu (thread level) do przetwarzania jednego zbioru danych
Uproszczona architektura rozwiązań analitycznych SAS Enterprise Miner Enterprise Guide SAS Factory Miner Workspace Server Serwer SMP Workspace Server Workspace Server Serwer SMP Workspace Server Prawie klasyka czyli Single User + GRID Silnik analityczny jest uruchamiany niezależnie dla każdego użytkownika na jednym z serwerów w GRID Źródła danych Algorytm analityczny wykorzystuje wielowątkowość w ramach jednego procesu do przetwarzania jednego zbioru danych Wiele algorytmów może być równocześnie uruchomionych na kilku maszynach (np. różne metody modelowania w Enterprise Miner)
Uproszczona architektura rozwiązań analitycznych SAS Enterprise Miner Enterprise Guide SAS Factory Miner Workspace Server Serwer SMP Workspace Server Węzeł MPP Węzeł MPP Węzeł MPP Węzeł MPP Proces Master Proces Master Klaster MPP Proces Worker Proces Worker Proces Worker Proces Worker Proces Worker Proces Worker Rodzina HPA Single User + MPP Silnik analityczny jest uruchamiany niezależnie dla każdego użytkownika na wspólnym klastrze maszyn Algorytm analityczny wykorzystuje wielowątkowość w ramach wielu procesów (thread & proces level) do przetwarzania jednego zbioru danych Analizowany zbiór danych ładowany do pamięci tymczasowo Źródła danych MPP Data Store
Uproszczona architektura rozwiązań analitycznych SAS Visual Analytics Visual Statistics SAS Studio (In-Memory Statistics) Węzeł MPP Węzeł MPP Węzeł MPP Węzeł MPP Server Master Klaster MPP Server Worker Server Worker Server Worker LASR Server: Multi User Server + MPP Wszyscy użytkownicy korzystają ze wspólnego silnika analitycznego na wspólnym klastrze maszyn Algorytm analityczny wykorzystuje wielowątkowość w ramach wielu procesów (thread & proces level) do przetwarzania jednego zbioru danych Współdzielone zbiory danych stale w pamięci Źródła danych MPP Data Store
Aplikacje SAS z opcją GRID Prawie klasyka czyli Single User + GRID GRID CONTROL SERVER GRID NODE 1 GRID NODE 2 GRID NODE N Workspace Server Workspace Server 4GL Workspace Server Workspace Server Zarządzanie Obciążeniem Zarządzanie zadaniami, hostami oraz użytkownikami Priorytetyzacja i szeregowanie poprzez zaawansowany mechanizm kolejek Identyfikacja, alokacja i zarządzanie zasobami Wysoka Dostępność Wykrywanie awarii grid i automatyczne przywracanie działania Automatyczny wznawianie zadań z uwzględnieniem wykonanej pracy Wydajność Podział sekwencji zadań na podzadania do wykonania równoległego Podział, dystrybucja i parametryzacja zadań (wybrane zadania ETL, modelowanie)
Procedury zaawansowanej analityki zaimplementowane jako algorytmy przetwarzania równoległego dostępne z poziomu: Kodu SAS 4GL SAS Enterprise Miner/Text Miner (jako węzły w interfejsie użytkownika) SAS Factory Miner Najważniejsze założenia architektoniczne Dane In-Memory (tymczasowo)» Pobierane do pamięci na czas działania procedury, dystrybuowane w całym klastrze» Równoległe ładowanie danych do pamięci» Szybka analiza danych dla algorytmów wieloprzebiegowych» Kopia danych dla każdego wywołania procedury HP* Distributed Computing Model Rodzina Procedur HPA High Performance XXX» Wykorzystanie wielowątkowości (thread) i wielu węzłów (node)» Protokół MPI do komunikacji pomiędzy jednostkami pracy MPP (w tym w środowisku Hadoop) lub SMP (pojedyncza maszyna) CPU RAM CPU
FUNKCJONALNOŚĆ SAS HIGH-PERFORMANCE Statistics Data Mining Text Mining Econometrics Optimization Binary target & continuous no. predictions Linear, Non- Complex relationships Tree- and Parsing largescale text collections Extract Probability of events Severity of random Local search optimization Large-scale linear & mixed Linear, & Forest-based entities events integer Mixed Linear modeling Classification Segmentation/ Clustering Variable Auto. stemming & synonym detection problems Selection
JAKO TO DZIAŁA? Kontroler SAS Enterprise Miner SAS Text Miner SAS Enterprise Guide (SAS/STAT, SAS/ETS, SAS/OR ) Klaster MPP 11 Copyright 2012, SAS Institute Inc. All rights reserved.
Jako to działa? Integracja z SAS Enterprise Miner
Lista węzłów SAS Enterprise Miner SAMPLE Append Data Partition File Import Filter Merge Sample Input Data EXPLORE Association Cluster Graph Explore Variable Clustering DMDB MultiPlot Market Basket StatExplore Link Analysis Path Analysis Variable Selection SOM/Kohonen MODIFY Drop Impute Interactive Binning Principal Components Replacement Rules Builder Transform Variables Decision Tree AutoNeural Regression Neural Network Partial Least Squares Dmine Regression DM Neural Ensemble Rule Induction Gradient Boosting LARS MBR Two Stage Model Import MODEL Incremental Response Survival Analysis Credit Scoring* TS Correlation TS Data Prep TS Dimension Reduction TS Decomp. TS Similarity TS Exponential Smoothing HP Explore HP Impute HP HP Variable HP Transform Regression Selection HP Neural HP Forest HP Decision Tree HP Data Partition HP GLM HP SVM HP Cluster HP Principal Components ASSESS Cutoff Decisions Model Comparison Score Segment Profile UTILITY Control Point End Groups Start Groups Open Source Integration Reporter Score Code Export Metadata SAS Code Ext Demo Save Data Register Metadata *Requires Credit Scoring for SAS Enterprise Miner Add-on License.
SAS High-Performance Data Mining Co można uzyskać? DATA EXPLORATION Klasyczny proces Metoda Sieci Neuronowej (1 iteracja) M O D E L D E V E L O P M E N T MODEL DEPLOYMENT Proces z użyciem High- Performance Metoda Sieci Neuronowej (100 iteracji) 5 godzin na policzenie modelu 6 minut na policzenie model Model lift 1.6% Model lift 3.2% Ograniczenie do 1-2 metod Możliwe eksperymenty z wieloma metodami 84 SECONDS
High Performance Data Mining na Hadoop Klaster 8 Węzłów, 64-rdzenie, Apache YARN, dane w formacie SASHDAT Data Mining Dane: 2 miliony rekordów 7.6GB 250 przedziałowych zmiennych wejściowych 125 kategoryzujących zmiennych wejściowych 125 binarnych zmiennych wejściowych 1 binarna zmienna objaśniana Obciążenie w tle (ETL w Map Reduce) 1 milion rekordów 3.05GB danych 200 przedziałowych zmiennych wejściowych 100 kategoryzujących zmiennych wejściowych 100 binarny zmiennych wejściowych 1 binarna zmienna objaśniana Węzeł EM SAS High- Performance Data Mining SAS High- Performance Data Mining i zadania w tle Input Data Source Files 00:03:25 00:04:39 HP Explore 00:01:12 00:01:43 HP Partition 00:01:43 00:03:08 HP Impute 00:01:22 00:01:41 HP Variable Selection 00:03:29 00:04:33 HP Transform 00:00:54 00:00:54 HP Regression: Forward 00:02:05 00:02:22 HP Regression: Stepwise 00:02:02 00:02:07 HP Neural 00:02:25 00:02:13 HP Tree 00:02:04 00:02:06 Model Comparison 00:00:02 00:00:02 Total (flow) Run Time 00:20:30 00:24:58 Konfiguracja Systemu: Osiem wirtualnych węzłów w ramach VMWare ESXi 5.5.0 vcpu: Intel Xeon CPU E7-4880 v2, 2.50GHz (8 core na węzeł) Memory: 64GB RAM (na węzeł), razem 512GB Storage: XIV version 11.4.1a with 5TB storage Network: 10GB Ethernet (na każdym węźle)
High Performance Data Mining Czy jest sens na PC? Data Mining Dane: 6 miliony rekordów 625 MB Analiza Procedura Czas procedury Czas węzła Regresja logistyczna Drzewo decyzyjne Proc dmreg Proc hplogistic Proc arbor Proc hpsplit 1:16 (cpu 1:16) 0:24 (cpu 1:10) 1:56 (cpu 1:56) 0:41 (cpu 2:23) 2m 31 s 1m 32 s 2m 20 s 1m 09 s Sieć neuronowa Proc neural Proc hpneural 35:37 (cpu 35:27) 2:12 (cpu 4:35) 37 m 4m 7s Konfiguracja Systemu: Pojedynczy PC z Windows 64-bit CPU: 4 Core+Hyper Threading Memory: 64GB RAM
SAS High-Performance Data Mining Co jest potrzebne? SAS Software SAS Enterprise Miner (Licencjonowany Odrębnie) SAS/ACCESS Engine Client Environment (SAS 9.4) Windows x64 (64-bit) Linux x64 (64-bit): Novell SuSE; RHEL; OEL IBM AIX (64-bit) HP/UX on Itanium (64-bit) Solaris x64 (64-bit), Solaris on SPARC (64-bit) Server Environment Linux x64 (64-bit): Novell SuSE 11 SP1; RHEL 6.1; OEL 6.1
SAS LASR Analytics Server Serwer obliczeniowy in-memory zaprojektowany specjalnie dla potrzeb interaktywnej zaawansowanej analityki i wizualizacji danych Najważniejsze założenia architektoniczne Dane In-Memory» Dane dystrybuowane w całym klastrze - partycjonowanie» Pozwala na szybką analizę danych dla algorytmów wieloprzebiegowe (multipass)» Współdzielony dostęp do danych dla wielu procesów Hybrid Distributed Computing Model» Wykorzystanie wielowątkowości (thread level)» Wykorzystanie wielu węzłów (node level)» Algorytmy równoległe świadome rozłożenia jednostek pracy (maszyna i jej rdzenie) CPU RAM CPU Wbudowane algorytmy zaawansowanej analityki, dziedzictwo 38 lat rozwoju narzędzi SAS. Regresja logistyczna nie zawsze znaczy to samo 2 miliardy kolumn Multi-User = Setki jednoczesnych użytkowników Stateless = nie ma potrzeby wyliczeń a-priori MPP (w tym w środowisku Hadoop) lub SMP (pojedyncza maszyna)
Data Manipulation SAS Data Step BALANCE COLUMINFO COMPUTE DELETEROWS DISTINCT DROPTABLE FETCH GROUPBY PARTITION PROMOTE PURGETEMPTABLES SET TABLE TRANSFORM UPDATE SAS LASR Analytics Server Funkcje silnika (tzw. Akcje) Data Exploration/ Visualization BOXPLOT CORR CROSSTAB CONTOURPLOT DISTRIBUTIONINFO FREQUENCY HISTOGRAM HYPERGROUP KDE REPLAY SUMMARY Predictive Modeling DECISIONTREE FORECAST LOGISTIC GENMODEL GLM RANDOMWOODS ASSESMENT ARM NEURAL OPTIMIZE Descriptive Modeling CLUSTER SVD Recommender CLUSTER KNN ASSOCIATIONS SVD Text Analytics PARSING SVD Deployment/ Miscellaneous EXTERNAL (C API) FREE SAVE STORE SCORE Data Manipulation Exploration / Visualization Modeling Deployment
SAS LASR Analytics Server Jak korzystamy? Visual Analytics Visual Statistics In-Memory Statistics LASR Server Master LASR Server Worker LASR Server Worker LASR Server Worker Klaster MPP
In-Memory Statistics (SAS LASR Server) Przykłady wydajności Dane (Modelowanie): 5 000 175 rekordów 134 zmienne Łącznie wszystkie zadania 12.56s Skoring: 50 milionów rekordów Regresja liniowa 1.34 s Konfiguracja Systemu: CPU: 4 x 4 rdzenie Zadanie Czas (sec) Akcja PROC IMSTAT Statystyki opisowe dla jednej zmiennej numerycznej (n, min, max, mean, std) 0.03 summary Mediana i decyle dla jednej zmiennej numerycznej 0.11 percentile Rozkład częstości dla jednej zmiennej tekstowej 0.03 frequency Regresja liniowa dla 1 ilościowej zmiennej objaśnianej oraz 20 predyktorów ilościowych wraz z kodem skoringowym 2.43 glm Regresja liniowa dla 1 ilościowej zmiennej objaśnianej oraz 10 predyktorów ilościowych i 10 jakościowych 0.55 glm Regresja logistyczna dla 1 binarnej zmiennej objaśnianej oraz 20 predyktorów ilościowych 1.10 logistic Uogólniony model liniowy dla ilościowej zmiennej objaśnianej, 20 predyktorów ilościowych, rozkład gamma 5.49 genmodel k-means clustering dla 20 aktywnych zmiennych 0.64 cluster k-means clustering dla 100 aktywnych zmiennych 2.18 cluster
LASR Server i SAS High-Performance Możliwe architektury w relacji do klastra Hadoop DEDYKOWANY KLASTER DLA LASR/HPA SERVER Węzły LASR/HPA zainstalowane poza węzłami klastra Hadoop Przetwarzanie Hadoop separowane od przetwarzania LASR Asymetryczna architektura ładowania danych, z wykorzystaniem SAS Embedded Process lub tzw. Front Loading Hadoop Hadoop Hadoop Hadoop Hadoop EP EP EP EP EP Network SYMETRYCZNY KLASTER WSPÓŁDZIELONY Węzły LASR/HPA zainstalowane na wszystkich węzłach klastra Hadoop Konfiguracja klastra musi uwzględniać potencjalne konkurowanie o zasoby (np. wykorzystując YARN) Możliwa symetryczna (kolokowana) architektura dla ładowania danych z wykorzystaniem formatu SASHDAT LASR Hadoop LASR LASR LASR Hadoop LASR LASR Hadoop LASR Hadoop LASR ASYMETRYCZNY KLASTER WSPÓŁDZIELONY Węzły LASR/HPA zainstalowane na wybranych węzłach klastra Hadoop Konfiguracja klastra musi uwzględniać potencjalne konkurowanie o zasoby (np. wykorzystując YARN) Asymetryczna architektura ładowania danych, z wykorzystaniem SAS Embedded Process Hadoop EP Hadoop Hadoop LASR Hadoop LASR Hadoop LASR Hadoop EP EP EP EP EP LASR
LASR Server i SAS High-Performance Inne wspierane architektury sprzętowe Teradata Teradata 720 appliance połączony do Teradata Database EMC Pivotal Pivotal (Greenplum) Data Compute Appliance połączony do Greenplum Database Oracle Oracle Exalogic/Big Data Appliance/Commodity połączony do Exadata Database (Linux)
A co z wydajnością w innych aspektach? Aspekt Wydajność obliczeń Rozwiązania/technologie SAS Integracja Danych SAS Data Loader for Hadoop SAS Data Management Skoring Rodzina SAS Scoring Accelerator SAS Event Stream Processing Wydajność procesu Modelowanie masowe SAS Factory Miner Przekazanie na produkcję SAS Model Manager SAS Decision Manager Zarządzanie modelami SAS Model Manager
Agenda Informacje o prezentacjach i prelegentach Możliwość oceny prezentacji
Dziękuję za uwagę
SAS High-Performance Data Mining 13.2 CORE CAPABILITIES Data summarization High-performance DS2 High-performance data mining database Correlation Sampling Binning Imputation
SAS High-Performance Data Mining 13.2 SAS HIGH-PERFORMANCE STATISTICS Logistic regression and model selection Linear regression and model selection Nonlinear regression Partial least squares Quantile regression analysis Generalized linear modeling and model selection Decision trees Finite mixture models Principal components analysis Canonical discriminant analysis
SAS High-Performance Data Mining 13.2 SAS HIGH-PERFORMANCE DATA MINING Variable reduction Time series dimensional reduction Neural networks Random forests Random forest scoring Decisions Bayesian network Clustering Support vector machines
SAS High- Performance Data Mining 13.2 Champion models are automatically selected using selectable criteria: Kolmogorov-Smirnnov. Lift and cumulative lift. Gain and cumulative gain. Misclassification rate. Percent captured event. Average percent captured event. Average square error.
SAS High- Performance Data Mining 13.2 Bayesian Network Model A Bayesian network is a directed acyclic graphical model in which nodes represent random variables and the links between nodes represent conditional dependency of the random variables. Features: structure learning through efficient local learning algorithms efficient variable selection through independence tests automatic selection of the best parameters by using a validation data subset learning of different types of Bayesian network structures handling of both nominal and interval input variables binning of the interval input variables handling of missing values multithreading during the training and scoring phases
SAS High- Performance Data Mining 13.2 Splitting criteria: CHAID Chi-square Entropy Fast CHAID Gini Information Gain Ratio F Test Variance Decision Tree Model Subtree methods: Assessment C4.5 Cost-complexity
SAS in-database EP udostępnia run-time SAS (tzw. TK) w platformach MPP Wykonuje program EMBEDDED w języku SAS DS2 PROCESS. CO TO JEST? Implementacja specyficzna (zoptymalizowana) dla danego środowiska MPP (skalowalność taka jak środowiska) Wykorzystuje rozproszoną architekturę Hadoop (Map-Reduce) lub mechanizmy platformy MPP (integracja poprzez Table Function UDF) dla optymalizacji i przetwarzania równoległego Jest zarządzany przez mechanizm workload management platformy MPP (np. przez YARN jak każda aplikacja M-R) W środowisku Hadoop wykorzystuje Hive, HCatalog oraz natywny dostęp do HDFS aby zapisywać/odczytywać dane (Avro, ORC, Parquet, RCFile, sequence, binary, delimited, XML) W środowisku MPP RDBMS korzysta z wewnętrznej komunikacji bazy do odczytu/zapisu danych, wykorzystuje mechanizmy optymalizacji platformy (np. Degree of Parelelism w Oracle Exadata) Oprócz Hadoop EP jest dostępny również w środowiskach MPP: IBM DB2 Pivotal Greenplum SAP HANA IBM Netezza Oracle Teradata
SCORE Data Manipulation Aggregate Compute Update Append Set Schema DeleteRows DropTables PurgeTempTables Data Exploration Boxplot Corr Crosstab Distinct Fetch Frequency Histogram KDE MDSummary Percentile Summary TopK Capabilities of SAS In-memory Statistics PREPARE DATA ANALYTICAL LIFE CYCLE TEXT Model Evaluation & Deployment DEVELOP MODELS Evaluation, Deployment Assess Misclassification matrix Lift, ROC, Concordance Score Training / Validation EXPLORE DATA Modeling Predictive Modeling Decision Tree Forecast Gen Linear Model Linear Regression Logistic Regression Random Forests Neural Networks Descriptive Modeling Association Path Analysis Clustering (k-means) Clustering (DBSCAN) Utilities Where GroupBy TableInfo, ColumnInfo, ServerInfo Partition, Balance Store, Replay, Free Table, Promote Text Analytics Parsing SVD Topic generation Document projection Recommendation Systems Association Clustering knn SVD Ensemble HDFS I/O Sasiola Sashdat Anyfile Reader
SAS Scoring Accelerator EMBEDDED PROCESSING (EP) MODEL PUBLISHING METHOD SAS Enterprise Miner Model SAS Scoring Code or Model Package Generated SAS Model Manager or SAS Program Interface Publish SQL query used to run the SAS Program SAS/STAT Model SAS Scoring Code or Itemstore Generated SAS/Access Interface SAS Model Manager Publish DS2 Program Published Registered DS2 Program SAS Embedded Process Registered SAS Formats Database Database Systems Supported (EP Publishing): Teradata, DB2, IBM Netezza, Aster Data, Oracle, SAP HANA, Hadoop & Pivotal (previously Greenplum)
SAS Scoring Accelerator WYDAJNOŚĆ