[오늘의 일지]
프로젝트 - 데모 페이지 만들기 준비
[상세 내용]
데모 페이지 만들기 준비
계기
- 사실 기업과 연계해서 프로젝트를 한다는 것은 그냥 일반적인 데이콘이나 케글 대회와는 조금 다르다고 생각합니다. 처음에 시작하는 단계는 비슷할 지도 모르지만 최종적으로 알고리즘 모델을 사용해서 특정 평가지표를 통해 경쟁을 하고 마무리되는 대회와는 달리 기업과 연계된 프로젝트는 마지막에 상용화적인 측면의 결과물을 만들어서 제출해야 마무리된다는 점에서 차이가 있다고 생각합니다. 그래서 오늘은 프로젝트를 마무리하기 위해서 기업 측에서 원하는 형태의 서비스를 일시적이고 간단한 형태의 페이지로 만들어 보는 과정을 정리해 보려고 합니다.
ML Oops
- 데모 페이지를 만들기 앞서서 이번 프로젝트 자체가 ML Oops 측면과 유사한 부분이 많다고 느껴져서 ML Oops라는 용어를 조금 정리하고 가야겠다고 느꼈습니다. 그래서 간단하게 정리하고 넘어가겠습니다.
정의
- ML Ops는 기계 학습 모델의 생명주기를 관리하고 최적화하기 위한 프로세스와 도구의 집합을 나타냅니다. ML 옵스는 전체적인 모델 개발, 훈련, 배포, 모니터링 및 유지보수를 효율적으로 관리하기 위해 개발되었습니다. 이는 전통적인 소프트웨어 개발과는 다소 다른 고유한 도전과 요구사항을 가지고 있습니다.
ML Oops의 주요 구성 요소와 활동
- 데이터 관리 및 전처리: 올바른 모델을 훈련시키기 위해서는 풍부하고 품질 좋은 데이터가 필요합니다. ML 옵스는 데이터 수집, 저장, 전처리 및 변환을 관리하고 이를 모델 훈련에 사용할 수 있도록 보장합니다.
- 모델 훈련: 훈련 데이터를 사용하여 모델을 개발하고 최적화합니다. ML 옵스는 이러한 훈련 프로세스를 자동화하고, 분산 시스템에서 효율적으로 처리하며, 여러 모델 버전을 관리합니다.
- 모델 평가 및 검증: 훈련된 모델을 평가하고 검증하여 모델의 성능을 확인하고 모델이 예상대로 작동하는지 확인합니다.
- 배포 및 관리: 훈련된 모델을 실제 환경으로 배포하고 관리합니다. 이 단계에서는 모델을 서버에 배포하고 API를 통해 외부 시스템과 통합합니다.
- 모니터링 및 유지보수: 배포된 모델을 지속적으로 모니터링하여 성능 저하나 이상 동작을 감지하고, 필요할 경우 모델을 업데이트하거나 재훈련시킵니다.
- 자동화 및 자동화된 결정: ML 옵스는 많은 부분에서 자동화를 강조합니다. 이는 테스트, 배포, 모델 선택 등 다양한 영역에서 적용됩니다.
- 협업과 버전 관리: 여러 팀과 개발자들이 협업하여 모델을 개발하고 관리할 수 있도록 버전 관리 시스템을 통합합니다.
ML Oops 측면에서 본 이번 프로젝트
- 위에서 정리한 요소들을 보면 지난 과정들을 바라봤을 때도 어느 정도 비슷한 측면들이 많다고 느꼈습니다. 특히 오늘부터 만들어 보게 될 데모페이지는 위에서 정리한 요소 중에 배포 부분과 비슷한데 실제로 배포하는 것은 아니라 모니터링이나 유지보수 측면에서는 경험하지 못하는 건 아쉽게 느껴졌습니다.
데모 페이지를 위한 라이브러리
- 데모 페이지를 프런트엔드나 백엔드 측면에서도 빠르고 간단하게 만들어 볼 방법이 없을까 찾아보게 되다가 streamlit이라는 라이브러리를 알 게 되었고 이 라이브러리를 활용해서 데모 페이지를 만들게 되었습니다. 오늘은 streamlit을 소개만 하고 내일부터 본격적으로 활용해서 페이지를 만들어 보겠습니다.
Streamlit 소개
- Streamlit은 데이터 사이언티스트 및 엔지니어들이 간단하게 웹 애플리케이션을 구축할 수 있도록 도와주는 Python 기반의 오픈 소스 라이브러리입니다. Streamlit은 사용자 친화적이며, 손쉽게 인터랙티브 한 대시보드나 데이터 시각화를 만들 수 있도록 설계되었습니다. 더 자세한 정보는 아래 링크에 들어가면 확인할 수 있습니다.
Streamlit의 주요 특징과 장점
- 간단한 문법: Streamlit은 사용하기 쉬운 문법을 제공합니다. 몇 줄의 코드로 웹 애플리케이션을 만들 수 있습니다. 기본적인 Python 스크립트로 대화형 웹 애플리케이션을 구성할 수 있습니다.
- 실시간 업데이트: 코드를 수정하고 저장하면, Streamlit 애플리케이션은 자동으로 업데이트되어 변경 사항을 실시간으로 반영합니다. 이는 개발자가 빠르게 프로토타입을 작성하고 수정할 수 있도록 도와줍니다.
- 다양한 위젯 제공: Streamlit은 다양한 위젯을 제공하여 그래프, 표, 버튼, 슬라이더 등을 통해 사용자와의 상호 작용을 지원합니다. 이러한 위젯을 사용하여 데이터를 시각적으로 탐색하고 제어할 수 있습니다.
- 데이터 시각화: Matplotlib, Plotly, Altair 등과 같은 다양한 시각화 라이브러리와 통합이 간편하며, 데이터를 시각화하는 작업이 편리합니다.
- 클라우드 배포 및 공유: Streamlit 애플리케이션은 클라우드 서비스를 활용하여 쉽게 배포하고 공유할 수 있습니다. Streamlit Sharing이라는 무료 호스팅 서비스도 제공됩니다.
- 인터랙티브 한 대시보드: 데이터를 빠르게 이해하고 탐색할 수 있는 대화형 대시보드를 만들 수 있습니다.
[마무리]
오늘은 전반적으로 용어 정리나 라이브러리 소개로 일지를 정리하였습니다. 아무래도 용어를 정리하고 넘어가는 것도 중요하다고 판단해서 그렇게 했습니다. 내일은 간단하게 streamlit을 활용하여 데모 페이지를 만들어 본 과정을 정리해 보도록 하겠습니다.
'AI > AI 부트캠프' 카테고리의 다른 글
[AI 부트캠프] DAY 140 - 파이널 프로젝트 31 (1) | 2024.02.08 |
---|---|
[AI 부트캠프] DAY 139 - 파이널 프로젝트 30 (1) | 2024.02.07 |
[AI 부트캠프] DAY 137 - 파이널 프로젝트 28 (1) | 2024.02.03 |
[AI 부트캠프] DAY 136 - 파이널 프로젝트 27 (0) | 2024.02.02 |
[AI 부트캠프] DAY 135 - 파이널 프로젝트 26 (0) | 2024.02.01 |
댓글