تخطّ إلى المحتوى
كل الرؤى الذكاء الاصطناعي الخاص والنماذج ذاتية الاستضافة

التوليد المعزّز بالاسترجاع على بنية تحتية خاصة

حزمة مرجعية عاملة للاسترجاع المستضاف ذاتياً: اختيار مخزن المتجهات، والتضمينات الخاصة، والتقطيع، والبحث الهجين، والترشيح الواعي بالصلاحيات، والتقييم.

5 دقائق قراءة #private-ai#rag#الاسترجاع
متخصصون في القطاع المالي يعملون على مبادرة للذكاء الاصطناعي

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

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

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

اختيار مخزن، دون إفراط في الاختيار

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

  • pgvector هو الخيار الافتراضي الصحيح حين يكون Postgres محورياً أصلاً والمجموعة متواضعة. تعيش المتجهات والبيانات الوصفية وعمليات الربط العلائقية في قاعدة بيانات واحدة بقصة نسخ احتياطي واحدة ونموذج صلاحيات واحد. وقلّة الأجزاء المتحرّكة ميزة تشغيلية حقيقية في منظومة خاضعة للتنظيم.
  • Qdrant هو الخيار الإنتاجي الافتراضي الشائع للاسترجاع المستضاف ذاتياً حيث يهمّ زمن استجابة البحث المرشَّح. ينتشر بنظافة تحت Docker أو Kubernetes، ويتعامل جيداً مع ترشيح البيانات الوصفية، ولا يحتاج عنقوداً ليكون مفيداً.
  • Weaviate يستحق مكانه حين يكون البحث الهجين الأصلي ونمذجة المخطط محوريين في التطبيق، ويحمل موقعاً قوياً في تعدّد المستأجرين.
  • Milvus للنطاق الكبير فعلاً والاستيعاب المستمر الثقيل، حيث يكون فصل مسار الاستيعاب عن مسار الاستعلام هو المقصد. وهو أعلى كلفة في التشغيل، فاختاروه حين يبرّر النطاق ذلك.

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

طبقة التضمين الخاصة

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

والنمط الحالي هو خادم text-embeddings-inference من Hugging Face، يشغّل مُرمِّزاً مفتوحاً مثل BGE-M3 على وحدات معالجة رسومية خاصة بكم، أو على المعالج المركزي للمجموعات الأصغر. ويستحق TEI ذكراً خاصاً لأنه يمنحكم تجميعاً دفعياً ديناميكياً قائماً على الرموز، ونوى محوّلات محسّنة، وتتبّعاً عبر OpenTelemetry، ومقاييس Prometheus. وهذا يعني عملياً إنتاجية تضمين تستطيعون قياسها وضبطها بدل تخمينها، وهو ما يهمّ حين تكون إعادة الفهرسة الكاملة حدثاً تشغيلياً مجدولاً لا عملية لمرة واحدة.

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

ونقطة تخطيط واحدة: اختياركم لنموذج التضمين التزام. تغييره يعني إعادة تضمين المجموعة كاملة، فتعاملوا مع التبديل كترحيل بنافذة تعبئة راجعة، واحفظوا النص الخام وحدود المقاطع منفصلة عن المتجهات حتى لا تعني إعادة التضمين إعادة التحليل.

التقطيع يحدّد سقفكم

التقطيع هو أكثر نقاط الفشل شيوعاً في الاسترجاع الإنتاجي، ونوافذ الرموز ثابتة الحجم هي السبب المعتاد. فمُقسِّم بـ512 رمزاً يقطع منتصف إجراء، ويفصل جدولاً عن صف رأسه، ويفصل بنداً تعاقدياً عن تعريفاته، ويبتر سؤالاً عن جوابه. فيعيد الاسترجاع بعدها شذرة صحيحة موضوعياً وعديمة القيمة استدلالياً، ويملأ النموذج الفجوة بشيء معقول الظاهر.

