Nicemleme ve Kuantizasyon Hatası
Sürekli analog dünya, ayrık dijital depo — SIDRA tam ortada.
Önkoşul
Bu bölümde öğreneceklerin
- Kuantizasyon nedir ve neden gerekli olduğunu açıkla
- ADC ve DAC'ın temel rollerini ve bit-derinliği kavramını yaz
- Kuantizasyon hatasını ($\sigma_q^2 = \Delta^2/12$) hesapla
- INT8, INT4, FP16 quantize edilmiş AI modellerinin pratik etkilerini söyle
- 256-seviye SIDRA hücresinin neden 8-bit kuantizasyona denk olduğunu göster
Açılış: Sürekli Dünyaya Sayısal Cetvel
Doğa sürekli: voltaj, akım, ses, ışık — hepsi kesintisiz. Bilgisayarlar ayrık: 0 ve 1, sınırlı sayıda durum.
Bunları birleştiren işleme kuantizasyon denir: sürekli değeri ayrık seviyelerden birine eşle.
- Bir termometre 23.7°C okur → ekran “24” gösterir → bir bit yuvarlanmış.
- Mikrofon analog ses → 16-bit ADC → 65,536 ayrık seviye.
- Bir AI modeli ağırlığı FP32 (4 byte) eğitilir → INT8 (1 byte) inference için kuantize edilir → 4× sıkıştırma.
SIDRA’nın merkezindeki kuantizasyon:
- Memristör hücresi → 256 seviye (8 bit). Sürekli iletkenlik aralığını 256 ayrık değerle temsil et.
- ADC → analog akımı 8-bit dijitale çevir.
- DAC → 8-bit dijitali analog voltajla geri.
Kuantizasyon hatası kaçınılmaz. Sürekli sinyali ayrık temsille gösterirken bilgi kaybı olur. Bu bölüm o kaybın matematiğini, pratiğini, ve SIDRA için ne demek olduğunu anlatır.
Sezgi: Cetvelin Ölçeği = Hassasiyet
Bir cetvelin işaretleri ne kadar sıksa o kadar hassas ölçer. Aynı şey kuantizasyon için:
| Bit | Seviye | Cetvelin sıklığı |
|---|---|---|
| 1 | 2 | sadece 0 ve 1 (ortayı bilemezsin) |
| 4 | 16 | her seviyede ~%6 hassasiyet |
| 8 | 256 | her seviyede ~%0.4 |
| 16 | 65,536 | her seviyede ~%0.0015 |
| 32 | 4 milyar | float gibi |
Yuvarlama hatası (kuantizasyon hatası): sürekli değeri en yakın ayrık seviyeye yuvarlamaktan gelen sapma.
- Aralık → seviye → adım .
- En kötü hata: .
- Ortalama hata kare: (uniform dağılım için).
SIDRA örneği:
- Hücre iletkenliği aralık: 1 µS — 100 µS, 256 seviye → µS.
- µS.
- µS bir hücre için relatif hata: → ~9 etkin bit (kuantizasyon yalnız).
- Ama gürültü + drift toplamı → ~6 etkin bit (4.4’te gördük).
Sezgi sonucu: Kuantizasyon temel bir sınır, ama pratikte gürültü daha baskın. SIDRA için 8-bit kuantizasyon yeterince iyi.
Formalizm: Kuantizasyon Hatası ve Bit-Derinliği
Uniform kuantizasyon:
Aralık , seviye ( bit). Adım:
Sürekli değer → en yakın seviye .
Hata: .
Kuantizasyon gürültüsü (uniform varsayım):
, , .
SQNR (Signal-to-Quantization-Noise Ratio):
Tam aralık sinüs sinyali için:
Her ek bit ~6 dB iyileşme. SIDRA Y1 8-bit hücre → ~50 dB SQNR.
Bit-derinliği etkisi:
| Bit | SQNR (dB) | Tipik kullanım |
|---|---|---|
| 1 | ~7.78 | Aşırı sıkıştırma, sınırlı |
| 4 | ~25.84 | INT4 quantize LLM (deneysel) |
| 8 | ~49.92 | INT8 inference (standard) |
| 16 | ~98.08 | FP16 eğitim (yarı float) |
| 32 | ~194.21 | FP32 eğitim (tam float) |
Modern AI’da kuantizasyon trendi:
Eğitim → genelde FP32 veya FP16 (yüksek hassasiyet gradient için).
Inference → INT8 standart, INT4 yaygınlaşıyor, INT2-INT3 deneysel.
Neden mümkün? AI modeli gürültü-tolerantdır. Doğrusal olmayan aktivasyonlar küçük hataları emer. Modeller “robust” olarak eğitildiyse INT8 → INT4 ile %1-3 doğruluk kaybı kabul edilir.
Quantization-Aware Training (QAT):
Eğitim sırasında kuantizasyonu simüle et → model bu hataya hazırlanır. Post-training quantization’dan iyi sonuç verir. Tipik QAT: INT4’te %0.5 doğruluk kaybı.
Çift-yönlü kuantizasyon:
- Weights: uniformly INT8 quantize. Donanımda 256 seviye memristör.
- Activations: INT8 dinamik aralık. Layer başına min/max kalibrasyonu.
- Accumulator: INT16 veya INT32 (toplama overflow’unu önlemek için).
SIDRA bu yapıya ideal: weight = memristör (8-bit), activation = ADC çıktısı (8-bit), accumulator = CMOS toplam (16-bit).
Mixed precision:
Bazı katmanlar INT8, bazıları INT4, bazıları FP16 — model duyarlılığına göre. Modern pratik. SIDRA Y10 hedefi: katmanı katmanı kuantizasyon (compiler kararı, 6.7).
Logaritmik (log) kuantizasyon:
Uniform yerine logaritmik seviye dağılımı. Sinüs gibi geniş dinamik aralık sinyalleri için iyi (sesin %dB% perception’ı logaritmiktir).
Avantaj: küçük değerler için hassas, büyük için kaba. Logarithmic Number System (LNS) AI’da bazı yerlerde aday.
Stokastik yuvarlama:
Klasik yuvarlama (round) deterministik. Stokastik yuvarlama: olasılığa göre yukarı veya aşağı:
Üstün özellik: ortalama olarak yansız (E[] = x). Eğitim için kullanışlı (gradient bias yok).
SIDRA Y10+ aday: kontrollü gürültü ile stokastik yuvarlama → eğitim hassasiyeti artar.
Kuantizasyon ile sayısal kararsızlık:
Çok küçük gradyanlar (< ) yuvarlama ile kaybolur → “underflow”. Modern Transformer eğitiminde bf16 (brain float) yaygın — exponent FP32’ninki gibi geniş, mantissa kısa. Underflow problemini çözer.
SIDRA için: gradient INT8’e sığmaz → eğitim için FP16/bf16 dijital koprosessör gerekir. Inference INT8 yeter.
8-bit hücreden daha fazla bit?
SIDRA Y10 hedefi: çoklu hücre kombinasyonu. 2 hücre = 16 seviye × 16 = 256 seviye = 8 bit (aynı), ama 1024 seviye = 10 bit eğer logaritmik kombinasyon. 4 hücre 16 bit. Ama gürültü çoğalır → etkin bit aynı kalabilir.
Pratik karar: SIDRA için tek-hücre 8-bit + dijital toplam → effective 12-16 bit. Modern AI inference için fazlasıyla yeterli.
Deney: 4-bit ve 8-bit Kuantizasyonun Etkisi
Bir model ağırlıkları aralığında eğitildi. INT8 ve INT4 kuantizasyon karşılaştır.
INT8: 256 seviye, .
Örnek ağırlık → en yakın seviye: (44. seviye, sıfır merkezli). Hata: .
INT4: 16 seviye, .
Aynı ağırlık → en yakın seviye: (3. seviye yarısı + ofset). Hata: . 10× büyük.
1000 ağırlık ortalama hatası:
- INT8 RMS: .
- INT4 RMS: . 15× büyük.
MNIST inference üzerine etki:
- FP32 baseline: %98.0
- INT8: %97.8 (0.2% kayıp)
- INT4: %96.5 (1.5% kayıp)
- INT2: %88 (10% kayıp)
SIDRA Y1: 256 seviye = INT8 eşdeğeri → MNIST için %97.8 beklenir. Pratik olarak FP32’den ayırt edilemez kullanıcı için.
Daha karmaşık model (BERT-base):
- FP32: %88 (GLUE)
- INT8: %87.5
- INT4: %85
- SIDRA Y1: %87.5 beklenir.
Sonuç: SIDRA’nın 8-bit kuantizasyonu modern inference için endüstri standartı ile uyumludur.
Kısa Sınav
Laboratuvar Görevi
SIDRA Y1 vs Y10 vs Y100 quantization performans karşılaştırması.
Veri:
- Y1: 256 seviye/hücre (8-bit), tek hücre.
- Y10 (hedef): çoklu hücre kombinasyonu → effective 10-12 bit.
- Y100 (vizyon): mixed-precision + analog FP-equivalent ~16 bit.
- Test modeli: ResNet-50 ImageNet (Top-1 accuracy %76.0 FP32 baseline).
Veriler (literatür):
- INT8: %75.2 (0.8% kayıp)
- INT4: %73.5 (2.5% kayıp)
- INT2: %68.0 (8% kayıp)
Sorular:
(a) SIDRA Y1 (8-bit) ResNet-50 inference doğruluğu beklenir? (b) Y10 (12-bit etkin) sonuç? (c) Y100 (16-bit etkin) sonuç? (d) Y1 ile MobileNet-V2 çalıştır: tipik kayıp ne olur? (e) Inference süresi karşılaştır (Y1 vs H100): ResNet-50 başına?
Çözümler
(a) Y1 INT8 → ~%75.2. Üretim için kabul edilir (cep telefonu kameraları INT8 kullanır).
(b) Y10 ~12-bit ≈ FP16 hassasiyetine yakın → ~%75.7-75.9. FP32’den fark edilmez.
(c) Y100 16-bit → %76.0. Tam denk. Eğitim için bile uygun.
(d) MobileNet-V2 quantization’a daha hassas (depthwise conv küçük hatayı magnify eder). FP32 %72.0, INT8 ~%71.0 (1% kayıp). Y1 ~%71’i tutar. Yine de pratik.
(e) ResNet-50: 4.1B FLOP/inference. Y1: 30 TOPS analog → ~140 µs/inference. H100: 50 TFLOPS sustain → ~80 µs (batch 1; batch 32’de ~3 µs/inference). Latency: H100 1.5-50× hızlı; enerji: SIDRA 50× az.
Pratik: SIDRA edge’de güç-bütçesi sıkı (akıllı kamera, IoT); H100 datacenter’da. SIDRA bunu replace etmeyi hedeflemez — yanına kurar.
Özet Kart
- Kuantizasyon: sürekli → ayrık eşleşme. Bit-derinliği = seviye sayısı.
- Adım: , .
- Hata: uniform .
- SQNR: her bit ~6 dB.
- Modern AI standartı: INT8 inference, INT4 yayılıyor.
- SIDRA Y1: 256 seviye = 8-bit eşdeğer, INT8 inference için ideal.
- QAT: eğitimde kuantize simüle et → daha iyi sonuç.
- Stokastik yuvarlama: yansız, gradient için faydalı.
Vizyon: Aşırı Düşük Bit AI ve SIDRA Yolu
AI bit-derinliği sürekli düşüyor: FP32 → FP16 → INT8 → INT4 → INT2. Sınır 1-bit (binary networks).
- Y1 (bugün): 8-bit yeterli. INT8 inference standart.
- Y3 (2027): Mixed precision (katman başına 4/8/16-bit). %95 katmanları INT8, %5 INT4.
- Y10 (2029): Çoklu-hücre 12-bit + stokastik yuvarlama. FP16-eşdeğer inference.
- Y100 (2031+): Analog FP16 (mantissa + exponent ayrı hücreler). Eğitim+inference aynı çipte.
- Y1000 (uzun vade): Logarithmic + stochastic + analog FP. Beyin-tarzı tam analog.
Türkiye için anlam: Düşük-bit AI tasarımı dijital donanımda olgun (NVIDIA TensorRT, Apple CoreML). Analog-tarafta açık alan — SIDRA ilk büyük analog INT8 platformu olabilir. Akademi + endüstri Türkiye’de bu yarışı vermek için yeterli kapasitede.
Beklenmedik gelecek: 1-bit dünya. Tüm ağırlıklar ±1 (BinaryConnect, XNOR-Net). MVM xor + popcount olur. SIDRA crossbar 1-bit memristör (sadece HRS/LRS) ile maksimum yoğunluk + minimum enerji. 2030+ ufku ama yön var.
Daha İleri
- Bir sonraki bölüm: 4.7 — Bilgi Kuramı: Entropi ve Kanal
- Önceki: 4.5 — Fourier Dönüşümü
- Klasik kuantizasyon: Gray & Neuhoff, Quantization, IEEE Trans. Inf. Theory 1998.
- AI quantization survey: Gholami et al., A Survey of Quantization Methods for Efficient Neural Network Inference, arXiv 2021.
- QAT: Jacob et al., Quantization and training of neural networks for efficient integer-arithmetic-only inference, CVPR 2018.
- BinaryConnect: Courbariaux et al., Training deep neural networks with weights and activations constrained to +1 or -1, NeurIPS 2015.
- Stokastik yuvarlama: Gupta et al., Deep learning with limited numerical precision, ICML 2015.