호돌찌의 AI 연구소
728x90
article thumbnail
[패스트캠퍼스 챌린지 11일차] Deployment
AI/MLOps 2022. 2. 3. 20:56

1. 정의 Deployment는 Pod와 Replicaset(복제본)에 대한 관리를 제공하는 단위로 정의 합니다. 여기서 관리의 의미는 self-healing, scaling(뒤에 소개할 예정), Rollout(무중단 업데이트)와 같은 기능을 포함하며, Pod를 Deployment로 배포함으로써 여러 개로 복제된 Pod와 여러 버전의 Pod를 안전하게 관리를 할 수 있습니다. 2. Deployment 생성하기 YAML을 살펴보면 Pod의 틀과 비슷하지만 조금의 차이점을 볼 수 있습니다.(api version, kind, spec의 replica 등) apiVersion: apps/v1 # kubernetes resource 의 API Version kind: Deployment # kubernetes r..

article thumbnail
[패스트캠퍼스 챌린지 10일차] POD
AI/MLOps 2022. 2. 2. 15:37

minikube 1.25.1, kubectl이 개인 환경에 설치되었다고 가정한 이후에 시작합니다. 설치 방법은 여기를 참고하면 좋을 것 같습니다. https://waspro.tistory.com/587 minikube 5분안에 설치하기 본 포스팅에서는 Kubernetes의 경량화 버전인 minikube에 대해 살펴보겠습니다. minikube는 로컬이나 단일 환경에 손쉽게 Kubernetes를 구성하기 위한 방식으로 아래와 같은 몇가지 스텝만으로도 쿠버네티 waspro.tistory.com 1. 정의 Pod는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위 입니다. 쿠버네티스는 Pod 단위로 스케줄링, 스케일링 등 관리 작업을 수행합니다. 쿠버네티스에 어떤 application을..

article thumbnail
[패스트캠퍼스 챌린지 9일차] YAML
AI/MLOps 2022. 2. 1. 00:46

1. Intro YAML(야밀)은 데이터 직렬화(서비스 간에 Data를 전송할 때 쓰이는 포맷으로 변환하는 작업)에 쓰이는 어떠한 포맷 또는 양식 중 하나를 일컫는 말입니다. XML, JSON과 비슷한 포맷의 형태라고 생각하시면 됩니다. 보통 쿠버네티스 마스터에게 요청을 보낼 때, 쿠버네티스 manifests, docker compose, ansible playbook, github action workflow 명세에 사용됩니다. 2. 특징 가독성이 뛰어납니다. 사람이 읽기 쉽도록 디자인이 되어 있는 것이 YAML입니다. JSON도 나름 읽기 편한데, YAML은 더 읽기 편하다고 볼 수 있습니다. 줄 바꿈과 들여쓰기(Tab, Space)에 조금 strict 한 편인 것도 유의하시면 될 것 같습니다. - ..

article thumbnail
[패스트캠퍼스 챌린지 8일차] Kubernetes 개념
AI/MLOps 2022. 1. 31. 14:50

Docker로 생성한 많은 container들을 관리하는 Kubernetes에 대해 이야기를 해보려 합니다. 이후에 작성될 글들은 쿠버네티스를 심도 있게 하나하나 구조를 뜯어보는 글을 다루는 것이 아님을 먼저 말씀드립니다. 그 이유는 일단 관리자 입장이 아닌 사용자 입장에서 다루는 게 목표이고, MLOps를 다루는 것이 목표이기 때문에 모든 구조를 다루기엔 분량이 상당히 많기 때문입니다. 1. Intro Kubernetes를 감싼 public cloud(Amazon EKS, Google Kubernetes Engine, Azure Kubernetes Service)를 이용하면 안정된 서비스를 사용할 수 있습니다. 하지만 이 부분은 프리티어 계정이라 할 지라도 특정 기간이 지나면 유료로 전환이 될 것이며,..

article thumbnail
[패스트캠퍼스 챌린지 7일차] Docker Image
AI/MLOps 2022. 1. 30. 22:33

이번 시간에는 docker image란 무엇인지, dockerfile를 사용해서 docker image를 만들어 보는 시간 가지겠습니다. docker image는 어떤 application에 대해 단순히 코드뿐만 아니라, 그 application과 dependent한 모든 것을 함께 패키징한 데이터라고 생각하시는 것이 좋습니다. 예를 들면 sklearn에서 svm classification fit 함수를 돌린 코드 만을 뜻하는 것이 아니라 사용한 파이썬 버전, sklearn, pandas, numpy 버전까지 명시된 모든 것을 생각하시면 됩니다. 이러한 docker image를 쉽게 공유하기 위해서는 dockerfile이라는 것이 있습니다. 쉽게 사용자가 docker image를 쉽게 만들 수 있도록 제..

article thumbnail
[패스트캠퍼스 챌린지 6일차] Docker 기본 명령어
AI/MLOps 2022. 1. 29. 23:11

