728x90 반응형 SMALL MLOps10 [MLops] GitHub Action Poetry https://python-poetry.org/docs#installing-with-the-official-installer에서 Poetry를 새로운 가상 환경에 설치하고 Poetry가 자체 환경을 관리할 수 있도록 OS에 맞게 설치한다. # window powershell(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -poetry --versionpip install poetry Docker Hub GitHub Actions GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포 (CI/CD) 플랫폼이다 이 저장소에 대한.. 2024. 8. 17. [MLops] 데이터베이스 MySQL 컨테이너 기존 mlops 컨테이너와 동일한 네트워크로 설정하여 통신하도록 생성한다. docker run -itd --name my-mlops-db --network mlops -e MYSQL_ROOT_PASSWORD=root mysql:8.0.39 그 다음, 컨테이너에 진입하여 mlops 데이터베이스 생성한다. # 컨테이너 진입docker exec -it my-mlops-db bash# MySQL 로그인mysql -u root -p # root 패스워드 입력# 데이터베이스 생성create database mlops;# 생성 확인show databases;# 패스워드 인증 방식 변경(python mysqlclient 라이브러리 호환성)alter user 'root'@'%' identified .. 2024. 8. 13. [MLops] 모델 추론 src/main.py 모델 확장 파일을 pth로 지정한다. model_ext = "pth"python src/main.py train --model_name movie_predictor --optimizer adam --num_epochs 20 --lr 0.002 src/utils/utils.py torch.save는 내부적으로 pickle을 사용해 직렬화 (마샬링) 후 저장하게 된다. 이는 보안적 취약점으로 작용하게 된다. 따라서, 최소한의 검증 절차인는 sha256 해시 알고리즘을 통해 변조 여부를 최소한으로 확인한다. import osimport randomimport hashlibfrom datetime import datetimeimport numpy as npimport torchdef pa.. 2024. 8. 13. [MLops] 학습 결과 기록하기 wandb W&B (Weight and Bias)은 실험 그룹 혹은 실험 단위로 실험 이력 요소들을 관리할 수 있다. https://wandb.ai/site에 접속하여 가입한 후 API 키를 발급받는다. pip install wandb 그리고 다음 경로에서 API 키를 저장하기 위해 환경 변수 파일인 .env를 생성한다. src/utils/utils.py Run name 자동 지정하기 위해 다음을 추가한다. def auto_increment_run_suffix(name: str, pad=3): suffix = name.split("-")[-1] next_suffix = str(int(suffix) + 1).zfill(pad) return name.replace(suffix, next_s.. 2024. 8. 12. [MLops] 모델 저장하기 라이브러리 설치 ONNX 포맷으로 저장하기 위해 다음을 실행한다. 그리고 Fire 라이브러리를 활용하면 task 별로 필요한 인자를 설정하여 CLI 기반 프로그램을 쉽고 빠르게 만들 수 있다. task를 분리하면 다양한 장점이 있다 (필요한 태스크만 수행, 트러블 슈팅 및 디버깅 용이, 유연한 자원 할당, 유지보수성, 워크플로우 관리 등). pip install onnx onnxruntime fire src/model/movie_predictor.py torch(pth) 포맷으로 저장하기 아래 코드를 추가한다. import osimport datetimeimport torchfrom src.utils.utils import model_dirimport torch.nn as nnclass MoviePred.. 2024. 8. 12. [MLops] 모델 학습 및 평가 디렉토리 설정 docker exec -it my-mlops bash opt 디렉토리에서 mlops-movie-predictor 디렉토리를 생성한다. mkdir mlops-movie-predictor 그 다음, mlops-movie-predictor 디렉토리로 이동하고 dataset과 src 디렉토리를 생성한다. 또, src 디렉토리에서 utils, dataset, model, train, evaluate 디렉토리를 생성한다. 라이브러리 설치 pip install torch numpy==1.26.4 pandas scikit-learn tqdm src/utils/utils.py import osimport randomimport numpy as npimport torchdef init_seed(): n.. 2024. 8. 12. [MLops] 모델 훈련 디렉토리 생성 opt 디렉토리에서 mlops-model 디렉토리를 생성한다. mkdir mlops-modelmkdir datasetcp /opt/mlops-crawler/result/watch_log.csv dataset/ 패키지 설치 pip install -U numpy==1.26.4pip install torch torchinfo scikit-learn icecream main.py import torchimport torch.nn as nnimport torch.optim as optimfrom torch.utils.data import Dataset, DataLoaderimport pandas as pdimport numpy as npfrom sklearn.model_selection import.. 2024. 8. 9. [MLops] TMDB API 데이터 수집 및 전처리 TMDB API https://developer.themoviedb.org/reference/intro/getting-started에 회원가입 후 아래와 같이 개발자용 API 토큰을 발급받는다. opt 디렉토리로 이동하여 실습 디렉토리를 생성한다. 그 다음, 러스트 언어로 개발된 uv 패키지 관리자를 설치하여 네트워크 통신 등 코드 동작 속도를 빠르게 해준다. pip install uv 사용법은 pip 앞에 uv를 붙여준다. uv pip install requests pandas numpy matplotlib python-dotenv Vim 설정 vi ~/.vimrcsyntax onset expandtabset autoindentset ts=4set shiftwidth=4set nuset curso.. 2024. 8. 9. [MLops] Docker에서 MLops 네트워크 구성 네트워크 할당 커스텀 네트워크에 도커 컨테이너를 할당하기 위해 호스트와 컨테이너 네트워크를 구성한다. docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/24 mlops python 컨테이너 docker run -itd --name my-mlops --network mlops python:3.11-buster docker ps로 컨테이너가 올라갔는지 확인한다. bash 그 다음, bash로 접근하여 패키지 관리자 최신화를 위해 apt 업데이트한다. apt install -y vim wgetcat /etc/os-release 2024. 8. 9. [Machine Learning] MLOps MLOps (Machine Learning Operations) MLOps는 머신러닝 작업 (Machine Learning Operations)을 뜻한다. MLOps는 ML 모델을 프로덕션으로 전환하는 프로세스를 간소화하고, 뒤이어 이를 유지관리하고 모니터링하는 데 주안점을 둔 ML 엔지니어링의 핵심 기능이다. MLOps는 협업 기능이며, 주로 데이터 사이언티스트, DevOps 엔지니어, IT로 구성된다. MLOps는 ML과 AI 솔루션 제작과 품질에 대한 유용한 접근법이다. 데이터 사이언티스트와 ML 엔지니어는 MLOps 방식을 채택하여 협업을 추진하고 모델 개발과 프로덕션 속도를 증강할 수 있다. 이를 위해 ML 모델의 적절한 모니터링, 검증과 governance를 포함해 지속적인 통합과 배포 (CI.. 2022. 5. 11. 이전 1 다음 728x90 반응형 LIST