데이터 증강 라벨링, 이미지처리, 데이터셋구현
딥러닝 라이브러리
PyTorch | TensorFlow | |
---|---|---|
주요 특징 | 동적 계산 그래프(dynamic computation graph) 사용 | 정적 계산 그래프(static computation graph) 사용 |
프로그래밍 스타일 | 직관적이고 유연한 구문 | 선언적인 구문 |
GPU 지원 | 우수한 GPU 지원 | 강력한 GPU 지원 |
커뮤니티 및 생태계 | 활발하고 빠르게 성장하는 커뮤니티 | 방대한 생태계 및 강력한 지원 |
디버깅 및 프로파일링 도구 | 제한적인 디버깅 및 프로파일링 도구 | 다양한 디버깅 및 프로파일링 도구 제공 |
배포 및 생산 환경 | 모델 배포가 비교적 간단 | 모델 배포가 상대적으로 복잡 |
장점 | - 직관적인 구문으로 빠른 프로토타이핑 가능 | - 방대한 생태계와 강력한 지원 |
- 동적 계산 그래프로 유연한 모델 개발 | - 고성능 GPU 지원 및 분산 학습 기능 | |
- 좋은 커뮤니티 지원 | - 정적 계산 그래프로 효율적인 실행 최적화 가능 | |
- 텐서 연산에 최적화된 기능 | - TensorFlow Extended(TFX)를 통한 전체 ML 파이프라인 | |
구축 가능 | ||
사용 예시 | - 딥러닝 모델의 연구 및 개발 | - 대규모 분산 학습 |
- 컴퓨터 비전, 자연어 처리 등 다양한 분야에서 사용 | - 음성 및 언어 처리 | |
- GANs, 변이형 오토인코더 등 생성 모델 | - 실시간 추론 서비스 |
pytroch view()
https://anweh.tistory.com/12
모듈러 샤딩(Modular Sharding)과 레인지 샤딩(Range Sharding)
모듈러 샤딩 (Modular Sharding) | 레인지 샤딩 (Range Sharding) | |
---|---|---|
정의 | 데이터를 여러 조각으로 분할하고, 조각마다 고유한 식별자를 부여하는 방법 | 데이터를 연속적인 범위로 분할하고, 범위에 따라 데이터를 분배하는 방법 |
분할 기준 | 나머지 연산을 통해 데이터를 분할 | 지정된 범위(예: 숫자 범위, 날짜 범위)에 따라 데이터를 분할 |
장점 | - 분산된 데이터에 대한 질의가 효율적이고 균형있게 분산됨 | - 연속적인 범위에 대한 질의가 효율적이고 선형적인 분산이 가능 |
- 샤드 간의 데이터 이동이 쉽고 유연함 | ||
단점 | - 분할 기준에 따라 데이터 불균형이 발생할 수 있음 | - 샤드 크기 조정이 어려울 수 있음 |
- 특정 샤드에서의 부하가 높아질 수 있음 | ||
사용 사례 | - 사용자 또는 키 기반의 데이터 분할 | - 연속적인 값으로 정렬된 데이터 (예: 날짜 범위, 가격 범위) |
- 분산된 로그 데이터 저장 | ||
예시 | - 사용자 ID를 나머지 연산을 통해 샤드에 분배 | - 주문 날짜를 기준으로 범위에 따라 샤드에 분배 |