huggingface/optimum-quanto

A pytorch quantization backend for optimum

What it solves

Optimum Quantoは、AIモデルのメモリフットプリントを削減し、推論速度を向上させる可能性のあるPyTorch量子化バックエンドです。複雑なモデルのトレーシングを必要とせずに、高精度な浮動小数点モデルを低精度な表現(int8、int4、またはfloat8など)に変換できるため、CUDAやMPSを含むさまざまなデバイスへのモデルのデプロイが容易になります。

How it works

Quantoは、標準的なPyTorchモジュール(LinearやConv2dなど)を量子化されたバージョンに置き換えることで動作します。精度低下を最小限に抑えるために、特殊なTensorサブクラスを使用して、ソーステンソルを変換先の型に最適な範囲に投影します。ワークフローは通常、モデルを量子化し(最初は動的モード)、オプションで最適な活性化スケールを見つけるためにキャリブレーションを行い、最後に重みを「フリーズ」して、永続的な保存と高速な実行のために浮動小数点重みを整数重みに置き換えます。

Who it’s for

主に、モデルをより小さなハードウェアに適合させるために圧縮したり、推論効率を向上させたりする必要がある、PyTorchやHugging Faceモデル(LLMやDiffusersなど)を扱う開発者や研究者向けです。

Highlights

  • Versatile Precision: int2、int4、int8、およびfloat8の重み、およびint8とfloat8の活性化をサポートしています。
  • Seamless Integration: Hugging FaceのCausalLMおよびDiffusersモデルをワンクリックで量子化するためのヘルパークラスを提供します。
  • Hardware Flexibility: eager modeで動作し、CUDA、MPS、およびその他のデバイスへのデプロイをサポートしています。
  • Optimization: さまざまな混合精度組み合わせにわたって、CUDAデバイス向けの加速された行列乗算を含んでいます。
  • Calibration and Tuning: 活性化のためのキャリブレーションモードと、精度低下を回復するためのQuantization-Aware-Training (QAT)をサポートしています。

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch