- Memperkenalkan "Structured Outputs" ke API
- Fitur baru yang membuat output model cocok secara tepat dengan skema JSON yang disediakan pengembang
- Tahun lalu di DevDay, OpenAI memperkenalkan mode JSON, tetapi itu tidak menjamin respons yang sesuai dengan skema tertentu
- Output terstruktur membatasi output model agar sesuai dengan skema yang diberikan pengembang, dan melatih model agar lebih baik memahami skema yang kompleks
- Mengapa output terstruktur dibutuhkan
- Menghasilkan data terstruktur dari input tidak terstruktur adalah salah satu use case inti AI
- Dengan OpenAI API, berbagai tugas seperti pencarian data, tanya jawab, ekstraksi data, dan pembangunan alur kerja multi-langkah dapat dilakukan
- Sebelumnya, diperlukan upaya seperti memakai alat open source, prompt, dan retry untuk menyesuaikan output model ke format yang dapat dioperasikan bersama sistem
- Output terstruktur menyelesaikan masalah ini dengan membatasi output model agar sesuai dengan skema yang diberikan pengembang
- Evaluasi performa
- Dalam evaluasi yang mengikuti skema JSON kompleks, model gpt-4o-2024-08-06 mencatat skor 100%
- Model gpt-4-0613 mencatat skor di bawah 40%
- Cara menggunakan output terstruktur
- Output terstruktur melalui function calling: atur
strict: true di dalam definisi fungsi
- Tersedia pada model yang mendukung semua tools
- Output terstruktur yang aman
- Mematuhi kebijakan keamanan OpenAI yang sudah ada
- Model dapat menolak permintaan yang tidak aman
- Respons API menyertakan nilai string penolakan sehingga dapat dideteksi secara terprogram apakah model menghasilkan penolakan
- Dukungan SDK native
- SDK Python dan Node mendukung output terstruktur secara native
- Menyediakan objek Pydantic atau Zod untuk dikonversi menjadi skema JSON, lalu secara otomatis melakukan serialisasi dan parsing respons JSON
- Keterbatasan
- Hanya sebagian dari skema JSON yang didukung
- Ada latensi tambahan pada respons API pertama dengan skema baru
- Model dapat menolak permintaan yang tidak aman
- Tidak kompatibel dengan parallel function calling
- Output terstruktur tidak termasuk dalam Zero Data Retention (ZDR)
- Ketersediaan
- Output terstruktur telah tersedia secara umum di API
- Output terstruktur melalui function calling dapat digunakan pada semua model yang mendukung function calling
- Opsi format respons tersedia pada model-model terbaru
Ringkasan GN⁺
- Fitur baru OpenAI, output terstruktur, memungkinkan output model cocok secara tepat dengan skema JSON
- Pengembang dapat menggunakannya untuk menjalankan berbagai tugas seperti pencarian data, tanya jawab, dan ekstraksi data dengan lebih andal
- Dukungan native di SDK Python dan Node mempermudah pengembangan
- Ada berbagai use case tambahan, seperti mengekstrak data terstruktur dari data tidak terstruktur
- Menggunakan teknik constrained decoding untuk membatasi output model dan memastikan hanya JSON yang valid yang dihasilkan
2 komentar
Fitur yang menarik.
Komentar Hacker News
Membangun UI dinamis dan kode menggunakan GPT-4o
Perubahan utama di gpt-4o-2024-08-06
Pengalaman menggunakan Outlines Structured Output di vLLM
Pendapat tentang performa AI
Pendapat tentang pendekatan OpenAI
Kebingungan tentang opsi
"strict: true"Pendapat bahwa melakukan hardcode JSON ke dalam model bertentangan dengan arah tujuan AGI
Kekhawatiran tentang efek lock-in saat menggunakan fitur OpenAI
Catatan tentang kesalahan format JSON
Pertanyaan mengapa level teratas harus berupa objek