[분석지능개발팀 박효주]
데이터 과학자들은 다양한 실험을 통해 학습된 모델의 성능을 검증하고 배포합니다. 이 검증 과정은 Accuracy, Precision, Recall, IOU, PSNR 등 적절한 지표를 사용해서 수치로 검증하는데, 이 수치만 가지고는 실측 데이터(Ground truth)가 들어왔을 때 얼마나 좋은 성능이 나올지 알기 어렵습니다.
가장 효과적인 방법은 실측 데이터로 예상되는 데이터를 입력으로 주고 직접 확인할 수 있도록 시뮬레이터를 만드는 것인데, 개발자가 아니라면 새로 알아야 하는 기반기술(웹 앱의 경우 Flask, JavaScript, CSS 등)이 너무 많고 개발자가 만들어도 2주 이상의 시간이 소요될 수 있습니다.
이 부분을 해결하기 위해 Python만 가지고 웹 앱을 개발할 수 있는 오픈 소스들이 공개되었는데, 대표적으로 Streamlit과 Gradio가 있습니다. 데이터 과학자들이 사용해도 빠르면 1시간 만에 웹 앱을 만들 수 있을 정도로 단순한 인터페이스를 제공합니다.
Gradio는 ML 앱 개발에 초점을 맞춰 개발되었습니다.
앱 이용자가 직접 테스트셋을 가지고 다양한 결과를 확인할 수 있는 인터페이스를 제공합니다. 여기에 input을 주면 output을 만들어낼 inference 함수만 있으면 바로 app으로 만들 수 있을 정도로 쉽게 사용 가능합니다. Hugging Face 모델을 그대로 사용할 경우 inference 함수 없이 앱을 만들 수도 있어 Streamlit보다 더 간단하게 ML 앱 개발이 가능합니다.
Streamlit은 데이터 앱 개발에 초점을 맞춰 개발되었습니다.
데이터를 다양한 방식으로 시각화할 수 있는 다양한 시각화 기능을 제공합니다. 여기에 데이터 분석에서 많이 사용되는 pandas, pyplot, matplotlib 등을 지원하여 더욱 편리하게 앱에 연동할 수 있으며, 다른 사람들이 오픈소스로 공개한 3rd-party component도 가져와서 사용할 수 있어, Gradio보다 더 다양한 방식으로 시각화할 수 있습니다.
모델 연구/개발과 서비스 배포/운영 사이의 거리감을 좁히기 위해 많은 노력이 이루어지고 있습니다. Streamlit과 Gradio도 그 노력 중 일부분으로, 앞으로 생겨날 데이터 과학자가 연구/개발에 집중할 수 있는 더 좋은 환경을 기대해봅니다.
参考
- https://www.gradio.app/
- https://github.com/gradio-app/gradio
- https://github.com/gradio-app/awesome-demos
- https://streamlit.io/
- https://github.com/streamlit/streamlit
- https://github.com/whitphx/streamlit-webrtc
- https://panditpranav-svm-covid-tracking-covid-app-ztljjx.streamlitapp.com/