Transformers 文件

Optimum Quanto

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Optimum Quanto

QuantoOptimum 的一個 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", 
    torch_dtype="auto", 
    device_map="auto", 
    quantization_config=quant_config
)

torch.compile

使用 torch.compile 包裝 Quanto 模型以實現更快的生成。

import torch
from transformers import AutoModelForSpeechSeq2Seq, QuantoConfig

quant_config = QuantoConfig(weights="int8")
model = AutoModelForSpeechSeq2Seq.from_pretrained(
  "openai/whisper-large-v2",
  torch_dtype="auto",
  device_map="auto",
  quantization_config=quant_config
)

model = torch.compile(model)

資源

閱讀 Quanto: Optimum 的 PyTorch 量化後端 部落格文章,瞭解更多關於庫設計和基準測試的資訊。

有關更多實踐示例,請檢視 Quanto notebook

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.