Milvus
Zilliz
  • Home
  • Blog
  • Bagaimana Kami Membangun Model Penyorotan Semantik untuk Pemangkasan Konteks RAG dan Penyimpanan Token

Bagaimana Kami Membangun Model Penyorotan Semantik untuk Pemangkasan Konteks RAG dan Penyimpanan Token

  • Engineering
January 19, 2026
Cheney Zhang, Jiang Chen

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:

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:

  1. Masukan- Proses dimulai dengan kueri pengguna. Dokumen yang diambil diperlakukan sebagai konteks kandidat untuk evaluasi relevansi.

  2. Pemrosesan Model- Kueri dan konteks digabungkan menjadi satu urutan: [BOS] + Kueri + Konteks

  3. Penilaian Token- Setiap token dalam konteks diberi skor relevansi antara 0 dan 1, yang mencerminkan seberapa kuat kaitannya dengan kueri.

  4. Agregasi Kalimat- Skor token diagregasi pada tingkat kalimat, biasanya dengan rata-rata, untuk menghasilkan skor relevansi untuk setiap kalimat.

  5. 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:

  1. Menggunakan arsitektur Encoder yang cocok untuk penilaian token dan kalimat

  2. Mendukung berbagai bahasa dengan pengoptimalan untuk bahasa Inggris dan Mandarin

  3. Menyediakan jendela konteks 8192 token yang sesuai untuk dokumen RAG yang lebih panjang

  4. Mempertahankan 0,6B parameter - cukup kuat tanpa menjadi berat secara komputasi

  5. Memastikan pengetahuan dunia yang cukup dalam model dasar

  6. 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

ModelMenemukan jawaban yang benar?Prediksi
Model kamiKalimat yang dipilih 1 (benar) dan 3
XProvence v1Hanya memilih kalimat 3, tidak ada jawaban yang benar
XProvence v2Hanya memilih kalimat 3, jawaban yang benar terlewat

Perbandingan Skor Kalimat Kunci:

KalimatModel KamiXProvence v1XProvence v2
Kalimat 1 (skenario film, jawaban yang benar)0.9150.1330.081
Kalimat 3 (naskah asli, distraktor)0.7190.9470.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.

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 Started

    Like the article? Spread the word

    Terus Baca