Gambaran Umum Model RankerCompatible with Milvus 2.6.x

Pencarian vektor tradisional mengurutkan hasil semata-mata berdasarkan kesamaan matematis—seberapa dekat vektor-vektor tersebut cocok dalam ruang berdimensi tinggi. Meskipun efisien, pendekatan ini sering kali melewatkan relevansi semantik yang sesungguhnya. Bayangkan Anda mencari “praktik terbaik untuk optimasi basis data”: Anda mungkin menerima dokumen dengan kesamaan vektor tinggi yang sering menyebut istilah-istilah tersebut, tetapi sebenarnya tidak memberikan strategi optimasi yang dapat diterapkan.

Model Ranker mengubah cara kerja pencarian Milvus dengan mengintegrasikan model bahasa canggih yang memahami hubungan semantik antara kueri dan dokumen. Alih-alih hanya mengandalkan kesamaan vektor, Model Ranker mengevaluasi makna dan konteks konten untuk memberikan hasil yang lebih cerdas dan relevan.

Batasan

  • Model Ranker tidak dapat digunakan dengan pencarian berkelompok.

  • Kolom yang digunakan untuk penataan ulang model harus berjenis teks (VARCHAR).

  • Setiap Model Ranker hanya dapat menggunakan satu bidang VARCHAR pada satu waktu untuk evaluasi.

Cara kerjanya

Model ranker mengintegrasikan kemampuan pemahaman model bahasa ke dalam proses pencarian Milvus melalui alur kerja yang terdefinisi dengan baik:

Model Ranker Overview Gambaran Umum Model Ranker

  1. Kueri awal: Aplikasi Anda mengirimkan kueri ke Milvus

  2. Pencarian vektor: Milvus melakukan pencarian vektor standar untuk mengidentifikasi dokumen kandidat

  3. Pengambilan kandidat: Sistem mengidentifikasi kumpulan awal dokumen kandidat berdasarkan kesamaan vektor

  4. Evaluasi model: Fungsi Model Ranker memproses pasangan kueri-dokumen:

    • Mengirimkan kueri asli dan dokumen kandidat ke layanan model eksternal

    • Model bahasa mengevaluasi relevansi semantik antara kueri dan setiap dokumen

    • Setiap dokumen menerima skor relevansi berdasarkan pemahaman semantik

  5. Penataan ulang yang cerdas: Dokumen-dokumen diurutkan ulang berdasarkan skor relevansi yang dihasilkan model

  6. Hasil yang ditingkatkan: Aplikasi Anda menerima hasil yang diurutkan berdasarkan relevansi semantik, bukan hanya kesamaan vektor

Pilih penyedia model yang sesuai dengan kebutuhan Anda

Milvus mendukung penyedia layanan model berikut untuk pengurutan ulang, masing-masing dengan karakteristik yang berbeda:

Penyedia

Cocok Untuk

Karakteristik

Contoh Kasus Penggunaan

vLLM

Aplikasi kompleks yang memerlukan pemahaman semantik mendalam dan penyesuaian

  • Mendukung berbagai model bahasa besar

  • Opsi penerapan yang fleksibel

  • Persyaratan komputasi yang lebih tinggi

  • Potensi penyesuaian yang lebih besar

Platform penelitian hukum yang menerapkan model khusus bidang yang memahami terminologi hukum dan hubungan yurisprudensi

TEI

Implementasi cepat dengan penggunaan sumber daya yang efisien

  • Layanan ringan yang dioptimalkan untuk operasi teks

  • Penerapan yang lebih mudah dengan kebutuhan sumber daya yang lebih rendah

  • Model penataan ulang peringkat yang telah dioptimalkan sebelumnya

  • Beban infrastruktur minimal

Sistem manajemen konten yang membutuhkan kemampuan pengurutan ulang yang efisien dengan persyaratan standar

Cohere

Aplikasi perusahaan yang mengutamakan keandalan dan kemudahan integrasi

  • Keandalan dan skalabilitas tingkat perusahaan

  • Layanan terkelola tanpa pemeliharaan infrastruktur

  • Kemampuan pengurutan ulang multibahasa

  • Pembatasan laju dan penanganan kesalahan bawaan

Platform e-commerce yang membutuhkan pencarian dengan ketersediaan tinggi, kinerja API yang konsisten, dan katalog produk multibahasa

Voyage AI

Aplikasi RAG dengan persyaratan kinerja dan konteks tertentu

  • Model yang dilatih secara khusus untuk tugas pengurutan ulang

  • Kontrol pemotongan yang terperinci untuk panjang dokumen yang beragam

  • Inferensi yang dioptimalkan untuk beban kerja produksi

  • Varian model yang beragam (rerank-2, rerank-lite, dll.)

Basis data penelitian dengan panjang dokumen yang bervariasi yang memerlukan kontrol kinerja yang disesuaikan secara halus dan pemahaman semantik khusus

SiliconFlow

Aplikasi yang memproses dokumen panjang dengan prioritas efisiensi biaya

  • Pembagian dokumen tingkat lanjut dengan tumpang tindih yang dapat dikonfigurasi

  • Penilaian berbasis potongan (potongan dengan skor tertinggi mewakili dokumen)

  • Dukungan untuk berbagai model penataan ulang peringkat

  • Hemat biaya dengan varian model standar dan pro

Sistem pencarian dokumentasi teknis yang memproses manual dan makalah panjang yang memerlukan segmentasi cerdas dan kontrol tumpang tindih

Hugging Face

Aplikasi yang menggunakan model kesamaan kalimat Hugging Face yang dihosting

  • Menggunakan penyedia " hf-inference " yang dihosting

  • Memilih model dari Hugging Face Hub

  • Menghitung satu skor kesamaan kalimat per kandidat

  • Menggunakan otentikasi kunci API

