🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
  • Home
  • Blog
  • Elasticsearch Sudah Mati, Hidup Pencarian Leksikal

Elasticsearch Sudah Mati, Hidup Pencarian Leksikal

  • Engineering
December 17, 2024
James Luan

Sekarang, semua orang tahu bahwa pencarian hibrida telah meningkatkan kualitas pencarian RAG (Retrieval-Augmented Generation). Meskipun pencarian sematan padat telah menunjukkan kemampuan yang mengesankan dalam menangkap hubungan semantik yang mendalam antara kueri dan dokumen, namun masih memiliki keterbatasan. Ini termasuk kurangnya penjelasan dan kinerja yang kurang optimal dengan kueri berekor panjang dan istilah yang langka.

Banyak aplikasi RAG mengalami kesulitan karena model yang telah dilatih sebelumnya sering kali tidak memiliki pengetahuan spesifik domain. Dalam beberapa skenario, pencocokan kata kunci BM25 yang sederhana dapat mengungguli model-model yang canggih ini. Di sinilah pencarian hibrida menjembatani kesenjangan tersebut, dengan menggabungkan pemahaman semantik pengambilan vektor yang padat dengan ketepatan pencocokan kata kunci.

Mengapa Pencarian Hibrida Rumit dalam Produksi

Meskipun kerangka kerja seperti LangChain atau LlamaIndex memudahkan pembuatan retriever hibrida yang sudah terbukti dengan mudah, penskalaan ke produksi dengan set data yang sangat besar merupakan tantangan. Arsitektur tradisional memerlukan basis data vektor dan mesin pencari yang terpisah, yang mengarah ke beberapa tantangan utama:

  • Biaya pemeliharaan infrastruktur yang tinggi dan kompleksitas operasional

  • Redundansi data di beberapa sistem

  • Manajemen konsistensi data yang sulit

  • Keamanan yang kompleks dan kontrol akses di seluruh sistem

Pasar membutuhkan solusi terpadu yang mendukung pencarian leksikal dan semantik sekaligus mengurangi kompleksitas dan biaya sistem.

Poin-poin Penting dari Elasticsearch

Elasticsearch telah menjadi salah satu proyek pencarian sumber terbuka paling berpengaruh dalam satu dekade terakhir. Dibangun di atas Apache Lucene, Elasticsearch mendapatkan popularitas melalui kinerja tinggi, skalabilitas, dan arsitektur terdistribusi. Meskipun telah menambahkan pencarian ANN vektor pada versi 8.0, penerapan produksi menghadapi beberapa tantangan kritis:

Biaya Pembaruan dan Pengindeksan yang Tinggi: Arsitektur Elasticsearch tidak sepenuhnya memisahkan operasi penulisan, pembuatan indeks, dan kueri. Hal ini menyebabkan overhead CPU dan I/O yang signifikan selama operasi penulisan, terutama dalam pembaruan massal. Perebutan sumber daya antara pengindeksan dan kueri berdampak pada kinerja, menciptakan hambatan besar untuk skenario pembaruan frekuensi tinggi.

Kinerja Waktu Nyata yang Buruk: Sebagai mesin pencari "hampir real-time", Elasticsearch memperkenalkan latensi yang nyata dalam visibilitas data. Latensi ini menjadi sangat bermasalah untuk aplikasi AI, seperti sistem Agen, di mana interaksi frekuensi tinggi dan pengambilan keputusan yang dinamis membutuhkan akses data segera.

Manajemen Pecahan yang Sulit: Meskipun Elasticsearch menggunakan sharding untuk arsitektur terdistribusi, manajemen shard menimbulkan tantangan yang signifikan. Kurangnya dukungan sharding dinamis menciptakan dilema: terlalu banyak shard dalam dataset kecil menyebabkan kinerja yang buruk, sementara terlalu sedikit shard dalam dataset besar membatasi skalabilitas dan menyebabkan distribusi data yang tidak merata.

Arsitektur Non-Cloud-Native: Dikembangkan sebelum arsitektur cloud-native menjadi lazim, desain Elasticsearch menggabungkan penyimpanan dan komputasi secara ketat, sehingga membatasi integrasinya dengan infrastruktur modern seperti cloud publik dan Kubernetes. Penskalaan sumber daya membutuhkan peningkatan penyimpanan dan komputasi secara simultan, sehingga mengurangi fleksibilitas. Dalam skenario multi-replika, setiap pecahan harus membangun indeksnya secara independen, meningkatkan biaya komputasi dan mengurangi efisiensi sumber daya.

Performa Pencarian Vektor yang Buruk: Meskipun Elasticsearch 8.0 memperkenalkan pencarian ANN vektor, kinerjanya secara signifikan tertinggal di belakang mesin vektor khusus seperti Milvus. Berdasarkan kernel Lucene, struktur indeksnya terbukti tidak efisien untuk data berdimensi tinggi, berjuang dengan persyaratan pencarian vektor skala besar. Performanya menjadi sangat tidak stabil dalam skenario kompleks yang melibatkan pemfilteran skalar dan multi-tenancy, sehingga sulit untuk mendukung kebutuhan bisnis yang tinggi atau beragam.

