Milvus
Zilliz
الصفحة الرئيسية
  • دليل المستخدم
  • Home
  • Docs
  • دليل المستخدم

  • التضمين وإعادة التصنيف

  • وظيفة إعادة التصنيف

  • مصنف الطراز

  • نظرة عامة على مصنف النماذج

نظرة عامة على مصنف النماذجCompatible with Milvus 2.6.x

يصنّف البحث التقليدي عن المتجهات النتائج فقط من خلال التشابه الرياضي - أي مدى تطابق المتجهات في الفضاء عالي الأبعاد. على الرغم من كفاءة هذا النهج، إلا أنه غالبًا ما يغفل الصلة الدلالية الحقيقية. فكِّر في البحث عن "أفضل الممارسات لتحسين قاعدة البيانات": قد تتلقى مستندات ذات تشابه متجه عالٍ تذكر هذه المصطلحات بشكل متكرر، ولكنها لا توفر في الواقع استراتيجيات تحسين قابلة للتنفيذ.

يقوم نموذج التصنيف بتحويل بحث Milvus من خلال دمج نماذج لغوية متقدمة تفهم العلاقات الدلالية بين الاستعلامات والمستندات. وبدلاً من الاعتماد فقط على التشابه المتجه، يقوم بتقييم معنى المحتوى والسياق لتقديم نتائج أكثر ذكاءً وملاءمة.

الحدود

  • لا يمكن استخدام نماذج إعادة ترتيب النماذج مع عمليات البحث التجميعية.

  • يجب أن تكون الحقول المستخدمة لإعادة ترتيب النماذج من النوع النصي (VARCHAR).

  • يمكن لكل مصنف نماذج استخدام حقل واحد فقط VARCHAR في كل مرة للتقييم.

كيف تعمل

يقوم مصنفو النماذج بدمج قدرات فهم النماذج اللغوية في عملية البحث في ميلفوس من خلال سير عمل محدد بشكل جيد:

Model Ranker Overview نظرة عامة على مصنف النماذج

  1. الاستعلام الأولي: يرسل التطبيق الخاص بك استعلامًا إلى ملفوس

  2. البحث المتجه: يقوم ميلفوس بإجراء بحث متجه قياسي لتحديد المستندات المرشحة

  3. استرجاع المستندات المرشحة: يحدد النظام المجموعة الأولية من المستندات المرشحة بناءً على تشابه المتجهات.

  4. تقييم النموذج: تقوم وظيفة مصنف النماذج بمعالجة أزواج الاستعلام والمستندات:

    • يرسل الاستعلام الأصلي والوثائق المرشحة إلى خدمة نموذج خارجي

    • يقوم نموذج اللغة بتقييم الصلة الدلالية بين الاستعلام وكل مستند

    • يحصل كل مستند على درجة ملاءمة بناءً على الفهم الدلالي

  5. إعادة الترتيب الذكي: يتم إعادة ترتيب المستندات بناءً على درجات الملاءمة التي تم إنشاؤها بواسطة النموذج

  6. نتائج محسّنة: يتلقى تطبيقك نتائج مرتبة حسب الصلة الدلالية بدلاً من مجرد تشابه المتجهات

اختر مزود نموذج يناسب احتياجاتك

يدعم Milvus موفري خدمات النماذج التالية لإعادة الترتيب، ولكل منها خصائص مميزة:

المزود

الأفضل ل

الخصائص

مثال لحالة الاستخدام

vLLM

التطبيقات المعقدة التي تتطلب فهماً دلالياً عميقاً وتخصيصاً عميقاً

  • يدعم نماذج لغوية كبيرة متنوعة

  • خيارات نشر مرنة

  • متطلبات حسابية أعلى

  • إمكانية تخصيص أكبر

منصة البحث القانوني التي تنشر نماذج خاصة بالمجال الذي يفهم المصطلحات القانونية وعلاقات السوابق القضائية

TEI

تنفيذ سريع مع استخدام فعال للموارد

  • خدمة خفيفة الوزن محسنة للعمليات النصية

  • نشر أسهل مع متطلبات موارد أقل

  • نماذج إعادة الترتيب المحسّنة مسبقاً

  • الحد الأدنى من نفقات البنية الأساسية

نظام إدارة محتوى يحتاج إلى إمكانات إعادة ترتيب فعالة مع متطلبات قياسية

الاتساق

التطبيقات المؤسسية التي تعطي الأولوية للموثوقية وسهولة التكامل

  • الموثوقية وقابلية التوسع على مستوى المؤسسات

  • خدمة مُدارة بدون صيانة للبنية التحتية

  • قدرات إعادة ترتيب متعددة اللغات

  • تحديد المعدل المدمج ومعالجة الأخطاء

