توليد الإجابات

استكشِف المزيد مما يقدِّمه دليل RAG Cookbook للحصول على فهم أعمق لحلول التوليد المعزز بالاسترجاع (RAG) المتاحة اليوم.

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

يُعَد توليد الإجابات عنصرًا في حل التوليد المعزز بالاسترجاع (RAG) يُنشئ استجابةً لاستعلام المستخدم باستخدام المعلومات المسترجعة من مصادر بيانات المؤسسة المستهدفة أو من مجموعة النصوص. 

الاعتبارات

معلمات النماذج

تُشير الأرقام التي تأتي بعد أسماء النماذج اللغوية الكبيرة مفتوحة المصدر إلى عدد مَعلمات النموذج.  فعلى سبيل المثال، Granite 3.0 8B Instruct هو نموذج يحتوي على 8 مليارات مَعلمة.  يمكن النظر إلى المَعلمات على أنها العناصر التي تنسِّق كيفية تعامل النموذج مع بيانات الإدخال وفهمها وإنتاج المخرجات. وقد تظهر هذه المَعلمات في صورة أوزان أو انحيازات، تؤثِّر في مدى أهمية ميزات إدخال معينة عند توليد المخرجات.

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

أنواع النماذج: instruct مقابل code instruct مقابل chat

وضع chat مصمَّم للسياقات الحوارية، بينما وضع instruct مصمَّم لمهام معالجة اللغة الطبيعية في مجالات محددة.

يساعد الضبط الدقيق في وضع chat النموذج اللغوي الكبير على تقديم أداء أفضل في توليد استجابات طبيعية ومترابطة تكون ذات صلة بالمستخدم وجذابة له. أما الضبط الدقيق في وضع instruct فيساعد النموذج اللغوي الكبير على اتِّباع أنواع مختلفة من التعليمات وتوليد مخرجات دقيقة وملائمة للمهمة.

إعدادات النموذج

توفِّر النماذج اللغوية الكبيرة مجموعة من الإعدادات لضبط كيفية توليد الاستجابات.

  • يحدِّد إعداد temperature مدى تنوع استجابات النموذج. وببساطة، كلما انخفضت قيمة temperature أصبحت استجابات النموذج أكثر حتمية واتساقًا. ويُوصى باستخدام قيمة منخفضة جدًا لـ temperature، ويفضَّل أن تكون 0، في حلول RAG.
  • يَحُدّ إعداد "max_tokens / max_new_tokens" عدد الرموز (حيث تعادل الكلمة الواحدة تقريبًا 1.5 رمز مميز) التي سيستخدمها النموذج في استجابته. سيحتاج مطورو الحلول إلى التجربة لإيجاد قيمة توفق بين تقديم إجابات كاملة وعدم إفراط المعلومات لحالتهم، ولكن 100 تعتبر حدًا جيدًا بشكل عام لحلول التوليد المعزز بالاسترجاع (RAG) الخاصة بالأسئلة والأجوبة.
  • تحدِّد استراتيجية العينات كيفية اختيار النموذج للرمز المميز التالي في الاستجابة. يجب أن تستخدم حلول RAG استراتيجية عينات greedy، والتي تضمن استجابات متسقة للمطالبات.

هندسة المطالبات

أولاً، دعنا نستعرض قواعد كتابة المطالبات لتحسين أداء التوليد من البداية.

القاعدة رقم 1: ابدأ ببساطة

لا تبدأ بكتابة مطالبة طويلة جدًا، ثم تختبرها لاحقًا. ابدأ بمطالبات بسيطة أولًا.

على سبيل المثال، لا تبدأ بمطالبة طويلة مثل:

- أنت تعمل في قسم المالية في شركة إلكترونيات كبرى ضمن مؤشر S&P 1000. يجب عليك تلخيص محاضر اجتماعات المساهمين الفصلية لتحديد الموضوعات الرئيسية، والتوجُّهات ، والمشاعر العامة. 

يجب أن يكون الرد بصيغة قائمة مرقمة نقطية.

تأكَّد أن تكون كل نقطة جملة كاملة ومتكاملة.
لا تُدخل معلومات وهمية. أجب فقط بالمعلومات الواردة في النص.

إليك المحضر المطلوب تلخيصه:

لكن ابدأ من هنا:

لخِّص الموضوعات الرئيسية الواردة في محضر الاجتماع التالي:

القاعدة رقم 2: التغييرات التدريجية فقط

لا تُجرِ تغييرات كبيرة على مَعلمات النموذج. 

في معظم الحالات:

  • تؤدي التغييرات الطفيفة في إعدادات Temperature وRepetition Penalty إلى تأثير ملحوظ.
  • التغييرات الكبيرة غالبًا ما تخفي النجاحات التي يمكن تحقيقها من خلال التغييرات الصغيرة.

