Intelが提供するオープンソースのPythonライブラリ。PyTorch、JAX、ONNXに対応し、量子化・スパース化・蒸留で深層学習モデルを圧縮します。
openvinotoolkit/nncf
量子化、プルーニング、スパース化でニューラルネットワークを圧縮し、OpenVINO、PyTorch、ONNXでの推論を高速化するPythonフレームワーク。
- スター
- 1,211
- フォーク
- 309
- 未解決の Issue
- 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モデル向けのQuantization Aware Trainingとプルーニング。
- 04OpenVINO、PyTorch、TorchFX、ONNXの各バックエンドで共通のAPI。
- 05圧縮したPyTorchモデルをONNXまたはTensorFlow形式にエクスポート。
ユースケース
- OpenVINOを使ってIntelハードウェアにデプロイする前に、ビジョンモデルや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 は何に使えますか?
- OpenVINOを使ってIntelハードウェアにデプロイする前に、ビジョンモデルや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 1枚で推論できるPythonライブラリ。
モバイル、組み込み機器、デスクトップで深層学習モデルを実行するための、高性能なC++ニューラルネットワーク推論フレームワークです。
学習と推論サービングの両方を対象に、量子化、スパース化、float8学習を提供するPyTorchネイティブのライブラリ。