데이터 전처리: 도구 및 방법

ㅁ 도구 및 방법

ㅇ 정의:
데이터 버전관리를 위해 사용하는 다양한 도구와 접근 방법을 의미하며, 데이터셋, 모델, 실험 결과 등을 추적하고 재현성을 보장하기 위해 활용됨.

ㅇ 특징:
– 코드 버전관리와 유사하지만, 대용량 데이터와 모델 파일을 효율적으로 관리함.
– 협업 환경에서 데이터 변경 이력을 추적 가능.
– 재현 가능한 ML 파이프라인 구축에 필수적.

ㅇ 적합한 경우:
– 팀 단위 머신러닝 프로젝트.
– 데이터셋과 모델이 지속적으로 업데이트되는 환경.

ㅇ 시험 함정:
– 단순 파일 저장소와 버전관리 도구의 차이를 혼동.
– 코드 버전관리(Git)와 데이터 버전관리의 목적 차이를 구분하지 못하는 경우.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “대용량 데이터 변경 이력을 추적할 수 있는 도구는 DVC이다.”
X: “Git만으로 대규모 데이터셋 버전관리가 가능하다.”

================================

1. DVC

ㅇ 정의:
Data Version Control의 약자로, Git 기반에서 대용량 데이터와 모델 파일을 효율적으로 버전관리하는 오픈소스 도구.

ㅇ 특징:
– 데이터 파일은 원격 스토리지에 저장하고, 메타데이터만 Git으로 관리.
– 데이터 파이프라인 정의 및 재현성 보장.
– 다양한 스토리지(AWS S3, Google Drive 등) 연동 가능.

ㅇ 적합한 경우:
– 데이터 변경이 잦고, 실험 재현성이 중요한 ML 프로젝트.
– 로컬 저장공간 한계가 있는 경우.

ㅇ 시험 함정:
– DVC가 데이터를 직접 Git 저장소에 저장한다고 착각.
– DVC만으로 코드 버전관리까지 모두 처리한다고 오해.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “DVC는 데이터 메타정보를 Git에서 관리한다.”
X: “DVC는 모든 데이터 파일을 Git 저장소에 직접 저장한다.”

================================

2. Git LFS

ㅇ 정의:
Git Large File Storage의 약자로, Git에서 대용량 파일을 효율적으로 관리하기 위한 확장 기능.

ㅇ 특징:
– 대용량 파일은 Git 저장소 외부에 저장하고, 포인터 파일만 Git에 저장.
– 기존 Git 워크플로우와 통합됨.
– 이미지, 동영상, 모델 파일 등 대용량 바이너리 파일 관리에 적합.

ㅇ 적합한 경우:
– 대용량 파일을 자주 변경·추적해야 하는 프로젝트.
– Git 기반 협업 환경에서 미디어 파일 관리.

ㅇ 시험 함정:
– Git LFS가 데이터 처리 속도를 높여주는 도구로 오해.
– Git LFS 없이도 대규모 파일을 Git에서 효율적으로 관리할 수 있다고 착각.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Git LFS는 대용량 파일을 외부 저장소에 저장하고 포인터를 Git에 저장한다.”
X: “Git LFS는 대용량 파일을 Git 저장소 내부에 직접 저장한다.”

================================

3. Artifact Registry

ㅇ 정의:
머신러닝 모델, 컨테이너 이미지, 패키지 등을 중앙에서 저장·관리하는 서비스 또는 저장소.

ㅇ 특징:
– Google Cloud Artifact Registry, AWS CodeArtifact 등 클라우드 기반 서비스 존재.
– 접근 제어, 버전관리, 보안 스캔 기능 제공.
– 모델 배포와 재현성 유지에 유용.

ㅇ 적합한 경우:
– 모델, 패키지, 이미지 아티팩트를 중앙에서 관리해야 하는 환경.
– CI/CD 파이프라인과 연계하여 배포 자동화.

ㅇ 시험 함정:
– Artifact Registry를 단순 파일 서버로 오해.
– 데이터셋 저장 전용으로만 생각.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Artifact Registry는 모델과 패키지를 버전별로 관리할 수 있다.”
X: “Artifact Registry는 오직 데이터셋만 저장할 수 있다.”

ㅁ 추가 학습 내용

추가 학습 정리

1. DVC와 Git LFS의 차이점
– DVC(Data Version Control): 데이터 버전 관리, 파이프라인 관리, 실험 재현성 지원. 원격 스토리지 연동 가능.
– Git LFS(Git Large File Storage): 대용량 파일을 Git에 저장할 때 파일 내용 대신 포인터를 저장하고, 실제 파일은 별도 저장소에 관리. 기능은 단순 저장·관리 중심.

2. Artifact Registry와 Docker Registry의 차이
– Artifact Registry: 컨테이너 이미지뿐 아니라 패키지, 라이브러리, 기타 아티팩트 등 다양한 유형 저장 가능.
– Docker Registry: 주로 Docker 컨테이너 이미지 저장 및 배포에 특화.

3. 데이터 버전관리 시 고려 사항
– 스토리지 비용: 버전별 데이터 저장으로 인한 저장 용량 증가에 따른 비용 발생.
– 네트워크 대역폭: 대용량 데이터 업로드·다운로드 시 네트워크 사용량과 속도 제한 고려 필요.

4. 데이터/모델 버전관리 도구 비교
– MLflow: 머신러닝 실험 관리, 모델 저장, 배포 지원.
– Weights & Biases(W&B): 실험 추적, 시각화, 협업 기능 강점.
– DVC: 데이터 버전 관리와 파이프라인 중심.
– Git LFS: 단순 대용량 파일 관리.

5. 시험 출제 경향
– ‘버전관리’라는 용어가 나올 때 코드 버전관리(Git)와 데이터 버전관리(DVC, MLflow 등)를 구분하는 문제 빈출.

시험 대비 체크리스트

[ ] DVC와 Git LFS의 기능 차이와 목적 숙지
[ ] Artifact Registry와 Docker Registry의 저장 대상 차이 이해
[ ] 데이터 버전관리 시 스토리지 비용과 네트워크 대역폭 영향 설명 가능
[ ] MLflow, W&B, DVC, Git LFS의 특징과 차이 비교 가능
[ ] 코드 버전관리와 데이터 버전관리의 개념과 활용 구분 가능

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*