Ketika sebuah pertanyaan menyasar satu baris di dalam tabel, mengambil seluruh tabel memaksa model generasi menyaring 39 baris yang tidak relevan. Satuan yang cocok dengan pertanyaan adalah satu baris, bukan seluruh persegi panjang. Artikel ini membangun indeks tingkat baris yang mengubah setiap baris data menjadi chunk yang dapat diambil secara mandiri, sehingga kueri seperti “berapa cap untuk pencurian kendaraan?” mengembalikan tepat satu baris tersebut beserta header kolomnya.
Fungsi serialize_table_rows memindai line_df milik parser, mengelompokkan baris pipa yang berurutan menjadi tabel, membaca baris header di atas pemisah, dan mengeluarkan satu baris output per baris data. Setiap chunk diserialisasi sebagai col: val | col: val, yang dibaca secara alami oleh LLM dan dapat dikombinasikan dengan retriever kata kunci dan embedding yang ada tanpa perubahan.
Indeks tingkat baris adalah skala kedua, bukan pengganti. Dispatcher mengarahkan pencarian terfokus ke indeks tingkat baris, pertanyaan sintesis dijalankan di semua baris tabel yang sama (terdeteksi melalui table_id bersama), dan kueri campuran menggabungkan keduanya. Retriever downstream yang tidak pernah mengaktifkan pengindeksan tingkat baris tetap berfungsi tanpa perubahan, sementara yang mengaktifkannya membaca frame kedua secara eksplisit.
Kode yang dapat dijalankan tersedia di doc-intel/notebooks-vol1, mendemonstrasikan serialize_table_rows pada Tabel 1 makalah Attention dan mengembalikan satu baris alih-alih seluruh tabel.
Sumber: Towards Data Science · Diringkas oleh HeadlinesBriefing