Fine-tuning model 350M untuk structured output yang lebih patuh
Oleh Zai · Let's Make It Easy
Dipublikasikan 2026-09-04
Structured output adalah kemampuan model untuk mengembalikan jawaban dalam format yang dapat diproses program, misalnya JSON atau YAML dengan field dan struktur yang sudah diten...
Structured output adalah kemampuan model untuk mengembalikan jawaban dalam format yang dapat diproses program, misalnya JSON atau YAML dengan field dan struktur yang sudah ditentukan. Di banyak aplikasi AI, kemampuan ini lebih penting daripada jawaban yang terdengar meyakinkan. Satu koma yang salah atau field yang hilang dapat membuat parser berhenti dan workflow berikutnya ikut gagal.
1. Apa yang diuji oleh IFStruct?
IFStruct adalah benchmark untuk menguji validitas output dan kepatuhan model terhadap schema. Guide Hugging Face menggunakan benchmark ini untuk mengevaluasi LFM2.5-350M, model kecil dari Liquid AI. Evaluasinya mencakup 2.000 sample dengan format JSON dan YAML, serta beberapa bentuk struktur tingkat atas.
Pada evaluasi awal yang ditulis di guide tersebut, model base melewati 452 dari 2.000 sample, atau 22,6%. Hasilnya berbeda menurut format: 18,0% untuk JSON dan 27,2% untuk YAML. Angka ini berasal dari eksperimen pada guide, bukan klaim bahwa semua penggunaan model akan menghasilkan skor yang sama.
2. Bagaimana fine-tuning dilakukan?
Hugging Face menggunakan Group Relative Policy Optimization (GRPO) melalui library TRL. Training recipe-nya dibuat kecil: sekitar 500 sample dan 100 training steps. Penulis menyebut notebook ini dapat dijalankan pada GPU gratis di Colab atau Kaggle, sementara evaluasi lokal memakai llama.cpp melalui endpoint yang kompatibel dengan OpenAI.
Pendekatan ini menarik karena targetnya jelas. Model tidak dilatih untuk menjadi lebih pintar dalam semua hal. Ia dilatih untuk lebih sering menghasilkan output yang valid dan sesuai bentuk yang diminta. Reward function dan evaluasi diarahkan ke perilaku tersebut.
3. Apa hasilnya dan apa batasnya?
Setelah fine-tuning, skor yang dilaporkan naik dari 22,6% menjadi 29,7% pada IFStruct. Kenaikan ini menunjukkan bahwa model 350M dapat memperoleh manfaat dari training yang spesifik terhadap tugas structured output. Namun, skor 29,7% juga berarti sebagian besar sample masih gagal. Model tersebut belum bisa dianggap selalu aman untuk pipeline produksi tanpa parsing, validation, dan retry policy.
Guide ini juga menegaskan bahwa recipe yang dibahas bukan training run yang sama dengan model RL pada artikel IFStruct. Tujuannya adalah menunjukkan bahwa fine-tuning task-specific pada model kecil dapat memperbaiki perilaku, bukan mereproduksi seluruh benchmark atau membuktikan model kecil selalu setara dengan model besar.
4. Apa yang bisa dicoba builder?
Mulai dari schema yang sempit dan dataset evaluasi yang bisa diulang. Ukur validitas parse, field yang hilang, jenis error, serta perubahan latency dan biaya. TRL menyediakan komponen training, sedangkan IFStruct memberi contoh cara menguji kepatuhan format. Untuk penggunaan nyata, tetap tambahkan JSON Schema validator di luar model.
Pelajaran praktisnya cukup jelas: sebelum mengganti model atau memperbesar prompt, pastikan kita punya eval yang mengukur kegagalan yang benar-benar mengganggu aplikasi. Fine-tuning kecil mungkin tidak menyelesaikan semua masalah, tetapi ia memberi cara yang lebih terarah untuk memperbaiki satu perilaku.
Referensi: https://huggingface.co/blog/grpo-with-trl-ifstruct