نمط Retrieval-Augmented Generation (RAG) هو نهج قياسي في الصناعة لبناء التطبيقات التي تستخدم نماذج لغة كبيرة للتعقل على بيانات محددة أو خاصة غير معروفة بالفعل لنموذج اللغة الكبيرة. في حين أن البنية واضحة، فإن تصميم حلول RAG التي تتناسب مع هذه البنية وتجربتها وتقييمها ينطوي على العديد من الاعتبارات المعقدة التي تستفيد من نهج علمي صارم.
يتم تقديم هذا الدليل كسلسلة. تغطي كل مقالة في السلسلة مرحلة محددة في تصميم حلول RAG.
تشمل هذه الاعتبارات المقالات الواردة في هذه الدلائل ما يلي:
- تحديد مستندات الاختبار والاستعلامات التي يجب استخدامها أثناء التقييم
- اختيار استراتيجية التقسيم
- تحديد ما وكيف يجب إثراء المجموعات
- اختيار نموذج التضمين الصحيح
- تحديد كيفية تكوين فهرس البحث
- تحديد عمليات البحث التي تريد تنفيذها: المتجه والنص الكامل والمختلط والمضاعف اليدوي
- تقييم كل خطوة
تتناول المقالات الواردة في هذا الدليل كل هذه الاعتبارات.
بنية RAG
الشكل 1. بنية RAG عالية المستوى
تدفق تطبيق RAG
فيما يلي تدفق عالي المستوى لتطبيق RAG.
- يصدر المستخدم استعلاما في واجهة مستخدم تطبيق ذكية.
- يقوم التطبيق الذكي بإجراء استدعاء API إلى منسق. يمكن تنفيذ المنسق باستخدام أدوات أو أنظمة أساسية مثل Kernel الدلالي أو Azure التعلم الآلي تدفق المطالبة أو LangChain.
- يحدد المنسق البحث الذي يجب تنفيذه على Azure الذكاء الاصطناعي Search ويصدر الاستعلام.
- يحزم المنسق نتائج N العلوية من الاستعلام، ويحزمها كتسياق ضمن مطالبة، جنبا إلى جنب مع الاستعلام، ويرسل المطالبة إلى نموذج اللغة الكبيرة. يقوم المنسق بإرجاع الاستجابة إلى التطبيق الذكي للمستخدم للقراءة.
تدفق تدفق بيانات RAG
فيما يلي تدفق عالي المستوى لمسار بيانات يوفر بيانات مؤرضة لتطبيق RAG.
يتم دفع المستندات أو سحبها إلى البنية الأساسية لبرنامج ربط العمليات التجارية للبيانات.
تعالج البنية الأساسية لبرنامج ربط العمليات التجارية للبيانات كل مستند على حدة بالخطوات التالية:
- مستند المجموعة - تقسيم المستند إلى أجزاء ذات صلة دلالية لها فكرة أو مفهوم واحد بشكل مثالي.
- إثراء المجموعات - يضيف حقول بيانات التعريف التي تم إنشاؤها من المحتوى في المجموعات إلى حقول منفصلة، مثل العنوان والملخص والكلمات الأساسية.
- مجموعات التضمين - يستخدم نموذج تضمين لتحويط المجموعة وأي حقول بيانات تعريف أخرى تستخدم لعمليات البحث في المتجهات.
- مجموعات مستمرة - يخزن المجموعات في فهرس البحث.
اعتبارات تصميم وتقييم RAG
هناك مجموعة متنوعة من قرارات التنفيذ التي يجب عليك اتخاذها عند تصميم حل RAG الخاص بك. ويوضح الشكل التالي بعض هذه القرارات.
الشكل 2. الأسئلة التي تنشأ عند تصميم حل RAG
تتناول سلسلة المقالات الواردة في هذا الدليل تلك الاعتبارات وأكثر من ذلك.
- تحديد مجال الحل - يناقش أهمية تحديد متطلبات العمل لحل RAG بوضوح
- جمع مستندات الاختبار التمثيلية - يناقش الاعتبارات والإرشادات حول جمع مستندات الاختبار لحل RAG الخاص بك الذي يمثل المجموعة الخاصة بك.
- جمع استعلامات الاختبار - يناقش المعلومات التي يجب جمعها مع استعلامات الاختبار الخاصة بك، ويوفر إرشادات حول إنشاء استعلامات واستعلامات اصطناعية لا تغطيها مستنداتك.
- فهم اقتصاديات التقسيم - يناقش العوامل التي يجب مراعاتها عند النظر في التكلفة الإجمالية لحل التقسيم الخاص بك لمجموعة النص الخاصة بك
- إجراء تحليل المستند - يوفر قائمة بالأسئلة التي يمكنك طرحها عند تحليل نوع المستند الذي يساعدك على تحديد ما في المستند الذي تريد تجاهله أو استبعاده، وما تريد التقاطه في مجموعات وكيف تريد تجميعه
- فهم نهج التقسيم - يوضح الأساليب المختلفة للتقسيم مثل الجملة المستندة إلى الجملة، والحجم الثابت، وزيادة نموذج اللغة المخصصة والكبيرة، وتحليل تخطيط المستند، واستخدام نماذج التعلم الآلي
- فهم كيفية تأثير بنية المستند على التقسيم - يناقش كيف تؤثر درجة بنية المستند على اختيارك لنهج التقسيم
- مجموعات نظيفة - يناقش أساليب التنظيف المختلفة التي يمكنك تنفيذها لدعم تطابقات التقارب عن طريق إزالة الاختلافات المحتملة التي ليست مادية لدلالات النص
- مجموعات الزيادة - يناقش بعض حقول بيانات التعريف الشائعة التي يجب مراعاتها في زيادة بيانات المجموعة الخاصة بك مع بعض الإرشادات حول استخداماتها المحتملة في البحث، والأدوات أو التقنيات المستخدمة بشكل شائع لإنشاء محتوى بيانات التعريف
- فهم أهمية نموذج التضمين - يناقش كيف يمكن أن يكون لنموذج التضمين تأثير كبير على أهمية نتائج بحث المتجهات
- اختيار نموذج تضمين - يوفر إرشادات حول اختيار نموذج تضمين
- تقييم نماذج التضمين - يناقش وسيلتين لتقييم نموذج التضمين: تصور عمليات التضمين وحساب مسافات التضمين
- إنشاء فهرس بحث - يناقش بعض القرارات الرئيسية التي يجب اتخاذها لتكوين البحث في المتجهات الذي ينطبق على حقول المتجهات
- فهم خيارات البحث - يوفر نظرة عامة على أنواع البحث التي يمكنك مراعاتها مثل المتجه والنص الكامل والمختلط والمضاعف اليدوي. توفير إرشادات حول تقسيم استعلام إلى استعلامات فرعية وتصفية الاستعلامات
- تقييم عمليات البحث - يوفر إرشادات حول تقييم حل البحث
مرحلة تقييم نموذج اللغة الكبيرة من طرف إلى طرف
- فهم مقاييس تقييم نموذج اللغة الكبيرة - يوفر نظرة عامة على العديد من المقاييس التي يمكنك استخدامها لتقييم استجابة نماذج اللغة الكبيرة بما في ذلك الأساس والاكتمال والاستخدام والصلة
- فهم مقاييس التشابه والتقييم - يوفر قائمة صغيرة من مقاييس التشابه والتقييم التي يمكنك استخدامها عند تقييم حل RAG الخاص بك
- فهم أهمية الوثائق وإعداد التقارير والتجميع - يناقش أهمية توثيق المعلمات الفائقة جنبا إلى جنب مع نتائج التقييم وتجميع النتائج من استعلامات متعددة وتصور النتائج
- مسرع تجربة RAG - يعالج كيفية استخدام مستودع GitHub لمسرع تجربة RAG لمساعدة الفرق في العثور على أفضل الاستراتيجيات لتنفيذ RAG من خلال تشغيل تجارب متعددة واستمرار وتقييم النتائج
نهج منظم
نظرا لعدد الخطوات والمتغيرات، من المهم تصميم حل RAG الخاص بك من خلال عملية تقييم منظمة. تقييم نتائج كل خطوة والتكيف، نظرا لمتطلباتك. بينما يجب عليك تقييم كل خطوة بشكل مستقل للتحسين، فإن النتيجة النهائية هي ما سيختبره المستخدمون. تأكد من فهم جميع الخطوات في هذه العملية قبل تحديد معايير القبول الخاصة بك لكل خطوة على حدة.