PyTorch, JAX, ONNX에서 양자화, 희소화, 증류를 통해 딥러닝 모델을 압축하는 Intel의 오픈소스 Python 라이브러리입니다.
microsoft/TransformerCompression
SliceGPT는 가중치 행렬의 행과 열을 잘라내 LLM 같은 트랜스포머 모델을 축소하는 학습 후 압축 기법입니다.
- 스타
- 466
- 포크
- 59
- 열린 이슈
- 27
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
SliceGPT는 대규모 언어 모델을 포함한 트랜스포머 네트워크를 학습 후 더 작게 만듭니다. 먼저 각 레이어에 직교 변환을 적용해 모델의 출력을 그대로 유지한 다음, 고유값 감소를 기준으로 중요도가 가장 낮은 가중치 행렬의 행과 열을 제거합니다. 모델 구조는 유지하면서 임베딩 차원을 줄이므로 별도의 코드 최적화 없이 속도를 높이고 메모리 사용량을 줄일 수 있습니다.
이 저장소에는 `slicegpt` Python 패키지와 ICLR'24 논문 실험을 재현하기 위한 스크립트가 포함되어 있습니다. 워크플로에는 모델 슬라이싱, 복구 파인튜닝(LoRA 기반), LM Eval Harness를 이용한 평가가 있습니다. 지원 모델로는 Phi-2, Phi-3-mini, 여러 Llama-2 및 Llama-3 변형, 그리고 매개변수가 125M에서 66B 사이인 OPT 모델이 있습니다.
새 모델 계열을 추가하려면 모델 어댑터와 레이어 어댑터를 구현한 뒤 Hugging Face 로딩 유틸리티를 업데이트하면 됩니다.
핵심 기능
- 01가중치 행렬을 잘라내 임베딩 차원을 줄이는 학습 후 압축 기법입니다.
- 02각 레이어에 적용하는 직교 변환으로 슬라이싱 전 모델의 기능을 그대로 유지합니다.
- 03밀집된 소형 가중치 행렬을 생성하므로 커스텀 커널 없이도 속도를 높일 수 있습니다.
- 04LoRA 기반 복구 파인튜닝과 베이지안 하이퍼파라미터 탐색을 선택적으로 지원합니다.
- 05LM Eval Harness를 통한 평가 기능을 제공합니다.
- 06새로운 Hugging Face 트랜스포머 아키텍처를 추가할 수 있는 어댑터 인터페이스를 제공합니다.
활용 사례
- GPU 리소스가 제한된 환경에 배포하기 위해 Phi-2 또는 Llama 모델의 메모리 사용량을 줄입니다.
- LLM 학습 후 압축을 연구하고 SliceGPT 논문 결과를 재현합니다.
- 어댑터를 통해 새로운 트랜스포머 아키텍처에 SliceGPT 지원을 추가합니다.
빠른 시작
- 1
experiment extras와 함께 slicegpt 패키지를 설치합니다
pip install -e .[experiment] - 2
experiments 폴더에서 SliceGPT로 microsoft/phi-2를 압축합니다
python run_slicegpt.py --model microsoft/phi-2 --save-dir dir/to/save/sliced_model/in --sparsity 0.25 --device cuda:0 --eval-baseline --no-wandb
사용 전 알아둘 점
- README에 나열된 Hugging Face 모델만 지원됩니다. 다른 모델을 사용하려면 새 어댑터가 필요합니다.
- 일부 모델은 --hf-token 또는 HF_TOKEN을 통한 Hugging Face 인증이 필요합니다.
토픽
자주 묻는 질문
- TransformerCompression은(는) 무엇인가요?
- SliceGPT는 가중치 행렬의 행과 열을 잘라내 LLM 같은 트랜스포머 모델을 축소하는 학습 후 압축 기법입니다. SliceGPT는 대규모 언어 모델을 포함한 트랜스포머 네트워크를 학습 후 더 작게 만듭니다. 먼저 각 레이어에 직교 변환을 적용해 모델의 출력을 그대로 유지한 다음, 고유값 감소를 기준으로 중요도가 가장 낮은 가중치 행렬의 행과 열을 제거합니다. 모델 구조는 유지하면서 임베딩 차원을 줄이므로 별도의 코드 최적화 없이 속도를 높이고 메모리 사용량을 줄일 수 있습니다.
- TransformerCompression은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- TransformerCompression은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- TransformerCompression은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. TransformerCompression의 마지막 커밋은 2026년 9월 10일입니다.
- TransformerCompression은(는) 어디에 사용할 수 있나요?
- GPU 리소스가 제한된 환경에 배포하기 위해 Phi-2 또는 Llama 모델의 메모리 사용량을 줄입니다. LLM 학습 후 압축을 연구하고 SliceGPT 논문 결과를 재현합니다. 어댑터를 통해 새로운 트랜스포머 아키텍처에 SliceGPT 지원을 추가합니다.
- TransformerCompression는 어떻게 설치하나요?
- experiment extras와 함께 slicegpt 패키지를 설치합니다: pip install -e .[experiment] experiments 폴더에서 SliceGPT로 microsoft/phi-2를 압축합니다: python run_slicegpt.py --model microsoft/phi-2 --save-dir dir/to/save/sliced_model/in --sparsity 0.25 --device cuda:0 --eval-baseline --no-wandb
- TransformerCompression은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/microsoft/TransformerCompression
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Hugging Face Optimum용 PyTorch 양자화 백엔드로, 모델 가중치와 활성값을 int2부터 float8까지 양자화합니다.
다양한 병합 알고리즘으로 사전 학습된 대규모 언어 모델의 가중치를 결합하고 CPU 또는 GPU에서 실행하는 툴킷입니다.
Hugging Face 체크포인트에서 바로 LLM, VLM, diffusion 모델을 파인튜닝하고 사전 학습할 수 있는 PyTorch DTensor 네이티브 학습 라이브러리입니다.
NVIDIA의 오픈소스 라이브러리로, 양자화·프루닝·증류·희소성·추측 디코딩을 통해 딥러닝 모델을 압축하고 추론 속도를 높입니다.
Transformer, 사전 학습, 미세 조정, RAG와 에이전트를 다루며 LLaMA2 스타일의 소형 모델을 처음부터 만들어 LLM의 원리를 배우는 중국어 공개 튜토리얼입니다.