ㅁ 배포 방식 1. gRPC ㅇ 정의: 구글이 개발한 고성능 원격 프로시저 호출(Remote Procedure Call) 프레임워크로, HTTP/2 기반에서 동작하며 프로토콜 버퍼(Protocol Buffers)를 기본 직렬화 포맷으로 사용한다. ㅇ 특징: – 양방향 스트리밍 지원으로 실시간 데이터 전송에 유리 – HTTP/2 기반으로 다중화, 헤더 압축, 서버 푸시 가능 – 강력한 타입 안정성과 자동 코드 생성 지원 – 다양한
ㅁ 플랫폼 1. Comet.ml ㅇ 정의: 머신러닝/딥러닝 실험을 기록, 추적, 비교, 재현할 수 있도록 지원하는 클라우드 기반 MLOps 플랫폼. ㅇ 특징: – 실험별 하이퍼파라미터, 메트릭, 소스코드, 아티팩트 자동 기록 – 웹 대시보드를 통한 시각화 및 비교 기능 제공 – Python SDK, API 연동 지원 – 팀 단위 협업 및 권한 관리 가능 – 로컬, 클라우드,
ㅁ 기법 및 라이브러리 1. ZeRO ㅇ 정의: 대규모 딥러닝 모델 학습 시 메모리 사용을 최적화하기 위해 모델 상태(optimizer states, gradients, parameters)를 여러 장비에 분산 저장·처리하는 병렬 학습 기법으로, Microsoft DeepSpeed에서 제공. ㅇ 특징: – 데이터 병렬(Data Parallel) 학습의 확장형으로, 메모리 사용량을 단계별로 줄이는 ZeRO-1, ZeRO-2, ZeRO-3 단계 존재. – GPU 메모리 한계를 넘어서는 초대규모
ㅁ 기법 및 라이브러리 ㅇ 정의: 대규모 모델 학습 시 모델 파라미터, 옵티마이저 상태, 그래디언트를 여러 장비나 GPU에 분할 저장하고 연산하는 분산 학습 기법. 메모리 사용량을 줄여 더 큰 모델 학습을 가능하게 함. ㅇ 특징: – 각 장비가 전체 모델의 일부만 보유하므로 메모리 효율이 높음 – 통신 비용이 발생하나, 적절한 통신 스케줄링으로 성능 최적화 가능
ㅁ 기법 및 라이브러리 ㅇ 정의: 모델 병렬화(Model Parallelism)는 하나의 대규모 딥러닝 모델을 여러 장치(GPU/TPU 등)에 나누어 각 장치가 모델의 다른 부분을 처리하도록 하는 분산 학습 기법이다. ㅇ 특징: – 모델 파라미터가 단일 장치 메모리에 모두 적재되지 않는 경우 유용함 – 각 장치는 서로 다른 레이어나 연산을 담당하며 순차적으로 데이터가 흐름 – 통신 오버헤드가 크면
ㅁ 기법 및 라이브러리 ㅇ 정의: 동일한 모델 복사본을 여러 장치(GPU/노드)에 배포하고, 서로 다른 데이터 배치를 병렬로 처리하여 학습 속도를 높이는 분산 학습 방식. ㅇ 특징: – 각 장치가 동일한 모델 구조를 유지 – 데이터셋을 배치 단위로 분할하여 각 장치에 전달 – 각 장치에서 계산한 그래디언트를 집계(All-Reduce) 후 평균내어 모델 파라미터를 동기화 – 구현이 상대적으로
ㅁ 도구및 프레임워크 ㅇ 정의: PyTorch 기반의 대규모 분산 학습과 메모리 최적화를 지원하는 오픈소스 라이브러리로, 모델 병렬화, 혼합 정밀도 학습, 체크포인팅 등 대규모 AI 모델 학습 효율화를 위한 기능을 제공함. ㅇ 특징: – Fully Sharded Data Parallel(FSDP)로 모델 파라미터를 샤딩하여 GPU 메모리 사용량을 줄임 – Pipeline Parallelism, Tensor Parallelism 등 다양한 병렬 학습 전략 지원
ㅁ 도구및 프레임워크 ㅇ 정의: – Hydra는 Python 기반의 구성 관리 라이브러리로, 복잡한 애플리케이션의 설정을 계층적으로 관리하고 명령줄에서 쉽게 오버라이드할 수 있도록 지원하는 도구. ㅇ 특징: – YAML 기반 설정 파일을 계층 구조로 관리 가능 – 명령줄 인자를 통해 설정 값 동적 변경 가능 – 설정 파일의 재사용성과 모듈화를 지원 – 실험 관리 및 다양한
ㅁ 도구 및 방법 ㅇ 정의: 소프트웨어 빌드, 머신러닝 모델, 데이터셋 등 다양한 아티팩트를 중앙에서 저장, 관리, 배포할 수 있는 클라우드 기반 저장소 서비스. 주로 Google Cloud Artifact Registry가 대표적이며, Docker 이미지, Maven 패키지, Python 패키지 등을 지원한다. ㅇ 특징: – 버전별 아티팩트 관리 및 접근 제어 가능 – CI/CD 파이프라인과 통합 용이 – 보안
ㅁ 도구 및 방법 ㅇ 정의: Git LFS(Git Large File Storage)는 Git 저장소에서 대용량 파일(이미지, 동영상, 바이너리 등)을 효율적으로 버전 관리하기 위해 파일 자체 대신 포인터를 저장하고, 실제 파일은 별도의 LFS 서버에 저장하는 확장 기능. ㅇ 특징: – Git 저장소의 용량 증가를 방지하고, 대용량 파일의 변경 이력 관리 가능 – 파일은 포인터 형태로 Git에 저장되며,