كيفية تحسين أداء خط أنابيب RAG الخاص بك
مع تزايد شعبية تطبيقات التوليد المعزز للاسترجاع(RAG)، هناك اهتمام متزايد بتحسين أدائها. تقدم هذه المقالة جميع الطرق الممكنة لتحسين خطوط أنابيب RAG وتوفر الرسوم التوضيحية المقابلة لمساعدتك على فهم استراتيجيات تحسين RAG السائدة بسرعة.
من المهم أن نلاحظ أننا سنقدم فقط استكشافًا عالي المستوى لهذه الاستراتيجيات والتقنيات، مع التركيز على كيفية تكاملها في نظام RAG. ومع ذلك، لن نخوض في التفاصيل المعقدة أو نوجهك خلال التنفيذ خطوة بخطوة.
خط أنابيب RAG القياسي
يوضح الرسم البياني أدناه خط أنابيب RAG الأكثر بساطة. أولاً، يتم تحميل أجزاء المستند في مخزن متجه (مثل Milvus أو Zilliz cloud). بعد ذلك، يسترجع مخزن المتجهات الأجزاء الأكثر صلة بالاستعلام من أعلى K. ثم يتم حقن هذه الأجزاء ذات الصلة في موجه سياق LLM، وأخيرًا، يقوم LLM بإرجاع الإجابة النهائية.
أنواع مختلفة من تقنيات تحسين RAG
يمكننا تصنيف أساليب تحسين RAG المختلفة استنادًا إلى أدوارها في مراحل خط أنابيب RAG.
- تحسين الاستعلام: تعديل ومعالجة عملية الاستعلام الخاصة بمدخلات RAG للتعبير عن هدف الاستعلام أو معالجته بشكل أفضل.
- تحسين الفهرسة: تحسين إنشاء فهارس التجزئة باستخدام تقنيات مثل الفهرسة متعددة التجزئة أو الفهرسة التدريجية أو الفهرسة متعددة الاتجاهات.
- تحسين الاسترجاع: تطبيق تقنيات واستراتيجيات التحسين أثناء عملية الاسترجاع.
- تحسين المولد: تعديل المطالبات وتحسينها عند تجميع المطالبات لـ LLM لتوفير استجابات أفضل.
- تحسين خط أنابيب RAG: تبديل العمليات ديناميكيًا داخل خط أنابيب RAG بأكمله، بما في ذلك استخدام وكلاء أو أدوات لتحسين الخطوات الرئيسية في خط أنابيب RAG.
بعد ذلك، سنقدم طرقًا محددة تحت كل فئة من هذه الفئات.
تحسين الاستعلام
دعنا نستكشف أربع طرق فعالة لتحسين تجربة الاستعلام: الأسئلة الافتراضية، وتضمينات المستندات الافتراضية، والاستعلامات الفرعية، والمطالبات المتدرجة.
إنشاء أسئلة افتراضية
ينطوي إنشاء أسئلة افتراضية على استخدام LLM لتوليد أسئلة متعددة قد يطرحها المستخدمون حول المحتوى الموجود في كل جزء من المستند. قبل أن يصل استعلام المستخدم الفعلي إلى LLM، يسترجع مخزن المتجهات الأسئلة الافتراضية الأكثر صلة بالاستعلام الحقيقي، إلى جانب أجزاء المستندات المقابلة لها، ويعيد توجيهها إلى LLM.
تتجاوز هذه المنهجية مشكلة عدم التماثل بين النطاقات في عملية البحث المتجه من خلال الانخراط مباشرةً في عمليات البحث من استعلام إلى استعلام، مما يخفف العبء على عمليات البحث المتجه. ومع ذلك، فإنها تقدم نفقات إضافية وعدم يقين إضافي في توليد أسئلة افتراضية.
HyDE (تضمينات المستندات الافتراضية)
يرمز HyDE إلى تضمينات المستندات الافتراضية. وهي تستفيد من LLM لصياغة "مستندافتراضي" أو إجابة وهمية استجابةً لاستعلام المستخدم الخالي من المعلومات السياقية. يتم بعد ذلك تحويل هذه الإجابة الوهمية إلى تضمينات متجهة واستخدامها للاستعلام عن أجزاء المستند الأكثر صلة داخل قاعدة بيانات متجهة. بعد ذلك، تسترجع قاعدة البيانات المتجهة أجزاء المستندات الأكثر صلة من أعلى K وتنقلها إلى LLM واستعلام المستخدم الأصلي لتوليد الإجابة النهائية.
تشبه هذه الطريقة تقنية السؤال الافتراضي في معالجة عدم التماثل بين المجالات في عمليات البحث عن المتجهات. ومع ذلك، فإن لها أيضًا عيوبًا، مثل التكاليف الحسابية الإضافية والشكوك المتعلقة بتوليد إجابات وهمية.
لمزيد من المعلومات، راجع ورقة HyDE.
إنشاء استعلامات فرعية
عندما يكون استعلام المستخدم معقدًا للغاية، يمكننا استخدام LLM لتقسيمه إلى استعلامات فرعية أبسط قبل تمريرها إلى قاعدة بيانات المتجهات و LLM. لنلقِ نظرة على مثال.
تخيل أن يسأل مستخدم: "ما هي الاختلافات في الميزات بين ميلفوس وزيليز كلاود؟" هذا السؤال معقد للغاية وقد لا يكون له إجابة مباشرة في قاعدة معارفنا. لمعالجة هذه المشكلة، يمكننا تقسيمه إلى استفسارين فرعيين أبسط:
- الاستعلام الفرعي 1: "ما هي ميزات ميلفوس؟
- الاستعلام الفرعي 2: "ما هي ميزات زيليز كلاود؟
بمجرد أن نحصل على هذه الاستعلامات الفرعية، نرسلها جميعًا إلى قاعدة بيانات المتجهات بعد تحويلها إلى تضمينات متجهة. ثم تعثر قاعدة بيانات المتجهات على أجزاء المستندات الأكثر صلة بكل استعلام فرعي. أخيرًا، يستخدم LLM هذه المعلومات لتوليد إجابة أفضل.
ومن خلال تقسيم استعلام المستخدم إلى استعلامات فرعية، فإننا نسهّل على نظامنا العثور على المعلومات ذات الصلة وتقديم إجابات دقيقة، حتى للأسئلة المعقدة.
إنشاء موجهات متدرجة
هناك طريقة أخرى لتبسيط استعلامات المستخدم المعقدة وهي إنشاء مطالبات متدرجة. تتضمن هذه التقنية تجريد استفسارات المستخدم المعقدة إلى "أسئلة متدرجة"** باستخدام LLM. بعد ذلك، تستخدم قاعدة البيانات المتجهة هذه الأسئلة المتدرجة لاسترداد أجزاء المستندات الأكثر صلة. أخيرًا، تقوم LLM بإنشاء إجابة أكثر دقة بناءً على أجزاء المستندات المسترجعة هذه.
دعونا نوضح هذه التقنية بمثال. لننظر إلى الاستعلام التالي، وهو استعلام معقد للغاية وليس من السهل الإجابة عليه مباشرةً:
استعلام المستخدم الأصلي: "لديّ مجموعة بيانات تحتوي على 10 مليار سجل وأريد تخزينها في ملفوس للاستعلام. هل هذا ممكن؟
لتبسيط استعلام المستخدم هذا، يمكننا استخدام LLM لتوليد سؤال تراجعي أكثر وضوحًا:
سؤال الاسترجاع: "ما هو الحد الأقصى لحجم مجموعة البيانات التي يمكن لـ Milvus التعامل معها؟
يمكن أن تساعدنا هذه الطريقة في الحصول على إجابات أفضل وأكثر دقة للاستعلامات المعقدة. فهي تقسم السؤال الأصلي إلى شكل أبسط، مما يسهل على نظامنا العثور على المعلومات ذات الصلة وتقديم إجابات دقيقة.
تحسين الفهرسة
يعد تحسين الفهرسة استراتيجية أخرى لتحسين أداء تطبيقات RAG الخاصة بك. دعنا نستكشف ثلاث تقنيات لتحسين الفهرسة.
دمج أجزاء المستند تلقائيًا
عند إنشاء فهرس، يمكننا استخدام مستويين من التفصيل: القطع الفرعية والقطع الأصلية المقابلة لها. في البداية، نبحث عن القطع الفرعية على مستوى أدق من التفاصيل. بعد ذلك، نطبق استراتيجية الدمج: إذا كان عدد محدد، n، من القطع الفرعية من أول k من القطع الفرعية ينتمي إلى نفس القطعة الأصل، فإننا نقدم هذه القطعة الأصل إلى LLM كمعلومات سياقية.
تم تنفيذ هذه المنهجية في LlamaIndex.
إنشاء مؤشرات هرمية
عند إنشاء فهارس للمستندات، يمكننا إنشاء فهرس من مستويين: فهرس لملخصات المستندات وآخر لقطع المستندات. تتألف عملية البحث المتجه من مرحلتين: في البداية، نقوم بتصفية المستندات ذات الصلة بناءً على الملخص، وبعد ذلك، نسترجع أجزاء المستندات المقابلة حصريًا ضمن هذه المستندات ذات الصلة.
ويثبت هذا النهج فائدته في المواقف التي تتضمن أحجامًا كبيرة من البيانات أو الحالات التي تكون فيها البيانات ذات تسلسل هرمي، مثل استرجاع المحتوى داخل مجموعة مكتبات.
الاسترجاع وإعادة الترتيب الهجين
تدمج تقنية الاسترجاع وإعادة الترتيب الهجين طريقة أو أكثر من طرق الاسترجاع التكميلية مع استرجاع التشابه المتجه. ثم تقوم أداة إعادة الترتيب بإعادة ترتيب النتائج المسترجعة بناءً على مدى ملاءمتها لاستعلام المستخدم.
تتضمن خوارزميات الاسترجاع التكميلية الشائعة أساليب قائمة على التردد المعجمي مثل BM25 أو النماذج الكبيرة التي تستخدم التضمينات المتفرقة مثل Splade. وتتضمن خوارزميات إعادة الترتيب خوارزميات إعادة الترتيب RRF أو نماذج أكثر تعقيدًا مثل Cross-Encoder، والتي تشبه البنى الشبيهة بـ BERT.
ويستفيد هذا النهج من أساليب الاسترجاع المتنوعة لتحسين جودة الاسترجاع ومعالجة الثغرات المحتملة في استدعاء المتجهات.
تحسين المسترجع
يمكن أيضًا أن يؤدي تحسين مكون المسترجع داخل نظام RAG إلى تحسين تطبيقات RAG. دعونا نستكشف بعض الطرق الفعالة لتحسين المسترجع.
استرجاع نافذة الجملة
في نظام RAG الأساسي، يكون جزء المستند المُعطى إلى LLM عبارة عن نافذة أكبر تشمل جزء التضمين المسترجع. وهذا يضمن أن تتضمن المعلومات المقدمة إلى آلة استرجاع المستندات LLM نطاقًا أوسع من التفاصيل السياقية، مما يقلل من فقدان المعلومات. تعمل تقنية استرجاع نافذة الجملة على فصل جزء المستند المستخدم في استرجاع التضمين عن الجزء المقدم إلى آلية إدارة التعلم.
ومع ذلك، قد يؤدي توسيع حجم النافذة إلى تقديم معلومات متداخلة إضافية. يمكننا تعديل حجم توسيع النافذة بناءً على احتياجات العمل المحددة.
تصفية البيانات الوصفية
لضمان الحصول على إجابات أكثر دقة، يمكننا تنقيح المستندات المسترجعة عن طريق تصفية البيانات الوصفية مثل الوقت والفئة قبل تمريرها إلى LLM. على سبيل المثال، إذا تم استرجاع التقارير المالية التي تغطي سنوات متعددة، فإن التصفية بناءً على السنة المطلوبة ستعمل على تنقيح المعلومات لتلبية متطلبات محددة. تثبت هذه الطريقة فعاليتها في الحالات التي تحتوي على بيانات شاملة وبيانات وصفية مفصلة، مثل استرجاع المحتوى في مجموعات المكتبات.
تحسين المولدات
دعونا نستكشف المزيد من تقنيات تحسين RAG من خلال تحسين المولد داخل نظام RAG.
ضغط موجه LLM
يمكن أن تؤثر معلومات التشويش داخل أجزاء المستندات المسترجعة بشكل كبير على دقة الإجابة النهائية لـ RAG. كما تمثل نافذة المطالبة المحدودة في LLMs أيضًا عقبة أمام الحصول على إجابات أكثر دقة. ولمعالجة هذا التحدي، يمكننا ضغط التفاصيل غير ذات الصلة، والتأكيد على الفقرات الرئيسية، وتقليل طول السياق الكلي لقطع المستندات المسترجعة.
ويشبه هذا النهج طريقة الاسترجاع وإعادة الترتيب الهجين التي تمت مناقشتها سابقًا، حيث يتم استخدام أداة إعادة الترتيب لغربلة أجزاء المستند غير ذات الصلة.
ضبط ترتيب القطع في المطالبة
في ورقة "الضياع في المنتصف"، لاحظ الباحثون أن أجهزة استرجاع المستنداتالضائعة في المنتصف غالبًا ما تتجاهل المعلومات الموجودة في منتصف المستندات المعطاة أثناء عملية الاستدلال. وبدلاً من ذلك، يميلون إلى الاعتماد أكثر على المعلومات المقدمة في بداية المستندات ونهايتها.
استنادًا إلى هذه الملاحظة، يمكننا تعديل ترتيب الأجزاء المسترجعة لتحسين جودة الإجابة: عند استرجاع أجزاء معرفية متعددة، يتم وضع الأجزاء ذات الثقة المنخفضة نسبيًا في الوسط، ويتم وضع الأجزاء ذات الثقة العالية نسبيًا في الطرفين.
تحسين خط أنابيب RAG
يمكننا أيضًا تحسين أداء تطبيقات RAG الخاصة بك عن طريق تحسين خط أنابيب RAG بأكمله.
الانعكاس الذاتي
يتضمن هذا النهج مفهوم الانعكاس الذاتي داخل وكلاء الذكاء الاصطناعي. إذن، كيف تعمل هذه التقنية؟
تكون بعض أجزاء المستند Top-K المسترجعة في البداية غامضة وقد لا تجيب على سؤال المستخدم مباشرةً. في مثل هذه الحالات، يمكننا إجراء جولة ثانية من الانعكاس للتحقق مما إذا كانت هذه الأجزاء يمكن أن تجيب على الاستعلام بشكل حقيقي.
يمكننا إجراء الانعكاس باستخدام طرق انعكاس فعالة مثل نماذج الاستدلال على اللغة الطبيعية (NLI) أو أدوات إضافية مثل عمليات البحث على الإنترنت للتحقق.
وقد تم استكشاف مفهوم الانعكاس الذاتي هذا في العديد من الأوراق البحثية أو المشاريع، بما في ذلك RAG الذاتي، و RAG التصحيحي، و LangGraph، إلخ.
توجيه الاستعلام مع وكيل
في بعض الأحيان، لا نضطر إلى استخدام نظام RAG للإجابة على الأسئلة البسيطة لأنه قد يؤدي إلى مزيد من سوء الفهم والاستدلال من المعلومات المضللة. في مثل هذه الحالات، يمكننا استخدام وكيل كموجه في مرحلة الاستعلام. يقوم هذا الوكيل بتقييم ما إذا كان الاستعلام يحتاج إلى المرور عبر خط أنابيب RAG. إذا كان الأمر كذلك، يتم البدء في خط أنابيب RAG اللاحق؛ وإلا فإن LLM يعالج الاستعلام مباشرةً.
يمكن أن يتخذ الوكيل أشكالاً مختلفة، بما في ذلك نموذج تصنيف صغير أو نموذج تصنيف صغير أو حتى مجموعة من القواعد.
من خلال توجيه الاستعلامات بناءً على نية المستخدم، يمكنك إعادة توجيه جزء من الاستعلامات، مما يؤدي إلى زيادة كبيرة في وقت الاستجابة وتقليل ملحوظ في التشويش غير الضروري.
يمكننا توسيع نطاق تقنية توجيه الاستعلامات لتشمل عمليات أخرى داخل نظام RAG، مثل تحديد وقت استخدام أدوات مثل عمليات البحث على الويب أو إجراء استعلامات فرعية أو البحث عن الصور. ويضمن هذا النهج تحسين كل خطوة في نظام RAG بناءً على المتطلبات المحددة للاستعلام، مما يؤدي إلى استرجاع معلومات أكثر كفاءة ودقة.
الملخص
على الرغم من أن خط أنابيب RAG الفانيليا قد يبدو بسيطًا، إلا أن تحقيق الأداء الأمثل للأعمال يتطلب غالبًا تقنيات تحسين أكثر تعقيدًا.
تلخص هذه المقالة مختلف الأساليب الشائعة لتحسين أداء تطبيقات RAG الخاصة بك. كما قدمنا أيضًا رسومًا توضيحية واضحة لمساعدتك على فهم هذه المفاهيم والتقنيات بسرعة وتسريع تنفيذها وتحسينها.
يمكنك الحصول على التطبيقات البسيطة للمناهج الرئيسية المدرجة في هذه المقالة على رابط GitHub هذا.