دليل شامل للهندسة التوجيهية (Prompt Engineering)

SAMI
ديسمبر 6, 2025 3 mins to read
Share

دليل شامل للهندسة التوجيهية (Prompt Engineering)


المقدمة

في عالم الذكاء الاصطناعي اللي قاعد يتطور، ولى استعمال النماذج اللغوية الضخمة (LLMs) جزء أساسي من شغل الـ developers و الـ ML Engineers.

هوني يجي دور الـ Prompt Engineering، وين نتعلمو كيفاش نكتبوا التعليمات (prompts) بطريقة تخلي الـ LLMs تخرج نتائج دقيقة وذات معنى. ورغم أنو الـ LLMs تدربت على كميات كبيرة من الداتا، إلا أنو وضوح الـ prompts يزيد من دقة النتائج.

في المقالة هاذي، باش نكتشفو استراتيجيات الـ Prompt Engineering باش نحسنو أداء النماذج ونوسعو استعمالاتها.


تعريف الـ Prompt Engineering


ببساطة، هي فن كتابة الأسئلة أو التعليمات اللي بتوجه الـ LLMs، علشان نطلع منها النتيجة اللي نحبها. العملية هاذي تعتمد على شوية إرشادات لو اتبعناها صح، هتحسن بشكل كبير من جودة الردود اللي بنحصل عليها.

بعض الإرشادات هاذي جاية من تجارب المستخدمين العاديين، والبعض الآخر من تطوير OpenAI، بينما جزء منها يعتمد على فهمنا العميق لمعالجة اللغة الطبيعية (NLP).


مراحل تطورات الـ Prompt Engineering

  • Enhanced contextual understanding: مع تطور الـ LLMs زي GPT-4، ولات قادرة على فهم السياق بشكل أدق.
  • Adaptive prompting techniques: النماذج تعلّمت كيفاش تعدّل ردودها حسب طريقة الكتابة تاع المستخدم. تفضيلاته، وبالتالي المحادثة ولات طبيعية وسهلة.
  • Multimodal prompt engineering: فيه تقنيات جديدة تشتغل مع أنواع مختلفة من الداتا زي النصوص والصور.
  • Real-Time Prompt Optimization: تقديم ملاحظات فورية على الـ prompt.
  • Integration with Domain-Specific Models: النماذج الخاصة بكل مجال تكون مدربة على داتا من مجالات معينة ومتخصصة.

LLM Output Configuration
إعدادات مخرجات الـ LLM

وقت تختار الموديل تاعك، لازم تكوّن الإعدادات الخاصة بيه بشكل صحيح. أغلب الـ LLMs توفر لك اختيارات كثيرة باش تتحكم في المخرجات.

1- طول المخرجات (Output Length)

هوني تحدد عدد الـ tokens اللي بش يخرجوا في الرد. تقليل طول الـ Output مش يعني إنو الموديل بش يكتب بشكل مختصر أو دقيق، هو ببساطة بش يقول نفس الكلام بس أول ما الـ capacity تخلص، هيقطع كلامه.

2- التحكم في العينة (Sampling Controls)

الموديل يتوقع احتمالات لعدد من الـ tokens اللي ممكن يجو بعد الكلمة الحالية، وكل واحد عنده احتمال يكون هو الـ token القادم. فيه تقنيات كيما Temperature وTop-K وTop-P تساعدني على التحكم في كيفية اختيار الرموز.

1) Greedy Decoding

طريقة بسيطة بيستخدمها الـ LLM عشان يولّد الـ Token القادم. الطريقة هاذي تعتمد على اختيار الكلمة أو الـ token اللي احتمالها أعلى (high probability).
مثال:

  • الموديل بياخد المدخلات (ال prompt على سبيل المثال “اهلا”).
  • يحسب الاحتمالات للكلمات اللي ممكن تجي بعد المدخلات هاذي.
  • هاي → 0.25 | مرحبا → 0.4 | أهلاً → 0.35
  • يختار الكلمة اللي عندها أعلى احتمال “مرحبا”.
  • يضيف الكلمة المختارة للجملة، ويكرر نفس العملية للرمز اللي بعده.

2) Temperature

هذي تتحكم في مدى عشوائية اختيار الـ token. لو خليت الـ Temperature قليل، هتلاقي الإجابة أكتر تحديدًا وثباتًا لأنه هيميل يختار الـ tokens ذات أعلى probabilities. لو خليت الـ Temperature عالي، هتكون الإجابة أكتر تنوعًا أو مفاجئة أو إبداعية.

لو خليت الـ Temperature صفر، هيبقى الاختيار دائمًا للرمز اللي ليه أعلى احتمال زي الـ Greedy Decoding.

