في المشهد سريع التطور للتعلم المعزز بالاسترجاع (RAG)، يقع المطورون غالباً في فخ الاعتماد فقط على المتجهات الكثيفة. بينما تتفوق البحث المتجهي في الفهم الدلالي، فإنه يواجه صعوبات في مطابقة الكلمات المفتاحية بدقة، والأحرف المختصرة الخاصة، والاستعلامات الرقمية الدقيقة. بالنسبة للتطبيقات المؤسسية حيث تعد الدقة أمراً بالغ الأهمية، فإن البحث الدلالي الخالص غالباً ما يكون غير كافٍ. تكمن الحل في البحث الهجين: نهج متطور يجمع بين القوة الدلالية للبحث المتجهي والدقة المعجمية للبحث بالكلمات المفتاحية.
قيود البحث المتجهي الخالص
لفهم سبب أهمية البحث الهجين، يجب علينا أولاً الاعتراف بقيود النهج المعتمد على المتجهات فقط. تقوم المتجهات بتعيين النص إلى فضاء عالي الأبعاد حيث تتجمع المعاني المتشابهة معاً. ومع ذلك، فإن هذه الطريقة لها نقاط عمياء. على سبيل المثال، إذا بحث المستخدم عن "إيرادات الربع الثالث 2023"، فقد يعيد قاعدة بيانات المتجهات نتائج حول "الأداء المالي في أواخر عام 2023" حتى لو لم يتم ذكر الربع المحدد. وعلى العكس من ذلك، إذا بحث المستخدم عن رمز داخلي محدد مثل "SKU-8842-X"، قد يفشل البحث المتجهي تماماً لأن المعنى الدلالي لتلك السلسلة ضئيل مقارنة بفائدته كمعرف.
غالباً ما تكون بيانات المؤسسات مزيجاً من النصوص السردية غير المهيكلة والبيانات الوصفية المهيكلة والدقيقة. يجب على نظام RAG القوي التعامل مع كليهما. من خلال دمج البحث المتناثر بالكلمات المفتاحية (BM25) مع البحث المتجهي الكثيف، ننشئ خط أنابيب استرجاع يلتقط كلًا من "القصد" و"المطابقة الدقيقة".
استراتيجيات موازنة الأوزان
التحدي الأساسي في البحث الهجين هو تحديد الوزن الأمثل بين درجة المتجه ودرجة الكلمة المفتاحية. لا توجد نسبة تناسب الجميع؛ فهي تعتمد بشكل كبير على مجال بياناتك. قد تعطي قاعدة بيانات قانونية الأولوية للمصطلحات الدقيقة (وزن أعلى للكلمات المفتاحية)، بينما قد يعطي مساعد الكتابة الإبداعية الأولوية للصلة الموضوعية (وزن أعلى للمتجه).
تشمل الاستراتيجيات الشائعة ما يلي:
- دمج الرتب العكسية (RRF): هذه طريقة تجميع تجمع بين الرتب من محركات بحث مختلفة دون الحاجة إلى تطبيع صريح. إنها قوية ومستخدمة على نطاق واسع.
- الجمع الخطي: تطبيع كل من الدرجات إلى نطاق 0-1 وتطبيق مجموع مرجح:
S_final = α * S_vector + (1-α) * S_keyword. - انحدار التدرج المتفجر (Bursty Gradient Descent): تقنية متقدمة تضبط الأوزان ديناميكياً بناءً على تعقيد الاستعلام.
التطبيق العملي باستخدام بايثون
لنلقِ نظرة على مثال عملي باستخدام Elasticsearch، وهو معيار للبحث الهجين في البيئات المؤسسية. فيما يلي مقتطف بايثون يوضح كيفية تنفيذ استعلام هجين يوازن بين بحث BM25 والبحث المتجهي.
from elasticsearch import Elasticsearch
es = Elasticsearch(["http://localhost:9200"])
def hybrid_search(es_client, index_name, query_text, k=10):
"""
يقوم بإجراء بحث هجين يجمع بين الاستعلامات المتناثرة (BM25) والكثيفة (المتجه).
"""
# تحديد هيكل الاستعلام الهجين
hybrid_query = {
"query": {
"hybrid": {
"queries": [
{
"sparse": {
"query_string": query_text, # يتعامل مع مطابقة الكلمات المفتاحية
"field": "content_vector" # اضبطه بناءً على تعيينك
}
},
{
"dense_vector": {
"query_vector": generate_embedding(query_text), # دالة التضمين الخاصة بك
"k": 100,
"num_candidates": 100,
"field": "embedding"
}
}
],
# قيمة ألفا توازن بين الإشارتين.
# 0.5 نقطة بداية شائعة.
"alpha": 0.5
}
},
"size": k
}
response = es_client.search(index=index_name, body=hybrid_query)
return response["hits"]["hits"]
# الاستخدام
results = hybrid_search(es, "enterprise_docs", "Q3 financial report discrepancies")
في هذا المثال، معلمة alpha حاسمة. إذا كان مستخدموك يبحثون غالباً عن معرفات منتجات محددة، فقم بزيادة وزن الاستعلام المتناثر. إذا كانوا يبحثون عن شروحات مفاهيمية، فانحِ نحو استعلام المتجه الكثيف.
التحسين والضبط
تطبيق البحث الهجين ليس مهمة "ضبط ثم انسى". يتطلب التقييم المستمر. استخدم مجموعة اختبار محفوظة مسبقاً من الاستعلامات المصنفة مع المستندات ذات الصلة. قم بقياس مقاييس مثل MRR (متوسط الرتبة العكسية) و NDCG (الربح التراكمي الموزون المعياري) لتقييم جودة الترتيب. إذا انخفضت الدقة، فقم بضبط وزن alpha أو تطبيق تعزيز لمجالات البيانات الوصفية المحددة (على سبيل المثال، تعزيز المطابقات في عنوان المستند أعلى من المطابقات في النص).
الخاتمة
بالنسبة لتطبيقات RAG ذات الدرجة المؤسسية، لم يعد البحث الهجين اختيارياً بل أصبح ضرورياً. من خلال موازنة دقة الكلمات المفتاحية مع الفهم الدلالي، يمكن للمطورين بناء أنظمة تكون دقيقة وقوية. ابدأ بنهج متوازن، واختبر خط أنابيب الاسترجاع الخاص بك بدقة، وقم بضبط الأوزان تكرارياً لتتوافق مع خصائص بياناتك المحددة. النتيجة هي نظام ذكاء اصطناعي يفهم حقاً ما يعنيه المستخدمون وما يطلبونه بالضبط.