PyTorch, JAX, ONNX에서 양자화, 희소화, 증류를 통해 딥러닝 모델을 압축하는 Intel의 오픈소스 Python 라이브러리입니다.
openvinotoolkit/nncf
OpenVINO, PyTorch, ONNX에서 추론 속도를 높이기 위해 양자화, 프루닝, 희소화를 지원하는 신경망 압축용 Python 프레임워크입니다.
- 스타
- 1,211
- 포크
- 309
- 열린 이슈
- 50
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
NNCF(Neural Network Compression Framework)는 OpenVINO toolkit의 Python 패키지로, 정확도 손실을 최소화하면서 신경망 추론에 필요한 크기와 비용을 줄여 줍니다. 모델과 소규모 보정 데이터셋만 있으면 되는 8-bit Post-Training Quantization, LLM 가중치 압축 등의 학습 후 알고리즘과 Quantization Aware Training, LoRA 기반 가중치 전용 양자화, 프루닝 등의 학습 중 기법을 제공합니다.
NNCF는 PyTorch, TorchFX, ONNX, OpenVINO 모델을 지원하며, 학습 후 양자화에는 OpenVINO를 권장 백엔드로 사용합니다. 알고리즘 전반에서 공통 API를 제공하고, 압축된 PyTorch 모델을 ONNX 또는 TensorFlow 형식으로 내보내 OpenVINO에서 사용할 수 있습니다.
이 프로젝트는 HuggingFace Optimum Intel, Ultralytics, ExecuTorch 및 torch.compile의 OpenVINO 통합에서 압축 백엔드로 사용됩니다. 이미지 분류, 객체 탐지, 세그멘테이션, LLM을 다루는 노트북과 예제 스크립트도 함께 제공합니다.
핵심 기능
- 01소규모 보정 데이터셋만 필요한 학습 후 8-bit 양자화.
- 02하이퍼파라미터 탐색과 스케일 추정을 포함한 LLM 가중치 압축.
- 03PyTorch 모델을 위한 양자화 인식 학습 및 프루닝.
- 04OpenVINO, PyTorch, TorchFX, ONNX 백엔드에서 공통으로 사용하는 API.
- 05압축된 PyTorch 모델을 ONNX 또는 TensorFlow 형식으로 내보내기.
활용 사례
- Intel 하드웨어에서 OpenVINO로 배포하기 전에 비전 또는 NLP 모델의 크기를 줄이는 경우.
- 가벼운 로컬 추론을 위해 LLM 가중치를 INT4로 압축하는 경우.
- PyTorch에서 양자화 인식 미세 조정을 통해 양자화 후 정확도를 회복하는 경우.
- 기존 ONNX 또는 PyTorch 내보내기 파이프라인에 양자화를 추가하는 경우.
빠른 시작
- 1
README의 Installation 가이드에 따라 PyPI에서 NNCF를 설치합니다
- 2
모델과 소규모 보정 데이터셋(약 300개 샘플)을 준비합니다
- 3
Usage 섹션의 예시에 따라 보정 데이터셋을 사용해 모델에 nncf.quantize를 실행합니다
사용 전 알아둘 점
- README 배지에는 필수 버전으로 Python 3.11 이상이 표시되어 있습니다.
- PyTorch에서 학습 후 압축 및 활성화 희소성을 위한 TorchFX 지원은 실험 단계로 표시되어 있습니다.
토픽
자주 묻는 질문
- nncf은(는) 무엇인가요?
- OpenVINO, PyTorch, ONNX에서 추론 속도를 높이기 위해 양자화, 프루닝, 희소화를 지원하는 신경망 압축용 Python 프레임워크입니다. NNCF(Neural Network Compression Framework)는 OpenVINO toolkit의 Python 패키지로, 정확도 손실을 최소화하면서 신경망 추론에 필요한 크기와 비용을 줄여 줍니다. 모델과 소규모 보정 데이터셋만 있으면 되는 8-bit Post-Training Quantization, LLM 가중치 압축 등의 학습 후 알고리즘과 Quantization Aware Training, LoRA 기반 가중치 전용 양자화, 프루닝 등의 학습 중 기법을 제공합니다.
- nncf은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- nncf은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- nncf은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. nncf의 마지막 커밋은 2026년 10월 19일입니다.
- nncf은(는) 어디에 사용할 수 있나요?
- Intel 하드웨어에서 OpenVINO로 배포하기 전에 비전 또는 NLP 모델의 크기를 줄이는 경우. 가벼운 로컬 추론을 위해 LLM 가중치를 INT4로 압축하는 경우. PyTorch에서 양자화 인식 미세 조정을 통해 양자화 후 정확도를 회복하는 경우. 기존 ONNX 또는 PyTorch 내보내기 파이프라인에 양자화를 추가하는 경우.
- nncf는 어떻게 설치하나요?
- README의 Installation 가이드에 따라 PyPI에서 NNCF를 설치합니다 모델과 소규모 보정 데이터셋(약 300개 샘플)을 준비합니다 Usage 섹션의 예시에 따라 보정 데이터셋을 사용해 모델에 nncf.quantize를 실행합니다
- nncf은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/openvinotoolkit/nncf
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Ultralytics YOLOv5는 객체 탐지, 인스턴스 분할, 이미지 분류를 지원하며 학습과 내보내기를 제공하는 PyTorch 기반 컴퓨터 비전 툴킷입니다.
대규모 모델의 분산 학습과 추론을 더 쉽고 효율적으로 지원하는 딥러닝 최적화 라이브러리입니다.
대형 언어 모델을 레이어별로 실행해 양자화 없이도 70B급 모델을 단일 4GB GPU에서 추론할 수 있는 Python 라이브러리입니다.
모바일, 임베디드 및 데스크톱 기기에서 딥러닝 모델을 실행하기 위한 고성능 C++ 신경망 추론 프레임워크입니다.
학습과 추론 서빙을 아우르는 PyTorch 네이티브 양자화·희소성·float8 학습 라이브러리입니다.