최근 사내에서 MLOps의 수많은 컴포넌트중 한 부분인 데이터 버전관리를 Kubeflow 파이프라인에서 수행하도록 구성 할 일이 있었다. 그 과정 속에서 겪었던 문제와 해결방법을 이번 포스팅에 담아보려고 한다. 데이터 버전관리 툴은 DVC(Data Version Control)로 선택하였다. DVC를 선택한 이유는 과금이 발생하지 않는 오픈소스이기도 하고 git과 밀접한 관계를 가지기 때문에 코드 버전 관리와 더불어 데이터 버전관리를 간편하게 할 수 있어 결정하였다. DVC 기본 활용방법은 공식문서에 자세히 나와있고 지난 포스팅에서도 한번 다뤘기 때문에 DVC 기본 문법에 대해서는 생략한다. 1. Intro 현재 상황에 대해 간략히 설명하면 다음과 같다. 머신러닝 프로젝트가 여러개 존재하며 정형데이터가 ..
Kubeflow에는 kfp라는 Python SDK가 존재하며 이를 통해 도커 이미지 없이 ML pipeline을 구축할 수 있다. 하지만 딥러닝을 수행할 경우 코드 길이가 길어져 kfp로 코드 작성 및 수정이 어려워지고 큰 데이터셋에 대한 component간의 데이터 전달이 제한적이다. 이러한 경우 전처리, 하이퍼파라미터 튜닝, 학습, 검증을 각각 수행하는 코드를 작성하여 도커 이미지를 build&push 한 뒤 각 component에 맞는 image를 manifest에 명시해준다. component별로 Docker Image를 생성하고 개발 단계에서 마주하는 수많은 디버깅 작업으로 인해 수십번의 build&push가 필요한데 매번 CLI에서 명령어를 날리는 일이 여간 불편한게 아니다. 이번 포스팅에서는..
DVC는 Data Version Control의 약어로 머신러닝 프로젝트의 Open-source Version Control System이다. DVC는 터미널에서 명령어로 동작하며 Git과 명령어가 굉장히 유사하기 때문에 빠르게 DVC를 습득할 수 있다. DVC는 데이터 버전관리 외에도 MLOps의 구성요소인 ML experiment management, Deployment & Collaboration 기능을 제공하지만 이번 포스팅에서는 데이터를 원격저장소에 저장하고 다운받고 깃과 함께 버전관리 하는 것을 집중해서 다루려고한다. 또한 Dockerfile을 DVC를 활용하여 이미지로 build 해볼 것이다. 1. Install git 설치: https://git-scm.com/downloads dvc 설치..
자주 사용하는 도커 명령어를 정리해 보려고 한다. gpu 리눅스(우분투) 서버를 사용하게되면서 도커의 필요성이 느껴져서 공부를 하게 되었는데 명령어를 자꾸 까먹어서 자주쓰는 명령어들을 블로그에 정리하려고 한다. 기본 명령어 1. 현재 보유중인 도커 이미지 확인 sudo docker images 2. 현재 작동중인 도커 컨테이너 확인 sudo docker ps 3. 모든 도커 컨테이너 확인 sudo docker ps -a 4. 도커 이미지 삭제 sudo docker rmi [이미지ID] 이미지를 삭제하기 위해서는 컨테이너가 삭제 되어야 함 5. 도커 컨테이너 삭제 sudo docker rm [컨테이너ID] 컨테이너가 삭제되기 위해서는 컨테이너가 중지되어야 함 6. 도커 컨테이너 중지/재시작 sudo doc..