والتصحيح هو تقسيم واعٍ ببنية المستند بدل مُقسِّم كوني واحد:

  • وجّهوا حسب نوع المستند. للسياسات والأدلة والأسئلة الشائعة والعقود والشيفرة وصفحات HTML وحدات بنيوية تستحق الحفاظ عليها، وينبغي أن يعرف المحلّل أيها يعالج.
  • أبقوا الوحدات البنيوية سليمة: العناوين مع متونها، وعناصر القوائم، وصفوف الجداول مع رؤوسها، وكتل الشيفرة، والبنود القانونية المرقّمة.
  • استخدموا التداخل باعتدال. فالتداخل يرقّع ضرر الحدود ولا يمنع الكسر الدلالي، وهو يضخّم الفهرس.
  • خزّنوا المصدر على كل مقطع: معرّف المستند، وعنوان القسم، ورقم الصفحة، والنظام المصدر، ووسوم الصلاحيات، وطابع وقت الاستيعاب. هذا ما يجعل الاستشهاد والترشيح وتتبّع الأخطاء ممكناً لاحقاً.

قواعد التقطيع تستحق انتباهاً هندسياً أكبر من اختيار النموذج. وقد رأينا الاستدعاء يتحسّن من مُقسِّم واعٍ بنوع المستند أكثر مما تحسّن من أي ترقية نموذج في المشروع نفسه.

الاسترجاع الهجين وترشيح الصلاحيات

يُخطئ البحث المتجهي الصرف الرموزَ الحرفية: أرقام القطع، ورموز الأخطاء، ومراجع بنود السياسات، ومعرّفات التذاكر، وأسماء العلم النادرة. وهذه تحديداً المصطلحات التي تظهر في استعلامات المؤسسات الحقيقية. ويجمع الاسترجاع الهجين قناةً كثيفة للمطابقة الدلالية وإعادة الصياغة مع قناة متفرّقة بخوارزمية BM25 للمصطلحات الحرفية، ثم يدمج مجموعتي المرشّحين أو يعيد ترتيبهما قبل التوليد. ولمجموعات السياسات والتذاكر والسجلات والوثائق التقنية، هذا ليس تحسيناً اختيارياً. فالاسترجاع الكثيف وحده سيفشل في الاستعلامات التي تهمّ مستخدميكم أكثر من غيرها.

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

تقييم مبنيّ من إخفاقات حقيقية

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

وتتبّعوا مجموعة صغيرة من الأرقام لكل إصدار: استدعاء الاسترجاع عند k مقيساً مقابل مقطع ذهبي موسوم، وMRR أو nDCG لجودة الترتيب، وأمانة الإجابة وصحة الاستشهاد، وصحة التحكّم بالوصول على الاستعلامات الحساسة للصلاحيات، وزمن الاستجابة على مستوى كل مرحلة للتضمين والاسترجاع وإعادة الترتيب والتوليد. ويستحق زمن الاستجابة على مستوى المرحلة عناء القياس، لأن “المساعد بطيء” تُحلّ عادةً إلى مرحلة واحدة والإصلاح مختلف لكل منها.

من أين تبدأون

افهرسوا مجموعة مستندات واحدة بقواعد وصول حقيقية بدل مجموعة واسعة بلا قواعد. فالتحكّم بالوصول هو القيد الذي يعيد تشكيل المعمارية، واكتشافه متأخراً يعني إعادة بناء الاستيعاب.

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

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

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

هل نحتاج قاعدة بيانات متجهات مخصصة، أم يكفي pgvector؟

إن كانت مجموعتكم متواضعة وكان Postgres أصلاً هو نظام السجل، فـpgvector هو الأبسط تشغيلياً: تبقى المتجهات والبيانات الوصفية وعمليات الربط في قاعدة بيانات واحدة متوافقة مع ACID، وتنتقل ممارسات النسخ الاحتياطي والتحكّم بالوصول لديكم كما هي. والضغط للانتقال يأتي عادةً من البحث المرشَّح على نطاق واسع، حيث يعطي محرّك مخصّص مثل Qdrant زمن استجابة أقل على الاستعلامات التي تجمع تشابه المتجهات مع مرشّحات بيانات وصفية ثقيلة. ابدأوا بما تشغّلونه أصلاً، وقيسوا زمن استجابة الاسترجاع، وانتقلوا حين تقول الأرقام ذلك لا من باب المبدأ.

هل الترشيح بقوائم التحكّم بالوصول داخل قاعدة المتجهات حدود أمنية كافية؟

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

كم تقييماً نحتاج قبل الإطلاق؟

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

تعمل على شيء مشابه؟

أخبِرنا عن بياناتك وسير العمل المحيط بها، وسنعطيك رأياً صريحاً.

احجز مكالمة تعريفية مدتها 30 دقيقة