NAVER AI Tech/Computer Science(9)
-
10. (Streamlit)ML 모델 배포하기
ML project 프로토타입을 위한 모델 서빙 툴 Streamlit - 다양한 component를 활용하여 대시보드 UI를 벡엔드 개발이나 HTTP 요청없이 구현할 수 있음 - Streamlit Cloud가 있어 쉽게 배포 가능. - streamlit의 gallery를 참고해서 다양한 대시보드를 확인하고 활용해보자. streamlit 라이브러리 설치 후 - cmd에서 streamlit run 명령어를 이용하여 파이썬 파일을 실행시키면 된다. 1) text 작성 2) button, check box 생성 3) dataframe 띄우기 4) Chart(Line, Map, Plot) 그리기 5) Input Box 를 이용해 input 받기 **streamlit document에 더 많은 component가 ..
2024.01.02 -
9. ML project LifeCycle
문제 정의 : 해결하는 문제는 무엇이고 어떻게 해결해야할까? 1) 현상 파악 2) 구체적인 문제 정의 3) 목표 설정, 지표 설정, 제약 조건 탐색(일정, 예산) 4) 베이스라인 구축 5) 평가 진행 6) 배포 후 모니터링 7) 추가 원인 분석 **ML 문제를 고려할 때는 얼마나 흥미로운지가 아니라 제품,회사의 비즈니스에서 어떤 가치를 줄 수 있는지를 고려해야 함. 산업에 대해 정리해둔 논문이 있는지 찾아보고, 해당 산업군에서 사용하는 기술, AI가 비즈니스에 영향을 주는 과정을 탐구해보는 것. - 회사의 비즈니스 모델을 파악하고, 현업분들에게 물어보는게 좋다. - 무엇을 고민중이고, 어떤것에 관심이 있는지 알아보자. AI Model develop cycle 1. make baseline with no ..
2024.01.02 -
8. Model Serving
Serving : ML 모델을 개발하고, 현실 세계(앱, 웹)에서 사용할 수 있게 만드는 행위 - 서비스화라고도 부름. API(Application Programming Interface) - 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 - 쉽게는 기상청 API, 지도 API가 있고 PyTorch, Tensorflow 와 같은 라이브러리 함수 또한 API라고 볼 수 있다. 서버 구축 1. Flask, FastAPI등을 사용하여 직접 서버 구축(python 기반) 2. AWS의 SageMaker, GCP의 Vertex AI등을 이용하여 클라우드 서비스를 활용하여 서버 구축 - 비용문제 발생 3. Tensorflow Serving, Torch Serve, MLFlow, Ben..
2024.01.02 -
7. MLOps
MLOps : ML + Ops(Operations) - 머신러닝 모델을 운영하면서 반복적으로 필요한 업무를 자동화시키는 과정 - 데이터 엔지니어링 + ML + 인프라 - 모델링에 집중할 수 있도록 관련된 인프라를 만들고, 자동으로 운영되도록 만드는 일 MLOps component 1. 클라우드 : AWS, GCP, Azure, NCP 등 2. 서빙 : input이 주어졌을 때 모델을 동작시켜서 output을 전달하는 것 3. 모델링, 실험 : WanB, 인터랙티브 AI수업시간에 배웠던 Tool을 사용해보기 4. 데이터 Validation : feature 분포 확인(research, production 간 차이 확인) 5. 지속적인 학습 : 새로운 input dataset이 생성되었을 때 retrain하..
2023.12.28 -
6. Debugging
Debugging : 오류나 버그를 찾고 수정하는 과정 버그 - 소프트웨어 설계, 개발, 작동 과정에서 생기는 오류 + 예상치 못한 결과를 생성하거나 의도와 다른 방식으로 작동도 포함 발생하는 이유 - 사람의 실수, 실행 환경, 라이브러리 의존성, 소프트웨어 복잡성 등등 디버깅 프로세스 1. 오류메세지를 읽고 현재 내 환경(OS), 가상환경 및 라이브러리 버전을 확인 2. 같은 환경에서 다시 실행해도 똑같은 오류가 '재현' 가능한지 확인 3. 오류메세지를 바탕으로 구글링 - document, stackoverflow, github issue 등등 커뮤니티 활용 **디버깅으로 github에서 contribution을 할 수 있는 방법을 모색해보자. 개발자의 기본 소양 **오답노트를 작성하자.(tistory..
2023.12.28 -
4. Docker
실제로 개발은 Window에서, 서버는 Linux에서 작동하는 경우가 많다. - 이때 OS가 다르면 환경설정이 다른 문제가 발생함. - 같은 OS를 사용한다고 하더라도 개발때와 production 서버의 permission이 다른 경우가 많아 환경 변수가 꼬이기도 함 소프트웨어 가상화 : 특정 소프트웨어 환경을 만들고, Local과 production서버 모두 그대로 활용하는 것. - 개발(Local)과 운영(Production) 서버의 환경 불일치가 해소 - 어느 환경에서나 동일한 환경으로 프로그램을 실행할 수 있음 - 개발 외에 Research도 동일한 환경을 사용할 수 있음 Docker 등장전에는 VM(Virtual Machine)을 주로 사용했었음. But, Host OS위에 Guest OS를 실..
2023.12.28