sailorCat
카테고리
작성일
2022. 3. 15. 06:50
작성자
sailorCat
728x90
from pyspark2pmml import PMMLBuilder

pmmlBuilder = PMMLBuilder(spark.sparkContext, train, cvModel)
pmmlBuilder.buildFile("Titanic.pmml")

## 빌딩 예제

from pypmml import Model

model = Model.load("Titanic.pmml")
model.predict(df)

## 로딩, 호출 예제

 

 

범용 머신러닝 모델 파일 포멧

Scikit-Learn, PyTorch, Tensorflow, Spark MLlib 등의 다양한 머신러닝 개발 플랫폼의 환경에서 통용되는 머신러닝 파일 포맷이 있다.

PMML과 MLeap 등이 있다.

 

이 공통 파일 포맷을 이용하면 어디서나 호환이 가능하다.

하지만 공통 파일 포맷이 지원해주는 기능이 미약하기 때문에 복잡한 모델에서는 지원이 복잡하다.

 

PMML 

Predictive Model Markup Language

ML 모델을 마크업 언어로 표현하는 XML 언어

간단한 입력 데이터 전처리와 후처리도 지원하지만 제약사항이 많다.

 

Java 기반으로 PMML 엔진을 구현한다.

 

PySpark 에서는 pyspark2pmml을 사용하지만 내부적으로는 jpmml-sparkml이라는 자바 jar 파일을 사용한다.

 

 

PMML process

1. ML Pipeline을 PMML 파일로 저장한다

- pyspark2pmml 모듈을 설치

- pyspark2pmml.PMMLBuilder로 ML Pipeline을 PMML 파일로 저장

 

2. PMML 파일을 기반으로 모델 예측 API로 런치한다

- openscoring 프레임 워크

- AWS SageMaker

- Flask + PyPMML

 

3. 이 API를 통해 예측 결과를 받는 클라이언트 코드를 작성한다

 

 

728x90