انتقل إلى المحتوى الرئيسي

الوحدة 1 — تشريح التعليمة الفعّالة

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

الأركان الخمسة لكلّ تعليمة قابلة للاعتماد

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

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

ما يتجاهله النموذج فعلًا

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

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

وهناك ما يتجاهله بنيويًا: التنسيق البصري في نافذة الدردشة. فالخطّ العريض والألوان والفقرات المتباعدة لا تُنقَل إلى النموذج نفسه؛ ما يصل إليه هو النصّ الخام. فمن يعتمد على «إيماءات» بصرية يبني على رمل.

الفيل الأحمر: بريد شكوى واستخراج ساذج

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

نبدأ بأبسط تعليمة يمكن تخيّلها:

from openai import OpenAI

client = OpenAI()

email = """السيّدات والسادة،
منذ ثلاثة أيّام وأنا أنتظر جهاز الترموستات الذكي الذي طلبتُه. الطرد
ظاهرٌ عالقًا في مركز الفرز. أحتاجه قبل السبت وإلّا فسأُلغي الطلب.
تحياتي، سليم."""

reponse = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": f"استخرِج المعلومات المهمّة من هذه الرسالة:\n{email}"}],
)
print(reponse.choices[0].message.content)

لماذا تفشل النسخة الساذجة

يعطي هذا النداء نتيجة مقبولة ظاهريًا ومختلفة عند كلّ محاولة: أحيانًا فقرة مسرودة، وأحيانًا قائمة بست نقاط، وأحيانًا جدول من عمودين. المُخرَج غير قابل للتحليل الآلي، ولا نستطيع تغذية أيّ نظام لاحق به. ولا يزال النموذج يخترع حقولًا لم نطلبها، مثل «نبرة الرسالة» أو «تحيّة الختام». وحين تكون الرسالة قصيرة أو ملتبسة، يملأ الفراغات بحدس معقول لكن غير موثَّق.

هذه الأعطال الأربعة — تباين الشكل، والحقول غير المطلوبة، والاختراع، وغياب أثر التتبّع — ليست عيوبًا في النموذج، بل عواقب طبيعية لعدم توفير الأركان الخمسة. الوحدة 2 ستُضيف تعليمة النظام لتحديد الدور، ثم ستُضيف الوحدة 3 الأمثلة، والوحدة 5 المُخطَّط. لكن حتّى قبل ذلك، يمكن قطع مسافة معتبرة بمجرّد إعادة الصياغة:

prompt = """المهمّة: استخرِج المعلومات التالية من رسالة الشكوى أدناه.
الحقول: سبب (تأخّر، عطل، فاتورة، آخر)، منتَج (نصّ)، استعجال
(منخفض، متوسّط، مرتفع)، إجراء مطلوب (جملة قصيرة).
القيود: إن لم يكن الحقل صريحًا في النصّ، اكتب null.
لا تُضِف أيّ حقل آخر ولا أيّ تعليق. أعِد الجواب على شكل JSON فقط.

الرسالة:
\"\"\"{email}\"\"\"
""".format(email=email)

هذه النسخة، التي لا تختلف عن السابقة في شيء غير البنية، تنتج JSON قابلًا للتحليل في تسعة من كلّ عشر محاولات. الوحدات التالية ستقودنا إلى العشرة من عشرة.

طول التعليمة ليس عدوًّا

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

الحدّ الحقيقي هو الكلفة بالجَتونات (tokens)، وهذا مقياس آخر سنعود إليه في الوحدة 3 عند الحديث عن الأمثلة القليلة.

اختبار الاستبدال

قبل أن ترسل تعليمتك، ضع نفسك مكان زميل جديد استلمها للتوّ. هل يستطيع تنفيذها كما هي، دون أن يسأل سؤالًا واحدًا؟ إن كان يحتاج إلى توضيح، فالنموذج سيحتاج إليه أيضًا. الفرق أنّه لن يسأل، بل سيُخمّن.

الأمر ليس ملحًّا لأنّه بصوت عالٍ

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

في الخلاصة

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

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