이 프로젝트는 머신러닝 모델을 운영중인 기업에게 효율적인 모델 관리 환경을 제공하는 B2B SaaS 입니다. 모델의 현황과 이상유무를 직관적인 GUI로 제공합니다.
My Contribution
팀에서 유일한 디자이너로서 머신러닝 엔지니어 및 개발자와 긴밀히 협력했습니다. 머신러닝 엔지니어와 협력하여 머신러닝 모델 상태 파악의 중요성과 어려움을 파악하고 이를 효과적으로 개선하기 위한 방안을 설계했습니다.
이를 바탕으로 프로토타입을 제작하고 머신러닝 엔지니어의 피드백을 수집했습니다. 최종적으로 제품 확장 로드맵에 따른 GUI를 제작했습니다. Timeline 19년 6월 ~ 20년4월 Team Size 8명
Target User 모델 관리자, 머신러닝 엔지니어 My Role 리서치 인포메이션 아키텍처 유저 익스피리언스 비주얼 디자인
Design Challenges
서버나 데이터, 클라우드의 상태를 모니터링하고 이상탐지를 하는 서비스 등 다른 도메인에서 모니터링 서비스는 여럿 존재합니다. 하지만 머신러닝 모델의 상태를 모니터링하고 이상유무를 탐지하는 서비스는 사례를 찾기 어려웠습니다. 때문에 가장 적합한 GUI 사례 또한 찾기 어려웠습니다.
문제의 시작점으로 돌아가 머신러닝에서 모델이란 무엇인지, 모델의 모니터링이 왜 필요한지, 이상탐지 과정이 왜 필요한지를 팀내 머신러닝 엔지니어와의 대화를 통해 학습했습니다. 이러한 과정을 통해 머신러닝 모니터링 과정의 처음부터 끝을 도식화 할 수 있었고 이를 바탕으로 서비스의 구조를 잡을 수 있었습니다.
So What’s the Problem?
서비스 기획 당시까지만 해도 기업에서 머신러닝 모델을 생성해 관리하고 있는 사례는 많지 않았습니다. 때문에 머신러닝 모델의 관리, 최신화, 이상탐지 솔루션 또한 도입된 사례를 찾아보기 어려웠습니다. 머신러닝 모델을 운영중이더라도 시범적인 수준이 대부분이었고 모델 관리자가 수동적으로 모델의 이상을 발견해 조치하는 수준에 머물러있었습니다. 저희는 이러한 시장에 머신러닝 모델을 공급하고 있는 기업으로서 머신러닝 모델 도입 후 파이프라인도 제공할 수 있어야했습니다.
Identifying Users
크게 두 가지 유형의 사용자가 존재합니다. 모델의 상태를 확인하고 이상유무를 점검하는 모델 관리자, 모델 이상시 대응, 모델 성능 개선, 모델 최신화를 담당하는 머신러닝 엔지니어가 있습니다.
Primary Users
기업의 모델 관리 담당자는 머신러닝에 익숙한 사람은 아닙니다. 원래는 서버 관리를 전문으로 하는 사용자로 서버 상태와 더불어 머신러닝 모델의 상태를 확인하게 됩니다. 만약 이상이 발견된다면 이를 머신러닝 엔지니어에게 전달하게 됩니다. 모니터링 시간이 길기때문에 주로 제품을 사용하게될 사용자입니다.
Goal: 기업 서비스의 정상적인 운영
Needs: 서비스 운영 상태 전반에 대한 실시간 파악
Must: 정상 운영 확인, 이상 발생시 빠른 탐지
Secondary Users
머신러닝 엔지니어는 기업에 필요한 머신러닝 모델을 배포, 운영, 관리를 책임지는 사용자입니다. 머신러닝 엔지니어는 모델 배포에 초점을 맞추고 업무를 진행해 모니터링 서비스에는 익숙하지 않습니다. 머신러닝 엔지니어는 모델 관리 담당자의 이상 보고서를 받아 이상의 유형을 확인하고 개선, 모델 실험, 배포, 모델 정상 작동 확인의 업무를 담당하게 됩니다.
Goal: 머신러닝 모델의 정상적인 운영 및 개선
Needs: 실시간 모델 이상유무 및 성능 확인
Must: 이상 발생시 빠른 탐지, 성능 저하시 빠른 확인
Market Opportunites
새로운 시장인만큼 보다 상세한 리서치를 통해 어떤 기회가 있고 어떤 위험이 있는지 구체화했습니다. 빠르게 변화하는 시장의 특징을 놓치지 않기 위해 노력했습니다.
Legacy Software: 기존의 서버 모니터링 서비스에 머신러닝 모니터링 서비스를 Add-on으로 추가한 형태가 대부분입니다. 머신러닝 모델 관리에 최적화되어있지 않고 머신러닝 엔지니어에게 불친절한 환경입니다.
Value Leakage: 머신러닝 모델 도입이 시작되고 있으나 아직 초보적인 수준이며 모델의 배포도 1회성에 그치고 있습니다. 지속적으로 변화하는 데이터에 맞추어 머신러닝 모델 또한 지속적으로 관리해야 정확한 인사이트를 도출할 수 있습니다.
High-Level Goals
다양한 리서치를 종합해 세개의 주요 목표를 정할 수 있었습니다. 이 목표는 제품 설계 및 개발에 있어 최우선 목표로 삼았습니다.
쉬운 모델 관리: 기존 모니터링 서비스와 유사한 익숙한 인터페이스, 비 전문가도 사용 가능
빠른 이상 대응: 이상, 성능 저하 발생시 빠른 알림
정확한 모델 상태 분석: 머신러닝 엔지니어에게 도움이 되는 정보 제공
Interactions
머신러닝 엔지니어는 수집된 데이터를 분석하여 머신러닝 모델을 만들고 모델을 개선하여 최종 배포합니다. 배포된 모델은 서버에 올라가 여러 인사이트를 전달합니다. 하지만 모델을 관리하지 않으면 모델의 성능은 저하될 수 밖에 없습니다. 최신의 데이터 환경에 맞는 업데이트가 지속적으로 필요합니다. 모델관리 파이프라인이 체계적으로 정착하면 모델 관리 담당자와 머신러닝 엔지니어는
모델의 실시간 상태를 한 눈에 확인할 수 있습니다.
모델에 이상 발생시 즉각 알림을 받을 수 있습니다.
모델 이상 발생 내역을 확인할 수 있습니다.
모델의 성능을 추적할 수 있습니다.
Data Visualization Color Palettes
모델의 상태를 보여주는 제품 특성상 다양한 정보 시각화가 필요했습니다. 좁은 공간에서 다양한 정보를 명확하게 구분할 수 있도록 색상 사용에 노력을 기울였습니다. 데이터의 연관성이 없는 경우는 각 색이 명확하게 구분될 수 있도록, 데이터의 연관성이 있는 경우 연관성을 보여주면서도 구분될 수 있도록 배색했습니다.
Categorical Colors알고리즘에 따른 모델 예측 히스토리를 보여주는 라인 차트입니다. 각 알고리즘은 서로간의 상관관계를 갖지 않습니다. 때문에 명확하게 구분되도록 배색했습니다. 예시의 경우 여섯개의 색상을 배색했고 서로간에 색조와 채도가 가능한 멀도록 조합했습니다. 결과적으로 시각적 순서나 집합이 느껴지지 않도록 했습니다.
뿐만아니라 가는 선으로 표현되는 라인 차트 특성상 하얀 배경과 명확히 구분될 수 있는 색조와 채도로 배색했습니다. Sequential Palettes스키마 에러의 유형을 시간별로 나타내는 칼럼 차트입니다. 에러의 유형이라는 하나의 주제 아래 묶여있는, ‘연관성’이 있는 조각들이 하나의 막대를 이루고 있습니다. 예시의 경우 teal 색상을 밝기를 기준으로 점진적으로 배색했습니다. 결과적으로 하나의 주제 아래 각각이 구분될 수 있도록 했습니다.
뿐만아니라 별도로 확인이 필요한 치명적인 에러의 경우 다른 색상으로 구분해 점진적으로 배색하여 확인이 쉽도록 했습니다.
Outcomes
모 금융기업의 머신러닝 프로젝트에서 모니터링 대시보드로 사용되었습니다. 해당 고객을 위한 특화된 인터페이스를 제공하기도 했습니다. 제작하는 입장에서도, 사용하는 입장에서도 전례가 없던 프로젝트라 어려움이 있었지만 모델 배포와 모니터링까지 성공적으로 완수하였습니다. 이전 프로젝트에서 머신러닝의 모델 제작 환경을 제공했고, 이번 프로젝트를 통해 모델 배포 및 관리 환경을 제공하여 완전한 머신러닝 GUI 파이프라인을 완성할 수 있었습니다.