오늘은 다른 블로그에도 많이 있지만, Docker의 기본적인 명령어 위주로 다루어 볼 예정입니다. 대다수의 명령어는 --help를 통해 arguments에 대해 공부하시는 것이 좋고, 저는 예시 위주로 작성 예정입니다. 1) pull : docker hub의 image repo로부터 docker image를 가져오는 커맨드입니다. 예시) docker.io/library 라는 이름의 repo에서 ubuntu:18.04라는 image를 제 로컬에 다운로드를 하게 됩니다. $ docker pull ubuntu:18.04 2) images : 로컬에 존재하는 docker image 리스트를 출력합니다. $ docker images 3) ps : 현재 실행중인 도커 컨테이너 리스트를 전부 출력하는 커맨드입니다. ..

article thumbnail
[패스트캠퍼스 챌린지 5일차] Docker 환경 구성 및 설치
AI/MLOps 2022. 1. 28. 22:13

어떤 OS, 환경에서 동일하게 작동시킬 수 있는 것이 Docker입니다. 한 줄로 표현하면 "Build Once, Run Anywhere"과 같습니다. 딥러닝 코드를 어느 OS, 환경에서든 상관없이 도커 이미지화 시키면 어디서든 동일하게 실행 및 결과를 얻을 수 있습니다. 이를 Dockerize 되어있다고 이야길 합니다. 머신러닝을 서비스화 하는데 production하는데 있어서 인프라도 상당히 중요하기 때문에 Docker의 중요성을 두말하면 잔소리 입니다. 1. 실습 환경 그렇다면 간단하게 환경을 구성하고자 합니다. 저같은 경우에는 환경은 VirtualBox + Ubuntu(20.04.3) 조합으로 구성할 예정입니다. 구성하는 방법은 아래 주소에서 참고하시면 좋을 것 같습니다. https://maini..

article thumbnail
[패스트캠퍼스 챌린지 3일차] MLOps의 구성요소
AI/MLOps 2022. 1. 26. 20:32

MLOps에서 큰 범주로 나누면 데이터, 모델, 서빙으로 나눌 수 있습니다. 이번 글에서는 각 범주에 해당되는 SW/오픈소스 등을 언급만 하고 넘어갈 예정입니다. 제가 찍어만 먹어보거나 사용했던 경험이 있는 부분만 진한 글씨로 표시를 해보았습니다. 1. 데이터 요리로 치면 재료에 해당하는 부분입니다. 데이터 수집 Pipeline, 저장, 관리 측면으로 나눌 수 있습니다. - 데이터 수집 Pipeline : Sqoop, Flume, Kafka, Flink, Spark Streaming, Airflow - 데이터 저장 : MySQL, Hadoop, Amazon S3, MinIO - 데이터 관리 : TFDV, DVC, Feast, Amundsen 2. 모델 요리로 치면 조리에 해당하는 부분입니다. 개발, 버전..

article thumbnail
[패스트캠퍼스 챌린지 2일차] MLOps = ML + DevOps
AI/MLOps 2022. 1. 25. 19:33

1. Intro 전통적인 IT 프로젝트에서의 Software 개발 방식은 Uni-directional 한 방향으로 진행되었습니다. 간단히 다음과 같이 정리할 수 있다. Code 구현 → Build → Deployment 이러한 방식을 이제 벗어나 DevOps라는 하나의 방법론이 정의되기 시작했습니다. 그림에서 볼 수 있듯이 이러한 단계가 하나의 사이클이 이루어지는 개발 방식이 필요하다는 이야기가 나오면서 DevOps라는 개발 방법론이 정의가 되었습니다. 또한 DevOps라는 분야갸 탄생하면서 소프트웨어 개발 프로세스에서 단순한 코드 구현 이외에 여러 가지 구성 요소들이 정리 및 분리가 이루어지면서 많은 기술적 & 문화적 발전이 있었습니다. 2. ML Project와 SW Project 의 유사성 ML을 ..

article thumbnail
[패스트캠퍼스 챌린지 1일차] As-Is ML 프로젝트 진행 방식의 한계
AI/MLOps 2022. 1. 24. 22:09

학생 때 ML을 공부할 때에는 간단하게 요약하면 다음과 같이 공부를 했었습니다. - 많이들 들어본 알고리즘(Linear Reg, Logistic Reg, Decision Tree, RF, SVM 등등) 원리, 수식 - 수식 이해가 잘 되지 않았을 때 예제 데이터와 함께 R 또는 Python으로 이해 - 논문 쓸 때에는 기존 baseline 모델 보다 성능 높이기와 데이터 전처리 및 튜닝의 반복 여기서 성능이 가장 좋았던 모델의 정보, n번째로 좋았던 모델의 정보, n번 Cross Validation를 했을 때 가장 좋았던 정보 등 이러한 내용들을 object로 떨구어서 엑셀에 따로 기록을 했었던 기억이 있습니다. 프로젝트를 3년동안 해보면서 몇몇 프로젝트는 협업보다는 개인적으로 모델 하나 할당을 받아 진..