Playbook

Cara memilih reranker tanpa harness benchmark

Anda tidak memerlukan leaderboard publik untuk memilih reranker. Anda memerlukan kueri dengan pasase yang benar diketahui, cara untuk mengukur posisi, dan disiplin untuk memasukkan kueri yang tidak dapat dijawab.

Apa yang diubah oleh reranker

Sebuah retriever tahap pertama dioptimalkan untuk menjadi cepat atas sebuah set kandidat yang besar, yang berarti itu memperkirakan relevansi. Sebuah reranker membaca query dan passage bersama-sama dan memberi skor yang tepat, atas sebuah set yang jauh lebih kecil. Ini memperbaiki urutan dari apa yang sudah ditemukan. Ini tidak dapat menemukan apa yang tahap pertama lewatkan.

Properti tunggal itu menetapkan evaluasi: sebuah reranker hanya dapat dinilai pada query di mana passage yang benar sudah ada di dalam set kandidat. Jika tidak, tidak ada reranker yang membantu dan pekerjaan itu milik upstream.

Harness minimum yang layak

Anda membutuhkan sebuah set query, identifier passage yang benar untuk setiap query, dan sebuah cara untuk merekam peringkat di mana passage itu muncul dengan dan tanpa reranker. Untuk beberapa ratus query ini dapat menjadi sebuah script yang menulis dua daftar terurut per query dan mencetak perbedaannya. Ini tidak memerlukan framework.

  • Rekam apakah passage yang benar muncul di hasil teratas, dan pada peringkat berapa. Lacak keduanya, karena sebuah reranker yang memperbaiki peringkat rata-rata sambil mendorong passage keluar dari jendela telah membuat keadaan menjadi lebih buruk.
  • Termasuk query dengan tidak ada passage yang benar. Sebuah reranker masih akan mengembalikan tebakan terbaiknya, dan pengukuran yang berguna adalah apakah skor tertinggi dari sebuah reranked miss tetap terlihat sebagai kepercayaan rendah atau keluar tidak dapat dibedakan dari sebuah hit.
  • Jaga kesulitan query di dalam set. Query yang bekerja tanpa reranking tidak memberikan kontribusi pada perbandingan di luar latency.
  • Simpan hasil sebagai baseline yang dikomit untuk sebuah perubahan masa depan ke reranker atau ke tahap pertama diukur terhadap sesuatu.

Pertukaran yang tidak pernah ditulis

Sebuah reranker cross-encoder menambahkan latency sebanding dengan jumlah kandidat yang dinilainya, dan biaya itu berada di jalur kritis dari setiap permintaan. Dua pertanyaan harus dijawab sebelum adopsi, secara tertulis: berapa banyak kandidat yang akan di-rerank, dan berapa banyak latency median yang dapat diterima. Sebuah reranker yang disesuaikan pada kualitas saja cenderung berakhir dengan meng-rerank sebuah set kandidat yang cukup besar untuk meledakkan anggaran latency, pada titik mana keuntungan kualitas dibelanjakan pada timeouts dan retries.

Benchmark publik dan mengapa mereka menyesatkan di sini

Benchmark pengambilan publik menggambarkan sebuah corpus dan distribusi query yang tidak Anda miliki. Sebuah model yang memimpin pada teks umum dapat tertinggal pada dokumen Anda jika corpus Anda terstruktur — klausa, tabel, spesifikasi — karena distribusi pelatihan jarang terlihat seperti dokumen kebijakan. Perlakukan sebuah leaderboard sebagai daftar pendek, lalu putuskan pada corpus Anda sendiri dengan query Anda sendiri, termasuk kasus penolakan.

Kapan tidak menambahkan satu

Jika tahap pertama sudah mengembalikan passage yang benar di atas untuk sebagian besar query, sebuah reranker adalah mengoptimalkan kasus yang sudah terselesaikan dengan biaya latency untuk setiap permintaan. Jika kegagalan terkonsentrasi di ekor query yang sulit, perubahan dengan leverage yang lebih tinggi biasanya adalah chunking atau parsing. Sebuah reranker adalah alat yang tepat ketika tahap pertama menemukan passage tetapi memberi peringkat di bawah teks yang superficially serupa — dan itu adalah kondisi yang dapat diukur sebelum berkomitmen.

Yang bisa Anda lakukan sekarang

  • Ukur recall pada titik pemotongan dan peringkat rata-rata pasase yang benar
  • Selalu ukur latensi yang ditambahkan reranker, bukan hanya kualitas
  • Lakukan pengujian pada corpus yang Anda layani sebenarnya, bukan pada benchmark publik