🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
الصفحة الرئيسية
  • المفاهيم
  • Home
  • Docs
  • المفاهيم

  • مؤشر المتجهات

  • الفهرس داخل الذاكرة

الفهرس داخل الذاكرة

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

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

لتحسين أداء الاستعلام، يمكنك تحديد نوع فهرس لكل حقل متجه.

يدعم حقل المتجه حاليًا نوع فهرس واحد فقط. يقوم ميلفوس تلقائيًا بحذف الفهرس القديم عند تبديل نوع الفهرس.

فهارس المتجهات ANNS

تستخدم معظم أنواع الفهارس المتجهة التي يدعمها Milvus خوارزميات البحث التقريبي الأقرب للجيران (ANNS). وبالمقارنة مع الاسترجاع الدقيق، الذي عادةً ما يستغرق وقتًا طويلاً، فإن الفكرة الأساسية لـ ANNS لم تعد تقتصر على إرجاع النتيجة الأكثر دقة، بل البحث عن جيران الهدف فقط. تعمل ANNS على تحسين كفاءة الاسترجاع من خلال التضحية بالدقة ضمن نطاق مقبول.

وفقًا لطرق التنفيذ، يمكن تصنيف فهرس متجه ANNS إلى أربعة أنواع: قائم على الشجرة وقائم على الرسم البياني وقائم على التجزئة وقائم على التجزئة الكمية.

الفهارس المدعومة في ميلفوس

تدعم Milvus أنواعًا مختلفة من الفهارس، والتي يتم تصنيفها حسب نوع التضمينات المتجهة التي تتعامل معها: تضمينات الف اصلة العائمة (المعروفة أيضًا باسم متجهات النقطة العائمة أو المتجهات الكثيفة)، والتضمينات الثنائية (المعروفة أيضًا باسم المتجهات الثنائية)، والتضمينات المتفرقة (المعروفة أيضًا باسم المتجهات المتفرقة).

فهارس لتضمينات الفاصلة العائمة

بالنسبة للتضمينات ذات الفاصلة العائمة ذات 128 بُعدًا (المتجهات)، فإن مساحة التخزين التي تشغلها هي 128 * حجم العوامة = 512 بايت. ومقاييس المسافة المستخدمة لتضمينات الفاصلة العائمة هي المسافة الإقليدية (L2) والمنتج الداخلي (IP).

وتتضمن هذه الأنواع من الفهارس FLAT و IVF_FLAT و و IVF_PQ و IVF_SQ8 و HNSW و HNSW_SQ و HNSW_PQ و HNSW_PRQ و SCANN لعمليات البحث في الشبكة العنكبوتية القائمة على وحدة المعالجة المركزية.

فهارس التضمينات الثنائية

بالنسبة للتضمينات الثنائية ذات 128 بُعدًا، تبلغ مساحة التخزين التي تشغلها 128 / 8 = 16 بايت. ومقاييس المسافة المستخدمة للتضمينات الثنائية هي JACCARD و HAMMING.

يتضمن هذا النوع من الفهارس BIN_FLAT و BIN_IVF_FLAT.

فهارس التضمينات المتفرقة

تدعم فهارس التضمينات المتفرقة مقاييس IP و BM25 (للبحث في النص الكامل) فقط.

نوع الفهرس المدعوم للتضمينات المتفرقة: SPARSE_INVERTED_INDEX.

من الإصدار Milvus 2.5.4 فصاعدًا، تم إهمال SPARSE_WAND. بدلاً من ذلك، يوصى باستخدام "inverted_index_algo": "DAAT_WAND" للمعادلة مع الحفاظ على التوافق. لمزيد من المعلومات، راجع متجه متناثر.

الفهرس المدعوم التصنيف السيناريو
مسطح غير متاح
  • مجموعة بيانات صغيرة نسبيًا
  • يتطلب معدل استرجاع 100%
IVF_FLAT غير متاح
  • استعلام عالي السرعة
  • يتطلب معدل استرجاع عالٍ قدر الإمكان
IVF_SQ8 الفهرس القائم على التكميم
  • استعلام عالي السرعة للغاية
  • موارد ذاكرة محدودة
  • يقبل مساومة طفيفة في معدل الاستدعاء