طبِّق أفضل مبادئ الهندسة:

  • غيِّر مَعلمة واحدة فقط في كل مرة. تحقَّق من صحة كل تغيير على حدة.
  • تراجَع عن التغييرات التي لا تحقق التأثير المطلوب. عُد إلى القيمة السابقة.
  • يجب أن يكون لأي تغيير عن القيم الافتراضية تفسير واضح ومبرر.

القاعدة رقم 3: التحقق المتبادل

حاول اختبار حدود مطالبتك وإيجاد نقاط الضعف فيها. لا تختبر مطالبتك مرة واحدة فقط ثم تدَّعي النجاح. شغِّل عشرات الاختبارات على مطالبتك لضمان موثوقيتها.

  • حاوِل اختبار مطالبتك وكشف نقاط ضعفها قبل أن يفعل العميل ذلك.

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

القاعدة رقم 4: عمليات الاستخراج المعقدة لا يمكن إجراؤها باستخدام مطالبة واحدة فقط

لا تقلق، فالمطالبات المتعددة تتم معالجتها بالتوازي باستخدام watsonx.ai.

مخطط انسيابي لتحليل التقارير المالية يضم ست مطالبات وثلاثة أقسام.

القاعدة رقم 5: سلاسل المطالبات (Prompt Chains)

تقسيم المهام إلى مهام فرعية أصغر.

مخطط انسيابي يوضِّح عملية تخطيط إجازة إلى منطقة كروم العنب في كاليفورنيا.

القاعدة رقم 6: فرز المهام (أو هندسة المطالبات)

قسِّم كل خطوة في العملية عبر عدة مطالبات ونموذج متخصص لكل منها.

مخطط انسيابي يوضِّح عملية مساعد متعدد النماذج اللغوية الكبيرة (LLM)، من طلب المستخدم إلى بيانات المؤسسة.

القاعدة رقم 7: granite.13b.chat.v

تتطلب نماذج الدردشة تصميم مطالبات مختلفًا عن نماذج instruct.

لقطة شاشة لتنسيق تعليمات خاص بالنموذج تتضمن مطالبة نظام ومطالبة عامة.
لقطة شاشة لمطالبة عامة للتعلم في السياق.
مطالبة بتنسيق مخصص لنموذج RAG.

القاعدة رقم 8: استمتِع بتجربة النماذج

بجدية، نتعلم بقدر ما نتعلمه من اللعب كما نتعلمه من العمل.  جرِّب أحدث النماذج اللغوية الكبيرة (LLMs) وتحدَّها بمهام خارج نطاق عملك المعتاد.

اختَر شيئًا يمكن للنموذج اللغوي الكبير على الأرجح تنفيذه.

  • اكتب قصيدة من 4 جمل عن الطيور. 
  • تحدي الدردشة: حسنًا، الآن عن الكلاب.
  •  احكِ قصة مضحكة عن طائر يُدعى Midori في أقل من 5 جمل. 
  • تحدي الدردشة: غيِّر اسم الطائر إلى Charlie وأضِف اللون الأزرق واجعل القصة مكونة من 7 جمل. 
  • أجِب عن السؤال التالي في 10 كلمات فقط: "لماذا السماء زرقاء؟" 
  • تحدي الدردشة: ممتاز، أخبرني سببًا يبدو صحيحًا لكنه غير حقيقي.

أضِف تفاعلات متعددة المستويات لتجربة سلاسل المطالبات الخاصة بك.

مطالبات النظام ومطالبات المستخدم

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

مطالبات النظام

