Kode Ratchet yang Memanfaatkan IFEval Gambar: dihasilkan AI

Jika LLM Anda mengikuti instruksi dengan baik tapi hasilnya berantakan, jika Anda ingin memanfaatkan bias sanjungan alih-alih menghilangkannya, jika Anda ingin menghasilkan kode yang benar dengan model lokal 4.5B — kombinasi IFEval dan ratchet adalah jawabannya.

Model Paling Penjilat Paling Patuh


Kelemahan Terbesar Menjadi Aset Terbesar

Bias sanjungan (sycophancy) LLM adalah masalah yang ingin diperbaiki industri AI. Ketika pengguna bertanya “Yakin?”, model mengubah jawaban yang benar menjadi salah. Rata-rata tingkat penyerahan di model frontier adalah 58%. Begitu sanjungan dimulai, ia bertahan sepanjang percakapan dengan probabilitas 78,5%.

Tapi apa yang terjadi jika kelemahan ini dibalik?

Esensi bias sanjungan adalah mengikuti instruksi (Instruction Following). Model yang dilatih dengan RLHF dioptimalkan untuk mematuhi umpan balik pengguna (Ouyang et al., 2022). Benchmark IFEval mengukur tepat hal ini – “Apakah ia melakukan apa yang diperintahkan?” (Zhou et al., 2023)

Masalah muncul ketika pengguna memberikan opini. “Ini benar?” -> “Ya, benar” (sanjungan). “Yakin?” -> “Oh, saya salah” (penyerahan).

Tapi ketika pengguna memberikan fakta deterministik, sesuatu yang berbeda terjadi.


Beri Opini, Dapat Sanjungan. Beri Fakta, Dapat Perbaikan

Dalam eksperimen pengurutan 1.000 kata, hanya gaya umpan balik yang divariasikan untuk output yang sama:

Umpan BalikSifatHasil
“Yakin?”OpiniMembalik jawaban benar – akurasi turun 27pp
“Ada error”Fakta samarKoreksi berlebihan – dari 6 memburuk jadi 10
“Ada 23 error”Fakta kuantitatifMembaik jadi 1 error
“6 error, ini lokasinya”Fakta tepat0 error – 100% tercapai

Beri opini, dan bias sanjungan aktif. Beri fakta, dan tidak ada yang bisa disanjung – angka dan posisi bukan emosi.

Bias sanjungan adalah kesetiaan yang salah arah. Ubah arahnya – fakta menggantikan opini, hasil verifikasi menggantikan pujian – dan kesetiaan itu menjadi mesin yang mendorong akurasi.


Bukti: Model 4.5B Menerima Umpan Balik

Ini bukan teori. Dikonfirmasi dalam eksperimen menggunakan yongol validate.

Desain eksperimen:

  • Target: satu endpoint Login backend SaaS
  • Tugas: menulis 9 file SSOT (DDL, OpenAPI, Rego, SSaC, dll.)
  • Metrik: jumlah error pada generasi awal (R1) -> jumlah error setelah umpan balik (R2)

Hanya Umpan Balik, Tanpa Contoh

ModelError R1Error R2Hasil
Grok 4.311Tidak bisa memperbaiki
Gemini 2.5 Flash11Tidak bisa memperbaiki
Lokal 20B11Tidak bisa memperbaiki

Gagal total. Model tampak menerima umpan balik, tapi sebenarnya tidak tahu apa yang harus ditulis.

Contoh + Umpan Balik Bersamaan

ModelError R1Error R2Hasil
Grok 4.30Lolos percobaan pertama
Gemini 2.5 Flash10Diperbaiki dengan 1 ronde umpan balik
Gemma4 4.5B (lokal)Error0Diperbaiki dengan 1 ronde umpan balik
Qwen3 8B (lokal)Error0Diperbaiki dengan 1 ronde umpan balik

Bahkan model lokal 4.5B memperbaiki diri dengan kombinasi contoh + umpan balik deterministik.

Temuan Kunci: Hambatan Bukan Kecerdasan, Melainkan Konteks

Diagnosis yang tepat bukan “tidak bisa menerima umpan balik” tapi “tidak tahu apa yang harus ditulis”. SSaC adalah tata bahasa khusus yongol yang tidak ada dalam data pretraining. Menambahkan 3 baris contoh ke prompt menghasilkan 0 error dari Grok, 0 error dari Gemini setelah 1 ronde umpan balik, dan model lokal 4.5B juga lolos.

Semakin tinggi skor model di IFEval – yaitu, semakin baik dalam menyanjung – semakin mudah menerima umpan balik deterministik.


Kode Ratchet: Metode Pembuatan Kode yang Memanfaatkan Bias Sanjungan

Ubah penemuan ini menjadi sistem dan Anda mendapatkan kode ratchet.

┌────────────────────────────────────────────────┐
│  LLM: Hasilkan kode (probabilistik, penjilat) │
│       ↓                                        │
│  Validator: Verifikasi deterministik           │
│       ↓                                        │
│  Error? → Error + contoh ke LLM               │
│       ↓                                        │
│  LLM: "Ya, saya perbaiki" (sanjungan =        │
│        penerimaan)                             │
│       ↓                                        │
│  Validator: Verifikasi lagi                    │
│       ↓                                        │
│  Lolos? → Ratchet terkunci. File berikutnya.   │
└────────────────────────────────────────────────┘

