Bagaimana Kami Membangun Model Penyorotan Semantik untuk Pemangkasan Konteks RAG dan Penyimpanan Token
Masalahnya: Kebisingan RAG dan Pemborosan Token
Pencarian vektor merupakan fondasi yang kuat untuk sistem RAG - asisten perusahaan, agen AI, bot dukungan pelanggan, dan banyak lagi. Sistem ini dapat diandalkan untuk menemukan dokumen yang penting. Namun, pencarian saja tidak menyelesaikan masalah konteks. Bahkan indeks yang disetel dengan baik pun hanya mengembalikan potongan-potongan yang relevan secara luas, sementara hanya sebagian kecil kalimat di dalam potongan-potongan tersebut yang benar-benar menjawab pertanyaan.
Dalam sistem produksi, kesenjangan ini segera muncul. Satu kueri dapat menarik lusinan dokumen, yang masing-masing terdiri dari ribuan token. Hanya beberapa kalimat yang berisi sinyal yang sebenarnya; sisanya adalah konteks yang membengkakkan penggunaan token, memperlambat inferensi, dan sering kali mengalihkan perhatian LLM. Masalahnya menjadi semakin jelas dalam alur kerja agen, di mana kueri itu sendiri merupakan hasil dari penalaran multi-langkah dan hanya mencocokkan sebagian kecil dari teks yang diambil.
Hal ini menciptakan kebutuhan yang jelas akan model yang dapat mengidentifikasi dan menyoroti kalimat-kalimat yang berguna dan mengabaikan sisanya-pada dasarnya, pemfilteran relevansi tingkat kalimat, atau yang disebut oleh banyak tim sebagai pemangkasan konteks. Tujuannya sederhana: mempertahankan bagian yang penting dan membuang noise sebelum mencapai LLM.
Penyorotan berbasis kata kunci tradisional tidak dapat menyelesaikan masalah ini. Sebagai contoh, jika pengguna bertanya, "Bagaimana cara meningkatkan efisiensi eksekusi kode Python?", penyorot kata kunci akan memilih "Python" dan "efisiensi", tetapi melewatkan kalimat yang sebenarnya menjawab pertanyaan - "Gunakan operasi vektor NumPy alih-alih perulangan" - karena tidak ada kata kunci yang sama dengan kueri. Yang kita butuhkan adalah pemahaman semantik, bukan pencocokan string.
Model Penyorotan Semantik untuk Penyaringan Derau RAG dan Pemangkasan Konteks
Untuk mempermudah pembangun RAG, kami melatih dan membuat sumber terbuka model Penyorotan Semantik yang mengidentifikasi dan menyoroti kalimat-kalimat dalam dokumen yang diambil yang secara semantik lebih selaras dengan kueri. Model ini saat ini memberikan kinerja canggih pada bahasa Inggris dan Mandarin dan dirancang untuk dimasukkan langsung ke dalam pipa RAG yang sudah ada.
Detail Model
HuggingFace: zilliz/semantic-highlight-bilingual-v1
Lisensi MIT (ramah komersial)
Arsitektur: Model khusus penyandi 0.6B berdasarkan BGE-M3 Reranker v2
Jendela Konteks: 8192 token
Bahasa yang didukung: Bahasa Inggris dan Mandarin
Penyorotan Semantik memberikan sinyal relevansi yang diperlukan untuk memilih hanya bagian yang berguna dari dokumen yang telah lama diambil. Dalam praktiknya, model ini memungkinkan:
Peningkatan kemampuan interpretasi, menunjukkan bagian mana dari dokumen yang benar-benar penting
Pengurangan 70-80% dalam biaya token dengan mengirimkan hanya kalimat yang disorot ke LLM
Kualitas jawaban yang lebih baik, karena model ini mengurangi konteks yang tidak relevan
Debugging yang lebih mudah, karena teknisi dapat memeriksa kecocokan tingkat kalimat secara langsung
Hasil Evaluasi: Mencapai Kinerja SOTA
Kami mengevaluasi model Penyorotan Semantik kami di berbagai set data yang mencakup bahasa Inggris dan Cina, baik dalam kondisi di dalam maupun di luar domain.
Rangkaian tolok ukur meliputi:
QA multi-bentang bahasa Inggris: multispanqa
Wikipedia bahasa Inggris di luar domain: wikitext2
QA multi-bentang bahasa Mandarin: multispanqa_zh
Wikipedia di luar domain bahasa Mandarin: wikitext2_zh
Model yang dievaluasi meliputi:
Seri Open Provence
Seri Provence/XProvence dari Naver
Penyorot semantik OpenSearch
Model dwibahasa terlatih kami: zilliz/semantic-highlight-bilingual-v1
Di keempat dataset, model kami mencapai peringkat teratas. Lebih penting lagi, ini adalah satu-satunya model yang berkinerja baik secara konsisten pada bahasa Inggris dan Mandarin. Model yang bersaing hanya berfokus pada bahasa Inggris atau menunjukkan penurunan kinerja yang jelas pada teks bahasa Mandarin.
Bagaimana Kami Membangun Model Penyorotan Semantik Ini
Melatih model untuk tugas ini bukanlah bagian yang sulit; melatih model yang baik yang menangani masalah sebelumnya dan memberikan kinerja yang mendekati SOTA adalah pekerjaan yang sesungguhnya. Pendekatan kami berfokus pada dua hal:
Arsitektur model: menggunakan desain khusus penyandi untuk inferensi yang cepat.
Data pelatihan: menghasilkan label relevansi berkualitas tinggi menggunakan LLM yang mampu bernalar dan membuat data skala dengan kerangka kerja inferensi lokal.
Arsitektur Model
Kami membangun model sebagai jaringan khusus penyandi ringan yang memperlakukan pemangkasan konteks sebagai tugas penilaian relevansi tingkat token. Desain ini terinspirasi oleh Provence, pendekatan pemangkasan konteks yang diperkenalkan oleh Naver di ICLR 2025, yang membingkai ulang pemangkasan dari "memilih potongan yang tepat" menjadi "menilai setiap token." Pembingkaian tersebut selaras secara alami dengan penyorotan semantik, di mana sinyal berbutir halus sangat penting.
Model encoder-only bukanlah arsitektur terbaru, tetapi tetap sangat praktis di sini: model ini cepat, mudah diskalakan, dan dapat menghasilkan nilai relevansi untuk semua posisi token secara paralel. Untuk sistem RAG produksi, keunggulan kecepatan tersebut jauh lebih penting daripada menggunakan model decoder yang lebih besar.
Setelah kami menghitung skor relevansi tingkat token, kami menggabungkannya ke dalam skor tingkat kalimat. Langkah ini mengubah sinyal token yang berisik menjadi metrik relevansi yang stabil dan dapat ditafsirkan. Kalimat di atas ambang batas yang dapat dikonfigurasi akan disorot; yang lainnya akan disaring. Hal ini menghasilkan mekanisme yang sederhana dan dapat diandalkan untuk memilih kalimat yang benar-benar penting bagi kueri.
Proses Inferensi
Pada saat proses, model penyorotan semantik kami mengikuti alur sederhana:
Masukan- Proses dimulai dengan kueri pengguna. Dokumen yang diambil diperlakukan sebagai konteks kandidat untuk evaluasi relevansi.
Pemrosesan Model- Kueri dan konteks digabungkan menjadi satu urutan: [BOS] + Kueri + Konteks
Penilaian Token- Setiap token dalam konteks diberi skor relevansi antara 0 dan 1, yang mencerminkan seberapa kuat kaitannya dengan kueri.
Agregasi Kalimat- Skor token diagregasi pada tingkat kalimat, biasanya dengan rata-rata, untuk menghasilkan skor relevansi untuk setiap kalimat.
Penyaringan Ambang Batas- Kalimat dengan skor di atas ambang batas yang dapat dikonfigurasi disorot dan dipertahankan, sementara kalimat dengan skor rendah disaring sebelum diteruskan ke LLM hilir.
Model Dasar: BGE-M3 Reranker v2
Kami memilih BGE-M3 Reranker v2 sebagai model dasar karena beberapa alasan:
Menggunakan arsitektur Encoder yang cocok untuk penilaian token dan kalimat
Mendukung berbagai bahasa dengan pengoptimalan untuk bahasa Inggris dan Mandarin
Menyediakan jendela konteks 8192 token yang sesuai untuk dokumen RAG yang lebih panjang
Mempertahankan 0,6B parameter - cukup kuat tanpa menjadi berat secara komputasi
Memastikan pengetahuan dunia yang cukup dalam model dasar
Dilatih untuk pemeringkatan ulang, yang sangat sesuai dengan tugas penilaian relevansi
Data Pelatihan: Anotasi LLM dengan Penalaran
Setelah kami menyelesaikan arsitektur model, tantangan berikutnya adalah membangun dataset yang benar-benar dapat melatih model yang andal. Kami mulai dengan melihat bagaimana Open Provence menangani hal ini. Pendekatan mereka menggunakan dataset QA publik dan LLM kecil untuk melabeli kalimat mana yang relevan. Pendekatan ini berskala besar dan mudah diotomatisasi, sehingga menjadi dasar yang baik bagi kami.
Namun kami segera mengalami masalah yang sama seperti yang mereka jelaskan: jika Anda meminta LLM untuk mengeluarkan label tingkat kalimat secara langsung, hasilnya tidak selalu stabil. Beberapa label sudah benar, yang lain dipertanyakan, dan sulit untuk membersihkannya setelah itu. Anotasi manual sepenuhnya juga bukan pilihan-kami membutuhkan lebih banyak data daripada yang bisa kami beri label secara manual.
Untuk meningkatkan stabilitas tanpa mengorbankan skalabilitas, kami membuat satu perubahan: LLM harus menyediakan cuplikan penalaran singkat untuk setiap label yang dihasilkannya. Setiap contoh pelatihan mencakup kueri, dokumen, rentang kalimat, dan penjelasan singkat mengapa sebuah kalimat relevan atau tidak relevan. Penyesuaian kecil ini membuat anotasi menjadi jauh lebih konsisten dan memberikan kami sesuatu yang konkret untuk dijadikan referensi ketika memvalidasi atau men-debug dataset.
Menyertakan alasan ternyata sangat berharga:
Kualitas anotasi yang lebih tinggi: Menuliskan alasan berfungsi sebagai pemeriksaan mandiri, yang mengurangi label yang acak atau tidak konsisten.
Pengamatan yang lebih baik: Kita dapat melihat mengapa sebuah kalimat dipilih daripada memperlakukan label sebagai kotak hitam.
Debugging yang lebih mudah: Ketika ada sesuatu yang terlihat salah, penalaran membuatnya mudah untuk mengetahui apakah masalahnya adalah perintah, domain, atau logika anotasi.
Data yang dapat digunakan kembali: Bahkan jika kita beralih ke model pelabelan yang berbeda di masa mendatang, jejak penalaran tetap berguna untuk pelabelan ulang atau audit.
Alur kerja anotasi terlihat seperti ini:
Qwen3 8B untuk Anotasi
Untuk anotasi, kami memilih Qwen3 8B karena secara native mendukung "mode berpikir" melalui output, membuatnya lebih mudah untuk mengekstrak jejak penalaran yang konsisten. Model yang lebih kecil tidak memberikan label yang stabil, dan model yang lebih besar lebih lambat dan tidak perlu mahal untuk jenis pipeline ini. Qwen3 8B mencapai keseimbangan yang tepat antara kualitas, kecepatan, dan biaya.
Kami menjalankan semua anotasi menggunakan layanan vLLM lokal, bukan API cloud. Hal ini memberi kami throughput yang tinggi, kinerja yang dapat diprediksi, dan biaya yang jauh lebih rendah-pada dasarnya menukar waktu GPU dengan biaya token API, yang merupakan kesepakatan yang lebih baik ketika menghasilkan jutaan sampel.
Skala Dataset
Secara keseluruhan, kami membuat lebih dari 5 juta sampel pelatihan dwibahasa, dibagi secara merata antara bahasa Inggris dan Mandarin.
Sumber bahasa Inggris: MS MARCO, Natural Questions, GooAQ
Sumber bahasa Mandarin: DuReader, Wikipedia bahasa Mandarin, mmarco_chinese
Sebagian dari dataset ini berasal dari anotasi ulang data yang sudah ada yang digunakan oleh proyek-proyek seperti Open Provence. Sisanya dihasilkan dari korpora mentah dengan terlebih dahulu membuat pasangan kueri-konteks dan kemudian melabelinya dengan pipeline berbasis penalaran kami.
Semua data pelatihan beranotasi juga tersedia di HuggingFace untuk pengembangan komunitas dan referensi pelatihan: Kumpulan Data Zilliz
Metode Pelatihan
Setelah arsitektur model dan dataset siap, kami melatih model pada GPU 8× A100 selama tiga epoch, yang memakan waktu sekitar 9 jam dari awal hingga akhir.
Catatan: Pelatihan ini hanya menargetkan Pruning Head, yang bertanggung jawab atas tugas penyorotan semantik. Kami tidak melatih Rerank Head, karena hanya berfokus pada tujuan pemangkasan akan memberikan hasil yang lebih baik untuk penilaian relevansi tingkat kalimat.
Studi Kasus Dunia Nyata
Tolok ukur hanya menceritakan sebagian dari cerita, jadi inilah contoh nyata yang menunjukkan bagaimana model berperilaku pada kasus tepi yang umum: ketika teks yang diambil berisi jawaban yang benar dan distraktor yang sangat menggoda.
Pertanyaan: Siapa yang menulis "Pembunuhan Rusa Suci"?
Konteks (5 kalimat):
1\. The Killing of a Sacred Deer is a 2017 psychological horror film directed by Yorgos Lanthimos,
with a screenplay by Lanthimos and Efthymis Filippou.
2. The film stars Colin Farrell, Nicole Kidman, Barry Keoghan, Raffey Cassidy,
Sunny Suljic, Alicia Silverstone, and Bill Camp.
3. The story is based on the ancient Greek playwright Euripides’ play Iphigenia in Aulis.
4. The film tells the story of a cardiac surgeon (Farrell) who secretly
befriends a teenager (Keoghan) connected to his past.
5. He introduces the boy to his family, who then mysteriously fall ill.
Jawaban yang benar: Kalimat 1 (secara eksplisit menyatakan "skenario oleh Lanthimos dan Efthymis Filippou")
Contoh ini memiliki jebakan: Kalimat 3 menyebutkan bahwa "Euripides" yang menulis naskah aslinya. Namun pertanyaannya menanyakan "siapa yang menulis film The Killing of a Sacred Deer," dan jawabannya seharusnya adalah penulis skenario film tersebut, bukan penulis naskah Yunani dari ribuan tahun yang lalu.
Hasil model
| Model | Menemukan jawaban yang benar? | Prediksi |
|---|---|---|
| Model kami | ✓ | Kalimat yang dipilih 1 (benar) dan 3 |
| XProvence v1 | ✗ | Hanya memilih kalimat 3, tidak ada jawaban yang benar |
| XProvence v2 | ✗ | Hanya memilih kalimat 3, jawaban yang benar terlewat |
Perbandingan Skor Kalimat Kunci:
| Kalimat | Model Kami | XProvence v1 | XProvence v2 |
|---|---|---|---|
| Kalimat 1 (skenario film, jawaban yang benar) | 0.915 | 0.133 | 0.081 |
| Kalimat 3 (naskah asli, distraktor) | 0.719 | 0.947 | 0.802 |
Model XProvence:
Sangat tertarik pada "Euripides" dan "permainan", memberikan nilai yang nyaris sempurna pada kalimat 3 (0,947 dan 0,802)
Sama sekali mengabaikan jawaban yang sebenarnya (kalimat 1), memberikan nilai yang sangat rendah (0,133 dan 0,081)
Bahkan ketika menurunkan ambang batas dari 0,5 ke 0,2, tetap saja tidak dapat menemukan jawaban yang benar
Model kami:
Dengan tepat memberikan nilai tertinggi pada kalimat 1 (0,915)
Masih memberikan kalimat 3 beberapa relevansi (0,719) karena terkait dengan latar belakang
Memisahkan keduanya dengan jelas dengan selisih ~0,2
Contoh ini menunjukkan kekuatan utama model: memahami maksud kueri dan bukan hanya mencocokkan kata kunci di permukaan. Dalam konteks ini, "Siapa yang menulis " The Killing of a Sacred Deer" mengacu pada film, bukan drama Yunani kuno. Model kami memahami hal tersebut, sementara model lainnya terganggu oleh isyarat leksikal yang kuat.
Cobalah dan Beri Tahu Kami Pendapat Anda
Model zilliz/semantic-highlight-bilingual-v1 kami sekarang sepenuhnya bersumber terbuka di bawah lisensi MIT dan siap untuk digunakan dalam produksi. Anda dapat menyambungkannya ke dalam pipeline RAG Anda, menyempurnakannya untuk domain Anda sendiri, atau membangun alat baru di atasnya. Kami juga menerima kontribusi dan umpan balik dari komunitas.
Unduh dari HuggingFace: zilliz/semantic-highlight-bilingual-v1
Semua data pelatihan beranotasi: https://huggingface.co/zilliz/datasets
Penyorotan Semantik Tersedia di Milvus dan Zilliz Cloud
Penyorotan semantik juga dibangun langsung ke dalam Milvus dan Zilliz Cloud (Milvus yang dikelola secara penuh), sehingga pengguna dapat melihat dengan jelas mengapa setiap dokumen diambil. Alih-alih memindai seluruh bagian, Anda dapat langsung melihat kalimat spesifik yang berhubungan dengan kueri Anda - bahkan ketika kata-katanya tidak sama persis. Hal ini membuat pengambilan lebih mudah dipahami dan lebih cepat untuk di-debug. Untuk pipeline RAG, hal ini juga memperjelas apa yang diharapkan menjadi fokus LLM hilir, yang membantu dalam desain dan pemeriksaan kualitas yang cepat.
Coba Penyorotan Semantik di Zilliz Cloud yang dikelola sepenuhnya secara gratis
Kami ingin mendengar bagaimana fitur ini bekerja untuk Anda-laporan bug, ide perbaikan, atau apa pun yang Anda temukan saat mengintegrasikannya ke dalam alur kerja Anda.
Jika Anda ingin membicarakan sesuatu dengan lebih detail, jangan ragu untuk bergabung dengan saluran Discord kami atau memesan sesi Milvus Office Hours selama 20 menit. Kami selalu senang mengobrol dengan pembuat lain dan bertukar catatan.
Ucapan terima kasih
Karya ini dibangun di atas banyak ide hebat dan kontribusi sumber terbuka, dan kami ingin menyoroti proyek-proyek yang membuat model ini menjadi mungkin.
Provence memperkenalkan pembingkaian yang bersih dan praktis untuk pemangkasan konteks menggunakan model encoder yang ringan.
Open Provence menyediakan basis kode yang solid dan direkayasa dengan baik - jalur pelatihan, pemrosesan data, dan kepala model - di bawah lisensi permisif. Ini memberi kami titik awal yang kuat untuk bereksperimen.
Di atas fondasi tersebut, kami menambahkan beberapa kontribusi kami sendiri:
Menggunakan penalaran LLM untuk menghasilkan label relevansi yang lebih berkualitas
Membuat hampir 5 juta sampel pelatihan dwibahasa yang diselaraskan dengan beban kerja RAG yang sebenarnya
Memilih model dasar yang lebih cocok untuk penilaian relevansi konteks panjang(BGE-M3 Reranker v2)
Melatih hanya Kepala Pemangkasan untuk mengkhususkan model untuk penyorotan semantik
Kami berterima kasih kepada tim Provence dan Open Provence yang telah mempublikasikan hasil kerja mereka secara terbuka. Kontribusi mereka secara signifikan mempercepat pengembangan kami dan membuat proyek ini menjadi mungkin.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



