2024/08/29 25

효율적인 MLOps를 가능케 하는 ClearML

💡What’s ClearML머신러닝 관련 업무들을 생성하고 자동화, 관리해주는 플랫폼 (실험/모델/데이터)For ML Engineers학습 메트릭, 모델을 추적 및 업로드/다운로드실험 재현데이터 업로드/다운로드, 버전관리For DevOps EngineersCloud/On-premise 상관없이 원격에 있는 리소스를 누구든지 쉽게 사용할 수 있도록 구성clearml-agent그래서 왜쓰냐? (사수님 왈)remote execution 가능 (clearML server 존재할 때)ckpt들을 클라우드에 자유롭게 업로드/다운로드 가능queue에 넣어두고 자동으로 빈 gpu 사용하도록 할 수 있어서 편함hparams를 자동으로 optimize내가 쓰면서 느낀거metric 등을 추가하고 손쉽게 시각화할 수 있음원..

AI/DL 2024.08.29

rsync로 원격 서버에 파일 빨리 올리기

rsync -avz -e "ssh -p [PORT_NUM]" ./GAZE_3D [username]@[IP]:/home/minseokim/gaze_3d/data/GAZE_3Da는 아카이브 모드 (서브디렉토리, 심볼릭링크, 퍼미션 등등을 보존)v는 Verbose 모드 (상세한 진행 로그)z는 데이터 전송 시 압축 사용하여 대역폭 절약-e “ssh -p NUM” 은 ssh 설정을 위해 필요맥에서 옮겨야한다면 .DS_Store 파일(메타데이터)까지 같이 옮겨지면 안되니까find . -name '.DS_Store' -type f -delete이렇게 현재 폴더부터 재귀적으로 찾으며 이름이 .DS_Store 이고 일반 파일인 것들만 전부 지우면 됨 rsync -avz -e "ssh -p [PORT_NUM]" [use..

etc 2024.08.29

lightning-hydra-template CIFAR-10 데이터셋 학습해보기

https://github.com/ashleve/lightning-hydra-template GitHub - ashleve/lightning-hydra-template: PyTorch Lightning + Hydra. A very user-friendly template for ML experimentation. ⚡PyTorch Lightning + Hydra. A very user-friendly template for ML experimentation. ⚡🔥⚡ - ashleve/lightning-hydra-templategithub.com 💡 CIFAR-10 데이터셋 활용해보기1. configs/data/cifar10.yaml 파일을 만들어 설정 추가CIFAR10 dataset은 이미 학습세트 /..

AI/DL 2024.08.29

lightning-hydra-template 코드분석

https://github.com/ashleve/lightning-hydra-template GitHub - ashleve/lightning-hydra-template: PyTorch Lightning + Hydra. A very user-friendly template for ML experimentation. ⚡PyTorch Lightning + Hydra. A very user-friendly template for ML experimentation. ⚡🔥⚡ - ashleve/lightning-hydra-templategithub.comPyTorch Lightning과 Hydra를 사용하여 딥러닝 프로젝트를 설정하고 관리하기 위한 템플릿딥러닝 모델 개발, 훈련, 검증, 테스트 등의 과정을 구조화하..

AI/DL 2024.08.29

PyTorch와 PyTorch Lightning

💡 PyTorch 설치 관련pip install "numpyNumpy 1.x 버전으로 다운그레이드PyTorch가 NumPy 2.0.0과의 호환성 문제를 일으키더라고요 (지금은 아닐수도?)pip install torch, torchvision, matplotlib, pandas필요한 패키지 선택적으로 추가 설치 ㄱㄱ💡 PyTorch 튜토리얼 (온라인)https://tutorials.pytorch.kr/beginner/basics/intro.htmlhttps://tutorials.pytorch.kr/recipes/recipes_index.html💡 PyTorch Lightning 이란PyTorch 기반의 딥러닝 모델을 더 쉽게 개발하고 관리할 수 있도록 도와주는 고수준의 라이브러리Lightning Mo..

etc 2024.08.29

[책] PyTorch를 활용한 머신러닝/딥러닝 철저 입문

사실 코드 보면서 무작정 부딪히다보면 익숙해지긴하는데.. 인턴 초기엔 책도 읽어보았숨니다(사실 torch lightning을 거의 사용하긴 했는데) PyTorch 함수들텐서 생성torch.from_numpy(ndarray)NumPy 배열을 텐서로 변환한다torch.utils.data.TensorDataset(data_tensor, target_tensor)설명변수와 목적변수를 합쳐 인덱스 붙이고 하나의 data 집합으로torch.utils.data.DataLoader(dataset, batch_size = 16, shuffle=True)데이터집합을 원하는 크기의 미니배치로 나누어 읽음신경망 구성torch.nn.Modules신경망 모듈 기본 클래스torch.nn.Linear(in, out, bias=Tru..

AI/DL 2024.08.29

Loss function for classification & regression

https://uumini.tistory.com/54https://excelsior-cjh.tistory.com/198 Classification에서 사용하는 기술들에는Cross Entropy Loss (예측 확률 분포와 실제 분포 간 차이 측정)Focal Loss (CEL의 변형, 불균형 데이터셋에 효과적임)Labeling Smoothing (soft label을 사용하여 모델이 지나치게 자신있는 예측하는 것을 방지)Regression에서 사용하는 기술들에는MAE (Mean Absolute Error Loss)예측 값과 실제 값의 차이의 절대값을 평균하여 계산합니다.이상치에 덜 민감하며, 더 많은 양의 작은 오차에 대한 중요도를 부여합니다.nn.L1Loss()MSE (Mean Squared Error ..

AI/DL 2024.08.29

rootutils로 프로젝트 구조 관리하기

프로젝트 root 기준sync/vector_sync.py 에서 utils.py 에 접근하지 못하는 문제가 있음. 즉 부모 디렉터리로 갈 방법이 없음 rootutils + __init__.py 조합으로 해결 가능 (init.py 꼭 안필요한거 같기도)당연히 프로젝트 root에는 .project-root 파일이 존재해야 하구요 import rootutilsrootutils.setup_root(__file__, indicator='.project-root', pythonpath=True)from src.utils import euler2vector setup_root 하면 상위 디렉터리를 traverse 하며 .project-root 파일을 찾고, 해당 디렉터리를 프로젝트 루트로 인식, 그 뒤로는 이제 dot..

etc 2024.08.29

venv → poetry 로 포팅하기

회사 프로젝트를 하는데, venv + requirements.txt 로 의존성 하기가 너무 귀찮았음분명 로컬 환경에서는 잘 됐는데 workflow의 일부 테스트환경에서는 실패하고,, 처음엔 requirements.txt 하나하나 수정했었는데 너무 귀찮더라고요poetry 란?python 의존성 관리와 패키지 배포를 도와주는 도구pip + virtualenv 조합을 대체할 수 있음pyproject.toml 파일을 사용해 프로젝트 설정과 의존성 관리poetry.lock 파일은 의존성이 해결된 후 생성되어, 의존성 트리에 있는 모든 패키지 정보를 lock/기록이렇게 add 하려고 할 때, 자동으로 의존성 관리를 해줍니다.물론 프로젝트 초기부터 poetry 세팅하고 의존성 하나하나 add 해줬다면 좋겠지만, 지금..

etc 2024.08.29