IVF_PQ الفهرس المستند إلى التقدير الكمي
  • استعلام عالي السرعة
  • موارد ذاكرة محدودة
  • يقبل تنازلات طفيفة في معدل الاسترجاع
HNSW فهرس قائم على الرسم البياني
  • استعلام عالي السرعة للغاية
  • يتطلب معدل استرجاع عالٍ قدر الإمكان
  • موارد ذاكرة كبيرة
HNSW_SQ فهرس قائم على القياس الكمي
  • استعلام عالي السرعة للغاية
  • موارد ذاكرة محدودة
  • يقبل تنازلاً بسيطاً في معدل الاسترجاع
HNSW_PQ الفهرس المستند إلى القياس الكمي
  • استعلام متوسط السرعة
  • موارد ذاكرة محدودة للغاية
  • يقبل تنازلات طفيفة في معدل الاسترجاع
HNSW_PRQ الفهرس المستند إلى القياس الكمي
  • استعلام متوسط السرعة
  • موارد ذاكرة محدودة للغاية
  • يقبل تنازلات طفيفة في معدل الاسترجاع
SCANN فهرس قائم على تحديد الكميات
  • استعلام عالي السرعة للغاية
  • يتطلب معدل استرجاع عالٍ قدر الإمكان
  • موارد ذاكرة كبيرة
الفهرس المدعوم التصنيف السيناريو
BIN_FLAT فهرس قائم على التحويل الكمي
  • يعتمد على مجموعات بيانات صغيرة نسبياً.
  • يتطلب دقة مثالية.
  • لا ينطبق أي ضغط.
  • يضمن نتائج بحث دقيقة.
BIN_IVF_FLAT فهرس قائم على التكميم
  • استعلام عالي السرعة
  • يتطلب معدل استرجاع عالٍ قدر الإمكان
الفهرس المدعوم التصنيف السيناريو
الفهرس_المقلوب_المتفرق فهرس مقلوب
  • يعتمد على مجموعات بيانات صغيرة نسبيًا.
  • يتطلب معدل استرجاع 100%.

FLAT

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

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

  • معلمات البحث

    المعلمةالوصفالنطاق
    metric_type[اختياري] مقياس المسافة المختار.انظر المقاييس المدعومة.

IVF_FLAT

يقسم IVF_FLAT بيانات المتجهات إلى nlist وحدات عنقودية، ثم يقارن المسافات بين متجه الإدخال الهدف ومركز كل مجموعة. اعتمادًا على عدد المجموعات التي تم تعيين النظام للاستعلام عنها (nprobe)، يتم إرجاع نتائج بحث التشابه بناءً على المقارنات بين المدخلات المستهدفة والمتجهات في المجموعة (المجموعات) الأكثر تشابهًا فقط - مما يقلل وقت الاستعلام بشكل كبير.

من خلال ضبط nprobe ، يمكن إيجاد توازن مثالي بين الدقة والسرعة لسيناريو معين. تُظهر نتائج اختبار أداء IVF_FLAT أن وقت الاستعلام يزداد بشكل حاد مع زيادة عدد متجهات المدخلات المستهدفة (nq)، وعدد المجموعات المطلوب البحث عنها (nprobe).

إن IVF_FLAT هو فهرس IVF_FLAT الأساسي، والبيانات المشفرة المخزنة في كل وحدة متسقة مع البيانات الأصلية.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاقالقيمة الافتراضية
    nlistعدد وحدات المجموعة[1, 65536]128
  • معلمات البحث

    • بحث مشترك

      المعلمةالوصفالنطاقالقيمة الافتراضية
      nprobeعدد الوحدات المطلوب الاستعلام عنها[1، ن ليست]8
    • بحث النطاق

      المعلمةالوصفالنطاقالقيمة الافتراضية
      max_empty_result_bucketsالحد الأقصى لعدد الدلاء التي لا ترجع أي نتائج بحث.
      هذه معلمة بحث نطاق وتنهي عملية البحث عندما يصل عدد الدلاء الفارغة المتتالية إلى القيمة المحددة.
      يمكن أن تؤدي زيادة هذه القيمة إلى تحسين معدل الاستدعاء على حساب زيادة وقت البحث.
      [1, 65535]2

