# HIGGS

[HIGGS](https://huggingface.co/papers/2411.17525) adalah algoritma kuantisasi zero-shot yang menggabungkan pra-pemrosesan Hadamard dengan grid kuantisasi MSE-Optimal untuk mencapai error kuantisasi yang lebih rendah dan kinerja state-of-the-art.

Dukungan runtime untuk HIGGS diimplementasikan melalui pustaka [FLUTE](https://github.com/HanGuo97/flute). Saat ini, hanya varian 70B dan 405B dari Llama 3 dan Llama 3.0, serta varian 8B dan 27B dari Gemma 2 yang didukung. HIGGS juga belum mendukung pelatihan terkuantisasi dan jalur mundur (backward passes) secara umum.

Jalankan perintah di bawah ini untuk menginstal FLUTE.

```bash
pip install flute-kernel
```

```bash
pip install flute-kernel -i https://flute-ai.github.io/whl/cu11.8
```

Buat [HiggsConfig](/docs/transformers/main/id/main_classes/quantization#transformers.HiggsConfig) dengan jumlah bit untuk mengkuantisasi model.

```python
from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig

model = AutoModelForCausalLM.from_pretrained(
    "google/gemma-2-9b-it",
    quantization_config=HiggsConfig(bits=4),
    device_map="auto",
)
```

> [!TIP]
> Temukan model yang telah di-kuantisasi sebelumnya dengan HIGGS di [koleksi](https://huggingface.co/collections/ISTA-DASLab/higgs-675308e432fd56b7f6dab94e) resmi ISTA-DASLab.

## torch.compile

HIGGS sepenuhnya kompatibel dengan [torch.compile](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html).

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, HiggsConfig

model = AutoModelForCausalLM.from_pretrained(
    "google/gemma-2-9b-it",
    quantization_config=HiggsConfig(bits=4),
    device_map="auto",
)

model = torch.compile(model)
```

Lihat tabel di bawah ini untuk benchmark forward passes/detik untuk Llama-3.1-8B-Instruct pada RTX4090.

| Ukuran Batch | BF16 (dengan `torch.compile`) | HIGGS 4bit (tanpa `torch.compile`) | HIGGS 4bit (dengan `torch.compile`) |
|------------|-----------------------------|----------------------------------|-----------------------------------|
| 1          | 59                          | 41                               | 124                               |
| 4          | 57                          | 42                               | 123                               |
| 16         | 56                          | 41                               | 120                               |

