# Optimum Quanto

[Quanto](https://github.com/huggingface/optimum-quanto) adalah backend kuantisasi PyTorch untuk [Optimum](https://huggingface.co/docs/optimum/index). Fitur utamanya adalah kuantisasi linear untuk bobot (float8, int8, int4, int2) dengan akurasi yang sangat mirip dengan model presisi penuh. Quanto kompatibel dengan semua modalitas model dan perangkat, sehingga mudah digunakan terlepas dari jenis hardware.

Quanto juga kompatibel dengan [torch.compile](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html) untuk generasi yang lebih cepat.

Instal Quanto dengan perintah berikut.

```bash
pip install optimum-quanto accelerate transformers
```

Kuantisasi model dengan membuat [QuantoConfig](/docs/transformers/main/id/main_classes/quantization#transformers.QuantoConfig) dan menentukan parameter `weights` untuk target kuantisasi. Metode ini berlaku untuk model apa pun dalam modalitas apa pun, selama model tersebut mengandung lapisan [torch.nn.Linear](https://pytorch.org/docs/stable/generated/torch.nn.Linear.html).

> [!TIP]
> Integrasi Transformers hanya mendukung kuantisasi bobot. Gunakan library Quanto secara langsung jika Anda memerlukan kuantisasi aktivasi, kalibrasi, atau QAT.

```py
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

Bungkus model Quanto dengan [torch.compile](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html) untuk generasi yang lebih cepat.

```py
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)
```

## Sumber daya

Baca artikel blog [Quanto: a PyTorch quantization backend for Optimum](https://huggingface.co/blog/quanto-introduction) untuk mempelajari lebih lanjut tentang desain pustaka dan benchmark.

Untuk contoh yang lebih praktis, lihat [notebook](https://colab.research.google.com/drive/16CXfVmtdQvciSh9BopZUDYcmXCDpvgrT?usp=sharing) Quanto.

