Spark MLib?
머신러닝 관련 다양한 알고리즘, 유틸리티로 구성된 라이브러리
- Classfication, Regression, Clustering, Collaborative Filtering, Dimensionality, Reduction 등
- 딥러닝 분야는 아직 약함
RDD기반 & 데이터프레임 기반
- spark.mlib가 RDD기반
- spark.ml은 데이터프레임 기반
- spark.mlib은 RDD는 더 이상 업데이트 안됨 spark.ml 사용해야함
SPARK MLIB 장점
- 데이터프레임과 SparkSQL등을 이용해 전처리
- Spark Mlib을 이용해 모델 빌딩
- ML Pipeline을 통해 모델 빌딩 자동화
- MLflow로 모델 관리, 서빙
- 대용량 데이터도 처리 가능
- spark안에서 모든게 가능하다는 것
MLflow
모델의 관리와 서빙을 위한 Ops 관련 기능 제공
- 모델 개발과 테스트와 관리와 서빙까지 제공해주는 End-to-End 프레임워크
- MLflow는 파이썬, 자바, R, API를 지원
- MLflow는 트래킹, 모델, 프로젝트를 지원
Spark Mlib 알고리즘
Classification
- Logistic regression, Decision tree, Random forest, Gradient-boosted tree...
Regression
- Linear regression, Deicision tree, Random forest, Gradient-boosted tree...
Clustering
- K-means, LDA(Latent Dirichlet Allocation), GMM(Gaussian Mixture Model)...
Collaborative Filtering
- 명시적인 피드백과 암묵적인 피드백기반
- 명시적인 피드백 -> 리뷰 평점
- 암묵적인 피드백 -> 클릭, 구매 등
Spark MLib 기반 모델 빌딩의 기본구조
- 다른 라이브러리를 사용한 모델 빌딩과 크게 다르지 않음
- 트레이닝셋 전처리, 모델 빌딩, 모델 검증 다 가능
Scikit-Learn과 비교
- 차이점은 데이터의 크기
- Scikit-Learn은 하나의 컴퓨터에서 돌아가는 모델 빌딩
- Spark MLlib는 여러 서버 위에서 모델 빌딩
- 트레이닝셋의 크기가 크면 전처리가 모델 빌딩에 있어 SPARK가 큰 장점을 가짐
- 파이프라인을 통해 모델 개발의 반복을 쉽게 해줌
