AICODEAgentic Programming · 67723 · 2026-7

Week 2 · video 6 of 8 · transcript

LLMs: What the Model Knows — and Doesn't

ترجمة آلية لم يراجعها إنسان.AI translation, not reviewed by a person.

0:00

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

0:21

في جوهره، النموذج محرّك إكمال. تعطونه نصًا، فيتنبّأ بالتكملة الأرجح لهذا النص. هنا نعطيه بداية جملة عن رواية لهاروكي موراكامي من عام 2030.

0:35

يُكمل النموذج الجملة بعنوان محدّد. لاحظوا كم يبدو كلامه سلسًا وواثقًا. يبدو تمامًا كأنه حقيقة فعلية.

0:46

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

1:02

يتنبّأ النموذج بتكملات تناسب النص. قد يناسب عنوانٌ معقول هذه الجملة حتى لو لم يكن الكتاب موجودًا. التنبّؤ بالتكملة وحده لا يتحقّق من صحّتها. بداية هذه الجملة توحي بقوة بأن عنوانًا سيأتي بعدها. يمكن للنموذج أن يقول «لا أعرف»، لكن ذلك لا يتّبع النمط الذي تمهّد له الجملة. لهذا قد يقدّم النموذج تخمينًا سلسًا حين تنقصه المعلومة التي نحتاجها. الادعاء المختلَق أو الخاطئ الذي يُقدَّم على أنه حقيقة يُسمّى هلوسة.

1:39

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

2:21

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

2:36

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

3:05

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

3:39

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

3:54

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

4:05

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

4:20

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

4:47

تظهر هذه الحدود في الكود أيضًا. لنفترض أننا طلبنا كودًا يعيد تشكيل DataFrame في pandas، وطلبنا اقتراح أداة مساعدة لقراءة ملفات CSV.

4:58

فيجيب بثقة، مقترحًا دالة اسمها unpivot وحزمة اسمها kewl-utils. للوهلة الأولى، يبدو الاسمان معقولين تمامًا.

5:08

لا يصلح أيٌّ من الاسمين. unpivot هو الاسم في مكتبات DataFrame أخرى، لكن هذه العملية تُسمّى في pandas باسم melt. أما اسم الحزمة فمختلَق. أدواتكم العادية تكشف الاثنين. يفشل السكربت من أول تشغيل، ويفشل تثبيت الحزمة. لكن نجاح التثبيت وحده لا يؤكّد أنها الحزمة التي قصدتموها.

5:29

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

5:56

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

6:09

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

6:22

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

6:33

في الكود، يظهر كل هذا على شكل APIs مختلَقة وحزم غير موجودة.

6:39

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

6:54 of video · 869 words · 22 slides← Back to the video