IVF_SQ8

لا يقوم IVF_FFLAT بإجراء أي ضغط، لذا فإن ملفات الفهرس التي ينتجها تكون تقريبًا بنفس حجم بيانات المتجه الأصلية غير المفهرسة. على سبيل المثال، إذا كان حجم مجموعة بيانات SIFT 1B الأصلية 476 جيجابايت، فإن ملفات فهرس IVF_SQ8_FLAT الخاصة بها ستكون أصغر قليلاً (حوالي 470 جيجابايت). سيؤدي تحميل جميع ملفات الفهرس في الذاكرة إلى استهلاك 470 جيجابايت من مساحة التخزين.

عندما تكون موارد ذاكرة القرص أو وحدة المعالجة المركزية أو وحدة معالجة الرسومات محدودة، فإن IVF_SQ8 هو خيار أفضل من IVF_FLAT. يمكن لنوع الفهرس هذا تحويل كل FLOAT (4 بايت) إلى UINT8 (1 بايت) عن طريق إجراء التكميم الكمي Scalar Quantization (SQ). يقلل هذا من استهلاك القرص ووحدة المعالجة المركزية وذاكرة وحدة معالجة الرسومات بنسبة 70-75%. بالنسبة لمجموعة بيانات SIFT 1B، تتطلب ملفات فهرس IVF_SQ8 مساحة تخزين 140 جيجابايت فقط.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاق
    nlistعدد وحدات التجميع[1, 65536]
  • معلمات البحث

    • بحث مشترك

      المعلمةالوصفالنطاقالقيمة الافتراضية
      nprobeعدد الوحدات المطلوب الاستعلام عنها[1، ن ليست]8
    • بحث النطاق

      المعلمةالوصفالنطاقالقيمة الافتراضية
      max_empty_result_bucketsالحد الأقصى لعدد الدلاء التي لا ترجع أي نتائج بحث.
      هذه معلمة بحث نطاق وتنهي عملية البحث عندما يصل عدد الدلاء الفارغة المتتالية إلى القيمة المحددة.
      يمكن أن تؤدي زيادة هذه القيمة إلى تحسين معدل الاستدعاء على حساب زيادة وقت البحث.
      [1, 65535]2

IVF_PQ

PQ (التكميم الكمي للمنتج) تحلل بشكل موحد الفضاء المتجه الأصلي عالي الأبعاد إلى نواتج ديكارتية من m مساحات متجهة منخفضة الأبعاد، ثم تقوم بتكميم المساحات المتجهة منخفضة الأبعاد المتحللة. وبدلاً من حساب المسافات بين المتجه الهدف ومركز جميع الوحدات، يتيح التكميم الكمي للمنتج حساب المسافات بين المتجه الهدف ومركز التجميع لكل فضاء منخفض الأبعاد ويقلل بشكل كبير من تعقيد الوقت وتعقيد المساحة للخوارزمية.

يقوم IVF_PQ بإجراء تجميع فهرس IVF قبل تكميم حاصل ضرب المتجهات. ملف الفهرس الخاص به أصغر من IVF_SQ8، لكنه يتسبب أيضًا في فقدان الدقة أثناء البحث عن المتجهات.

تختلف معلمات بناء الفهرس ومعلمات البحث باختلاف توزيع Milvus. حدد توزيع Milvus الخاص بك أولاً.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاق
    nlistعدد وحدات الكتلة[1, 65536]
    mعدد عوامل تكميم المنتجdim mod m == 0
    nbits[اختياري] عدد البتات التي يتم تخزين كل متجه منخفض الأبعاد فيها.[1، 64] (8 افتراضيًا)
  • معلمات البحث

    • بحث مشترك

      المعلمةالوصفالنطاقالقيمة الافتراضية
      nprobeعدد الوحدات المطلوب الاستعلام عنها[1، ن ليست]8
    • بحث النطاق

      المعلمةالوصفالنطاقالقيمة الافتراضية
      max_empty_result_bucketsالحد الأقصى لعدد الدلاء التي لا ترجع أي نتائج بحث.
      هذه معلمة بحث نطاق وتنهي عملية البحث عندما يصل عدد الدلاء الفارغة المتتالية إلى القيمة المحددة.
      يمكن أن تؤدي زيادة هذه القيمة إلى تحسين معدل الاستدعاء على حساب زيادة وقت البحث.
      [1, 65535]2

