كيف أجعل ChatGPT ينفذ أوامري بدقة؟

السلام عليكم،

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

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

محاور النقاش

  • كيف يمكن صياغة الأوامر بشكل يجعلها أكثر وضوحًا وفعالية؟
  • أمثلة تطبيقية: مشاركة أمثلة حقيقية عن الأوامر التي تم تنفيذها بنجاح، وكيفية تحسينها.
  • نصائح عامة لتحسين التفاعل مع ChatGPT

أدعو كل من لديه تجارب أو نصائح أو أسئلة حول تحسين أداء ChatGPT للمشاركة في هذا الموضوع. وسأكون بإذن الله متواجدة للرد.

الفهرس

مبادئ عامة لتحسين صياغة الأسئلة:


كيف يمكنني ان القن الذكاء الصنعي caht gpt عن التعليمات الدقيقية التي يرغب ان يقومها عني سواء كحلول لمسائل مهمة او حتى صياغة او كتابة نص الكثير من الاحيان اعاني من نتائج سيئة اثناء المعالجة رغم انني اقوم بمراعاة التفاصيل اثناء الشرح واذكر له الخطوات بدقة هل يوجد كتيب ما او سكرت مخفي في الموضوع وشكرا :)

@yusuf_907 @mo_light سننظر في مبدأين رئيسيين لكتابة الأوامر: 

  1. كتابة أوامر واضحة ومحددة.
  2. منح النموذج الوقت للتفكير في إجابة.

المبدأ الأول، وتطبيقه

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

طريقة (1): استخدام المحددات لتحديد الأجزاء المختلفة من المدخلات

بعض أنواع المحددات التي يمكنك استخدامها:

  • Triple quotes: """ 
  • Triple backticks: ```
  • Triple dashes: ---
  • Angle brackets: < >
  • Xml tags: <tag> </tag>
لخص لي النص الموجود بين علامات التنصيص الثلاثية في جملة واحدة: 
""" نص هنا """

طريقة (2): اطلب مخرجات منظمة

حدد نوع المخرجات بوضوح، مثلا:

  • JSON
  • HTML
قم بإنشاء قائمة بثلاثة عناوين كتب مبتكرة مع مؤلفيها وأنواعها. قدمها بتنسيق JSON بالمفاتيح التالية: book_id, title, author, genre.

طريقة (3): اطلب من النموذج التحقق مما إذا كانت الشروط مستوفاة

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

سيتم تزويدك بنص محاط بعلامات تنصيص ثلاثية. إذا كان يحتوي على تسلسل من التعليمات، أعد كتابة هذه التعليمات بالتنسيق التالي: 
الخطوة 1:  ..
الخطوة 2:  ... 
....
الخطوة N: ... 
إذا كان النص لا يحتوي على تسلسل من التعليمات، فقط اكتب "لا توجد تعليمات في النص".

طريقة (4): "تلقين الأمثلة" للنموذج

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

مهمتك هي الإجابة بأسلوب متسق. 
الطفل: علمني عن الصبر. 
الجد: النهر الذي ينحت أعمق وادي يتدفق من نبع عادي؛ أعظم سيمفونية تبدأ من نغمة واحدة؛ أكثر الأقمشة تعقيدًا تبدأ بخيط واحد.
الطفل: علمني عن المرونة.

المبدأ الثاني، وتطبيقه

قلنا إن المبدأ الثاني هو إعطاء النموذج الوقت للتفكير. لماذا؟

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

متى تستخدم هذا المبدا؟ عندما تجد أن البوت يسرع بإعطائك إجابات بها أخطاء منطقية أو حسابية؛ لأنه يسرع في إعطائك أي جواب والسلام (تجد أنه يحزر الإجابة، ولا يقوم بحل المسألة أو القيام بالمهمة أساسا).

طريقة (1): حدد الخطوات المطلوبة لإكمال المهمة

لنقل أني أريده أن أرسل له نصوص بالإنجليزية؛ فيقوم بتلخيصها بالعربي، ويحفظ لي التلخيص، وأسماء الشخصيات التي في النص في صورة JSON. المهمة معقدة كما ترون، لذا كيف أكتبها؟

الأمر:

النتيجة:

طريقة (2): أخبر النموذج أن يحل المسألة بنفسه قبل التسرع في الوصول إلى إجابة

لنقل أننا نريد من النموذج أن يقوم بتصحيح أسئلة الاختبار لعدد من الطلاب: نعطيه المسألة وإجابة الطالب، ويقول: نعم (جواب صحيح)، أو لا (جواب خاطئ) أي: يحدد إذا كانت الإجابات التي أعطاها الطلاب صحيحة أم لا. في هذه الحالة، يجب توجيه النموذج لأن يحل المسألة أولا؛ وإلا سيعطيك نعم أو لا بشكل عشوائي.

هذا مثال لأمر:

ثم، عندما أرسل له سؤال، وجواب طالب، يرسل لي:

سأضيف ردودا أخرى موجهة أكثر للمطورين، والعملية التكرارية لإيجاد الأمر المناسب. ثم، بعض التطور الحادث مؤخرا كبديل عن الأوامر المباشرة (لمن يريد التجربة فقط؛ لأنه ما زال قيد التطوير).