# HIGGS

[HIGGS](https://huggingface.co/papers/2411.17525), Hadamard ön işleme ile MSE-Optimal kuantizasyon ızgaralarını birleştirerek daha düşük kuantizasyon hatası ve en iyi performansı elde eden sıfır atışlı bir kuantizasyon algoritmasıdır.

HIGGS için çalışma zamanı desteği, [FLUTE](https://github.com/HanGuo97/flute) kütüphanesi aracılığıyla sağlanır. Şu anda yalnızca Llama 3 ve Llama 3.0'ın 70B ve 405B varyantları ile Gemma 2'nin 8B ve 27B varyantları desteklenmektedir. HIGGS, şu an için kuantize eğitim ve genel olarak geriye yayılım (backward) geçişlerini desteklememektedir.

FLUTE'i yüklemek için aşağıdaki komutu çalıştırın.

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

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

Bir modeli hangi bit sayısına göre nicelleştireceğinizi belirten bir [HiggsConfig](/docs/transformers/main/tr/main_classes/quantization#transformers.HiggsConfig) oluşturun.

```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]
> HIGGS ile önceden kuantize edilmiş modelleri, resmi ISTA-DASLab [koleksiyonunda](https://huggingface.co/collections/ISTA-DASLab/higgs-675308e432fd56b7f6dab94e) bulabilirsiniz.

## torch.compile

HIGGS, [torch.compile](https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html) ile tam olarak uyumludur.

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

RTX4090 üzerinde Llama-3.1-8B-Instruct için ileri geçişler/sn (forward passes/sec) benchmark'ı için aşağıdaki tabloya bakın.

| Toplu İşlem Boyutu | BF16 (`torch.compile` ile) | HIGGS 4bit (`torch.compile` olmadan) | HIGGS 4bit (`torch.compile` ile) |
|------------|-----------------------------|----------------------------------|-----------------------------------|
| 1          | 59                          | 41                               | 124                               |
| 4          | 57                          | 42                               | 123                               |
| 16         | 56                          | 41                               | 120                               |

