You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v5.22.1).
Optimum Quanto
Quantoは、Optimum向けのPyTorch量子化バックエンドです。重みの線形量子化(float8、int8、int4、int2)に対応しており、フルプレシジョンモデルとほぼ同等の精度を実現します。Quantoはあらゆるモデルのモダリティやデバイスと互換性があるため、ハードウェアを問わず簡単に利用できます。
Quanto は、より高速な生成のために torch.compile とも互換性があります。
次のコマンドでQuantoをインストールします。
pip install optimum-quanto accelerate transformers
QuantoConfig を作成し、量子化対象の weights パラメータを指定してモデルを量子化します。これは、torch.nn.Linear レイヤーを含む限り、どのモダリティのモデルにも適用できます。
Transformers の統合は、重みの量子化のみをサポートしています。活性化の量子化、キャリブレーション、または QAT が必要な場合は、Quanto ライブラリを直接使用してください。
from transformers import AutoModelForCausalLM, AutoTokenizer, QuantoConfig
quant_config = QuantoConfig(weights="int8")
model = transformers.AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
dtype="auto",
device_map="auto",
quantization_config=quant_config
)torch.compile
Quantoモデルをtorch.compileでラップして、生成を高速化します。
import torch
from transformers import AutoModelForSpeechSeq2Seq, QuantoConfig
quant_config = QuantoConfig(weights="int8")
model = AutoModelForSpeechSeq2Seq.from_pretrained(
"openai/whisper-large-v2",
dtype="auto",
device_map="auto",
quantization_config=quant_config
)
model = torch.compile(model)リソース
ライブラリの設計やベンチマークについて詳しく知るには、Quanto: a PyTorch quantization backend for Optimum というブログ記事をお読みください。
より実践的な例については、Quantoのノートブックをご覧ください。
Update on GitHub