3) Top-K

هذي بتختار الـ K-tokens الأكثر احتمالية من الـ tokens اللي يتوقعها الموديل. لو خليت الـ K عالي، هنا بنختار من مجموعة كلمات كبيرة، فالإجابة بتكون أكتر إبداعًا، ولو قللتها، هتكون أكتر دقة وثباتًا.

لو خليت الـ K=1، هيبقى الاختيار زي الـ Greedy Decoding لأنه هيختار الـ token اللي عنده أعلى probability.

4) Top-P (Nucleus Sampling)

هذي بتختار الرموز اللي احتمالاتها الإجمالية ما تتجاوزش قيمة معينة (P). قيمة P تبدأ من 0 (اختيار دائمًا للرمز الأكثر احتمال) لحد 1 (الاختيار من كل الرموز المتاحة). كأني بقوله: أي token تحت الـ probability (p) تختار منه بحرية.

لو حابب تبدأ بشكل متوازن بين الإبداع والدقة، جرب Temperature = 0.2، Top-P = 0.95، وTop-K = 30.
لو حابب نتائج أكتر إبداعًا، جرب Temperature = 0.9، Top-P = 0.99، وTop-K = 40.
لو حابب نتائج دقيقة أكتر، جرب Temperature = 0.1، Top-P = 0.9، وTop-K = 20.
لو مهم يكون في إجابة واحدة صحيحة (زي مسألة رياضية)، خلي Temperature = 0.

عناصر الـ Prompt

  • Instruction: الجزء الأساسي من الـ prompt، زي مثلاً “Summarize the following text”.
  • Context: معلومات إضافية تساعد الـ model على فهم الظروف أو الخلفية بشكل أوسع، زي مثلاً “Considering the economic downturn, provide investment advice”.
  • Data Input: المعلومات أو الداتا اللي تدخلها عشان الـ model يشتغل عليها.
  • Output Indicator: يوّجه الـ model على طريقة أو نوع الرد أو يتقمص دور معين، زي مثلاً “In the style of Shakespeare, rewrite the following sentence”.

تقنيات الـ Prompting

نماذج الـ LLMs تم تدريبها على كميات ضخمة من الداتا ومهيّأة عشان تتبع التعليمات وتفهم النصوص اللي بتستقبلها، وتولد إجابات بناءً عليها. لكن النماذج هاذي مش دايمًا مثالية؛ علشان كده كل ما كان النص اللي بتقدمه واضح أكتر، كل ما كانت قدرة الـ model على التنبؤ بالنص المناسب أفضل.


General Prompting – Zero Shot
الموديل ياخد تعليمات مباشرة من غير ما تديله أي أمثلة على المهمة اللي المفروض ينفذها. ده بيكون مفيد لما تكون المهمة بسيطة وواضحة، لكن أحيانًا التوجيه بالطريقة دي مش بيكون كافي، خصوصًا في المهام اللي معقدة شوية.

لو الموديل مقدرش يقدّم الإجابة المطلوبة بشكل دقيق باستخدام الـ zero shot، ممكن تضيف أمثلة توضيحية عشان تساعده يفهم المهمة بشكل أفضل. وده بيؤدي لفكرة One-Shot Prompting و Few-Shot Prompting.


One-Shot Prompting
هنقدّم مثال واحد فقط للـ model عشان يتبعه في تكملة المهمة. الفكرة هنا إن الـ model يقدر يقلّد المثال اللي قدمته علشان يكمل المطلوب.

Few-Shot Prompting
بتقدّم للـ model مجموعة من الأمثلة، مش مجرد مثال واحد. ده بيساعده يتعرف على النمط أو الهيكل اللي المفروض يتبعه.

عدد الأمثلة اللي تحتاجها للتوجيه بعدة أمثلة بيعتمد على:

  • تعقيد المهمة: كل ما كانت المهمة معقدة أكتر، كل ما زادت الحاجة لأمثلة أكتر.
  • جودة الأمثلة: الأمثلة لازم تكون واضحة وذات جودة عالية.
  • قدرات الـ model: بعض النماذج ممكن تحتاج أمثلة أكتر من غيرها عشان تقدر تفهم النمط.

كقاعدة عامة، من الأفضل استخدام 3 إلى 5 أمثلة في الـ prompt بعدة أمثلة. إذا كان المطلوب أو الـ prompt معقد جدًا، ممكن تحتاج تزود عدد الأمثلة.


