في المشهد سريع التطور للنماذج اللغوية الكبيرة (LLMs)، تتناسب جودة المخرجات طردياً مع جودة المدخلات. بينما يُعد التوجيه بدون أمثلة (Zero-shot)—وهو طلب نموذج لأداء مهمة دون تقديم أمثلة—مريحاً، إلا أنه غالباً ما يفتقر إلى الدقة المطلوبة للتطبيقات المعقدة والمتخصصة. هنا يأتي دور التوجيه بعدد قليل من الأمثلة (Few-shot prompting). من خلال تقديم عدد صغير من الأمثلة التوضيحية ضمن الأمر الخاص بك، يمكنك توجيه سلوك النموذج بشكل كبير، وتحسين الاتساق، وتقليل الهلوسة.
ما هو التوجيه بعدد قليل من الأمثلة؟
التوجيه بعدد قليل من الأمثلة هو تقنية تقوم فيها بتقديم عدد قليل من أزواج الإدخال والإخراج للنموذج اللغوي الكبير (LLM) قبل طلب منه حل مشكلة جديدة. يستفيد هذا الأسلوب من قدرات النموذج على التعلم في سياق المحادثة (In-context learning). بشكل أساسي، أنت توضح النمط والنبرة والتنسيق المتوقع من النموذج، بدلاً من مجرد وصف ذلك باللغة الطبيعية.
فكر في الفرق بين إخبار طاهٍ بـ "تحضير ساندويتش" (توجيه بدون أمثلة) مقابل إظهار صورة لساندويتش محدد ومفضل لديك (توجيه بعدد قليل من الأمثلة). يوفر الأخير قيوداً ضمنية تتعلق بالمكونات والطبقات والأسلوب، والتي يصعب التعبير عنها بالكامل بالكلمات.
لماذا تختار التوجيه بعدد قليل من الأمثلة بدلاً من التوجيه بدون أمثلة؟
بينما تعتمد أوامر التوجيه بدون أمثلة كلياً على المعرفة المدربة مسبقاً للنموذج، إلا أنها قد تكون غير متوقعة. يوفر التوجيه بعدد قليل من الأمثلة مزايا مميزة عديدة:
- الالتزام بالتنسيق: يضمن أن المخرجات تتطابق مع مخطط صارم (مثل JSON أو XML)، وهو أمر حاسم للتكامل البرمجي.
- معايرة النبرة: يتيح لك تحديد صوت الذكاء الاصطناعي، سواء كان احترافياً، أو فكاهياً، أو متعاطفاً.
- المنطق المعقد: للمهام التي تتطلب استدلالاً متعدد الخطوات، تظهر الأمثلة للنموذج الخطوات الوسيطة التي يجب عليه اتخاذها.
هيكلة الأمر الخاص بك
يتكون الأمر الجيد الموجه بعدد قليل من الأمثلة من ثلاثة أجزاء رئيسية: وصف المهمة، والأمثلة، وإدخال الاختبار. المفتاح هنا هو الوضوح والاتساق في أمثلتك. يجب أن يفصل كل مثال بوضوح بين الإدخال والمخرجات المطلوبة.
فيما يلي مثال بلغة Python يوضح كيفية بناء أمر موجه بعدد قليل من الأمثلة لتحليل المشاعر باستخدام واجهة برمجة التطبيقات (API) الخاصة بـ OpenAI. لاحظ كيف نقدم ثلاثة أمثلة متميزة تغطي المشاعر الإيجابية والسلبية والمحايدة.
import openai
def analyze_sentiment(text):
prompt = f"""
صنف مشاعر النص التالي على أنها 'إيجابي'، 'سلبي'، أو 'محايد'.
النص: "أنا أحب تحديث هذا البرنامج الجديد بشدة! إنه سريع جداً."
المشاعر: إيجابي
النص: "كان خدمة العملاء سيئة وتحطم المنتج على الفور."
المشاعر: سلبي
النص: "وصل الطرد يوم الثلاثاء."
المشاعر: محايد
النص: "{text}"
المشاعر:
"""
# سيتم وضع استدعاء API هنا
# response = openai.ChatCompletion.create(
# model="gpt-3.5-turbo",
# messages=[{"role": "user", "content": prompt}]
# )
return prompt
# مثال على الاستخدام
print(analyze_sentiment("كان الاجتماع إهداراً للوقت."))
في هذا المثال، لا يحتاج النموذج إلى إخباره بما تبدو عليه المشاعر "الإيجابية"؛ فهو يستنتج ذلك من المثال الأول. يقلل هذا من الحمل المعرفي على النموذج ويقلل من الغموض.
أفضل الممارسات للتنفيذ
- اجعلها ذات صلة: اختر أمثلة تشبه بشكل وثيق البيانات الفعلية التي ستقوم بمعالجتها. يساعد التنوع في الأمثلة النموذج على التعميم بشكل أفضل.
- حدد عدد الأمثلة: بينما يمكن أن تساعد الأمثلة الإضافية أحياناً، إلا أنها تستهلك سياق الرموز (Tokens) وتزيد من زمن الاستجابة. ابدأ بـ 3-5 أمثلة وقم بالتقييم.
- الفصل الصريح: استخدم فواصل واضحة مثل الشرطات، أو الأسطر الجديدة، أو وسوم XML لفصل المدخلات والمخرجات. يساعد ذلك النموذج على تحليل الهيكل بشكل صحيح.
الخاتمة
يُعد التوجيه بعدد قليل من الأمثلة أداة قوية في ترسانة هندسة الأوامر (Prompt Engineering). فهو يسد الفجوة بين اتباع التعليمات العامة والتنفيذ المتخصص للمهام. من خلال استثمار الوقت في انتقاء أمثلة عالية الجودة، يمكن للمطورين تحقيق تحكم أكبر في مخرجات النماذج اللغوية الكبيرة، مما يؤدي إلى تطبيقات ذكاء اصطناعي أكثر موثوقية وقوة. أثناء قيامك بتحسين سير عملك، تذكر أن هندسة الأوامر هي عملية تكرارية—جرب، وقيّم، وحسن عدد أمثلتك لإيجاد التوازن المثالي لحالة الاستخدام الخاصة بك.