Quantizer per-tensor memetakan setiap nilai dalam tensor aktivasi melalui satu skala bersama. Keterikatan ini menjadi relevan saat sebagian besar aktivasi berada dalam interval sempit, tetapi beberapa nilai memiliki magnitudo jauh lebih besar. Nilai besar tersebut dapat menentukan skala, sedangkan area pusat yang padat direpresentasikan dengan jarak antarnilai yang lebih kasar daripada kebutuhan rentangnya sendiri.

Ini bukan berarti setiap aktivasi besar merupakan error atau aman untuk dihapus. Outlier dapat membawa state model yang berguna. Persoalannya bersifat numerik: satu skala harus mencakup nilai dengan magnitudo yang sangat berbeda.

Magnitudo terbesar dapat menentukan ukuran langkah

Untuk quantizer integer signed simetris dengan batas integer (Q), skala sederhana yang mempertahankan rentang dapat ditulis sebagai

[ s = \frac{\max_i |x_i|}{Q}. ]

Aktivasi real (x) kemudian dipetakan secara aproksimatif sebagai

[ q = \operatorname{clip}\left(\operatorname{round}\left(\frac{x}{s}\right), -Q, Q\right), \qquad \hat{x} = sq. ]

Jika aktivasi absolut maksimum membesar sementara (Q) tetap, (s) ikut membesar. Nilai rekonstruksi yang bersebelahan dipisahkan oleh (s). Tensor dengan massa pusat di sekitar nol karena itu dapat kehilangan resolusi numerik lokal hanya karena sejumlah kecil nilai jauh memperluas rentang bersama.

Sebagai contoh, anggap dua tensor memiliki sebagian besar nilai antara (-1) dan (1). Jika tensor pertama tidak memiliki nilai di luar interval itu, sedangkan tensor kedua memiliki nilai mendekati (16), skala per-tensor berbasis maksimum pada tensor kedua harus mencakup magnitudo yang lebih besar. Dengan format integer yang sama, jarak representasi di sekitar nol juga menjadi lebih besar.

Mekanisme ini berasal langsung dari pemetaan numeriknya. Outlier tidak harus memenuhi definisi kelangkaan tertentu pada suatu distribusi; cukup ada nilai yang jauh dari area tempat banyak nilai lain berada dan nilai tersebut memengaruhi skala bersama.

Mempertahankan rentang dan resolusi pusat adalah sasaran berbeda

Menentukan skala dari seluruh rentang yang diamati mencegah clipping pada nilai di dalam rentang tersebut, tetapi tidak meminimalkan setiap bentuk error kuantisasi. Skala dapat mempertahankan satu nilai ekstrem sambil memberikan relatif sedikit kode integer berbeda untuk interval pusat yang padat.

Clipping mengubah sasaran itu. Jika threshold (T) yang lebih kecil dari maksimum teramati digunakan,

[ s = \frac{T}{Q}, ]

nilai di luar (T) mengalami saturasi, sedangkan nilai di dalam threshold memperoleh jarak representasi yang lebih rapat. Error tidak hilang, tetapi berpindah: nilai yang terkena clipping mendapat saturation error, sementara nilai di dalam rentang dapat memperoleh rounding error yang lebih kecil.

Threshold yang sesuai bergantung pada model dan tensor. Pemilihannya dari calibration set yang representatif merupakan persoalan optimisasi empiris, bukan konstanta universal. Threshold yang sesuai untuk satu distribusi aktivasi dapat tidak sesuai untuk layer, domain input, atau model lain.

Granularitas menentukan nilai mana yang berbagi skala

Kuantisasi per-tensor memakai batas berbagi yang luas: semua nilai terpilih memakai satu skala. Granularitas yang lebih halus dapat mengurangi pengaruh outlier dengan memperkecil kelompok nilai yang harus berbagi rentangnya.

Skema per-channel atau per-group memberikan skala terpisah untuk partisi yang lebih kecil. Jika aktivasi besar hanya berada pada satu partisi, partisi lain dapat mempertahankan skala yang sesuai dengan rentangnya sendiri. Pola error berubah tanpa harus menghapus outlier tersebut.

