استراتيجية التضمين: all-mpnet-base-v2 للبحث الدلالي

تشرح هذه المقالة كيف نستخدم نموذج محول الجملة all-mpnet-base-v2 لتشغيل البحث الدلالي عبر خط أنابيب تحسين محركات البحث (SEO) الخاص بنا.

المشكلة: مطابقة الاستعلامات مع المنتجات

عندما يبحث المستخدمون عن "mini pc" أو "small computer"، فإنهم يقصدون الشيء نفسه على الرغم من عدم مشاركة أي كلمات رئيسية. فشل مطابقة الكلمات الرئيسية التقليدية هنا. نحتاج إلى تضمينات دلالية - تمثيلات متجهية كثيفة تلتقط المعنى، وليس فقط الكلمات.

يعالج خط أنابيب تحسين محركات البحث الخاص بنا أكثر من 65,000 استعلام بحث ويحتاج إلى:

  • تجميع الاستعلامات المتشابهة معًا لصفحات الاستعلامات

  • مطابقة الاستعلامات مع المنتجات بناءً على المعنى

  • العثور على عمليات بحث ذات صلة

  • توسيع تعيينات العبارات إلى المرشحات (الفلاتر)

النموذج: all-mpnet-base-v2

نستخدم all-mpnet-base-v2، وهو نموذج محول جملة يقوم بما يلي:

  • يُخرج متجهات ذات أبعاد 768

  • تم تدريبه على أكثر من مليار زوج من الجمل

  • يتعامل مع تسلسلات تصل إلى 384 رمزًا (توكن)

يقوم النموذج بتعيين النص إلى فضاء متجهي كثيف حيث يكون للنص الدلالي المتشابه تشابه جيب التمام عالٍ.

كيف نستخدمه

1. تضمين الاستعلامات

نقوم بتضمين جميع استعلامات البحث في متجهات ذات أبعاد 768:

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-mpnet-base-v2")
embeddings = model.encode(queries)

يصبح كل استعلام متجهًا من 768 رقمًا عشريًا (3,072 بايت). بالنسبة لـ 65,000 استعلام، هذا يمثل حوالي 190 ميجابايت من التضمينات.

2. تجميع الاستعلامات

نقوم بتجميع الاستعلامات حسب التشابه:

  • نختار أهم 1,000 استعلام حسب حركة المرور كمراكز للتجميع

  • نحسب تشابه جيب التمام بين جميع الـ 65 ألف استعلام وهذه المراكز الألف

  • تنضم الاستعلامات ذات التشابه ≥ 0.85 إلى ذلك التجميع

  • تصبح الاستعلامات غير المجمعة تجميعات فردية (Singleton)

هذا ينشئ صفحات استعلام حيث تمثل كل صفحة مجموعة من عمليات البحث المتشابهة.

راجع خوارزمية تجميع الاستعلامات للحصول على التفاصيل.

3. مطابقة المنتجات

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

راجع خوارزمية مطابقة المنتجات للحصول على التفاصيل.

4. توسيع تعيينات العبارات

نستخدم التضمينات للعثور على عبارات متشابهة لاستخراج المرشحات (الفلاتر). على سبيل المثال، إذا كانت "mini pc" تُرسم إلى مرشح حجم، يمكننا اكتشاف أن "small computer" يجب أن تفعل ذلك أيضًا.

راجع توسيع تعيين العبارات للحصول على التفاصيل.

التخزين: مصفوفات NumPy

نقوم بتخزين التضمينات كملفات NumPy بصيغة .npy:

import numpy as np

# الحفظ
np.save("embeddings.npy", embeddings)

# التحميل (الوصول المباشر للذاكرة - Memory Mapped)
embeddings = np.load("embeddings.npy", mmap_mode='r')

لماذا NumPy؟

  • تحميل سريع باستخدام الوصول المباشر للذاكرة

  • عمليات مصفوفة أصلية لحساب التشابه

  • تنسيق ثنائي مضغوط (~190 ميجابايت لـ 65 ألف استعلام)

التضمين التدريجي

نحن لا نقوم بإعادة تضمين جميع الاستعلامات في كل مرة. يقوم التضمين التدريجي لدينا بما يلي:

  1. تحميل التضمينات الحالية
  2. مقارنة مفاتيح الاستعلام (النص + البيانات الوصفية)
  3. تضمين الاستعلامات الجديدة أو المتغيرة فقط
  4. إلحاقها بالمصفوفة الحالية

يقلل هذا من وقت المعالجة بشكل كبير عندما تتغير استعلامات قليلة فقط.

بنية الخادم المتعدد

يتم استخدام التضمينات عبر خوادم متعددة:

  1. خط أنابيب الدُفعات (Batch): يُنشئ التضمينات من الاستعلامات والمنتجات
  2. خدمة البحث: تحمّل التضمينات لواجهة برمجة التطبيقات (API) للبحث ذي الصلة
  3. خادم الويب الرئيسي: يستخدم التضمينات لمطابقة المنتجات

يختلف التخزين حسب الخادم:

  • ملفات NumPy: خط أنابيب الدُفعات (وصول محلي سريع)

  • Valkey RediSearch: خدمة البحث (بحث تشابه المتجهات)

راجع بنية خدمة البحث للحصول على تفاصيل تكامل Valkey.

التكامل مع خط أنابيب تحسين محركات البحث (SEO)

تشغل التضمينات خطوات متعددة في خط الأنابيب:

  1. الخطوة 0: تضمين بيانات المصدر - المنتجات، الأجزاء، المقالات
  2. الخطوة 3ب: تضمين الاستعلامات - جميع استعلامات البحث
  3. الخطوة 4: توسيع تعيينات العبارات - العثور على عبارات متشابهة
  4. الخطوة 5: تجميع الاستعلامات - التجميع في صفحات استعلام
  5. الخطوة 6: مطابقة المنتجات - مطابقة الاستعلام مع المنتج
  6. الخطوة 8: إنشاء عمليات بحث ذات صلة - العثور على استعلامات ذات صلة

راجع نظرة عامة على خط أنابيب تحسين محركات البحث للحصول على التدفق الكامل.

المراجع

وثائق النموذج

المفاهيم التقنية

مقالات ذات صلة

الملخص

نستخدم all-mpnet-base-v2 لتحويل النص إلى متجهات ذات أبعاد 768 تلتقط المعنى الدلالي. تشغل هذه التضمينات خط أنابيب تحسين محركات البحث (SEO) بأكمله:

  • تجميع الاستعلامات: تجميع 65 ألف استعلام في صفحات باستخدام عتبة تشابه 0.85

  • مطابقة المنتجات: مطابقة الاستعلامات مع المنتجات دلاليًا

  • عمليات البحث ذات الصلة: العثور على استعلامات متشابهة للتنقل

  • توسيع العبارات: اكتشاف عبارات مرشحات (فلاتر) جديدة

يتم تخزين التضمينات كمصفوفات NumPy لتحميل سريع ومعالجتها تدريجيًا لتجنب إعادة تضمين البيانات غير المتغيرة. يتم استخدام نفس التضمينات عبر خوادم متعددة عبر ملفات NumPy و Valkey RediSearch.


← العودة إلى فهرس الوثائق