الملخص:
في النهاية، كلما كانت التعليمات (prompts) واضحة ومرتبة، كلما كانت قدرة الموديل على إنتاج نتائج دقيقة وسليمة أفضل. باستخدام تقنيات مثل الـ One-Shot و Few-Shot Prompting، نقدر نساعد الموديل يتعلم أسرع ويشتغل بشكل أدق.


System, Contextual, and Role Prompting

ثمّة ثلاث تقنيات رئيسية يتم استعمالهم في Prompt Engineering باش تولّد النصوص بواسطة الـ LLMs، وهما System Prompting، Contextual Prompting، و Role Prompting. كل وحدة من هالتقنيات تركز على جوانب مختلفة في كيفية تعامل الـ model مع المطلوب منه. ثمّة تقنيات أخرى كيفما:

  • System Prompting
  • Contextual Prompting
  • Role Prompting
  • Step-back Prompting
  • Chain of Thought (CoT)
  • Self-consistency
  • Tree of Thoughts (ToT)
  • ReAct (Reason & Act)
  • Automatic Prompt Engineering

System Prompting

في النوع هذا، نقدم المهمة تاعي مباشرة من غير ما نزيدو أي حاجة. يعني هو يحدد الصورة العامة للي المفروض الـ model يعملو.
مثال: إذا طلبت من الـ model يتفاعل مع سيناريو، هو يقدر يعرف مباشرة المطلوب منه من غير ما يحتاج توجيه زيادة.

A screenshot of a movie review

Description automatically generated
Table 3 An example of system prompting.
Table 4 An example of system prompting with JSON format.

Contextual Prompting

هوني نضيفو سياق للكلام أو الموضوع اللي نسأل عليه، و هذا يعاون الـ model باش يفهم التفاصيل الدقيقة ويعدّل إجابته على حسب السياق المقدم.
مثال: إذا تسأل عن كيفية استثمار الفلوس في ظل الركود الاقتصادي، تقديم السياق هذا يعاون الموديل باش يعطي إجابة ملائمة للوضعية الحالية.

A screenshot of a computer

Description automatically generated

Table 5 An example of contextual prompting.



Role Prompting

في النوع هذا، نحدّدو دور معين للـ model، كيما معلم أو مرشد سياحي، باش يولّد نصوص تتناسب مع المعرفة والسلوك المتوقع من الدور هذا.
مثال: إذا طلبت من الـ model يتصرف كخبير في التغذية، الإجابة اللي يقدمها باش تكون موجهة على أساس الدور هذا.

A screenshot of a document

Description automatically generated
Table 6 An example of role prompting.


Step-back Prompting

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

A screenshot of a video game

Description automatically generated
Table 7 A traditional prompt before we compare it with a step back prompt.

let’s take a step back on the same task.

A screenshot of a computer

Description automatically generated
Table 8 An example of prompting for self-consistency.

نرجع للسؤال الأصلي (original prompt) ، ولكن هنضيف إجابة ال step back كالسياق (context) ونرى الإجابة.

Table 9 An example of prompting for self-consistency.

Chain of Thought (CoT)

في هالتقنية، نقدم للـ model خطوات واضحة لازم يمشي عليها. هذا يساعده في التفكير بشكل منطقي أكثر. نقسّم الـ prompt المعقّد إلى Prompts أبسط باش يعزّز فهم الـ model.
مثال: باش تحل مسألة رياضية معقدة، نكسر العملية لخطوات أصغر باش يفهم الـ model كل خطوة قبل ما يكمل.

A screenshot of a phone

Description automatically generated
Table 10 An example of a prompt which is trying to solve a mathematical problem.
A white text box with black text

Description automatically generated
Table 11 An example of Chain of Thought prompting.

Self-consistency

هذي تقنية لتحسين دقة استجابة الـ LLMs عبر توليد عدة مسارات مختلفة، ثم اختيار الإجابة الأكثر تكرارًا من بين هالمسارات. يتم التكرار على نفس الـ prompt عدة مرات مع تغييرات في الـ Temperature، وبعدها نقارن الإجابات باش نختار الأصح.
مثال: إذا تسأل عن سؤال معقّد كيما “شنوّة أسباب التغير المناخي؟”، تقدّر تكرّر السؤال عدة مرات وتاخذ الإجابة الأكثر تكرارًا.

A screenshot of a email

Description automatically generated
Example of Self-Consistency Prompting
A screenshot of a document

Description automatically generated
Example of Self-Consistency Prompting
A screenshot of a computer error message

Description automatically generated
Example of Self-Consistency Prompting

Tree of Thoughts (ToT)

