Menu
flag Ar iconالعربيةdown icon

الموجّه بالأمثلة (Few-Shot): أمثلة ومتى تستخدمه

الموجّه بالأمثلة (few-shot prompting) يضع في الموجّه بضعة أمثلة محلولة، كل منها مُدخل والإجابة التي تريدها، فينسخ النموذج النمط. إنه أسرع طريقة لتعليم صيغة أو مجموعة تصنيفات أو أسلوب مؤسسة لن يخمّنه النموذج.

يمكنك تعديل كل موجّه في هذه الصفحة ثم فتحه في ChatGPT أو Claude أو أي تطبيق ذكاء اصطناعي آخر.

الموجّه بالأمثلة (few-shot prompting) يعني أن تعرض على النموذج بضعة أمثلة محلولة على المهمة، كل منها مُدخل مقرون بالإجابة التي تريدها، قبل أن تعطيه المُدخل الحقيقي. يقرأ النموذج النمط ويكمله. الأمثلة أسرع طريقة لتثبيت أشياء يصعب قولها بالكلمات: أين يقع الحد بين تصنيفين، أو الشكل الدقيق للمخرجات، أو الصوت الذي يكتب به فريقك.

كيف يعمل الموجّه بالأمثلة

أظهر Brown وزملاؤه عام 2020، في بحث "Language Models are Few-Shot Learners"، أن GPT-3 يستطيع التقاط مهمة جديدة من عدد قليل من العروض الموضوعة في الموجّه، دون إعادة تدريب. هذا يُسمّى التعلّم داخل السياق (in-context learning): لا يتغير شيء في النموذج، والأمثلة تؤثر فقط في الرد على ذلك الموجّه. وفي المرة التالية يجب أن تكون الأمثلة موجودة مجددًا.

تتبع التسمية عدد الأمثلة. موجّه zero-shot لا يحتوي أي مثال، وموجّه one-shot يحتوي مثالًا واحدًا، وموجّه few-shot يحتوي عدة أمثلة، عادةً بين اثنين وبضعة أمثلة.

zero-shot مقابل few-shot جنبًا إلى جنب

يطلب التبويبان التاليان الشيء نفسه بالتعليمة نفسها. الفرق الوحيد أن التبويب الثاني يضيف أربعة أمثلة مصنّفة قبل التذكرة الحقيقية.

صنّف تذكرة الدعم على أنها bug أو billing أو account أو feature_request. التذكرة: أعدت تعيين كلمة المرور لكن الجديدة لا تعمل، تظهر لي دائمًا رسالة بيانات الدخول غير صحيحة.
Try it
Example replyReplies vary between models and runs.

التصنيف: bug

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

غيّرت الأمثلة شيئين. الأول هو الصيغة: أضاف رد zero-shot عنوانًا عريضًا وشرحًا، بينما طابق رد few-shot الأمثلة وأعطى كلمة واحدة، يستطيع سكربت قراءتها مباشرة. والثاني هو القرار. "bug" فهم معقول للتذكرة، وسيختاره معظم الناس. لكن هذا الفريق يصنّف مشكلات تسجيل الدخول ضمن account، والمثال الثالث يقول ذلك دون كلمة شرح واحدة. لم تذكر أي تعليمة هذه القاعدة، بل حملتها الأمثلة.

كم مثالًا تستخدم

ابدأ بمثالين إلى خمسة. هذا يكفي لمعظم مهام الصيغة والتصنيف، ويُبقي الموجّه قصيرًا.

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

اختيار أمثلة جيدة

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

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

اجعل الصيغة متطابقة

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

في الأمثلة الأطول، ضع كلًا منها داخل علامات واضحة مثل وسوم <example> حتى يعرف النموذج أين ينتهي مثال ويبدأ التالي، وراجع الفواصل ووسوم XML. وفي واجهة API يمكنك أيضًا تقديم الأمثلة على شكل أدوار سابقة في المحادثة: رسالة مستخدم تحمل مُدخل المثال، ثم رسالة مساعد تحمل الإجابة، وتكرر ذلك لكل مثال.

موجّهات few-shot تصنع قوالب موجّهات جيدة قابلة لإعادة الاستخدام: التعليمة والأمثلة ثابتة ولا يتغير إلا المُدخل. المثال التالي يعيد كتابة رسالة commit بأسلوب فريق ما. اكتب رسالتك في الحقل وأوقف جزء الأمثلة لترى كم من الأسلوب تحمله.

رسائل commit بأسلوب الفريق
Fill in
Parts
أعد كتابة رسالة commit بأسلوب فريقنا. رد بالرسالة المعاد كتابتها فقط.
قبل: أضفت خاصية تصدير csv لصفحة التقارير بعد: feat(reports): add CSV export قبل: حدّثت lodash بسبب تحذير الأمان بعد: chore(deps): update lodash to fix security advisory قبل: أصلحت الانهيار لما تكون السلة فاضية!! بعد: fix(cart): prevent crash when cart is empty قبل: خطأ إملائي في readme بعد: docs(readme): fix typo
قبل: خليت مربع البحث يتجاهل الأحرف الكبيرة والصغيرة بعد:
Try it
Example replyReplies vary between models and runs.

feat(search): make search box case-insensitive

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

يمكن لأمثلة few-shot أن تعرض الاستدلال أيضًا، لا الإجابات فقط. الأمثلة المحلولة التي تُظهر خطواتها هي الطريقة التي قُدّمت بها سلسلة التفكير لأول مرة. ومع النماذج التي تستدل داخليًا قبل أن تجيب، اقصر الأمثلة على المُدخلات والإجابات والصيغة: خطوات الاستدلال المكتوبة مسبقًا قد تبعدها عن طريق أفضل، وبعض المزوّدين ينصحون بتجربة zero-shot أولًا مع تلك النماذج.

الأسئلة الشائعة

ما هو الموجّه بالأمثلة (few-shot)؟

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

كم مثالًا يجب أن يحتوي موجّه few-shot؟

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

ما هو الموجّه بمثال واحد (one-shot)؟

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

هل يتعلم النموذج من أمثلتي؟

للطلب الحالي فقط. تشكّل الأمثلة الرد بوجودها في السياق، ولا تتغير أوزان النموذج، ولا يُتذكر شيء في المحادثة التالية. هذا يُسمّى التعلّم داخل السياق (in-context learning)، ولهذا يجب أن يحمل موجّه few-shot أمثلته في كل مرة تستخدمه.

هل يمكن أن تجعل الأمثلة السيئة المخرجات أسوأ؟

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

Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن