Evaluasi Text-to-SQL Sejajar Manusia

Mar 20 2023
Dalam posting terakhir saya tentang Text-to-SQL menggunakan GPT-3.5, saya menunjukkan masalah dengan metrik evaluasi tolok ukur yang ada: ia menolak kueri SQL yang sangat bagus karena tidak memiliki hasil eksekusi ketat yang sama dengan emas (alias.

Dalam posting terakhir saya tentang Text-to-SQL menggunakan GPT-3.5, saya menunjukkan masalah dengan metrik evaluasi tolok ukur yang ada: ini menolak kueri SQL yang sangat halus karena tidak memiliki hasil eksekusi ketat yang sama dengan kueri emas (alias berlabel). Dalam posting ini, saya membahas metrik baru yang saya buat untuk mengevaluasi kinerja Text-to-SQL dengan lebih baik.

Ini adalah contoh dari posting terakhir saya:

-- (Hard) 
-- Question: Which grade has the most high schoolers?
-- pred:
SELECT grade, COUNT(*) AS num_highschoolers
FROM Highschooler
GROUP BY grade
ORDER BY num_highschoolers DESC
LIMIT 1;
-- gold:
SELECT grade
FROM Highschooler
GROUP BY grade
ORDER BY count(*) DESC
LIMIT 1;

Untuk merangkum angka dari posting terakhir saya: Saya menguji GPT-3.5 pada 96 pertanyaan dari benchmark Spider (86 dari set pelatihan dan 10 dari set pengembangan) dan menemukan bahwa skornya adalah 41,7% dalam akurasi eksekusi dan 38,5% dalam pencocokan persis. ketepatan. Namun, setelah menganalisis kasus kesalahan lebih lanjut, menjadi jelas bagi saya bahwa sebagian besar kueri yang dihasilkan oleh GPT-3.5 sebenarnya baik-baik saja dari sudut pandang manusia. Ini menyoroti masalah dengan metrik evaluasi kami yang ada untuk Text-to-SQL, karena tidak mengukur preferensi manusia secara akurat.

Masalah mis-alignment antara metrik evaluasi patokan dan preferensi manusia yang sebenarnya ini terkenal di komunitas riset. Misalnya, dalam tolok ukur peringkasan dokumen, metrik evaluasi standarnya adalah ROUGE , yang didasarkan pada penghitungan frasa kata yang tumpang tindih antara ringkasan yang dihasilkan dan ringkasan emas. Pendekatan ini gagal mendeteksi ringkasan yang benar yang ditulis dalam istilah dan frasa yang berbeda dari ringkasan emas. Meskipun demikian, skor ROUGE masih digunakan oleh makalah terbaru.

Evaluasi manusia tetap menjadi standar emas dalam penelitian ML, dan metrik otomatis adalah "pengujian unit" untuk model baru. Apakah mungkin untuk memiliki sesuatu di antaranya, seperti "lingkungan pementasan" untuk model-model baru?

GPT-3.5 untuk Evaluasi

GPT-3.5 telah disetel dengan baik agar sesuai dengan preferensi manusia , membuatnya jauh lebih baik dalam mengikuti instruksi daripada GPT-3, yang membutuhkan rekayasa cepat yang cermat untuk bekerja secara efektif. Ini membuat saya berpikir: dapatkah kita memanfaatkan GPT-3.5 untuk membuat metrik evaluasi untuk Text-to-SQL yang selaras dengan preferensi manusia? Mari kita uraikan langkah demi langkah:

Pertama, kita perlu mempertimbangkan kemampuan GPT-3.5:

  • Itu dapat mengubah data terstruktur menjadi teks, dan sebaliknya.
  • Itu dapat bernalar berdasarkan fakta yang diberikan langsung dalam konteks cepat.
  • Pertanyaan masukan dalam teks bahasa alami.
  • Menghasilkan kueri SQL.
  • Menjalankan kueri SQL dan mendapatkan data terstruktur (yaitu, baris).

Diagram di bawah mengilustrasikan desain ini:

Evaluasi Text-to-SQL menggunakan GPT-3.5. Petunjuk sebenarnya dapat ditemukan dalam skrip ini.

Dengan menggunakan GPT-3.5 dengan cara ini, kita dapat membuat metrik evaluasi untuk Text-to-SQL yang lebih selaras dengan preferensi manusia.

Hasil Eksperimen

Saya memperluas evaluasi benchmark Spider dengan metrik baru ini, yang saya beri nama Answer Accuracy , sebagai bagian dari proyek sumber terbuka LlamaIndex . Kode yang saya gunakan dapat ditemukan di sini .

Dengan menggunakan metrik baru ini, saya mengevaluasi kueri SQL yang dihasilkan dari 96 pertanyaan yang sama. Akurasi jawaban keseluruhan untuk GPT-3.5 text-davinci-003adalah 88,54% yang mengesankan. Faktanya, setelah meninjau kasus kesalahan yang tercantum dalam posting blog terakhir saya, saya menemukan bahwa kasus yang saya tunjukkan benar memang ditandai seperti itu, dan satu kasus kesalahan yang benar ditangkap dengan benar

Untuk lebih memvalidasi metrik baru ini, saya mengujinya pada output dari model GPT lainnya, termasuk GPT-4. Berikut adalah plot akurasi jawaban mereka:

Jawab keakuratan model GPT (zero-shot) pada 96 pertanyaan dari Spider benchmark

Akurasi jawaban yang dihasilkan adalah sebagai berikut: code-davinci-002sebesar 79,17%, text-davinci-003sebesar 88,54%, gpt-3.5-turbosebesar 85,42%, dan gpt-4sebesar 89,58%. Seperti yang diharapkan, GPT-4 mengungguli model lain, yang selaras dengan pengalaman praktis kami tentang kinerja relatif model ini.

Sebaliknya, akurasi eksekusi dan akurasi kecocokan model GPT tidak sejalan dengan pengalaman praktis kami. Berikut adalah plot yang menunjukkan metrik yang digunakan pada model GPT.

Eksekusi dan akurasi pencocokan persis model GPT pada 96 pertanyaan yang diambil sampelnya dari benchmark Spider

Jika kami menggunakan metrik ini sebagai pengukuran utama kinerja Text-to-SQL, menurut kami gpt-4kurang kuat dibandingkan code-davinci-002. Hasil ini jelas tidak sesuai dengan pengalaman praktis kami dengan model ini.

Implikasi Kunci

Apa implikasi utama dari percobaan Text-to-SQL ini?

Pertama, kami menemukan bahwa metrik otomatis yang ada, yaitu akurasi eksekusi dan akurasi pencocokan tepat, tidak selaras dengan preferensi manusia. Akibatnya, mereka tidak boleh diandalkan sebagai cara utama untuk mengevaluasi model Text-to-SQL.

Kedua, sementara evaluasi manusia tetap menjadi standar emas, model bahasa besar (LLM) seperti GPT-3.5 dan di atasnya dapat secara akurat memperkirakan preferensi manusia. Ini adalah pengubah permainan yang potensial, karena memungkinkan kami untuk mengevaluasi model Text-to-SQL dan memperkirakan hasil evaluasi manusia yang diharapkan. Ini sangat berguna ketika evaluasi manusia tidak memungkinkan karena keterbatasan anggaran.

Ketiga, dan di sinilah hal-hal menjadi menarik, penggunaan LLM yang disesuaikan dengan instruksi untuk evaluasi dapat digeneralisasikan ke banyak tugas lainnya. Pendekatan ini sangat berguna untuk tugas-tugas yang keluarannya terdiri dari pernyataan sederhana yang dapat langsung beralasan oleh LLM. Dan ada makalah penelitian tentang topik ini yang disebut "GPTScore", yang melatih GPT-3.5 untuk mengevaluasi tugas NLP menggunakan pembelajaran dalam konteks.

Catatan

Posting ini dimaksudkan untuk memprovokasi percakapan tentang evaluasi Text-to-SQL, bukan untuk mengklaim metrik akurasi jawaban 100% selaras dengan manusia atau bahkan kuat. Saya senang bekerja sama jika Anda ingin melangkah lebih jauh menuju evaluasi yang lebih baik.