전체 글

현재 진행하는 개발 과정을 자주 기록하는 곳
부스트캠프 AI Tech 2기/2기 Product Serving

Cloud

1. Cloud 1.1 Cloud 서비스를 사용하는 이유 갑자기 트래픽이 몰릴 경우, 컴퓨터 10대를 설치하기 어려움(자재 수급 이슈 등) 반대로 트래픽이 적어서 컴퓨터 10대를 없애기가 수월하지 않음 예전에는 IDC(Internet Data Center)를 사용했지만 현재는 cloud를 많이 사용하게됨 1.2 Cloud 서비스의 다양한 제품 Data Warehouse Database에 저장된 데이터는 데이터 분석을 메인으로 하는 저장소가 아닌 서비스에서 활용할 Database Database에 있는 데이터 Object Storage 에 있는 데이터 등을 모두 모아서 Data Warehouse에 저장 데이터 분석에 특화된 Database 2. Google Cloud Platform 2.1 Google C..

부스트캠프 AI Tech 2기/2기 Product Serving

Linux & Shell Command

1. Linux 1.1 Linux 1.2 Linux를 알아야 하는 이유 1.3 CLI, GUI 1.4 대표적인 Linux 배포판 리눅스 배포판 https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Linux_Distribution_Timeline.svg Debian - 온라인 커뮤니티에서 제작해 배포 Ubuntu - 영국의 캐노니컬이라는 회사에서 만든 배포판으로 쉽고 편한 설치 - 초보자들이 쉽게 접근할 수 있도록 만듬 Redhat - 레드햇이라는 회사에서 배포한 리눅스 CentOS - Red Hat이 공개한 버전을 가져와서 브랜드와 로고를 제거하고 배포한 버전 1.5 Linux, Shell Script 학습 가이드 2. Shell Command 2.1 쉘의 종류 쉘 -..

부스트캠프 AI Tech 2기/2기 Product Serving

웹 서비스 형태 - Streamlit

1. 웹 서비스 형태 - Streamlit 1.1 웹 서비스를 만드는 과정 다른 조직의 도움 없이 빠르게 웹 서비스를 만드는 방법이 무엇일까? Voila는 노트북환경에서 빠르게 프로토타입으로 보여주기 위한 방법이고 Streamlit은 웹페이지형태로 만들고 싶어서 만들게됐다 1.2 Streamlit의 대안 1)R의 Shiny 2) Flask, Fast API : 백엔드를 직접 구성 + 프론트엔드 작업도 진행 3) Dash : 제일 기능이 풍부한 Python 대시보드 라이브러리 4) Voila : Jupyter Notebook을 바로 시각화 가능 1.3 Streamlit Component 장점 - 파이썬 스크립트 코드를 조금만 수정하면 웹을 띄울 수 있음 - 백엔드 개발이나 HTTP 요청을 구현하지 않아도 ..

부스트캠프 AI Tech 2기/2기 Product Serving

Notebook 베이스 - Voila

1. Voila 1.1 프로토타입이 중요한 이유 - 모델을 개발한 후, 사람들과 테스트할 수 있는 프로토타입을 먼저 만들어보기 - 이 모델이 어떤 결과를 반환하는가?를 테스트할 수 있음 - 그러나 웹 서비스를 만드는 것은 시간이 많이 소요됨 - 익숙한 노트북에서 프로그램을 만들면 시간을 아낄 수 있음 - ipywidget과 같이 사용할 경우 간단한 대시보드를 구축할 수도 있음 - 실행할 때 저장된 Notebook 파일이 순차적으로 실행 1.2 Voila repository https://github.com/voila-dashboards/voila GitHub - voila-dashboards/voila: Voilà turns Jupyter notebooks into standalone web applic..

부스트캠프 AI Tech 2기/2기 Product Serving

머신러닝 프로젝트 라이프 사이클

1. 머신러닝 프로젝트 Flow 1.1 문제 정의의 중요성 How보다 Why에 집중 문제 정의란? - 본질을 파악하는 과정 - 해결해야 하는 문제는 무엇이고 그 문제를 해결하면 무엇이 좋을까? 어떻게 해결하면 좋을까? 1.2 현상 파악 어떤 현상이 발견되었는가? 현재 상황을 파악함 - 어떤 일이 발생하고 있는가? - 해당 일에서 어려움은 무엇인가? - 해당 일에서 해결하면 좋은 것은 무엇인가? - 추가적으로 무엇을 해볼 수 있을까? - 어떤 가설을 만들어 볼 수 있을까? - 어떤 데이터가 있을까? 1.3 구체적인 문제 정의 문제 정의는 결국 현상을 계속 쪼개고, 그 문제를 기반으로 어떤 어려움을 겪고 있는지를 파악함 데이터로 할 수 있는 일을 만들어서 진행하되, 무조건 알고리즘 접근이 최상은 아니라는 방..

부스트캠프 AI Tech 2기/2기 Product Serving

Product Serving

1. Model Serving 1.1 Serving Basic Serving - Production(Real World) 환경에 모델을 사용할 수 있도록 배포 - 머신러닝 모델을 개발하고, 현실 세계(앱, 웹)에서 사용할 수 있게 만드는 행위 - 서비스화라고 표현할 수도 있음 - 머신러닝 모델을 회사 서비스의 기능 중 하나로 활용 - 예 : 추천 시스템의 추천 알고리즘 - Input이 제공되면 모델이 예측 값(Output)을 반환 serving 방식 - online serving - batch serving - IoT, mobile 등 클라이언트에서 Edge Serving 2. Online Serving 2.1 Web Server Basic 2.2 API 2.3 Online Serving Basic On..

부스트캠프 AI Tech 2기/2기 Product Serving

Product Serving 개론

1. MLOps 개론 [문제정의] [EDA] [Feature Engineering] [Train] 1.1 모델 개발 프로세스(Research) - 고정된 데이터를 사용해 학습 1.2 모델 개발 프로세스(Production) - 모델의 결과값이 이상한 경우가 존재 => 원인 파악 필요 => Input 데이터가 이상한 경우가 존재(x값이 0~100 이내여야 하는데 Input으로 200이 들어오는 경우) => Research 할 땐 Outlier로 제외할 수 있지만, 실제 서비스에선 제외가 힘든 상황(별도 처리 필요) - 모델의 성능이 계속 변경 => 모델의 성능은 어떻게 확인할 수 있을까? => 예측 값과 실제 레이블을 알아야 함 => 정형(Tabular) 데이터에서는 정확히 알 수 있지만, 비정형 데이터(..

부스트캠프 AI Tech 2기/2기 CV 데이터제작

Annotation Tool 소개

1. 데이터의 중요성 1.1 데이터의 양과 질 1.2 양질의 데이터를 확보하려면? 2. CV 데이터 제작 서비스들 2.1 Labelme • MIT CSAIL (Computer Science Artificial Intelligence Laboratory) 에서 공개한 image data annotation 도구를 참고하여 만든 오픈소스 • polygon, circle, rectangle, line, point의 annotation 수행 가능 • 장점 • 설치하기가 용이하다. • python으로 작성되어있어, 추가적인 기능 추가가 가능하다. • 단점 • 공동작업이 불가능하다. (다수의 사용자가 사용할 수 없다.) • object, image에 대한 속성을 부여할 수 없다. 2.2 CVAT • Intel Op..

모플로
모던플로우