Transformer dapat menghasilkan logit dengan magnitudo yang jauh melampaui rentang yang diperlukan untuk menyatakan preferensi kuat. Skor attention yang besar dapat membuat distribusi softmax sangat terkonsentrasi, sedangkan logit output yang besar dapat membuat probabilitas token hampir one-hot. Hard clamp dapat membatasi nilai tersebut, tetapi menghasilkan wilayah datar dengan perubahan turunan yang mendadak pada ambang batas.

Logit soft capping memakai fungsi saturasi yang halus sebagai gantinya. Salah satu bentuk yang umum adalah:

softcap(x, c) = c * tanh(x / c)

dengan c sebagai parameter cap positif. Hasilnya tetap berada di antara -c dan c, mendekati fungsi identitas di sekitar nol, dan secara bertahap memampatkan magnitudo yang lebih besar saat mendekati salah satu batas.

Mekanismenya sederhana, tetapi lokasi penerapannya penting. Membatasi skor attention mengubah distribusi yang dipakai untuk mencampur value di dalam model. Membatasi logit vocabulary akhir mengubah distribusi probabilitas untuk prediksi token. Keduanya merupakan intervensi yang berbeda meskipun memakai transformasi matematis yang sama.

Transformasi hampir linear di sekitar nol

Untuk x / c yang kecil, hyperbolic tangent mendekati inputnya:

tanh(x / c) ≈ x / c

sehingga:

c * tanh(x / c) ≈ x

Artinya, logit yang kecil relatif terhadap cap hanya berubah sedikit. Pemampatan menjadi lebih kuat saat magnitudo meningkat.

Sebagai contoh, dengan c = 10:

x = 1   -> softcap(x, 10) ≈ 1.00
x = 5   -> softcap(x, 10) ≈ 4.62
x = 10  -> softcap(x, 10) ≈ 7.62
x = 20  -> softcap(x, 10) ≈ 9.64

Transformasi ini tidak mempertahankan jarak antar-logit besar. Nilai 20 dan 30 sama-sama dipetakan dekat batas atas, sehingga selisih keduanya menjadi jauh lebih kecil setelah capping.

Pemampatan tersebut memang menjadi tujuannya. Cap membatasi seberapa besar pemisahan tambahan yang dapat dibuat oleh raw logit yang sudah besar.

Soft capping berbeda dari hard clipping

Hard clamp dapat ditulis sebagai:

hardcap(x, c) = min(c, max(-c, x))

Di dalam interval, hard clipping membiarkan nilai tetap sama. Di luarnya, setiap magnitudo yang lebih besar dipetakan tepat ke batas.

Soft capping mulai memampatkan sebelum batas nominal. Turunannya adalah:

d softcap(x, c) / dx = 1 - tanh(x / c)^2

Pada nol, turunannya 1. Saat magnitudo membesar, turunannya bergerak secara halus menuju 0. Raw logit ekstrem dengan demikian menghasilkan perubahan yang makin kecil pada nilai setelah capping.

Hard clipping memiliki profil gradien berbeda. Turunannya 1 di dalam interval yang tidak di-clip dan 0 di luarnya, selain pada titik ambang tempat turunan tidak terdefinisi dalam pengertian biasa. Ini menciptakan transisi tajam antara perubahan yang diteruskan sepenuhnya dan yang ditekan sepenuhnya.

Tidak ada satu perilaku yang selalu lebih baik. Keduanya menyatakan pilihan berbeda tentang perilaku nilai di sekitar dan di luar ambang.

Capping skor attention mengubah konsentrasi

Scaled dot-product attention membentuk skor sebelum softmax:

s_ij = q_i · k_j / sqrt(d)

Jika soft capping diterapkan, softmax menerima:

s'_ij = c * tanh(s_ij / c)

Softmax bergantung pada selisih skor. Menambahkan konstanta yang sama ke setiap skor tidak mengubah distribusi, tetapi memampatkan skor positif dan negatif yang besar mengubah selisih tersebut.

Pertimbangkan dua raw attention score:

[20, 10]

Selisihnya 10. Dengan cap 10, nilai hasil transformasi kira-kira:

[9.64, 7.62]

dan selisihnya sekitar 2,02. Softmax yang dihasilkan jauh lebih tidak terkonsentrasi dibanding softmax atas pasangan asli.

Efek ini bergantung pada seluruh vektor skor. Jika setiap skor kecil relatif terhadap cap, attention tetap dekat dengan hasil tanpa cap. Jika hanya beberapa skor mencapai wilayah saturasi, keunggulannya atas posisi pesaing akan dipampatkan.

Cap dengan demikian bekerja pada selektivitas attention, bukan sekadar rentang numerik. Mengubahnya dapat menggeser posisi mana yang menerima bobot berarti.

Capping logit akhir bekerja pada probabilitas token

Language model biasanya mengubah logit vocabulary akhir menjadi probabilitas dengan softmax. Menerapkan soft capping tepat sebelum softmax membatasi pemisahan maksimum yang masih dapat dipertahankan raw logit ekstrem setelah transformasi.