Manfaatnya bersifat kondisional. Granularitas lebih halus membutuhkan metadata skala dan dukungan kernel, sedangkan axis partisi harus sesuai dengan layout tensor serta skema kuantisasi. Kuantisasi weight dan aktivasi juga memiliki batas operasional berbeda; granularitas yang praktis untuk weight statis belum tentu praktis untuk aktivasi runtime.

Nama format seperti INT8 tidak menetapkan batas ini. Dua deployment INT8 dapat memakai granularitas skala, kebijakan clipping, konvensi zero-point, dan prosedur kalibrasi yang berbeda, lalu menghasilkan perilaku numerik berbeda dari tensor floating-point yang sama.

Data kalibrasi menentukan rentang yang teramati

Kuantisasi aktivasi statis sering memperoleh parameter skala dari input kalibrasi. Input tersebut menentukan rentang aktivasi yang terlihat selama proses kalibrasi. Jika pola input yang menghasilkan magnitudo lebih besar tidak tercakup, rentang yang dipilih dapat terlalu sempit untuk traffic berikutnya. Jika nilai ekstrem yang tidak lazim terlalu dominan, skala berbasis maksimum dapat menjadi terlalu lebar untuk input umum.

Cakupan kalibrasi dengan demikian menjadi bagian dari kontrak numerik. Sasaran utamanya bukan sekadar mengumpulkan banyak sampel. Kumpulan sampel harus memicu rezim aktivasi yang diperkirakan muncul pada workload tujuan.

Dynamic quantization mengubah waktu pemilihan skala dengan menghitung parameter saat runtime untuk tensor atau batch saat itu, bergantung pada implementasi. Mekanisme ini tidak menghapus keterikatan dasar jika sekelompok nilai masih berbagi satu skala. Outlier dalam kelompok tersebut tetap dapat memperbesar ukuran langkah bagi nilai di sekitarnya.

Penanganan outlier dapat dipindahkan di dalam model

Sebagian desain kuantisasi mentransformasi atau mempartisi aktivasi agar komponen bermagnitudo sangat besar tidak berbagi rentang low-precision yang sama dengan mayoritas tensor. Desain lain mempertahankan operasi atau nilai tertentu pada precision yang lebih tinggi. Pendekatan tersebut mengubah lokasi alokasi precision, bukan membuat magnitudo outlier menjadi tidak relevan.

Perbedaan ini penting pada model serving. Quantized checkpoint, runtime quantizer, dan execution kernel harus sepakat mengenai granularitas skala serta representasi yang diharapkan setiap operasi. Partisi yang masuk akal secara matematis tidak berguna jika serving path diam-diam mengasumsikan layout atau cakupan skala lain.

Evaluasi juga perlu memisahkan rekonstruksi numerik dari perilaku task. Reconstruction error tensor yang lebih rendah tidak dengan sendirinya menjamin output generatif yang lebih baik, dan mempertahankan setiap aktivasi ekstrem juga tidak dengan sendirinya menjamin perilaku model yang lebih baik. Perubahan akibat kuantisasi merambat melalui operasi berikutnya, nonlinearities, residual path, dan posisi token selanjutnya.

Batas skala adalah batas implementasi

Outlier aktivasi menjadi sangat mengganggu ketika quantizer memaksanya berbagi skala dengan banyak nilai yang jauh lebih kecil. Pertanyaan praktisnya bukan sekadar ada atau tidaknya outlier. Yang menentukan adalah nilai mana yang berbagi parameter skala, bagaimana parameter tersebut dipilih, dan apa yang terjadi di luar rentang representasi.

Per-tensor max scaling menjawabnya dengan satu rentang luas dan tanpa clipping di dalam maksimum teramati. Granularitas yang lebih halus dan calibrated clipping mengubah batas itu dengan cara berbeda. Masing-masing mengubah lokasi serta bentuk error kuantisasi, sehingga konfigurasi serving perlu dievaluasi sebagai bagian dari model, bukan hanya diperlakukan sebagai format penyimpanan.