SCANN

يشبه ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (ScaNN (Scalable Nearest Neighbours) يشبه IVF_PQ من حيث تجميع المتجهات وتكميم المنتج. ما يجعلها مختلفة يكمن في تفاصيل تنفيذ تكميم المنتج واستخدام SIMD (أحادي التعليمات / متعدد البيانات) للحساب الفعال.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاق
    nlistعدد وحدات الكتلة[1, 65536]
    with_raw_dataما إذا كان سيتم تضمين البيانات الأولية في الفهرسTrue أو False. الافتراضي إلى True.

    على عكس IVF_PQ، تنطبق القيم الافتراضية على m و nbits لتحسين الأداء.

  • معلمات البحث

    • البحث الشائع

      المعلمةالوصفالنطاقالقيمة الافتراضية
      nprobeعدد الوحدات المطلوب الاستعلام عنها[1، nlist]
      reorder_kعدد الوحدات المرشحة للاستعلام عنها[top_k ، ∞]top_k
    • نطاق البحث

      المعلمةالوصفالنطاقالقيمة الافتراضية
      max_empty_result_bucketsالحد الأقصى لعدد الدلاء التي لا ترجع أي نتائج بحث.
      هذه معلمة بحث نطاق وتنهي عملية البحث عندما يصل عدد الدلاء الفارغة المتتالية إلى القيمة المحددة.
      يمكن أن تؤدي زيادة هذه القيمة إلى تحسين معدل الاستدعاء على حساب زيادة وقت البحث.
      [1, 65535]2

HNSW

HNSW (الرسم البياني الهرمي للعالم الصغير القابل للملاحة) هي خوارزمية فهرسة قائمة على الرسم البياني. وهي تبني بنية تنقل متعددة الطبقات للصورة وفقًا لقواعد معينة. في هذا الهيكل، تكون الطبقات العليا أكثر تناثرًا والمسافات بين العقد أبعد؛ أما الطبقات السفلى فهي أكثر كثافة والمسافات بين العقد أقرب. يبدأ البحث من الطبقة العليا، ويعثر على العقدة الأقرب إلى الهدف في هذه الطبقة، ثم يدخل إلى الطبقة التالية لبدء بحث آخر. بعد عدة تكرارات، يمكن أن يقترب بسرعة من الموضع المستهدف.

من أجل تحسين الأداء، يحدّ HNSW من الحد الأقصى لدرجة العقد في كل طبقة من الرسم البياني إلى M. بالإضافة إلى ذلك، يمكنك استخدام efConstruction (عند بناء الفهرس) أو ef (عند البحث عن الأهداف) لتحديد نطاق بحث.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاقالقيمة الافتراضية
    MM تحدد الحد الأقصى لعدد الاتصالات الصادرة في الرسم البياني. يؤدي ارتفاع M إلى دقة أعلى/وقت تشغيل أعلى عند بناء ef/efConstruction ثابت.[2, 2048]لا يوجد
    efConstructionيتحكم ef_construction في سرعة البحث عن الفهرس/سرعة البناء. قد تؤدي زيادة معلمة efConstruction إلى تحسين جودة الفهرس، ولكنها تميل أيضًا إلى إطالة وقت الفهرسة.[1، int_max]لا يوجد
  • معلمات البحث

    المعلمةالوصفالنطاقالقيمة الافتراضية
    efمعلمة تتحكم في مفاضلة وقت/دقة البحث. يؤدي ارتفاع ef إلى بحث أكثر دقة ولكن أبطأ.[top_k ، int_max]لا يوجد

HNSW_SQ

التكمية الكمية العددية (SQ) هي تقنية تُستخدم لتجزئة بيانات الفاصلة العائمة إلى مجموعة محدودة من القيم بناءً على مقدارها. على سبيل المثال، يمثل SQ6 التكميم الكمي إلى (2^6 = 64) قيم منفصلة، حيث يتم ترميز كل رقم عائم باستخدام 6 بت. وبالمثل، يقوم SQ8 بتكميم البيانات إلى (2 ^ 8 = 256) قيم منفصلة، حيث يتم تمثيل كل رقم عائم ب 8 بتات. يقلل هذا التكميم من بصمة الذاكرة مع الحفاظ على البنية الأساسية للبيانات من أجل معالجة فعالة.

وبالاقتران مع SQ، يوفر HNSW_SQ مفاضلة يمكن التحكم فيها بين حجم الفهرس والدقة، مع الحفاظ على أداء استعلام عالٍ في الثانية (QPS). وبالمقارنة مع HNSW القياسي، فإنه يؤدي إلى زيادة متواضعة في وقت بناء الفهرس.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاقالقيمة الافتراضية
    MM تحدد الحد الأقصى لعدد الاتصالات الصادرة في الرسم البياني. يؤدي ارتفاع M إلى دقة أعلى/وقت تشغيل أعلى عند بناء ef/efConstruction ثابت.[2, 2048]لا يوجد
    efConstructionيتحكم ef_construction في سرعة البحث عن الفهرس/سرعة البناء. قد تؤدي زيادة معلمة efConstruction إلى تحسين جودة الفهرس، ولكنها تميل أيضًا إلى إطالة وقت الفهرسة.[1، int_max]لا شيء
    sq_typeنوع الكميات العددية.SQ6،SQ8 ، BF16, FP16SQ8
    refineما إذا كان يتم حجز البيانات المكررة أثناء إنشاء الفهرس.true, falsefalse
    refine_typeنوع بيانات الفهرس المنقح.SQ6, SQ8, BF16, FP16, FP32لا يوجد
  • معلمات البحث

    المعلمةالوصفالنطاقالقيمة الافتراضية
    efمعلمة تتحكم في مفاضلة وقت/دقة البحث. يؤدي ارتفاع ef إلى بحث أكثر دقة ولكن أبطأ.[top_k ، int_max]لا يوجد
    refine_kعامل التكبير للتكرير مقارنة بـ k.[ 1, float_max]1

HNSW_PQ

تتمثل الفكرة الأساسية لـ PQ في تقسيم المتجه إلى m متجهات فرعية، كل منها سيجد 2^{nbits} مركزيات على أساس kmeans، وسيختار كل متجه فرعي أقرب متجه فرعي كمتجه فرعي تقريبي له. ثم نقوم بتسجيل جميع المئويات، بحيث يمكن ترميز كل متجه فرعي على أنه nbits ، ويمكن ترميز متجه عائم طوله dim على أنه م ⋅ nbits بت.

وبالاقتران مع PQ، يوفر HNSW_PQ مفاضلة يمكن التحكم فيها بين حجم الفهرس والدقة، ولكن لديه قيمة QPS أقل ومعدل استرجاع أعلى من HNSW_SQ لنفس معدل الضغط. بالمقارنة مع HNSW_SQ، يستغرق بناء الفهرس وقتًا أطول.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاقالقيمة الافتراضية
    MM تحدد الحد الأقصى لعدد الاتصالات الصادرة في الرسم البياني. يؤدي ارتفاع M إلى دقة أعلى/وقت تشغيل أعلى عند بناء ef/efConstruction ثابت.[2, 2048]لا يوجد
    efConstructionيتحكم ef_construction في سرعة البحث عن الفهرس/سرعة البناء. قد تؤدي زيادة معلمة efConstruction إلى تحسين جودة الفهرس، ولكنها تميل أيضًا إلى إطالة وقت الفهرسة.[1، int_max]لا يوجد
    mعدد مجموعات المتجهات الفرعية المراد تقسيم المتجه إليها.[1, 65536]32
    nbitsعدد البتات التي يتم تقسيم كل مجموعة من المتجهات الفرعية إليها.[1, 24]8
    refineما إذا كان يتم حجز البيانات المكررة أثناء بناء الفهرس.true, falsefalse
    refine_typeنوع بيانات الفهرس المنقح.SQ6، SQ8 ، BF16 ، ، FP16, FP32لا يوجد
  • معلمات البحث

    المعلمةالوصفالنطاقالقيمة الافتراضية
    efمعلمة تتحكم في مفاضلة وقت/دقة البحث. يؤدي ارتفاع ef إلى بحث أكثر دقة ولكن أبطأ.[top_k ، int_max]لا يوجد
    refine_kعامل التكبير للتكرير مقارنة بـ k.[ 1, float_max]1

HNSW_PRQ

PRQ مشابه لـ PQ، ويقسم المتجه أيضًا إلى m مجموعات. سيتم ترميز كل متجه فرعي على أنه nbits. بعد إكمال تكميم pq، سيحسب المتجه المتبقي بين المتجه والمتجه المكمم pq، ويطبق تكميم pq على المتجه المتبقي. سيتم إجراء ما مجموعه nrq عملية تكميم pq كاملة، لذا سيتم ترميز متجه عائم طوله dim على هيئة m ⋅ nbits ⋅ nrq bits.

يوفر HNSW_PRQ، بالاقتران مع مُكوِّن الكمية المتبقية من المنتج (PRQ)، مفاضلة أعلى يمكن التحكم فيها بين حجم المؤشر والدقة. لديه قيمة QPS مكافئة تقريبًا ومعدل استرجاع أعلى من HNSW_PQ لنفس معدل الضغط. بالمقارنة مع HNSW_PQ، قد يزيد وقت بناء الفهرس عدة مرات.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاقالقيمة الافتراضية
    MM تحدد الحد الأقصى لعدد الاتصالات الصادرة في الرسم البياني. يؤدي ارتفاع M إلى دقة أعلى/وقت تشغيل أعلى عند بناء ef/efConstruction ثابت.[2, 2048]لا يوجد
    efConstructionيتحكم ef_construction في سرعة البحث عن الفهرس/سرعة البناء. قد تؤدي زيادة معلمة efConstruction إلى تحسين جودة الفهرس، ولكنها تميل أيضًا إلى إطالة وقت الفهرسة.[1، int_max]لا يوجد
    mعدد مجموعات المتجهات الفرعية المراد تقسيم المتجه إليها.[1, 65536]32
    nbitsعدد البتات التي يتم تقسيم كل مجموعة من المتجهات الفرعية إليها.[1, 24]8
    nrqعدد المتجهات الفرعية المتبقية.[1, 16]2
    refineما إذا كانت البيانات المكررة محجوزة أثناء بناء الفهرس.true, falsefalse
    refine_typeنوع بيانات الفهرس المنقح.SQ6، SQ8 ، BF16 ، ، FP16, FP32لا يوجد
  • معلمات البحث

    المعلمةالوصفالنطاقالقيمة الافتراضية
    efمعلمة تتحكم في مفاضلة وقت/دقة البحث. يؤدي ارتفاع ef إلى بحث أكثر دقة ولكن أبطأ.[top_k ، int_max]لا يوجد
    refine_kعامل التكبير للتكرير مقارنة بـ k.[ 1, float_max]1

BIN_FLAT

هذا المؤشر هو نفسه تمامًا مثل FLAT باستثناء أنه يمكن استخدامه فقط للتضمينات الثنائية.

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

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

  • معلمات البحث

    المعلمةالوصفالنطاق
    metric_type[اختياري] مقياس المسافة المختار.انظر المقاييس المدعومة.

BIN_IVF_FLAT

هذا المؤشر مماثل تمامًا لـ IVF_FLAT باستثناء أنه لا يمكن استخدامه إلا للتضمينات الثنائية.

يقسم BIN_IVF_FLAT بيانات المتجه إلى nlist وحدة عنقودية، ثم يقارن المسافات بين متجه الإدخال الهدف ومركز كل مجموعة. واعتمادًا على عدد المجموعات التي تم تعيين النظام للاستعلام عنها (nprobe)، يتم إرجاع نتائج البحث عن التشابه بناءً على المقارنات بين المدخلات المستهدفة والمتجهات في المجموعة (المجموعات) الأكثر تشابهًا فقط - مما يقلل وقت الاستعلام بشكل كبير.

من خلال ضبط nprobe ، يمكن إيجاد توازن مثالي بين الدقة والسرعة لسيناريو معين. يزداد وقت الاستعلام بشكل حاد مع زيادة عدد متجهات المدخلات المستهدفة (nq)، وعدد المجموعات المطلوب البحث عنها (nprobe).

BIN_IVF_FLAT هو فهرس BIN_IVF الأساسي، وتكون البيانات المشفرة المخزنة في كل وحدة متسقة مع البيانات الأصلية.

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاق
    nlistعدد وحدات المجموعة[1, 65536]
  • معلمات البحث

    • بحث مشترك

      المعلمةالوصفالنطاقالقيمة الافتراضية
      nprobeعدد الوحدات المطلوب الاستعلام عنها[1، ن ليست]8
    • بحث النطاق

      المعلمةالوصفالنطاقالقيمة الافتراضية
      max_empty_result_bucketsالحد الأقصى لعدد الدلاء التي لا ترجع أي نتائج بحث.
      هذه معلمة بحث نطاق وتنهي عملية البحث عندما يصل عدد الدلاء الفارغة المتتالية إلى القيمة المحددة.
      يمكن أن تؤدي زيادة هذه القيمة إلى تحسين معدل الاستدعاء على حساب زيادة وقت البحث.
      [1, 65535]2

متناثر_مقلوب_الفهرس

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

  • معلمات بناء الفهرس

    المعلمةالوصفالنطاق
    inverted_index_algoالخوارزمية المستخدمة لبناء الفهرس والاستعلام عنه. لمزيد من التفاصيل، راجع متجه متناثر.DAAT_MAXSCORE (افتراضي)، DAAT_WAND, TAAT_NAIVE

    تم إهمال المعلمة drop_ratio_build منذ الإصدار 2.5.4 من ميلفوس (Milvus v2.5.4)، والتي لا يزال من الممكن قبولها أثناء بناء الفهرس، ولكن لن يكون لها تأثير فعلي على الفهرس.

  • معلمات البحث

    المعلمةالوصفالنطاق
    drop_ratio_searchنسبة قيم المتجهات الصغيرة التي يتم استبعادها أثناء عملية البحث. يسمح هذا الخيار بضبط عملية البحث بشكل دقيق من خلال تحديد نسبة أصغر القيم في متجه الاستعلام التي يجب تجاهلها. يساعد في تحقيق التوازن بين دقة البحث والأداء. كلما قلت القيمة المحددة ل drop_ratio_search ، قلت مساهمة هذه القيم الصغيرة في النتيجة النهائية. من خلال تجاهل بعض القيم الصغيرة، يمكن تحسين أداء البحث بأقل تأثير على الدقة.[0, 1]

الأسئلة الشائعة

ما الفرق بين مؤشر FLAT ومؤشر IVF_FLAT؟

يقسّم الفهرس IVF_FLAT مساحة المتجه إلى nlist مجموعة. إذا احتفظت بالقيمة الافتراضية nlist كـ 16384، يقارن Milvus المسافات بين المتجه الهدف ومراكز جميع المجموعات الـ 16384 للحصول على nprobe أقرب مجموعات. ثم يقارن Milvus المسافات بين المتجه الهدف والمتجهات في المجموعات المحددة للحصول على أقرب المتجهات. على عكس IVF_FLAT، يقارن FLAT مباشرةً المسافات بين المتجه الهدف وكل متجه.

لذلك، عندما يكون العدد الإجمالي للمتجهات يساوي تقريبًا nlist ، فإن IVF_FLAT و FLAT لا يوجد فرق كبير في طريقة الحساب المطلوبة وأداء البحث. ولكن مع زيادة عدد المتجهات إلى ضعفين أو ثلاثة أضعاف أو ن ضعف nlist ، يبدأ فهرس IVF_FLAT في إظهار مزايا أكبر بشكل متزايد.

راجع كيفية اختيار فهرس في ميلفوس لمزيد من المعلومات.

ما التالي

جرب Managed Milvus مجاناً

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

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

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