Misalkan dua logit token adalah:

[30, 10]

Dengan cap 10, nilainya menjadi kira-kira:

[9.95, 7.62]

Selisih awal 20 menjadi sekitar 2,33. Logit vocabulary lain juga ditransformasi, sehingga pergeseran probabilitas akhir bergantung pada seluruh vektor.

Hal ini berdampak langsung pada kode decoding. Runtime yang menghilangkan operasi soft-cap yang ditentukan arsitektur model tidak menghitung distribusi probabilitas yang sama dengan definisi arsitektur. Dampak praktisnya mungkin kecil untuk logit yang tetap berada di wilayah hampir linear, tetapi ekuivalensi tidak dapat diasumsikan hanya dari rumus.

Temperature juga berinteraksi dengan lokasi operasi. Menerapkan temperature setelah soft capping menghitung:

softmax(softcap(logits, c) / T)

Secara umum, hasil itu tidak sama dengan menerapkan soft capping pada logit yang sudah diskalakan temperature:

softmax(softcap(logits / T, c))

karena transformasi nonlinear dan pembagian tidak komutatif. Implementasi perlu mempertahankan urutan operasi yang ditentukan model, bukan memperlakukan cap sebagai opsi sampling yang dapat dipertukarkan.

Parameter cap menetapkan skala, bukan titik aktivasi keras

Parameter c mengendalikan batas output sekaligus skala saat pemampatan mulai terasa. Cap yang lebih besar mempertahankan interval lebih lebar dekat perilaku linear. Cap yang lebih kecil memampatkan logit moderat dengan lebih kuat.

Tidak ada satu nilai cap yang tersirat oleh transformasi itu sendiri. Nilai yang ringan bagi satu model dapat mengubah skor secara berarti pada model lain jika distribusi raw logit keduanya berbeda.

Karena itu, inspeksi raw logit berguna saat mereproduksi arsitektur. Diagnostik yang relevan mencakup distribusi abs(x) / c, fraksi nilai di dekat wilayah saturasi, serta perbedaan antara output softmax dengan dan tanpa cap. Pengukuran tersebut menghubungkan cap yang dikonfigurasi dengan nilai aktual yang dihasilkan model.

Layer attention dan output akhir juga tidak harus memakai cap yang sama. Logit keduanya memiliki fungsi berbeda dan dapat menempati rentang numerik berbeda. Menganggap satu cap sebagai konstanta global model dapat diam-diam mengubah perilaku ketika arsitektur menetapkan nilai terpisah.

Dukungan kernel dapat mengubah fidelitas arsitektur

Fused attention kernel sering menggabungkan komputasi skor, masking, softmax, dan agregasi value menjadi satu operasi teroptimasi. Transformasi khusus arsitektur di antara komputasi skor dan softmax mengharuskan kernel mengekspos atau menerapkan operasi tambahan tersebut.

Jika kernel yang dipilih tidak mendukung soft capping, menggantinya dengan jalur attention tanpa cap merupakan perubahan arsitektur, bukan sekadar pengaturan performa. Masalah yang sama berlaku pada format ekspor dan inference engine yang mengenali pola attention standar tetapi menghilangkan transformasi skor khusus model.

Pemeriksaan kompatibilitas karena itu perlu membandingkan operasi, bukan hanya shape tensor dan nama parameter. Berhasil memuat seluruh weight tidak membuktikan bahwa runtime mereproduksi komputasi model.

Untuk logit vocabulary akhir, implementasi biasanya lebih sederhana karena logit sudah dimaterialisasi sebelum sampling. Meski demikian, cap tetap harus diterapkan sebelum konversi probabilitas dan dengan presisi numerik yang dimaksud.

Saturasi dapat menyamarkan pertumbuhan raw logit

Output yang terbatas tidak berarti nilai sebelum cap juga terbatas. Setelah raw logit memasuki wilayah saturasi, input yang jauh lebih besar hanya dapat menghasilkan perubahan kecil setelah transformasi.

Hal ini penting untuk diagnostik. Memantau hanya logit setelah capping dapat membuat pertumbuhan raw score sulit terlihat. Selama pengembangan model, menyimpan statistik dari kedua sisi transformasi dapat membedakan distribusi capped yang stabil dari aktivasi sebelum cap yang makin ekstrem.

Perbedaan ini juga penting saat cap diubah atau dihapus. Model dengan raw logit yang secara rutin berada jauh di wilayah saturasi dapat bereaksi jauh lebih kuat dibanding model yang logitnya jarang mendekati skala cap.

Soft capping karena itu sebaiknya diperlakukan sebagai bagian dari computation graph model, bukan sebagai pelindung numerik kosmetik. Batas halusnya mengubah geometri skor secara terprediksi, dan besar perubahan tersebut bergantung pada posisi logit model relatif terhadap cap yang dikonfigurasi.