Penalti repetisi mengubah distribusi next-token tanpa mengubah parameter model atau komputasi hidden state. Model tetap menghasilkan logit dari konteks saat ini, tetapi decoder mengubah skor tertentu berdasarkan token yang sudah muncul. Sampling kemudian bekerja pada skor hasil perubahan tersebut, bukan langsung pada output model.
Pemisahan ini relevan saat mereproduksi perilaku generation. Dua sistem dapat menjalankan bobot model dan token ID yang identik tetapi menghasilkan continuation berbeda karena rumus penalti, cakupan riwayat token, atau posisi aturan itu dalam pipeline decoding tidak sama.
Penalti berada di antara output model dan sampling
Misalkan model menghasilkan logit z_i untuk token i. Decoder dapat mengubah nilai itu menjadi z'_i ketika token i terdapat dalam riwayat yang diperiksa oleh penalti. Softmax, top-k, top-p, atau aturan pemilihan lain kemudian menerima z'.
Model tidak menghasilkan z'_i. Model menghasilkan z_i; kebijakan decoding melakukan transformasi setelahnya. Karena itu, kontrol repetisi merupakan kebijakan inference-time, bukan sifat probabilitas intrinsik model.
Pipeline generik dapat ditulis sebagai:
context -> model -> logits -> repetition transform -> filtering -> samplingUrutan score processor dapat berbeda antarimplementasi. Jika processor lain bersifat nonlinear atau menghapus kandidat, perubahan urutan dapat mengubah candidate set akhir. Reproduksi serving stack karena itu memerlukan urutan processor yang benar-benar digunakan, bukan hanya nama parameter yang sama.
Aturan multiplikatif memerlukan perlakuan berdasarkan tanda
Salah satu bentuk repetition penalty memakai faktor positif p, umumnya dengan p > 1 saat repetisi hendak ditekan. Untuk token yang sudah ada dalam riwayat terkait, transformasinya dapat ditulis sebagai:
if z_i > 0:
z'_i = z_i / p
else:
z'_i = z_i * pCabang berdasarkan tanda memiliki konsekuensi langsung. Membagi semua logit dengan p akan menggeser logit negatif mendekati nol, yang justru dapat menaikkan probabilitas relatifnya. Mengalikan nilai negatif dengan p membuatnya lebih negatif, sedangkan pembagian nilai positif menurunkannya. Saat p > 1, kedua cabang menurunkan skor token yang terkena penalti relatif terhadap referensi nol yang tidak berubah.
Transformasi ini tidak ekuivalen dengan mengurangi konstanta tetap. Besar perubahan absolut bergantung pada magnitudo dan tanda logit awal. Token dengan logit 8 mengalami perubahan absolut lebih besar daripada token dengan logit 0.5 untuk faktor yang sama.
Rumus tepatnya tetap bergantung pada implementasi. Parameter bernama repetition_penalty saja tidak menetapkan perlakuan tanda, cakupan riwayat, atau interaksi dengan processor lain.
Keberadaan dan frekuensi token adalah sinyal berbeda
Aturan repetisi berbasis presence dapat hanya memeriksa apakah sebuah token pernah muncul. Setelah token tercatat, kemunculan lima kali lagi tidak harus memperbesar transformasi. Aturan berbasis frequency dapat mengubah penyesuaian sesuai jumlah kemunculan sebelumnya.
Kedua kebijakan menyimpan state yang berbeda. Presence memerlukan uji keanggotaan pada riwayat yang dipilih. Frequency memerlukan hitungan. Penalti multiplikatif berbasis keanggotaan juga berbeda dari penyesuaian frekuensi aditif walaupun keduanya dapat menurunkan probabilitas token berulang pada contoh tertentu.
Perbedaannya terlihat ketika continuation memang perlu mengulang sintaks atau identifier. Jika token muncul sekali di prompt lalu berkali-kali pada output, kebijakan berbasis presence dapat memperlakukan kondisi tersebut sama ketika cakupan riwayat mencakup kedua bagian. Kebijakan berbasis hitungan dapat menghasilkan penyesuaian yang makin besar.
Identitas token menentukan granularitas
Repetition processor biasanya bekerja pada token ID, bukan konsep semantik atau kata yang sudah dirender. Satu kata yang terlihat utuh dapat menjadi satu token pada konteks tertentu dan beberapa token pada konteks lain. Whitespace, tanda baca, kapitalisasi, serta vocabulary tokenizer juga dapat menghasilkan ID berbeda untuk teks yang tampak sangat berkaitan bagi manusia.
Karena itu, penalti pada tingkat token tidak secara langsung berarti “hindari pengulangan kata ini.” Artinya, identitas token tertentu menerima transformasi skor ketika memenuhi aturan riwayat processor.
Batas ini sangat relevan untuk kode, data terstruktur, dan nama. Delimiter, token indentasi, field name, atau fragmen subword yang memang harus berulang tetap dapat terkena penalti. Decoder tidak memiliki pengecualian semantik kecuali implementasinya menambahkan aturan khusus.
Jendela riwayat mengubah kebijakan efektif
Processor harus menentukan token sebelumnya yang dianggap sebagai riwayat. Sebagian sistem dapat memeriksa seluruh sequence yang tersedia; sistem lain dapat membatasi pemeriksaan pada token hasil generation atau region terbaru dengan ukuran tertentu. Pilihan tersebut menghasilkan vektor skor berbeda dari logit model saat ini yang sama.
Region terbatas juga membuat kebijakan berubah seiring posisi: setelah token lama keluar dari region yang diperiksa, token itu dapat berhenti menerima penyesuaian repetisi walaupun masih berada dalam konteks model. Sebaliknya, kebijakan yang mencakup prompt dapat memberi penalti pada token sebelum model menghasilkan token tersebut satu kali pun.
Visibilitas konteks dan visibilitas penalti dengan demikian merupakan dua konsep terpisah. Sebuah token dapat tetap dapat diakses oleh attention tetapi berada di luar region yang diperiksa repetition processor, atau dapat masuk ke keduanya.
Penalti mengubah odds tanpa menjamin output baru
Menurunkan skor token yang berulang tidak menjamin token lain akan dipilih. Token tersebut masih dapat memiliki skor tertinggi setelah transformasi, terutama jika margin awalnya besar. Sampling juga masih dapat memilihnya dengan probabilitas bukan nol selama token itu tetap berada dalam candidate set.
Efek akhirnya bergantung pada seluruh vektor skor setelah transformasi dan operasi decoding berikutnya. Temperature scaling mengubah selisih skor; top-k dan top-p dapat mengubah keanggotaan candidate set; pemilihan deterministik dapat mengambil skor maksimum yang tersisa. Faktor repetisi tidak dapat ditafsirkan terpisah dari pipeline tersebut.
Dengan alasan yang sama, menaikkan faktor tidak memberi jaminan semantik umum terhadap pengulangan frasa. Mekanismenya bekerja pada skor token, sedangkan repetisi frasa muncul dari rangkaian pemilihan token dan state model yang dibentuk token sebelumnya.
Kompatibilitas serving memerlukan semantik processor
Generation API sering menampilkan parameter decoding yang ringkas, tetapi kompatibilitas memerlukan lebih dari nilai numerik yang sama. Implementasi serving harus selaras pada rumus penalti, perlakuan tanda, region token yang diperiksa, aturan penghitungan token, urutan processor, dan token ID dari tokenizer.
Detail tersebut berada di luar checkpoint model kecuali format serving secara eksplisit merekamnya. Checkpoint yang identik karena itu dapat menghasilkan generation berbeda pada dua deployment ketika state decoder dipelihara dengan aturan berbeda.
Batas mekanismenya spesifik: penalti repetisi mengubah skor token pada inference-time menggunakan identitas atau hitungan token sebelumnya. Mekanisme ini dapat menggeser generation menjauh dari token yang sudah terlihat, tetapi tidak mengubah logit pada sumbernya, tidak menghapus token dari konteks, dan tidak menetapkan larangan semantik terhadap teks berulang. Klaim reproduksibilitas yang tidak menyertakan aturan processor masih menyisakan sebagian fungsi decoding yang belum ditentukan.