الفصل 5 — هندسة خط الاسترجاع
المقالة الخامسة من الجولة الفصلية في LLM Primer III: Enhancing Enterprise AI with RAG. بحثٌ شعاعي واحد هو حيث تَتوقف مُعظم النماذج الأولية، وحيث تَبدأ مُعظم إخفاقات الإنتاج. يَسلك الفصلُ المسار الكامل من استعلامٍ نصف-مُشكَّل إلى المرشَّحين النهائيين الذين يَصلون إلى المُولِّد — ولماذا توجد كل مرحلة.
لماذا يوجد هذا الفصل
أنتجت الفصول من 2 إلى 4 مخزناً شعاعياً: وثائق مُحلَّلة، مُقطَّعة بعناية، مُضمَّنة، مُفهرَسة. الخطوة الساذجة التالية تَضمين استعلام المستخدم، تَشغيل بحث الجار الأقرب، وتَغذية أعلى-k إلى المُولِّد. لمكتباتٍ تافهة هذا يَعمل. للإنتاج لا يَعمل تقريباً. تَصل الاستعلامات ناقصة المواصفات ومليئة بأسماء خاصةٍ لم يَرها المُضمِّن قط؛ وتَحوي المكتبات شبه-مُكرَّراتٍ تَزدحم في أعلى أيِّ ترتيبٍ منفرد؛ والمُعرِّفات والشيفرات تَحمل معنىً يُسوِّيه المُضمِّن بعيداً.
الفصل 5 عن البنية التي تَتقارب عليها الأنظمة الناضجة. ليس قِطعةً بحثية. هو الشكلُ الذي تُشغِّله الفرق فعلاً حين يَتعين أن يَصمد الاستدعاء والدقة وزمن الاستجابة جميعاً معاً.
5.1 لماذا لا يَكفي بحثٌ شعاعي واحد
الاسترجاع الكثيف يُعيد كتابة اقتصاديات البحث، لكن ما يَجعل التضمينات نافعةً — التَّسامح مع إعادة الصياغة — يَجعلها هشة أيضاً. الرموز الرقمية، استشهادات المواد، رموز المعاملات، أرقام القِطع — أيُّ شيءٍ تكون فيه الصيغة السطحية هي المعنى — تَهبط في زوايا عشوائية من فضاء الأشعة. BM25، الذي ببساطةٍ يَعد ما هو موجود، لا مشكلة له.
الطريقتان تَفشلان على مُدخلاتٍ مُنفصلة. تلك الملاحظة الواحدة هي القضية كاملةً للاسترجاع الهجين، وهي المبدأ الأول الذي يَستند عليه الفصل. والباقي يَتبع: إذا كان لا مُسترجِعٌ واحد كافياً، فعلى الخط دمج عدة، ودمج تَرتيباتها بصدق، وصرف حسابٍ حقيقي في تَمريرٍ دقيق نهائي، وتَهيئة الاستعلام قبل أن يَبدأ شيءٌ من ذلك.
5.2 البحث الهجين: أشعة كثيفة وBM25 متوازياً
فهرسان على القِطع نفسها: فهرس HNSW أو IVF كثيف من المُضمِّن، وفهرس مَقلوب نادر من BM25 أو SPLADE. يُستعلَم الاثنان، يُعيدان قائمتَين مُرتَّبتَين، وخطُّ الاستيعاب يَكتب لكليهما في تَسلسل. BM25 ليس إرثاً؛ هو دالَّة ترتيب الكلمات المفتاحية الأوثق التي صُنعت، خفيفةُ المعاملات لا عديمتها، وعبر مجموعة معايير BEIR يَتفوق الاسترجاع الهجين على الكثيف-فقط في غالبية المهام خارج النطاق. تَتسع الفجوة كلما انجرف النطاق بعيداً عن توزيع تَدريب المُضمِّن.
نمطُ فشلٍ بعينه يَستحق التَّسمية: على BM25 أن يُمَيِّز الرموز صحيحاً لكل لغةٍ ضمن النطاق. شَحنُ مكتبةٍ يابانية مع المُحلِّل الإنكليزي الافتراضي يَجعل ساق BM25 ضوضاءَ خالصة بصمت، ويبدو النظام يَعمل فقط لأن الساق الكثيفة تَفعل كل الرَّفع. والاسترجاع النادر تَطور هو الآخر — نماذج SPLADE المُتعلَّمة النادرة تَرث بساطة BM25 التشغيلية مع سلوك استدعاء المُسترجِع الكثيف.
5.3 دمج الرُّتب التبادلي وإعادة الترتيب بالمُرمِّز المتقاطع
الطريقة الساذجة لدمج قائمتَين مُرتَّبتَين هي جَمع درجاتها. هذا لا يَعمل — مقادير BM25 غير محدودة وتَعتمد على المكتبة؛ ودرجات تشابه جيب التمام تَقع تقريباً في [-1، 1]. ليستا قابلتَين للقياس المشترك، وأيُّ ترجيحٍ ثابت مشكلةُ ضبطٍ دائمة. دمج الرُّتب التبادلي يَتجاوز المشكلة بالتَّخلص من الدرجات. لكل مرشَّح، الدرجة المَدموجة هي مجموع 1/(k + rank) عبر المُسترجِعات، مع k = 60. الشكل حادٌّ عند القمة ومنبسطٌ في الذيل، النتائج غير حساسة لـ k، والخوارزمية تَتركَّب طبيعياً مع توسعة الاستعلامات المتعددة — ست قوائم من ثلاث صياغات إعادةٍ على مُسترجِعَين تَنذمج بسطر الشيفرة نفسه.
RRF لا يَستطيع إنقاذ وثيقةٍ لم يُظهرها أيٌّ من المُسترجِعَين؛ تلك مَهمة إعادة الصياغة. ما يَفعله، رخيصاً وبلا فرط معاملات، هو التَّوفيق بين مُسترجِعَين يُرقَّى أحدهما ويُستبدل مستقلاً عن الآخر — خطٌّ لا يَتطلب دمجه إعادة ضبطٍ حين تَتغير ساق هو دراماتيكياً أرخصُ صيانة.
المُرمِّزات الثنائية التي أَنتجت تلك الترتيبات لم تَر الاستعلام والقطعة معاً قط. أما المُرمِّز المتقاطع لإعادة الترتيب فيَفعل — يَسلسل الزوج ويُمررهما معاً عبر مُحوِّلٍ مَضبوطٍ دقيقاً لإخراج درجة ملاءمة. كل رأس انتباهٍ يَرى الجانبَين معاً، والنموذج يَستطيع الانتباه إلى عبارةٍ بعينها في الاستعلام ينبغي مُطابقتها مع عبارةٍ بعينها في القطعة. لا يُمكن حسابه مُسبقاً، فهو أبطأ من أن يكون مُسترجِعاً أولياً، لكنه مثاليٌّ على 50 إلى 200 مرشَّحاً يُظهرهم الاسترجاع الهجين. الرفع على NDCG@10 عادةً 5 إلى 15 نقطة — أكبر من تَبديل نماذج التضمين داخل عائلة المُرمِّز الثنائي.
5.4 فهم الاستعلام: إعادة الصياغة، التوسعة، HyDE
افترض كل ما سَبق أن الاستعلام مُشكَّلٌ حسناً. نادراً ما يكون كذلك. مستخدم مكتب المُساعدة يَكتب «إجازة»؛ والسياسة تقول «استحقاق إجازةٍ سنوية». مُطوِّر يَكتب «المصادقة تَفشل 500»؛ ودليل التشغيل يَصف «خدمة المصادقة تُعيد HTTP 500 مع فشل تَحقق الرمز». العمل لازمُ على جهة الاستعلام. ثلاثة أنماط تَتركَّب: إعادة صياغة الاستعلام ليكون مستقلاً (حل الضمائر، توسعة المُختصرات، تَبديل اللغة لتُلائم المكتبة)؛ وتوسعة إلى حُفنةٍ من إعادات الصياغة تَتمدد كلٌّ منها إلى كلا المُسترجِعَين؛ وHyDE، الذي يَطلب من نموذجٍ صغير كتابة إجابةٍ افتراضية وتَضمين تلك بدلاً من السؤال. المكتبة مَملوءة بالإجابات، والإجابات تَبدو شَبيهةً بإجاباتٍ أخرى أكثر مما تَبدو شَبيهةً بأسئلة.
النمط الدفاعي هو إبقاء الاستعلام الأصلي إلى جانب المُعاد صياغته وإرسالهما معاً. خرَجُ المُعيد فرضية، لا بديل. مُعظم «انحدارات الاسترجاع» في الأنظمة الوكيلية هي فعلاً انحدارات إعادة صياغة، وهي غير مرئيةٍ دون قياسٍ بكل مرحلة.
ما يُمهِّد له الفصل 5
الخط كما رُسم هو أيضاً السطح الكامل الذي يَحتاجه المُهاجم لإفساده. كل مرحلةٍ تَأخذ مُدخلاً، تُنتج مَخرَجاً، وتَثق بالبيانات التي تَعمل عليها. المكتبة يُمكن تَسميمها عند الاستيعاب؛ والمُضمِّن يُمكن التلاعب به بقِطع خصمية؛ ومُعيد الترتيب يُمكن تَحييزه؛ والمُولِّد يُمكن خداعه بتعليماتٍ مُختبئة في المحتوى المُسترجَع. من هنا يَفتح الكتاب الجزء الرابع، ويَنتقل الإطار من كيفية الاسترجاع حسناً إلى ما يَحدث حين يُهاجَم الاسترجاع.
التالي — الفصل 6: نماذج التهديد والثغرات في RAG. الانفتاحُ نفسه الذي يَجعل RAG نافعاً هو السطح الذي يَستغله الخصوم — تَسميم المكتبة، الاسترجاع الخصمي، الحقن غير المباشر للموجِّه، قَلب التضمين، ونائبُ المُلتبس.