مقابلة سلسلة AI 12: كيف يتم تحسين الـ Prompt؟
تحسين الـ Prompt (هندسة البرومبت / تحسينه) هو المهارة الأساسية لجعل نماذج اللغة الكبيرة "تطيع"، خاصة في أنظمة RAG، حيث يحدد بشكل مباشر ما إذا كان النموذج سيلتزم بالمحتوى المسترجع، ويتجنب الهلوسة، ويتبع تنسيق الإخراج المطلوب.
المبادئ الأساسية لتحسين الـ Prompt
- الوضوح > التعقيد: التعليمات المباشرة البسيطة غالبًا ما تكون أكثر فعالية من سلاسل التفكير المزخرفة.
- تقديم قيود كافية: أخبر النموذج بوضوح "ما يمكنه فعله وما لا يمكنه فعله".
- تقديم أمثلة: التعلم ببضع عينات (Few-shot) أكثر استقرارًا من التعلم بدون عينات (Zero-shot).
- قابلية التحقق: اجعل النموذج يخرج استشهادات أو درجات ثقة لتسهيل الحكم في المراحل اللاحقة.
- التحسين التكراري: ابدأ من خط أساس، وغيّر متغيرًا واحدًا فقط في كل مرة، وقارن النتائج.
تقنيات التحسين المحددة (من السهل إلى الصعب)
1. تعيين الدور (System Prompt)
أنت مساعد خدمة عملاء محترف. يمكنك الإجابة فقط بناءً على 【المراجع】 المقدمة أدناه.
إذا كنت لا تعرف الإجابة، فقل مباشرة "لا توجد معلومات في المرجع"، ولا تختلق شيئًا.
- الوظيفة: تحديد الحدود والأسلوب.
- نقطة التحسين: الأسلوب (مهني/ودود)، قوة القيود (صارم/مرن).
2. تعليمات واضحة
❌ سيء: "أجب عن سؤال المستخدم."
✅ جيد: "أجب فقط بناءً على 【المراجع】 أدناه. إذا لم تحتوي المراجع على الإجابة، فقل 'لا أستطيع الإجابة على هذا السؤال'."
3. التحكم في تنسيق الإخراج
يرجى الإخراج بتنسيق JSON التالي:
{
"answer": "إجابتك",
"confidence": "عالي/متوسط/منخفض",
"sources": [1, 3]
}
- الاستخدام: تسهيل التحليل والاستشهاد والتصحيح في المراحل اللاحقة.
4. أمثلة ببضع عينات (فعالة جدًا)
مثال 1:
السؤال: كم يومًا هي الإجازة السنوية؟
المرجع: قاعدة الإجازة السنوية: سنة كاملة = 5 أيام، 10 سنوات كاملة = 10 أيام.
الإجابة: سنة كاملة = 5 أيام، 10 سنوات كاملة = 10 أيام.
مثال 2:
السؤال: كيف تُحسب أجر العمل الإضافي؟
المرجع: أيام العمل العادية = 1.5 ضعف، عطلة نهاية الأسبوع = ضعفان.
الإجابة: أيام العمل العادية = 1.5 ضعف، عطلة نهاية الأسبوع = ضعفان.
الآن أجب:
السؤال: {سؤال المستخدم}
المرجع: {المحتوى المسترجع}
الإجابة:
- تقنية: يجب أن تغطي الأمثلة مستويات مختلفة من الصعوبة، ويفضل تضمين مثال عن "لا يمكن الإجابة".
5. الاستشهاد الإلزامي
في نهاية الإجابة، ضع علامة على المصدر باستخدام [citation:X]. مثال: "الإجازة السنوية هي 5 أيام[citation:1]."
إذا تم الجمع بين عدة مصادر، ضع علامة على كل منها.
6. تعيين عتبة رفض الإجابة
- قيود صارمة: "إذا كان المرجع لا علاقة له بالسؤال تمامًا، فقل 'المرجع غير ذي صلة'."
- قيود مرنة: دمج درجة الثقة في الاسترجاع، وعندما تكون أقل من العتبة، انتقل تلقائيًا إلى فرع رفض الإجابة.
7. سلسلة التفكير (Chain-of-Thought) للاستدلال متعدد الخطوات
السؤال: من هو رئيس Zhang San؟
الخطوات: 1. أولاً، ابحث عن قسم Zhang San. 2. ثم ابحث عن رئيس ذلك القسم. 3. أعط الإجابة النهائية.
يرجى التفكير خطوة بخطوة ثم الإخراج.
8. التعليمات السلبية (Negative Prompting)
لا تختلق إجابات. لا تستخدم كلمات غامضة مثل "ربما" أو "قد". لا تخرج أي أرقام خارج المراجع.
كيف تقييم جودة الـ Prompt؟
| المؤشر | المعنى | كيفية القياس |
|---|---|---|
| الالتزام | هل الإجابة مبنية بدقة على المرجع | يدويًا أو باستخدام Faithfulness من RAGAS |
| دقة رفض الإجابة | هل يرفض الإجابة عندما يجب | حساب على مجموعة اختبار بدون إجابات |
| معدل اتباع التنسيق | هل يخرج JSON أو استشهادات كما هو مطلوب | مطابقة باستخدام التعبيرات النمطية |
| رضا المستخدم | هل الإجابة مفيدة | تعليقات عبر الإنترنت / اختبار A/B |
نصيحة: جهز مجموعة اختبار صغيرة (20-50 حالة حافة)، وكلما غيرت الـ Prompt، قم بتشغيلها وسجل التغييرات.
الأخطاء الشائعة واتجاهات التحسين
| المشكلة | السبب المحتمل | طريقة التحسين |
|---|---|---|
| النموذج يتجاهل المرجع ويجيب من نفسه | التعليمات ليست إلزامية كافية | غيّر إلى "بناءً فقط على المرجع أدناه"، واستخدم Few-shot لإظهار رفض الإجابة |
| النموذج دائمًا يقول "لا أعرف" | عتبة رفض الإجابة عالية جدًا | اخفض العتبة أو تحقق من جودة الاسترجاع |
| تنسيق الإخراج غير منتظم، لا يتبع JSON | التعليمات غير واضحة | أضف مثالًا صارمًا على التنسيق، أو استخدم function calling |
| الإجابة طويلة جدًا/قصيرة جدًا | لم يتم تحديد الطول | "أجب بثلاث جمل كحد أقصى" |
| خطأ في الاستدلال متعدد الخطوات | قدرة النموذج على الاستدلال غير كافية | اطلب إظهار الاستدلال خطوة بخطوة، أو استخدم نموذجًا أقوى |
| ظهور أرقام/تواريخ وهمية | النموذج يعتمد على معرفته الخاصة | أكد على "لا تستخدم أي أرقام من ذاكرتك، انظر فقط إلى المرجع" |
评论
暂无已展示的评论。
发表评论(匿名)