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

milvus-logo
LFAI

HomeBlogsبناء البحث الدلالي بسرعة فائقة

بناء البحث الدلالي بسرعة فائقة

  • Scenarios
April 19, 2021
Elizabeth Edmiston

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

كيف يمكنك جعل البحث الدلالي سريعاً؟ لن يؤدي البحث الدلالي البطيء إلى حل المشكلة.

لحسن الحظ، هذا هو نوع المشاكل التي تحب لوسيدوركس حلها. لقد اختبرنا مؤخرًا مجموعة متواضعة الحجم - تابع القراءة لمزيد من التفاصيل - نتج عنها 1500 RPS (طلب في الثانية) مقابل مجموعة من أكثر من مليون مستند، بمتوسط زمن استجابة يبلغ حوالي 40 مللي ثانية. هذه سرعة كبيرة.


لتحقيق سحر التعلم الآلي بسرعة البرق، قامت لوسِدووركس بتنفيذ البحث الدلالي باستخدام نهج البحث الدلالي المتجه الدلالي. هناك جزئين مهمين.


الجزء الأول: نموذج التعلم الآلي

أولاً، تحتاج إلى طريقة لترميز النص إلى متجه رقمي. يمكن أن يكون النص وصفاً لمنتج أو استعلام بحث مستخدم أو سؤالاً أو حتى إجابة على سؤال. يتم تدريب نموذج البحث الدلالي على ترميز النص بحيث يتم ترميز النص المشابه دلاليًا لنص آخر إلى متجهات "قريبة" عدديًا من بعضها البعض. يجب أن تكون خطوة الترميز هذه سريعة من أجل دعم آلاف أو أكثر من عمليات البحث المحتملة للعملاء أو استفسارات المستخدمين التي ترد كل ثانية.


الجزء الثاني: محرك البحث المتجه

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

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

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


دعونا نعود إلى سير عمل البحث الدلالي، بعد أن تعلمنا قليلاً عن سبب أهمية ميلفوس. يتكون البحث الدلالي من ثلاث مراحل. خلال المرحلة الأولى، يتم تحميل و/أو تدريب نموذج التعلم الآلي. بعد ذلك، تتم فهرسة البيانات في ميلفوس وسولر. المرحلة الأخيرة هي مرحلة الاستعلام، عندما يحدث البحث الفعلي. سنركز على هاتين المرحلتين الأخيرتين أدناه.


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

Lucidworks-1.png لوسيدوركس-1.png

كما هو موضح في الرسم البياني أعلاه، تبدأ مرحلة الاستعلام بشكل مشابه لمرحلة الفهرسة، فقط مع ورود الاستعلامات بدلاً من المستندات. لكل استعلام:

  1. يتم إرسال الاستعلام إلى خط أنابيب فهرس الإجابات الذكية.
  2. ثم يتم إرسال الاستعلام إلى نموذج تعلّم الآلة.
  3. يقوم نموذج تعلّم الآلة بإرجاع متجه رقمي (مشفّر من الاستعلام). مرة أخرى، يحدد نوع النموذج حجم المتجه.
  4. يتم إرسال المتجه إلى Milvus، والذي يحدد بعد ذلك أي المتجهات، في مجموعة Milvus المحددة، تتطابق بشكل أفضل مع المتجه المقدم.
  5. يُرجع ميلفوس قائمة بالمعرّفات الفريدة والمسافات المطابقة للمتجهات المحددة في الخطوة الرابعة.
  6. يتم إرسال استعلام يحتوي على تلك المعرفات والمسافات إلى Solr.
  7. ثم يقوم Solr بإرجاع قائمة مرتبة من المستندات المرتبطة بتلك المعرفات.


اختبار المقياس

من أجل إثبات أن تدفقات البحث الدلالي لدينا تعمل بالكفاءة التي نطلبها لعملائنا، أجرينا اختبارات النطاق باستخدام نصوص Gatling النصية على منصة Google Cloud Platform باستخدام مجموعة Fusion مع ثماني نسخ متماثلة من نموذج تعلم الآلة وثماني نسخ متماثلة من خدمة الاستعلام ومثيل واحد من Milvus. تم إجراء الاختبارات باستخدام فهرسي Milvus FLAT وHNSW. يتمتع فهرس FLAT باسترجاع 100%، ولكنه أقل كفاءة - إلا عندما تكون مجموعات البيانات صغيرة. لا يزال فهرس HNSW (الرسم البياني الهرمي للعالم الصغير) يتمتع بنتائج عالية الجودة وقد حسّن الأداء على مجموعات البيانات الأكبر حجمًا.

لننتقل إلى بعض الأرقام من مثال حديث أجريناه:

Lucidworks-2.png Lucidworks-2.png

Lucidworks-3.png Lucidworks-3.png

Lucidworks-4.png Lucidworks-4.png


الشروع في العمل

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

تمت إعادة نشر هذه المدونة من: https://lucidworks.com/post/how-to-build-fast-semantic-search/?utm_campaign=Oktopost-Blog+Posts&utm_medium=organic_social&utm_source=linkedin

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    استمر في القراءة