본문 바로가기

전체80

MLOps - 5. Voila, ipywidget 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. View Source In [ ]: from IPython.core.display import display, HTML display(HTML("")) 0. Libarary Import¶ In [9]: import io import os import yaml import pandas as pd import numpy as np from PIL import Image import torch import torch.nn as nn import torch.nn.functional as F from efficientnet_pytorch import EfficientNet import albumentations import albumentations... 2022. 5. 21.
MLOps - 4. Voila, ipywidget 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. Voila 1.1 Why Voila? - 프로토타입이 중요한 이유 모델 개발 과정 Jupyter Notebook에서 함수를 작성한 후, 예측 함수를 실행하며 성능 확인 혼자 확인할 땐 위와 같이 진행해도 괜찮으나, 동료들과 함께 보면서 이야기할 때는? 라이브러리의 의존성 테스트를 위해 추가 환경 설정이 필요 개발을 잘 모르는 분에게 테스트 요청할 경우엔 이 부분을 어려워 할 수 있음 이런 경우 활용할 수 있는 도구가 Voila Notebook 베이스로 프로토타입 만들기 ipywidget과 같이 사용할 경우 간단한 대시보드를 구축할 수도 있음 실행할 때 저장된 Notebook 파일이 순차적으로 실행 1.2 Voila Voila의 본래 목적.. 2022. 5. 20.
MLOps - 3. 머신러닝 프로젝트 라이프 사이클 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. 머신러닝 프로젝트 Flow 1.1 문제 정의의 중요성 문제 정의 : 특정 현상을 파악하고 => 그 현상에 있는 문제(Problem)을 정의하는 과정 문제를 잘 풀기(Solve) 위해선 문제 정의(Problem Definition)이 매우 중요함 풀려고 하는 문제가 명확하지 않으면 그 이후 무엇을 해야할지 결정하기 어려워짐 예 : 저는 사람들을 행복하게 만들고 싶어요 => 어떤 사람들을 대상으로? 모든 사람들을 대상으로? => 행복의 정의는 무엇인가? 금전적 부? 감정적인 상황? => 행복의 정의에 따라 무엇을 할 수 있을지가 다름 본질을 파악하는 과정 해결해야 하는 문제는 무엇이고 그 문제를 해결하면 무엇이 좋을까? 어떻게 해결하면 좋을.. 2022. 5. 19.
MLOps - 2. Model Serving 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. Model Serving 1.1 Serving Basic Production(Real World) 환경에 모델을 사용할 수 있도록 배포 머신러닝 모델을 개발하고, 현실 세계(앱, 웹)에서 사용할 수 있게 만드는 행위 - 서비스화라고 표현할 수도 있음 머신러닝 모델을 회사 서비스의 기능 중 하나로 활용 예 : 추천 시스템의 추천 알고리즘 Input이 제공되면 모델이 예측 값(Output)을 반환 크게 Online Serving, Batch Serving 이 존재하며, 클라이언트(모바일기기, IoT Device) 에서 Edge Serving 도 존재 1.2 Serving 용어 Serving : 모델을 웹/앱 서비스에 배포하는 과정, 모델을 .. 2022. 5. 18.
MLOps - 1. MLOps 개론 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. MLOps 란? 1. 머신러닝 모델을 운영하면서 반복적으로 필요한 업무를 자동화시키는 과정 2. 머신러닝 엔지니어링 + 데이터 엔지니어링 + 클라우드 + 인프라 3. 머신러닝 모델 개발(ML Dev)과 머신러닝 모델 운영(Ops)에서 사용되는 문제, 반복을 최소화하고 비즈니스 가치를 창출하는 것이 목표 4. 모델링에 집중할 수 있도록 관련된 인프라를 만들고, 자동으로 운영되도록 만드는 일 2. 왜 필요한가요? - 모델 research : [문제 정의] - [EDA] - [Feature Engineering] - [Train] - [Predict] - 모델 production : [문제 정의] - [EDA] - [Feature Engine.. 2022. 5. 17.
DPR: Dense Passage Retrieval for Open-Domain Question Answering DPR: Dense Passage Retrieval for Open-Domain Question Answering Code : https://github.com/facebookresearch/DPR Paper : https://arxiv.org/pdf/2004.04906.pdf Abstract Open-domain question answering relies on efficient passage retrieval to select candidate contexts, where traditional sparse vector space models, such as TF-IDF or BM25, are the de facto method. In this work, we show that retrieval ca.. 2022. 5. 2.
Sorting Algorithm In [1]: from IPython.core.display import display, HTML display(HTML("")) View Source Sorting¶ - 공간복잡도는 구현마다 달라집니다... 1. Selection Sort (선택정렬)¶ - iteration 을 돌때마다 제일 작은 원소를 선택 - 선택한 제일 작은 원소를 해당 iteration의 앞의 배치 - 최선 : O(N^2) - 평균 : O(N^2) - 최악 : O(N^2) In [5]: array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i + 1, len(array)): if ar.. 2022. 5. 1.
adjacent list vs adjacent matrix 프로그래밍 문제를 풀다보면 (특히 graph 관련 dfs, bfs 등을 활용한 탐색의 경우들) adjacent list 와 adjacent matrix 둘중 하나의 형태로 풀리는 경우가 많습니다. 저 같은 경우는 주로 시간제약 문제가 많은 관계로 adjacent list + bfs (or dfs) 로 문제를 많이 풉니다. 하지만 adjacent matrix 로 문제를 훨씬 더 빠르고 쉽게 경우도 있습니다. (가중치가 주어진 최단경로 등) 위와 같은 경우들을 위해 graph 를 표현하는 2가지 방법에 대해 정리합니다. 1. Adjacent list - Graph 에서 node 사이들의 관계를 나타내는 방법입니다. - python 에서의 구현 방법은 대락 2가지라고 생각할수 있습니다. 개인적으로 노드들의 데.. 2022. 4. 28.
Google Colab Setting - conda & terminal In [13]: from IPython.core.display import display, HTML display(HTML("")) View Source Google Drive Mount¶ In [ ]: from google.colab import drive drive.mount('/content/drive') Check GPU¶ In [ ]: gpu_info = !nvidia-smi gpu_info = '\n'.join(gpu_info) if gpu_info.find('failed') >= 0: print('Not connected to a GPU') else: print(gpu_info) Sun Apr 24 03:06:53 2022 +-----.. 2022. 4. 26.