Torch Pruning 소개
Torch-Pruning
(TP)은 다양한 딥러닝 모델에 대해 구조적 프루닝을 지원하는 범용 도구입니다. PyTorch에서 공식적으로 제공하는 torch.nn.utils.prune와 달리, Torch-Pruning
은 마스킹을 통해 파라미터를 제로화하지 않고, 실제로 불필요한 파라미터를 제거합니다. 이를 통해 모델의 크기를 줄이고 계산 효율성을 높일 수 있습니다. Torch-Pruning
은 특히 DepGraph라는 알고리즘을 사용하여, 레이어 간의 종속성을 자동으로 식별하고 프루닝할 그룹을 생성합니다.
기존의 torch.nn.utils.prune
와 달리, Torch-Pruning
은 파라미터를 물리적으로 제거하며, 이를 통해 모델의 구조적 일관성을 유지하면서도 경량화된 모델을 제공합니다. 또한, LLMs, Vision Transformers, Diffusion Models, ConvNext 등 다양한 최신 모델을 지원하는 점에서 기존 툴들보다 더 범용적입니다.
주요 특징
-
다목적 프루닝 툴킷: Large Language Models (LLMs), Segment Anything Model (SAM), Diffusion Models, Vision Transformers, ConvNext, Yolov7, yolov8, Swin Transformers, BERT, FasterRCNN, SSD, ResNe(X)t, DenseNet, RegNet, DeepLab 등의 다양한 모델 제공
-
고급 프루너: MetaPruner, MagnitudePruner, BNScalePruner, GroupNormPruner, GrowingRegPruner 등 다양한 프루
닝 알고리즘 제공 -
의존성 그래프: 자동 구조적 프루닝을 위한 종속성 그래프 제공
-
저수준 프루닝 함수: Conv, Linear, BatchNorm, Embedding 등 다양한 레이어 지원
-
사용 예제 및 재현 코드 제공: Timm, Huggingface Transformers, Torchvision, Yolo 모델 프루닝 예제 및 DepGraph 논문 결과 재현 코드 제공
라이선스
Torch Pruning 프로젝트는 MIT 라이선스로 공개 및 배포되고 있습니다.
Torch Pruning GitHub 저장소
Torch Pruning 문서 및 튜토리얼
DepGraph 논문 (CVPR '23)
Isomorphic Pruning 논문 (ECCV '24)
관련 논문 목록
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~