Konsumsi Sumber Daya yang Berlebihan: Elasticsearch menempatkan tuntutan yang ekstrem pada memori dan CPU, terutama saat memproses data berskala besar. Ketergantungannya pada JVM memerlukan penyesuaian ukuran heap dan penyetelan pengumpulan sampah yang sering dilakukan, yang sangat berdampak pada efisiensi memori. Operasi pencarian vektor memerlukan komputasi yang dioptimalkan untuk SIMD yang intensif, yang mana lingkungan JVM jauh dari ideal.

Keterbatasan mendasar ini menjadi semakin bermasalah ketika organisasi meningkatkan skala infrastruktur AI mereka, membuat Elasticsearch sangat menantang untuk aplikasi AI modern yang membutuhkan kinerja dan keandalan tinggi.

Milvus 2.5 memperkenalkan dukungan pencarian leksikal asli melalui Sparse-BM25, yang dibangun di atas kemampuan pencarian hibrida yang diperkenalkan pada versi 2.4. Pendekatan inovatif ini mencakup komponen-komponen utama berikut ini:

  • Tokenisasi dan prapemrosesan tingkat lanjut melalui Tantivy

  • Kosakata terdistribusi dan manajemen frekuensi istilah

  • Pembangkitan vektor yang jarang menggunakan TF korpus dan kueri TF-IDF

  • Dukungan indeks terbalik dengan algoritme WAND (Block-Max WAND dan dukungan indeks grafik sedang dikembangkan)

Dibandingkan dengan Elasticsearch, Milvus menawarkan keunggulan yang signifikan dalam fleksibilitas algoritme. Komputasi kemiripan berbasis jarak vektor memungkinkan pencocokan yang lebih canggih, termasuk mengimplementasikan TW-BERT (Term Weighting BERT) berdasarkan penelitian "End-to-End Query Term Weighting". Pendekatan ini telah menunjukkan kinerja yang unggul dalam pengujian in-domain dan out-domain.

Keuntungan penting lainnya adalah efisiensi biaya. Dengan memanfaatkan indeks terbalik dan kompresi embedding padat, Milvus mencapai peningkatan kinerja lima kali lipat dengan degradasi recall kurang dari 1%. Melalui pemangkasan tail-term dan kuantisasi vektor, penggunaan memori telah berkurang lebih dari 50%.

Optimalisasi kueri yang panjang menonjol sebagai kekuatan khusus. Ketika algoritme WAND tradisional kesulitan dengan kueri yang lebih panjang, Milvus unggul dengan menggabungkan penyematan yang jarang dengan indeks grafik, memberikan peningkatan kinerja sepuluh kali lipat dalam skenario pencarian vektor yang jarang berdimensi tinggi.

Milvus: Basis Data Vektor Terbaik untuk RAG

Milvus adalah pilihan utama untuk aplikasi RAG melalui serangkaian fiturnya yang komprehensif. Keunggulan utamanya meliputi:

  • Dukungan metadata yang kaya dengan kemampuan skema dinamis dan opsi pemfilteran yang kuat

  • Multi-tenancy tingkat perusahaan dengan isolasi fleksibel melalui koleksi, partisi, dan kunci partisi

  • Dukungan indeks vektor disk pertama di industri dengan penyimpanan bertingkat dari memori ke S3

  • Skalabilitas cloud-native yang mendukung penskalaan tanpa batas dari 10M hingga 1B+ vektor

  • Kemampuan pencarian yang komprehensif, termasuk pengelompokan, rentang, dan pencarian hybrid

  • Integrasi ekosistem yang mendalam dengan LangChain, LlamaIndex, Dify, dan alat AI lainnya

Kemampuan pencarian sistem yang beragam mencakup metodologi pengelompokan, rentang, dan pencarian hibrida. Integrasi yang mendalam dengan alat-alat seperti LangChain, LlamaIndex, dan Dify, serta dukungan untuk berbagai produk AI, menempatkan Milvus di pusat ekosistem infrastruktur AI modern.

Melihat ke Depan

Seiring dengan transisi AI dari POC ke produksi, Milvus terus berevolusi. Kami fokus untuk membuat pencarian vektor lebih mudah diakses dan hemat biaya sekaligus meningkatkan kualitas pencarian. Baik Anda adalah startup atau perusahaan, Milvus mengurangi hambatan teknis untuk pengembangan aplikasi AI.

Komitmen terhadap aksesibilitas dan inovasi ini telah membawa kami ke langkah besar lainnya. Meskipun solusi open-source kami terus menjadi fondasi bagi ribuan aplikasi di seluruh dunia, kami menyadari bahwa banyak organisasi membutuhkan solusi yang dikelola secara penuh yang menghilangkan biaya operasional.

Zilliz Cloud: Solusi Terkelola

Kami telah membangun Zilliz Cloud, layanan basis data vektor terkelola penuh berdasarkan Milvus, selama tiga tahun terakhir. Melalui implementasi ulang protokol Milvus yang asli cloud, layanan ini menawarkan peningkatan kegunaan, efisiensi biaya, dan keamanan.

Berdasarkan pengalaman kami dalam mengelola cluster pencarian vektor terbesar di dunia dan mendukung ribuan pengembang aplikasi AI, Zilliz Cloud secara signifikan mengurangi biaya operasional dan biaya dibandingkan dengan solusi yang dihosting sendiri.

Siap merasakan masa depan pencarian vektor? Mulai uji coba gratis Anda hari ini dengan kredit hingga $200, tidak perlu kartu kredit.

Like the article? Spread the word

Terus Baca