11 poin oleh GN⁺ 2024-08-07 | 2 komentar | Bagikan ke WhatsApp
  • 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

 
bluejoyq 2024-08-08

Fitur yang menarik.

 
GN⁺ 2024-08-07
Komentar Hacker News
  • Membangun UI dinamis dan kode menggunakan GPT-4o

    • Berjalan stabil dengan menggunakan mode JSON
    • Di GPT-4o-mini, ini akan membantu mengatasi masalah format
    • Dalam mode pemanggilan fungsi, tingkat keberhasilannya lebih rendah dibanding mode JSON
    • Sangat menantikan fitur ini
  • Perubahan utama di gpt-4o-2024-08-06

    • Token output meningkat dari 4k menjadi 16k
    • Biaya input turun 50%, biaya output turun 33%
    • Ini adalah perubahan penting bagi pengguna API
  • Pengalaman menggunakan Outlines Structured Output di vLLM

    • Menawarkan fitur yang lebih maju daripada Structured Output milik OpenAI
    • Dukungan tipe field terbatas
      • OpenAI hanya mendukung tipe dasar seperti String, Number, Boolean, dll.
      • Outlines dapat mendefinisikan pola regular expression
    • Biaya konfigurasi skema dan latensi yang tinggi
      • vLLM dan Outlines hampir tidak memerlukan biaya
      • OpenAI membutuhkan waktu untuk menghasilkan tata bahasa tanpa konteks
    • Ini adalah awal yang baik sebagai langkah pertama OpenAI, tetapi masih perlu berkembang lebih jauh
  • Pendapat tentang performa AI

    • Menentukan format output untuk AI adalah cara lama dalam menyelesaikan masalah
    • Kemampuan pemrosesan bahasa alami dan pemecahan masalah telah berkembang secara luar biasa
    • Namun, hasil ini membutuhkan komputasi yang sangat besar
  • Pendapat tentang pendekatan OpenAI

    • Meninggalkan pendekatan fine-tuning untuk structured output
    • llama.cpp sudah mengimplementasikan fitur ini sejak 1,5 tahun lalu
  • Kebingungan tentang opsi "strict: true"

    • Karena ini selalu merupakan perilaku yang diinginkan, seharusnya menjadi nilai default
    • Mempelajari teknik decoding terbatas
      • Dapat meningkatkan keandalan dan mengurangi latensi
  • Pendapat bahwa melakukan hardcode JSON ke dalam model bertentangan dengan arah tujuan AGI

  • Kekhawatiran tentang efek lock-in saat menggunakan fitur OpenAI

    • Tidak bisa dengan mudah berpindah ke LLM lain
    • Disarankan hanya digunakan saat prompt teks saja tidak cukup
  • Catatan tentang kesalahan format JSON

    • {“val{“:2} adalah JSON yang valid
  • Pertanyaan mengapa level teratas harus berupa objek

    • Merepotkan karena array harus dibungkus dalam objek