هي تقنية تشبه الـ CoT لكنّها أكثر تطوّرًا، تسمح للـ LLMs باكتشاف مسارات متعددة في نفس الوقت. يتم تمثيل كل مسار فكري في شجرة من العقد، كل عقدة تمثل خطوة منطقية نحو الحل.
مثال: في مسألة معقدة تتطلب قرارات متعددة، هالتقنية تتيح للـ model توليد حلول مختلفة وتحليل كل منها في وقت واحد.

A diagram of a diagram

Description automatically generated

Table 13 Tree of Thoughts (ToT) prompting.


ReAct (Reason & Act)

تجمع بين التفكير (Reasoning) والعمل (Acting) لحل المهام المعقدة. تعتمد على فكرة أن النماذج يمكن أن تستفيد من أدوات خارجية (مثل البحث أو مترجم الأكواد) لتنفيذ مهام معينة. يتم ذلك عبر حلقة من Reason & Act حيث يبدأ الـ model بالتفكير في المشكلة، ثم يحدد خطة للعمل، وبعدها ينفّذ الخطة عبر أدوات خارجية مثل البحث عبر الإنترنت، ثم يعيد تقييم الوضع بناءً على النتائج.


Automatic Prompt Engineering (APE)

في هذه التقنية، يتم تكليف الـ model بإنشاء تعليمات متنوعة لتحسين الأداء في مهمة معينة، مثل تدريب روبوت دردشة لتحسين قدرته على فهم وتفسير طلبات المستخدمين.

A screenshot of a white text box

Description automatically generated
Table 14 Use an LLM to generate prompts.


ملخص

  • أكتب تعليمات واضحة ومفصلة من غير كلمات مش لازمة.
  • استعمل delimiters (الفواصل) كيما التاجات (” “ # <> “`)
  • قد ما تقدر حدد له عدد الـ tokens اللي لازم يكتبها باش ما يوصلش للـ max token وخلاص.
  • (persona) Role-playing: تطلب من الـ model يتصرف ككيان معين، كيما المؤرخ ولا العالم، باش تجيب ردود مخصصة.
    • مثلا: “As a nutritionist, evaluate the following diet plan”.
  • Iterative Refinement: نبدأ بـ prompt عام ومع الوقت نعلمه كيفاش يحسن الإجابة ويصير أكثر دقة.
  • Feedback Loops: استعمل الردود اللي يجيبها الـ model باش توجهه وتعدّل فيه.
  • Zero-shot Prompting: الموديل ياخذ مهمة عمره ما شافها قبل، من غير أمثلة. السؤال لازم يكون عام على قد ما يكون عشان يفهمه، ولا يمكن الموديل ما يعرفش يتكلم في مواضيع معينة.
  • Few-shot Prompting/In-context Learning: إذا الموضوع جديد على الموديل، تعطيه شوية أمثلة (shots). يعني لو مثلا توريه الترجمة من ألماني لفرنسي في كام مثال وهو يفهم لوحده. مثلا، لو تحب تعلّمو منطق باش يحل مسائل رياضية، تقدّم له شوية أمثلة باش يفهمها.
  • Chain-of-Thought (CoT): هنا نقوله: “هذي هي الخطوات اللي لازم تمشي عليها”. هكا بش يقدر يفكر في الحل بطريقة منطقية أكثر. هذي عن طريق تقسيم الـ prompt المعقّد لـ prompts أسهل، وتقدر تدمجها مع الـ Few-shot prompting باش تعزز الفهم.
  • Referencing: كيما تطبيقات الـ RAG، نبدّل له الداتا ويجاوب منها على الأسئلة تاعي.
  • كـ developer:
    • نقدر نخليه يعمل summarize للـ historical prompts.
    • نستعمل embedding-based search.
    • نقدر نقوله يعمل code execution.
    • نقدر نخليه يعمل search on the internet.
    • نقدر نعمل فانكشن بالكود ينفذها في وقت معين.

في الختام

نجموا نقولوا إنو الهندسة التوجيهية (Prompt Engineering) هي أداة مهمة باش نحسّنوا أداء النماذج اللغوية الكبيرة (LLMs). باستعمال تقنيات كيما System Prompting و Contextual Prompting و Role Prompting، نجموا نوجّهوا النموذج بدقة باش نتحصّلوا على نتائج أفضل.

وزيد، إضافة خطوات Chain of Thought (CoT) تقدر تحسّن قدرة النموذج في التعامل مع المهام المعقدة، كيما المسائل الرياضية. على هذا الأساس، Prompt Engineering بش تبقى جزء مهم في تحسين أداء النماذج وتوسيع تطبيقاتها في المستقبل.


Leave a comment

Your email address will not be published. الحقول الإلزامية مشار إليها بـ *