منصة تجارة إلكترونية تتطلب بحثًا عالي التوافر مع أداء متسق لواجهة برمجة التطبيقات وكتالوجات منتجات متعددة اللغات

رحلة الذكاء الاصطناعي

تطبيقات RAG ذات متطلبات أداء وسياق محددين

  • نماذج مدربة خصيصًا لمهام إعادة الترتيب

  • ضوابط اقتطاع دقيقة لأطوال المستندات المتنوعة

  • الاستدلال الأمثل لأعباء عمل الإنتاج

  • متغيرات متعددة للنماذج (إعادة الترتيب 2، إعادة الترتيب المخففة، إلخ)

قاعدة بيانات بحثية ذات أطوال مستندات متفاوتة تتطلب تحكمًا دقيقًا في الأداء وفهمًا دلاليًا متخصصًا

سيليكون فلو

تطبيقات معالجة المستندات الطويلة ذات الأولويات الفعالة من حيث التكلفة

  • تقطيع متقدم للوثائق مع تداخل قابل للتكوين

  • تسجيل النقاط القائم على القطع (تمثل القطع الأعلى نقاطًا المستند)

  • دعم نماذج إعادة الترتيب المتنوعة

  • فعالة من حيث التكلفة مع متغيرات النموذج القياسي والمحترف

يعالج نظام البحث في الوثائق الفنية الكتيبات والأوراق المطولة التي تحتاج إلى تجزئة ذكية وتحكم ذكي في التداخل

للحصول على معلومات مفصلة حول تنفيذ كل خدمة نموذجية، راجع الوثائق المخصصة:

التنفيذ

قبل تنفيذ مصنف النموذج، تأكد من أن لديك

  • مجموعة ميلفوس مع حقل VARCHAR يحتوي على النص المراد إعادة تصنيفه

  • خدمة نموذج خارجي قيد التشغيل يمكن الوصول إليها من خلال مثيل ميلفوس الخاص بك

  • اتصال شبكي مناسب بين ميلفوس وخدمة النموذج الذي اخترته

تتكامل مصنفات النماذج بسلاسة مع كل من عمليات البحث المتجه القياسية وعمليات البحث المختلطة. يتضمن التنفيذ إنشاء كائن وظيفة يحدد تكوين إعادة الترتيب الخاص بك وتمريره إلى عمليات البحث.

إنشاء مصنف نموذج

لتنفيذ إعادة ترتيب النماذج، قم أولاً بتعريف كائن دالة مع التكوين المناسب. في هذا المثال، نستخدم TEI كمزود خدمة:

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

المعلمة

مطلوب؟

الوصف

القيمة / مثال

name

نعم

معرّف الدالة المستخدمة عند تنفيذ عمليات البحث.

"semantic_ranker"

input_field_names

نعم

اسم الحقل النصي المراد استخدامه لإعادة الترتيب.

يجب أن يكون حقلاً من نوع VARCHAR.

["document"]

function_type

نعم

يحدد نوع الدالة التي يتم إنشاؤها.

يجب تعيينه على RERANK لجميع مصنفات النماذج.

FunctionType.RERANK

params

نعم

قاموس يحتوي على تكوين لدالة إعادة الترتيب المستندة إلى النموذج. تختلف المعلمات (المفاتيح) المتاحة اعتماداً على موفر الخدمة.

{...}

params.reranker

نعم

يجب تعيينها إلى "model" لتمكين إعادة ترتيب النماذج.

"model"

params.provider

نعم

موفر خدمة النموذج المراد استخدامه لإعادة الترتيب.

"tei"

params.queries

نعم

قائمة بسلاسل الاستعلامات التي يستخدمها نموذج إعادة الترتيب لحساب درجات الملاءمة.

يجب أن يتطابق عدد سلاسل الاستعلامات مع عدد الاستعلامات في عملية البحث (حتى عند استخدام ناقلات الاستعلامات بدلاً من النص)، وإلا سيتم الإبلاغ عن خطأ.

["search query"]

params.endpoint

نعم

عنوان URL لخدمة النموذج.

"http://localhost:8080"

max_client_batch_size

لا

الحد الأقصى لعدد المستندات المطلوب معالجتها في دفعة واحدة. تزيد القيم الأكبر من الإنتاجية ولكنها تتطلب المزيد من الذاكرة.

32 (افتراضي)

بعد تحديد مصنف النموذج الخاص بك، يمكنك تطبيقه أثناء عمليات البحث عن طريق تمريره إلى معلمة المصنف:

# 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

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