Aplikasi pencarian semantik yang ingin menyusun ulang urutan teks kandidat menggunakan model Hugging Face tanpa perlu mengoperasikan layanan inferensi terpisah

Untuk informasi terperinci mengenai implementasi setiap layanan model, lihat dokumentasi khusus:

Penerapan

Sebelum mengimplementasikan Model Ranker, pastikan Anda memiliki:

  • Koleksi Milvus dengan bidang ` VARCHAR ` yang berisi teks yang akan diurutkan ulang

  • Layanan model eksternal yang sedang berjalan dan dapat diakses oleh instance Milvus Anda

  • Konektivitas jaringan yang memadai antara Milvus dan layanan model yang Anda pilih

Model ranker terintegrasi dengan mulus baik dengan operasi pencarian vektor standar maupun operasi pencarian hibrida. Implementasinya melibatkan pembuatan objek Function yang mendefinisikan konfigurasi pengurutan ulang Anda dan meneruskannya ke operasi pencarian.

Membuat model ranker

Untuk mengimplementasikan penentuan peringkat ulang model, pertama-tama tentukan objek Function dengan konfigurasi yang sesuai. Dalam contoh ini, kami menggunakan TEI sebagai penyedia layanan:

from pymilvus import MilvusClient, Function, FunctionType

# Connect to your Milvus server
client = MilvusClient(
    uri="http://localhost:19530"  # Replace with your Milvus server URI
)

# Create a model ranker function
model_ranker = Function(
    name="semantic_ranker",  # Function identifier
    input_field_names=["document"],  # VARCHAR field to use for reranking
    function_type=FunctionType.RERANK,  # Must be set to RERANK
    params={
        "reranker": "model",  # Specify model reranker. Must be "model"
        "provider": "tei",  # Choose provider: "tei", "vllm", etc.
        "queries": ["machine learning for time series"],  # Query text
        "endpoint": "http://model-service:8080",  # Model service endpoint
        # "maxBatch": 32  # Optional: batch size for processing
    }
)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.vector.request.ranker.ModelRanker;

MilvusClientV2 client = new MilvusClientV2(ConnectConfig.builder()
        .uri("http://localhost:19530")
        .build());

ModelRanker ranker = ModelRanker.builder()
        .name("semantic_ranker")
        .inputFieldNames(Collections.singletonList("document"))
        .provider("tei")
        .queries(Collections.singletonList("machine learning for time series"))
        .endpoint("http://model-service:8080")
        .build();
// nodejs
// go
# restful

Parameter

Wajib?

Deskripsi

Nilai / Contoh

name

Ya

Pengidentifikasi untuk fungsi Anda yang digunakan saat melakukan pencarian.

"semantic_ranker"

input_field_names

Ya

Nama bidang teks yang akan digunakan untuk penentuan peringkat ulang.

Harus berupa bidang bertipe " VARCHAR ".

["document"]

function_type

Ya

Menentukan jenis fungsi yang sedang dibuat.

Harus diatur ke " RERANK " untuk semua model ranker.

FunctionType.RERANK

params

Ya

Sebuah kamus yang berisi konfigurasi untuk fungsi pengurutan ulang berbasis model. Parameter (kunci) yang tersedia bervariasi tergantung pada penyedia layanan.

{...}

params.reranker

Ya

Harus disetel ke ` "model" ` untuk mengaktifkan pengurutan ulang berbasis model.

"model"

params.provider

Ya

Penyedia layanan model yang akan digunakan untuk pengurutan ulang.

"tei"

params.queries

Ya

Daftar string kueri yang digunakan oleh model penentuan peringkat ulang untuk menghitung skor relevansi.

Jumlah string kueri harus sama persis dengan jumlah kueri dalam operasi pencarian Anda (bahkan saat menggunakan vektor kueri alih-alih teks), jika tidak, akan dilaporkan adanya kesalahan.

["search query"]

params.endpoint

Ya

URL layanan model.

"http://localhost:8080"

max_client_batch_size

Tidak

Jumlah maksimum dokumen yang akan diproses dalam satu batch. Nilai yang lebih besar akan meningkatkan throughput tetapi membutuhkan lebih banyak memori.

32 (default)

Setelah mendefinisikan model ranker Anda, Anda dapat menggunakannya selama operasi pencarian dengan meneruskannya ke parameter ranker:

# Use the model ranker in standard vector search
results = client.search(
    collection_name,
    data=[your_query_vector], # Number of query vectors must match that specified in model_ranker.params["queries"] 
    anns_field="vector_field",
    limit=10,
    output_fields=["document"],  # Include the text field in outputs
    ranker=model_ranker,  # Apply the model ranker here
    consistency_level="Bounded"
)
import io.milvus.v2.common.ConsistencyLevel;
import io.milvus.v2.service.vector.request.SearchReq;
import io.milvus.v2.service.vector.response.SearchResp;
import io.milvus.v2.service.vector.request.data.EmbeddedText;

SearchReq searchReq = SearchReq.builder()
        .collectionName(COLLECTION_NAME)
        .data(Collections.singletonList(new EmbeddedText("machine learning for time series")))
        .annsField("vector_field")
        .limit(10)
        .outputFields(Collections.singletonList(document))
        .functionScore(FunctionScore.builder()
                .addFunction(ranker)
                .build())
        .consistencyLevel(ConsistencyLevel.BOUNDED)
        .build();
SearchResp searchResp = client.search(searchReq);
// nodejs
// go
# restful

Diterjemahkan olehDeepL

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?