توفِّر مطالبات النظام التعليمات الأساسية التي توجِّه سلوك الذكاء الاصطناعي طوال التفاعل.  تحدِّد دور النموذج، ونبرته، والحدود الأخلاقية الخاصة به. يمكن أن يساعد استخدام المحددات على تحسين النموذج وتجنُّب مشكلات حقن المطالبات. تعمل المحدِّدات على تحديد مكان إدراج مدخلات المستخدم في المطالبة، ما يساعد النموذج على معرفة بداية ونهاية إدخال المستخدم.  كما تساعد المحدِّدات على تجنُّب حقن المطالبات. يمكن أن تكون المحدِّدات أي شيء مثل: ``**, ”””, < >, ** `.

فيما يلي مثال على مطالبة للنموذج Granite:

<|system|>\nYou are Granite Chat, an AI language model developed by IBM. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. You always respond to greetings (for example, hi, hello, g\’day, morning, afternoon, evening, night, what\’s up, nice to meet you, sup, etc) with “Hello! I am Granite Chat, created by IBM. How can I help you today?”. Please do not say anything else and do not start a conversation. {instruction}\n{session_history}<|user|>\n{query}\n<|assistant|>\n

مطالبات المستخدم

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

أدوات IBM

خدمة Prompt Lab

تُعَد Prompt Lab منصة من IBM تُتيح لك العمل مع النماذج الأساسية وبناء المطالبات باستخدام هندسة المطالبات. وباستخدام Prompt Lab، يستطيع المستخدمون التفاعل مع نماذج الأساس في محرر الأوامر باستخدام وضع المحادثة (Chat) أو الوضع الحر (Freeform) أو الوضع المنظم (Structured). وستتيح لك هذه الخيارات المتعددة صياغة أفضل تكوينات النماذج لدعم مجموعة من المهام من نوع معالجة اللغة الطبيعية ومنها الإجابة عن الأسئلة، وتوليد المحتوى وتلخيصه، وتصنيف النصوص واستخراجها.

للمزيد من المعلومات حول كيفية البدء وكل ما يتعلق بمنصة Prompt Lab، يُرجى الرجوع إلى الموقع الرسمي لمنصة Prompt Lab.

InstructLab

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

للمزيد من المعلومات حول كيفية البدء وكل ما يتعلق بـ InstructLab، يُرجى الرجوع إلى المستودع الرسمي لـ InstructLab.

granite

يتضمن Granite 3.0 مجموعة من النماذج، مثل Granite 3.0 8B Instruct، و2B Instruct، و8B Base، و2B Base، والتي تم تدريبها على أكثر من 12 تريليون رمز مميز عبر 12 لغة طبيعية و116 لغة برمجة. تتفوق هذه النماذج أو تضاهي أداء النماذج المماثلة من المزوِّدين الرائدين في المعايير الأكاديمية والمؤسسية، ما يُظهر أداءً قويًا في مهام مثل فهم اللغة، وتوليد الكود، وتلخيص المستندات.

مميزات Granite 3.0

الشفافية والسلامة

يظهر التزام IBM بالشفافية والسلامة في الإفصاح التفصيلي عن مجموعات البيانات المستخدمة للتدريب، وعمليات الترشيح والتنسيق في التقرير الفني لنموذج Granite 3.0. يتم إصدار النماذج بموجب ترخيص Apache 2.0 المرن، ما يضمن المرونة والاستقلالية لعملاء المؤسسات والمجتمع الأوسع للذكاء الاصطناعي. بالإضافة إلى ذلك، توفِّر نماذج Granite Guardian 3.0 قدرات شاملة للكشف عن المخاطر والأضرار، متفوقةً على نماذج السلامة الأخرى في السوق.

الكفاءة والفعالية من حيث التكلفة

تم تصميم نماذج Granite 3.0 لتكون فعَّالة من حيث التكلفة، ما يُتيح للمؤسسات تحقيق أداء النماذج المتقدمة بتكلفة أقل بكثير. يُتيح استخدام InstructLab، المنهج التعاوني مفتوح المصدر، ضبط النماذج الصغيرة لمهام محددة، ما يؤدي إلى تقليل التكاليف بمعدل 3 إلى 23 مرة مقارنةً بالنماذج الكبرى. توفِّر نماذج Mixture of Experts (MoE)، مثل Granite 3.0 3B-A800M و1B-A400M، كفاءة عالية في الاستدلال مع الحد الأدنى من التنازلات في الأداء، ما يجعلها مثالية للتطبيقات ذات زمن الانتقال القصير والنشر على معالجات CPU.

القدرات متعددة الوسائط والتحديثات المستقبلية

من المتوقع أن تدعم نماذج Granite 3.0 بحلول نهاية 2024 نافذة سياق موسَّعة تصل إلى 128K وقدرات فهم المستندات متعددة الوسائط، بما في ذلك المهام التي تستقبل الصور وتُنتج نصوصًا. سيؤدي هذا التوسع إلى زيادة فائدتها في مختلف حالات الاستخدام المؤسسية.

تكامل المنظومة

تتوفر نماذج Granite 3.0 عبر منصات متعددة، بما في ذلك watsonx.ai من IBM، وHugging Face، وVertex AI من Google Cloud، وNVIDIA NIM microservices، وOllama، وReplicate، ما يُتيح للمطورين مجموعة واسعة من خيارات النشر ويضمن التكامل السلس مع مهام سير العمل الحالية. باختصار، تقدِّم نماذج Granite 3.0 من IBM حلاً قويًا وشفافًا وفعَّالًا من حيث التكلفة للذكاء الاصطناعي المؤسسي، يجمع بين الأداء المتقدم وميزات السلامة القوية والدعم الواسع للمنظومة.

للمزيد من المعلومات حول كيفية البدء وكل ما يتعلق بنماذج Granite، يُرجى الرجوع إلى الموقع الرسمي لنماذج Granite.

نصائح وتوصيات

مطالبات أفضل

يمكن أن يؤثِّر محتوى وبنية الأسئلة المقدَّمة إلى النموذج اللغوي الكبير بشكل كبير على جودة ودقة الردود التي تنتجها.

أنواع المطالبات الستة

يمكن تقسيم المطالبات إلى ستة أنواع رئيسية:

الكلمات الرئيسية فقط

توضِّح الاستعلامات القائمة على الكلمات المفتاحية نفسها؛ فهي مطالبات تتكوَّن من كلمات مفتاحية مرتبطة بالموضوع المطروح. على سبيل المثال، يمكن تبسيط المطالبة:

What is the optimal baking time for a chocolate cake at high altitude

إلى الكلمات الرئيسية:

baking time chocolate cake high altitude

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

المقارنة

تطلب المطالبات المقارنة (Comparative Prompts) من النموذج اللغوي الكبير (LLM) إجراء مقارنات بين موضوع أو أكثر أو مفاهيم واردة في المطالبة. على سبيل المثال:

ما الفرق بين القاعدة وتعيين الدور؟

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

المجمَّعة

تطلب المطالبات المجمَّعة (Aggregated Prompts) من النموذج دمج مفهومين أو أكثر أو استفسارات متعددة في مطالبة واحدة. على سبيل المثال:

كيف يمكنني إنشاء إذن ومجموعة أذونات؟

تُعَد المطالبات المجمَّعة (Aggregated Prompts) أصعب على النماذج اللغوية الكبيرة؛ بسبب الغموض الكامن في السؤال. 

  • هل السؤال عن عدة مفاهيم يجب تنفيذها بالتوازي لتقليل وقت المعالجة؟
  • هل المقصود مفاهيم تكميلية تعزز بعضها؟
  • هل الهدف هو شرح كيفية تنفيذ الإجراءات على شكل سلسلة من الخطوات المتتابعة؟ 

لحل هذا الغموض، يُوصى عادةً بتقسيم المطالبات المجمَّعة إلى عدة مطالبات لموضوع واحد، أو بتوفير سياق إضافي يَصِف بوضوح الاستجابة المطلوبة.

الغامضة

المطالبة الغامضة هي تلك التي يمكن تفسيرها بطرق متعددة. على سبيل المثال:

ما المقصود بالدور؟

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

المنحرفة

في سياق حل RAG، تُعد المطالبة المنحرفة (deviant prompt) هي تلك التي لا توجد لها إجابة ضمن مجموعة المستندات الداعمة. قد يؤدي ذلك إلى استجابات مُختلقة أو مرتجلة تعتمد على المعرفة المدمجة في النموذج، أو استجابات غير ذات صلة استنادًا إلى نتائج البحث منخفضة الصلة من مجموعة المستندات.

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

غير المباشرة

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

يُنصح المطورون بتنفيذ آلية تصفية استعلامات بالقائمة السوداء لإضافة تفاصيل توضيحية للكلمات الرئيسية، أو استبدال الكلمات "المشكلة" بمرادفات أو عبارات واضحة وغير غامضة.

ممارسات المطالبات الجيدة

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

تكون المطالبة الجيدة:

  • ملائمة (Relevant) للنطاق المستهدف وتحتوي على تفاصيل وسياق كافيين لتوضيح محتوى ونبرة المخرجات المطلوبة بشكل واضح ومحدد.

  • مصممة خصيصًا للجمهور المستهدف. على سبيل المثال، ستكون الاستجابة الموجَّهة لمحلل مالي في شركة ذات نبرة وهيكل ومحتوى مختلف تمامًا عن الاستجابة الموجَّهة لعميل مصرفي. ستتضمن المطالبة الجيدة تعليمات واضحة ("أنت محلل مالي متوسط المستوى. أنشئ تقريرًا…") أو مؤشرًا صريحًا على الجمهور المستهدف ("… مكتوب لعميل مصرفي ليست لديه معرفة بالمصطلحات المالية") لتوجيه الاستجابة.

  • مصممة لحالة استخدام محددة. يجب تصميم المطالبة الجيدة مع وضع حالة استخدام محددة في الاعتبار، وأن تتضمن تفاصيل حول مكان وكيفية استخدام الاستجابة التي تم توليدها ("… يتم نشر الاستجابة في مجلة متخصصة بصناعة السفر لمشغِّلي الرحلات")؛ حيث سيؤثِّر ذلك بدوره في نبرة اللغة وأسلوب وطريقة صياغة الاستجابة الناتجة.

استكشِف المزيد

اطَّلِع على أحدث الأنماط التقنية، وبنى الحلول، ومنشورات البنية من IBM.

  1. انتقِل إلى IBM Architecture Center
المساهمون

Vicky Kuo، وChris Kirby، وLuke Major، وAtin Chandel، وBrant Li، وEvan Wheldon

تاريخ التحديث: 15 نوفمبر 2024