Repolode
openvinotoolkit

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. 1

    README の Installation ガイドに従って、PyPI から NNCF をインストールします

  2. 2

    モデルと、小規模なキャリブレーション用データセット(約300サンプル)を用意します

  3. 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 の数値は毎日更新されます。

関連プロジェクト