Spark & Hadoop/SparkML

[SparkML] Spark ML이란

YSY^ 2023. 10. 8. 22:36

Spark ML 이란

  • 머신러닝 관련 다양한 알고리즘, 유틸리티로 구성된 라이브러리
  • 여기에는 RDD 기반과 데이터프레임 기반의 두 버전이 존재 
    • spark.mllib vs. spark.ml
      • spark.mllib가 RDD 기반이고 spark.ml은 데이터프레임 기반
      • spark.mllib는 RDD위에서 동작하는 이전 라이브러리로 더 이상 업데이트가 안됨
    • 항상 spark.ml을 사용할 것!
      • import pyspark.ml (import pyspark.mllib)

Spark ML의 장점

  • Onestop ML Framework
    • 데이터프레임과 SparkSQL등을 이용해 전처리
    • Spark ML를 이용해 모델 빌딩
    • ML Pipeline을 통해 모델 빌딩 자동화
    • MLflow로 모델 관리하고 서빙
  • 대용량 데이터도 처리 가능
    • 데이터가 작은 경우 꼭 spark를 쓸 필요는 없음

MLflow

  • 모델의 관리와 서빙을 위한 Ops 관련 기능도 제공
  • 모델 개발과 테스트와 관리와 서빙까지 제공해주는 End-to-End 프레임웍
  • MLflow는 Python, JAVA, R, API(Python, JAVA, R이 아닌 다른 언어를 API로 연결 가능)를 지원
  • MLflow는 트래킹(Tracking), 모델(Models), 프로젝트(Projects)를 지원

Spark ML에서 제공하는 알고리즘

  • Classification
    • Logistic regression, Decision tree, Random forest, Gradient-boosted tree, …
  • Regression
    • Linear regression, Decision tree, Random forest, Gradient-boosted tree
  • Clustering
    • K-means, LDA(Latent Dirichlet Allocation), GMM(Gaussian Mixture Model)
  • Collaborative Filtering
    • 명시적인 피드백과 암묵적인 피드백 기반
    • 명시적인 피드백의 예) 리뷰 평점
    • 암묵적인 피드백의 예) 클릭, 구매 등등

Spark ML 기반 모델 빌딩의 기본 구조

  • 다른 라이브러리를 사용한 모델 빌딩과 크게 다르지 않음
    • Training Set 전처리
    • 모델 빌딩
    • 모델 검증 (confusion matrix)
  • Scikit-Learn과 비교했을 때 장점
    • 차이점은 결국 데이터의 크기
    • Scikit-Learn은 하나의 컴퓨터에서 돌아가는 모델 빌딩
    • Spark ML는 여러 서버 위에서 모델 빌딩
  • 트레이닝셋의 크기가 크면 전처리와 모델 빌딩에 있어 Spark이 큰 장점을 가짐
  • Spark은 ML 파이프라인을 통해 모델 개발의 반복을 쉽게 해줌

 

위 포스팅은 [파이썬으로 해보는 Spark 프로그래밍 with 프로그래머스] 강의를 듣고 정리한 내용입니다

728x90
반응형