Bias sanjungan menjadi kekuatan yang menutup loop. Loop konvergen karena LLM tidak melawan dengan “Tidak, saya benar” tapi mematuhi dengan “Ya, saya perbaiki”. Pendekatan memperbaiki kode LLM secara iteratif dengan umpan balik compiler dan tes juga ditunjukkan dalam Self-Debug (Chen et al., 2024) menyelesaikan debugging dalam 3 giliran – kode ratchet melangkah lebih jauh dengan menghilangkan sepenuhnya penilaian mandiri LLM dan hanya menyisakan fakta deterministik.

Tiga Syarat Konvergensi

  1. Umpan balik harus berupa fakta deterministik. Bukan “ini terlihat aneh” tapi “line 41: field name mismatch, expected ‘user_id’, got ‘userId’”. Umpan balik yang tidak menyisakan ruang untuk sanjungan.

  2. Contoh harus ada dalam konteks. Umpan balik saja tidak cukup. Model membutuhkan contoh yang menunjukkan “kode harus terlihat seperti ini” untuk mengorientasi diri. Ini masalah konteks, bukan kecerdasan.

  3. Begitu verifikasi lolos, tidak bisa dibalik. Gigi ratchet. File yang lolos terkunci, dan proses berlanjut ke file berikutnya. Bukan agen yang menyatakan “saya sudah selesai” – tapi validator yang memutuskan “file ini lolos”.


Mengapa Model Frontier Tidak Diperlukan

Dalam arsitektur ini, peran model bukan penilaian kreatif tapi eksekusi instruksi.

95% backend SaaS adalah CRUD + autentikasi + otorisasi + state machine. Algoritma baru jarang diperlukan. Jika spesifikasi SSOT sudah mendefinisikan “apa yang harus dibangun”, model hanya mengisi bagian yang kosong.

Biaya terukur:

ModelLingkungan1 endpoint LoginEstimasi untuk 200 endpoint
Gemma4 4.5BLokal (16GB VRAM)Gratis, ~1 detikGratis, ~3 menit
Gemini 2.5 FlashAPI (tier gratis)Gratis, ~10 detikGratis, ~30 menit
Grok 4.3API ($1.25/M)~$0.05~$10

Model lokal 4.5B bisa menghasilkan backend 200 endpoint dalam 3 menit dengan biaya $0. Model frontier tidak diperlukan. Model kecil yang pandai menyanjung sudah cukup.


Bias Sanjungan Bukan Bug

Industri AI mencoba memperbaiki bias sanjungan. Kami memanfaatkannya.

PerspektifPeran Bias Sanjungan
Antarmuka chatKelemahan – setuju dengan informasi salah
LLM-as-JudgeFatal – 36% lolos palsu
Kode ratchetAset – menjamin tingkat penerimaan umpan balik

Perbedaannya adalah sifat umpan balik. Beri opini dan sanjungan menjadi racun; beri fakta dan sanjungan menjadi obat.

Validator deterministik + LLM penjilat = loop pembuatan kode dengan konvergensi terjamin.

Jangan ganti modelnya. Ganti umpan baliknya.


Reins: Harness dengan Tali Kekang

Tiga syarat ini – umpan balik deterministik, konteks contoh, dan penguncian ratchet – digabungkan menjadi satu sistem kontrol yang kami sebut Reins.

Apa yang disebut “harness” hari ini sebenarnya pagar. Hanya mencegah agen keluar, tapi tidak menjamin sampai tujuan. Reins adalah tali kekang. Menentukan arah, mengoreksi dengan fakta, dan mengunci saat lolos. Harness tanpa tali kekang hanya pagar.


Referensi

  • Zhou, J., Lu, T., Mishra, S., Brahma, S., Basu, S., Luan, Y., Zhou, D., & Hou, L. (2023). “Instruction-Following Evaluation for Large Language Models.” arXiv:2311.07911
  • Ouyang, L., Wu, J., Jiang, X., et al. (2022). “Training Language Models to Follow Instructions with Human Feedback.” NeurIPS 2022. arXiv:2203.02155
  • Chen, X., Lin, M., Scharli, N., & Zhou, D. (2024). “Teaching Large Language Models to Self-Debug.” ICLR 2024. arXiv:2304.05128
  • Sharma, M., Tong, M., Korbak, T., et al. (2024). “Towards Understanding Sycophancy in Language Models.” ICLR 2024. arXiv:2310.13548
  • Fanous, A., Goldberg, J., Agarwal, A., et al. (2025). “SycEval: Evaluating LLM Sycophancy.” AAAI/ACM AIES 2025. arXiv:2502.08177
  • Shapira, I., Benade, G., & Procaccia, A. D. (2026). “How RLHF Amplifies Sycophancy.” arXiv:2602.01002
  • Ibrahim, L., Hafner, F. S., & Rocher, L. (2026). “Training Language Models to Be Warm Can Reduce Accuracy and Increase Sycophancy.” Nature, 652, 1159-1165

Changelog

  • 2026-05-20: Rilis awal