Figure 1. Ilustrasi penulis mengenai alur JSON biasa vs constrained decoding
(https://developers.openai.com/api/docs/guides/structured-outputs)

Pernahkah kamu meminta model bahasa besar menghasilkan format JSON, tetapi aplikasi mendadak mogok saat membacanya? Model kerap menyisipkan basa-basi sebelum kurung kurawal, melupakan tanda kutip, atau melewatkan koma sehingga fungsi pengurai melempar pesan galat. Keluaran teks yang tampak seperti JSON belum tentu valid. Rekayasa perangkat lunak modern menuntut kontrak data yang kaku. Kesalahan kecil pada satu atribut dapat menghentikan alur kerja otomatis di lingkungan produksi.

Apa Itu Structured Outputs?

Structured outputs adalah kapabilitas model bahasa besar untuk memastikan keluaran data mematuhi skema pengembang, seperti JSON Schema. Format keluaran akan mengikuti skema, kecuali jika respons terpotong batas token (max_tokens) atau ditolak demi alasan keamanan. Konsep generasi terpandu ini dipopulerkan oleh Brandon Willard dan Rémi Louf lewat pendekatan otomata pada proyek Outlines (Willard & Louf, 2023). Pada tahun 2024, OpenAI (2024) meresmikan fitur Structured Outputs bawaan pada antarmuka pemrograman mereka. Langkah ini diiringi Google AI (2024) yang menghadirkan dukungan serupa untuk subset JSON Schema pada ekosistem Gemini.

Bagaimana Constrained Decoding Bekerja?

Alih-alih membiarkan model menebak kata secara bebas, sistem menerapkan decoding berkendala (constrained decoding). Perbedaan alur JSON biasa dan constrained decoding tampak pada figure 1. Mekanisme ini membatasi pilihan token yang tersedia pada setiap langkah. Pembatasan tersebut tidak mengubah maksud pertanyaan pengguna, tetapi mengatur bentuk respons yang boleh dipilih. Aturan teknisnya berasal dari skema yang disiapkan pengembang. Proses ini mengendalikan distribusi probabilitas token melalui tiga tahap yang digambarkan pada figure 2:

  • Kompilasi Skema: Mengubah JSON Schema menjadi tata bahasa bebas konteks (context-free grammar atau CFG) untuk memetakan aturan struktur dokumen.
  • Penyaringan Token: Memeriksa status tata bahasa pada setiap langkah generasi. Token kosakata yang melanggar aturan skema disaring dan diberi probabilitas nol.
  • Sampling Terpandu: Model memilih token hanya dari kandidat yang sah, menjaga struktur keluaran tetap konsisten sesuai spesifikasi skema.
Figure 2. Ilustrasi penulis mengenai mekanisme penyaringan token berbasis tata bahasa pada constrained decoding
(https://developers.openai.com/api/docs/guides/structured-outputs)

Skenario Penggunaan di Dunia Nyata

Keandalan struktur data membuka integrasi sistem berskala besar. Penerapan utamanya mencakup eksekusi pemanggilan fungsi otomatis pada agen kecerdasan buatan. Agen dapat memanggil API pihak ketiga dengan mengurangi risiko hilangnya parameter penting yang berpotensi mengganggu transaksi. Bidang lain meliputi ekstraksi data dokumen ke basis data serta pembentukan antarmuka dinamis. Evaluasi resmi OpenAI menunjukkan bahwa penerapan kendala skema meningkatkan kepatuhan model terhadap struktur data kompleks dibandingkan instruksi teks biasa.

Dari sisi performa, penelitian Dong dkk. (2024) melalui mesin XGrammar menunjukkan bahwa kompilasi tata bahasa yang efisien mampu mempercepat penyaringan token hingga 3 kali lipat pada pengujian skema JSON. Inovasi ini diadopsi penyedia infrastruktur inferensi seperti vLLM Team (2024) untuk mempercepat generasi terstruktur pada sistem berskala besar. Dampaknya dapat berbeda menurut skema, model, dan beban yang diuji. Karena itu, pengembang tetap perlu mengukur kinerja pada alur kerja sendiri.

Perbandingan Metode Output Model

Aspek JSON Mode Standar Structured Outputs
Jaminan Sintaksis Format JSON valid secara sintaksis Format JSON valid dan patuh skema
Penegakan Kunci Tidak membatasi kelengkapan atribut Mengikuti definisi atribut wajib skema
Tipe Data Nilai Mengikuti probabilitas tanpa batas tipe Dibatasi sesuai tipe data skema
Mekanisme Kerja Rekayasa instruksi dan kendala sintaks Pemfilteran logits berbasis tata bahasa (CFG)
Kebutuhan Validasi Perlu validasi struktur tambahan di kode Struktur tervalidasi langsung saat generasi
Kesiapan Integrasi Sesuai untuk eksplorasi dan format fleksibel Lebih mudah diproses aplikasi hilir

Kelebihan dan Keterbatasan

Manfaat terbesar structured outputs terletak pada kepastian format data dan efisiensi biaya karena berkurangnya perulangan panggilan API akibat format rusak. Namun, kompilasi skema membutuhkan beban komputasi di awal sebelum token pertama dikirim, dan model dipaksa mengisi nilai meskipun data tidak ditemukan pada konteks. Format valid bukan bukti bahwa isi jawaban benar. Pengembang tetap perlu menangani penolakan, respons terpotong, dan nilai yang tidak tersedia. Karena itu, validitas struktur perlu dilengkapi pemeriksaan logika sesuai konteks aplikasi.

Kesimpulan

Structured outputs mengubah model bahasa dari generator teks percakapan menjadi komponen komputasi yang andal. Ke depan, pemisahan antara penalaran kecerdasan buatan dan ketegasan kontrak data akan menjadi standar baku rekayasa perangkat lunak. Memanfaatkan validasi skema sejak awal adalah langkah nyata membangun sistem otomasi yang tangguh di dunia nyata. Tim tetap perlu menentukan respons yang aman ketika model menolak permintaan atau gagal melengkapi keluaran. Dengan begitu, aplikasi dapat menangani data terstruktur tanpa menganggap format yang rapi sebagai jaminan kebenaran.

Penulis: Emmanuel Daniel Widhiarto, S.Kom – FDP Scholar

Referensi

Dong, Y., Ruan, C. F., Cai, Y., Lai, R., Xu, Z., Zhao, Y., & Chen, T. (2024). XGrammar: Flexible and Efficient Structured Generation Engine for Large Language Models. https://arxiv.org/abs/2411.15100

Google AI. (2024). Structured Outputs with Gemini API. https://ai.google.dev/gemini-api/docs/structured-output

OpenAI. (2024). Structured Outputs Guide. https://developers.openai.com/api/docs/guides/structured-outputs

vLLM Team. (2024). Structured Outputs in vLLM. https://docs.vllm.ai/en/latest/features/structured_outputs/

Willard, B. T., & Louf, R. (2023). Efficient Guided Generation for Large Language Models. https://arxiv.org/abs/2307.09702