Openscale은 머신러닝 모델을 비즈니스 어플리케이션에서 사용하는 환경에서 머신러닝 모델의 예측 결과값이 정확하게 예측하고 있는지, 비즈니스적으로 공평한 예측이 필요한 속성(예:성별, 나이, 인종)에 대해 편향(Bias)가 없는지, 나아가 왜 이러한 결과가 나왔는지 트랜잭션 단위로 설명할 수 있는 기능을 제공하는 머신러닝 모델 관리 및 운영 플랫폼입니다.

보다 실제적인 이해를 위해 자동차 렌탈 데이터를 사용하여 렌탈 서비스에 만족하지 못한 고객들을 대상으로 픽업서비스 혹은 바우처 등의 추천 액션(Action)을 예측하는 모델을 Openscale을 적용하는 튜토리얼을 진행해 보도록 하겠습니다.

Openscale은 머신러닝 모델을 모니터링하는 서비스기 때문에 Build 및 Deployed 머신러닝 모델이 반드시 필요합니다. 튜토리얼에서는 공개 Spark 기반의 CARS4U-Action-Recommendation 모델을 IBM Watson Studio Service 를 통해 Build하고 IBM Watson Machine Learning Service에 Deploy 하고 해당 CARS4U-Action-Recommendation 모델을 Openscale에 연결하여 모니터링 Feature(속성) 및 threshold 등을 정해 보도록 하겠습니다.

튜토리얼에 사용되는 주요 서비스

1. Watson Studio
2. Watson Machine Learning
3. Watson Openscale
4. DB2 (optional)

Openscale 튜토리얼로 Watson Studio 와 Watson Machine Learning 서비스를 사용하는 부분은 간단하게 진행하겠습니다.

단계 1 – 머신러닝 모델 Build 하기

1.머신러닝에 사용할 학습데이터를 확인해 보겠습니다. https://github.com/watson-developer-cloud/doc-tutorial-downloads/blob/master/ai-openscale/car_rental_training_data.csv

학습데이터는 Gender(성별), Children(자녀수),Age(연령),Car_Owner(차량보유여부),Satisfaction(서비스만족도),Action(추천서비스) 등의 속성으로 구성되어 있습니다.

2.학습 데이터를 DB2에 올리고 이를 Watson Studio의 Asset으로 Connect합니다. DB2 서비스를 사용하지 않을 경우는 csv 파일을 Watson Studio의 Asset에 바로 upload 하셔도 됩니다.

3. Watson Studio의 Data Profiling 기능을 사용하여 간단한 통계 정보 등을 통해 머신러닝 모델의 시작 단계인 데이터 탐색을 할 수 있습니다.

4. Watson Studio에 CARS4U-Action-Recommendation-spark.ipynb을 Jupyter Notebook으로 import하여 실행합니다. https://github.com/watson-developer-cloud/doc-tutorial-downloads/blob/master/ai-openscale/CARS4U-Action-Recommendation-Spark.ipynb

단계 2 – 머신러닝 모델 Deploy

1. CARS4U-Action-Recommendation-spark 모델을 Watson Studio의 Notebook 상에서 Watson Machine Learning 에 Deploy 하면 아래와 같이 Model Name, Deployment 관련정보를 리턴해 줍니다.

이제 Openscale에 연동할 머신러닝 모델이 준비되었습니다. 본격적으로 Openscale 튜토리얼을 시작해 보겠습니다.

단계 3 – 머신러닝 모델을 Openscale에 연동하기

1.OpenScale 서비스의 Tool을 Open합니다.

디폴트 데이터베이스로 Postgre를 선택합니다. schema는 public으로 선택합니다. 데이터베이스는 앞에 생성한 모델 Deployment 결과를 Openscale에도 저장하고 재학습을 위한 데이터를 저장하는 용도로 사용됩니다.

2.Openscale에서 모니터링한 모델을 선택하기 위해 해당 모델이 Deploy된 환경을 선택합니다.
저희는 앞단계에서 Watson Machine Learning에 모델을 Deploy했기 때문에 Watson Machine Learning을 선택합니다.

3.Watson Machine Learning에 Deploy된 모델중 모니터링 대상 모델을 선택합니다.
저희는 앞단계에서 1개의 모델을 1번 Deploy했기 때문에 Deploy된 모델을 1개만 존재합니다.

4.지금까지는 우리가 모니터링할 모델의 Deployment를 Openscale에 연결하는 기본 설정 작업이었습니다. 이를 확인하고 다음 단계로 넘어갑니다.

5.위에서 Openscalel에 설정한 Deployment를 선택합니다.

6.아래 그림처럼 Openscale에서는 Accuracy, Fairness, Explainability 의 3가지 영역에 대해 머신러닝 모델을 운영 및 모니터링 할 수 있습니다.

본격적인 Openscale의 3가지 모니터링 대상 영역에 대해서는 두번째 글에서 진행하도록 하겠습니다.