دليل الأيام العشرة: الذكاء الاصطناعي الصحي مع Python

مسار تدريبي محلي - بيانات اصطناعية واستخدام تشغيلي تعليمي فقط
إعداد وإشراف: د. حسام صلاح مهدي
لا تشخيص لا فرز لا بيانات مرضى العودة إلى مختبر الكود

اليوم 0: تهيئة بيئة التدريب على الحاسوب

الزمن المقترح: 90 دقيقة هدف المسار: 0%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. أهلاً بكم في يومنا التمهيدي - اليوم 0 من رحلتنا. قبل أي ذكاء اصطناعي، أريدكم أن تمتلكوا أدواتكم - فالمتدرب الذي يفهم بيئته لا يتعطل عند أول رسالة خطأ.
  2. انظروا إلى الشكل التوضيحي: خمس طبقات يعتمد بعضها على بعض. احفظوا الترتيب لا الأسماء - Python أولاً، ثم بيئة معزولة لمشروعنا، ثم PyTorch، وأخيراً التعريف والبطاقة.
  3. أكثر سؤال سيصلني منكم اليوم: «ظهر عندي False - هل فشلت؟». الجواب لا. False تعني أن التدريب سيعمل على المعالج العادي - أبطأ نعم، لكنه صحيح مئة بالمئة.
  4. جرّبوا الآن التجربة التفاعلية أسفل هذا الشرح: أطفئوا طبقة الأساس وشاهدوا الحكم. لاحظوا أن كل شيء يسقط بلا Python وبيئة - هذه رسالة اليوم.
  5. بعد التجربة افتحوا تطبيق الدورة وشغّلوا «فحص البيئة المحلية» على أجهزتكم - أريد من كل واحد منكم تقريراً حقيقياً لا افتراضياً.
  6. قاعدة نختم بها: تقرير بيئتك لا يُشارك خارج القاعة إن حمل أسماء مستخدمين أو تفاصيل شبكة - نتدرب على السلامة من الملف الأول.

الشكل التوضيحي

طبقات بيئة التدريب: كل طبقة تعتمد على ما تحتها Python 3.10+الأساس بيئة .venvعزل لكل مشروع PyTorchCUDA build تعريف NVIDIAdriver وحدة GPUأو CPU بأمان هدف الفحص: CUDA available: True + اسم البطاقة إن ظهر False يعمل كل التدريب على CPU - أبطأ لكنه صحيح تماماً

الهدف العلمي

يفهم المتدرب مكونات بيئة التدريب المحلية ويؤكد ما إذا كان جهازه جاهزاً لاستخدام GPU وCUDA.

الأفكار الأساسية

  • بيئة افتراضية مستقلة لكل مشروع.
  • تعريف NVIDIA driver وحزمة PyTorch CUDA build عنصران مختلفان.
  • لا يلزم تثبيت CUDA Toolkit يدوياً في كل حالة؛ اختر أمر التثبيت من صفحة PyTorch الرسمية.

المختبر العملي

  1. شغّل فحص البيئة من تبويب «بيئة الكمبيوتر».
  2. أنشئ بيئة افتراضية باسم .venv.
  3. ثبّت PyTorch باستخدام المحدد الرسمي المتوافق مع نظام التشغيل وGPU.
  4. نفّذ قالب التحقق وتأكد من أن CUDA available تساوي True قبل تدريب نموذج GPU.

المخرج اليومي

تقرير جاهزية محلي يوضح إصدار Python وGPU وPyTorch وحالة CUDA.

تنبيه السلامة

لا تشارك تقرير البيئة إذا احتوى معلومات حساسة عن شبكة المؤسسة أو حسابات المستخدمين.

تجربة تفاعلية

بدّل حالة كل طبقة وشاهد حكم الجاهزية - ثم قارن مع الفحص الحقيقي من التطبيق.

قالب Python

import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA build: {torch.version.cuda}")
print(f"Selected device: {device}")

if device.type == "cuda":
    print(f"GPU: {torch.cuda.get_device_name(0)}")
else:
    print("Training will use CPU. Check the NVIDIA driver and PyTorch install selection.")
دليل المدرب المعمق - اليوم 0 (90 دقيقة)

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

خطة التوقيت المقترحة

الزمنالنشاط
10 دافتتاح: لماذا نبدأ بالبيئة قبل أي ذكاء اصطناعي؟
15 دشرح الشكل التوضيحي: طبقات البيئة من Python إلى GPU
30 دتطبيق: إنشاء .venv وتثبيت المتطلبات على أجهزة المتدربين
20 دفحص البيئة وCUDA من التطبيق ومناقشة النتائج المختلفة
15 داستخلاص وبطاقة خروج: جهازي جاهز/غير جاهز ولماذا

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • شبّه البيئة الافتراضية .venv بغرفة عمليات مخصصة: أدوات كل عملية معزولة حتى لا تختلط أدوية مريض بمريض آخر.
  • التعريف (driver) وبناء CUDA مثل: سائق السيارة ورخصة القيادة — وجود أحدهما لا يغني عن الآخر.
  • اجعل من يظهر جهازه CUDA available: False يقرأ الرسالة بصوت مسموع: الفشل الواضح أفضل من نجاح غامض.

أخطاء شائعة انتبه لها

  • نسخ أمر تثبيت PyTorch من جهاز زميل مختلف المواصفات بدل المحدد الرسمي.
  • تثبيت المكتبات خارج البيئة الافتراضية ثم الاستغراب من تضارب الإصدارات.
  • اعتبار غياب GPU فشلاً؛ كل تمارين الدورة تعمل على CPU.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

لماذا لا نستخدم حواسيب القاعة مباشرة ببيئة واحدة مشتركة؟
لأن تضارب الإصدارات بين المشاريع يعطل الجميع؛ العزل يجعل كل مشروع قابلاً للإصلاح وحده — وهو نفس منطق عزل الملفات الطبية.
جهازي يظهر False في CUDA — هل أتوقف عن الدورة؟
لا؛ التدريب يستمر على CPU بنفس الكود. GPU يسرّع فقط، والأيام 0-7 و9-10 لا تحتاجه إطلاقاً.

استخدام الشكل والتجربة التفاعلية

استخدم تجربة «فحص الجاهزية» التفاعلية: يبدّل المتدرب حالة كل طبقة (Python، البيئة، PyTorch، CUDA) ويقرأ الحكم؛ اربطها بعد ذلك بالفحص الحقيقي من زر «فحص البيئة المحلية».

علامة الإتقان: يشرح المتدرب لزميله الفرق بين تعريف NVIDIA وبناء CUDA في جملتين، ويعرف خطوته التالية سواء ظهر True أو False.

اليوم 1: الذكاء الاصطناعي في الخدمة الصحية: الحدود قبل الأدوات

الزمن المقترح: 90 دقيقة هدف المسار: 10%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. اليوم نرسم الخطوط الحمراء قبل أن نكتب أي سطر برمجي - وهذا أهم درس في الدورة كلها.
  2. في الشكل ثلاث مناطق: الأخضر ملعبنا التشغيلي، والأصفر تعليمي بضوابط، والأحمر سريري خارج نطاقنا تماماً. لاحظوا الصندوق فوقها: الإنسان المسمى بالاسم يقرر دائماً.
  3. أعطيكم قاعدتي الشخصية: كل ما مسّ مريضاً بعينه فهو سريري - مهما بدا بسيطاً. توزيع الكادر تشغيلي؛ أولوية دخول مريض قرار طبي لا يقترب منه نموذجنا.
  4. افتحوا الآن تجربة «تصنيف القرارات» وصنّفوا العبارات الخمس مع زملائكم - ولا تخجلوا من الخطأ، فالعبارة الرمادية التي تختلفون عليها هي أثمن ما في الجلسة.
  5. بعد التصنيف اكتبوا ميثاق فريقكم: حالة بجملة واحدة، صاحب قرار باسمه ودوره، مؤشر نجاح، وشرط إيقاف رقمي. الميثاق الذي لا يذكر ما «لن نفعله» ناقص.
  6. تذكروا: لا نصف أي نموذج تدريبي بأنه نظام تشخيص أو فرز - هذه الجملة ستلازمنا عشرة أيام.

الشكل التوضيحي

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

الهدف العلمي

يفرق المتدرب بين التحليل التشغيلي، المساعدة التعليمية، والقرار السريري الذي يبقى مسؤولية مختص مؤهل.

الأفكار الأساسية

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

المختبر العملي

  1. شغّل السيناريو التعليمي «ضغط الوردية الصباحية» في TRAINER_SIMULATION.html.
  2. اكتب في فريقك الفرق بين توقع الازدحام والتشخيص الطبي.
  3. حدد مؤشراً واحداً للنجاح ومؤشر إيقاف واحداً.

المخرج اليومي

ميثاق استخدام آمن يحدد ما سيفعله المشروع وما لن يفعله.

تنبيه السلامة

لا تصف أي نموذج تدريبي بأنه نظام تشخيص أو فرز طبي ما لم يمر بحوكمة وتحقق سريريين منفصلين.

تجربة تفاعلية

صنّف كل عبارة: هل هي استخدام تشغيلي مسموح في دورتنا أم سريري خارج النطاق؟

قالب Python

use_case = "توقع ضغط المراجعين خلال ساعتين"
human_owner = "مدير الخدمة"
stop_condition = "اكتمال البيانات أقل من 82%"

print(f"حالة الاستخدام: {use_case}")
print(f"صاحب القرار البشري: {human_owner}")
print(f"شرط الإيقاف: {stop_condition}")
دليل المدرب المعمق - اليوم 1 (90 دقيقة)

الفكرة المحورية: حدود الاستخدام تُرسم قبل كتابة أي سطر كود؛ النموذج يقترح والإنسان المسمى بالاسم يقرر.

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع اليوم السابق: سؤالان سريعان عن البيئة
20 دسيناريو «ضغط الوردية الصباحية» في المحاكاة — مشاهدة ثم تجربة
20 دشرح الشكل: المناطق الثلاث (تشغيلي/تعليمي/سريري)
25 دعمل فرق: صياغة ميثاق استخدام آمن لحالة من واقع أقسامهم
15 دعرض المواثيق ونقدها: أين صاحب القرار؟ أين شرط الإيقاف؟

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • شبّه النموذج بموظف استقبال جديد شديد الملاحظة: يعرف الأنماط (الاثنين مزدحم) لكنه لا يملك قرار فتح ردهة أو تحويل مريض.
  • استخدم قاعدة «الجملة الواحدة»: كل مشروع لا يمكن وصف حالته في جملة قابلة للقياس هو مشروع غير جاهز.
  • اطلب من الفرق كتابة ما لن يفعله النظام قبل ما سيفعله؛ القائمة السلبية تكشف الفهم الحقيقي.

أخطاء شائعة انتبه لها

  • صياغة حالة استخدام فضفاضة مثل «تحسين الخدمة» بدل «توقع ضغط المراجعين خلال ساعتين».
  • تسمية جهة (قسم) صاحبَ قرار بدل شخص بدور محدد.
  • القفز إلى الحديث عن الخوارزميات قبل الاتفاق على الحدود.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

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

استخدام الشكل والتجربة التفاعلية

بعد المحاكاة شغّل تجربة «تصنيف القرارات»: عبارات يصنفها الفريق (تشغيلي/سريري) ويرى التغذية الراجعة فوراً؛ العبارات الرمادية هي وقود النقاش الأفضل.

علامة الإتقان: ميثاق الفريق يتضمن: حالة بجملة واحدة، صاحب قرار بالاسم والدور، مؤشر نجاح واحداً، وشرط إيقاف كمياً.

اليوم 2: بايثون من الصفر: المتغيرات والدوال والجداول

الزمن المقترح: 120 دقيقة هدف المسار: 20%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. اليوم تكتبون أول برنامج لكم - ووعدي: من يقرأ ناتجه بصوت مسموع يفهم البرمجة أسرع ممن يحفظ الصيغ.
  2. الشكل يلخص الفكرة: الدالة آلة صغيرة - مدخلات تدخل، إجراء ثابت يُطبق، ومخرج يخرج. مثل بروتوكول قياس الضغط: الخطوات نفسها لكل مريض والقراءة تختلف.
  3. جرّبوا حاسبة فرق السعة في التجربة التفاعلية: حركوا المنزلقين وتوقعوا الرقم قبل ظهوره. من أصاب توقعه ثلاث مرات متتالية فهم المعادلة.
  4. الآن انسخوا قالب Python وشغّلوه كما هو دون أي تعديل - نجاح التشغيل الأول يكسر الرهبة. ثم غيّروا قيمة واحدة فقط وفسّروا الأثر.
  5. حين تظهر رسالة خطأ - وستظهر - اقرؤوا سطرها الأخير بهدوء: هو يخبركم بالمشكلة غالباً. الخطأ في البرمجة معلومة لا فضيحة.
  6. خلاصة اليوم: المتغير اسم لقيمة، والدالة خطوة قابلة لإعادة الاستخدام، والرقم الناتج يعرض على الإنسان ليقرر - لا يقرر بنفسه.

الشكل التوضيحي

الدالة: بروتوكول ثابت يعاد استخدامه على أي مدخلات المراجعون المتوقعون48 السعة المتاحة36 calculate_capacity_gap() الطرح نفسه مهما تغيرت القيم فرق السعة12 مراجعاً المخرج رقم يعرض على الإنسان - قرار فتح مسار إضافي يبقى لمدير الخدمة

الهدف العلمي

يكتب المتدرب دالة Python صغيرة تحسب مؤشراً تشغيلياً مفهوماً ويقرأ الناتج.

الأفكار الأساسية

  • المتغير اسم لقيمة؛ والدالة خطوة قابلة لإعادة الاستخدام.
  • ابدأ ببيانات اصطناعية صغيرة قبل أي ملف فعلي.
  • اقرأ الناتج بصوتك قبل تعديل الكود.

المختبر العملي

  1. افتح محرر Python أو JupyterLab داخل البيئة الافتراضية.
  2. انسخ القالب وشغله كما هو.
  3. غيّر عدد المراجعين أو السعة فقط، ثم فسر الأثر.

المخرج اليومي

برنامج قصير يحسب فرق السعة التشغيلية بطريقة قابلة للفهم.

تنبيه السلامة

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

تجربة تفاعلية

حرّك المنزلقين وشاهد فرق السعة يتغير - ثم افتح قالب Python وستجد نفس الحساب بسطرين.

قالب Python

def calculate_capacity_gap(expected_visitors, available_slots):
    return expected_visitors - available_slots

expected_visitors = 48
available_slots = 36
capacity_gap = calculate_capacity_gap(expected_visitors, available_slots)

print(f"فرق السعة: {capacity_gap}")
دليل المدرب المعمق - اليوم 2 (120 دقيقة)

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

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: ماذا يقرر النموذج وماذا يقرر الإنسان؟
20 دالمتغير والدالة على الشكل التوضيحي: آلة لها مدخلات ومخرج
40 دتطبيق موجه: تشغيل القالب ثم تغيير قيمة واحدة وتفسير الأثر
30 دتمرين الفرق: جدول ساعات الصباح وإيجاد أعلى عجز
20 دقراءة الناتج بصوت مسموع واستخلاص: ماذا تعني القيمة السالبة؟

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • المتغير مثل خانة في استمارة: له اسم واضح وقيمة واحدة في كل لحظة.
  • الدالة مثل بروتوكول قياس الضغط: خطوات ثابتة تعيد تنفيذها على أي مريض — المدخل يتغير والإجراء ثابت.
  • استخدم قاعدة «غيّر شيئاً واحداً فقط»: من يغير قيمتين معاً لن يعرف أيهما سبب التغير.

أخطاء شائعة انتبه لها

  • الخوف من رسالة الخطأ بدل قراءتها؛ درّبهم أن السطر الأخير من الرسالة يقول ما المشكلة غالباً.
  • تسمية المتغيرات بحروف مفردة (x, y) بدل أسماء ذات معنى تشغيلي.
  • نسخ الكود دون تشغيله كما هو أولاً قبل أي تعديل.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

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

استخدام الشكل والتجربة التفاعلية

تجربة «حاسبة فرق السعة» التفاعلية تسبق الكود: حرك المنزلقين وشاهد الفرق يتلون؛ ثم أرهم أن قالب Python يفعل الشيء نفسه بسطرين — الكود يفقد رهبته.

علامة الإتقان: يعدّل المتدرب قيمة واحدة، يتنبأ بالناتج قبل التشغيل، ويصيب — ثلاث مرات متتالية.

اليوم 3: جمع البيانات: من سؤال العمل إلى مجموعة بيانات صالحة

الزمن المقترح: 120 دقيقة هدف المسار: 30%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. سأبدأ بسؤال أسمعه كثيراً: «أعطونا كل البيانات ونحن نتدبر». هذا بالضبط ما لن نفعله اليوم - فالسؤال يسبق الجمع دائماً.
  2. تتبعوا خط الأنابيب في الشكل من اليمين: سؤال عمل واحد، ثم أقل الحقول التي تجيب عنه، ثم قاموس يوثق كل عمود، ثم موافقة الحوكمة - وعندها فقط بيانات آمنة.
  3. قاعدتي الذهبية التي أريدها أن تبقى معكم بعد الدورة: البيانات التي لا تُجمع لا تُسرَّب. كل حقل زائد عبء حماية وسطح خطر.
  4. جرّبوا تجربة «انتقاء الحقول»: اختاروا ما يجيب عن سؤال الانتظار. زرعتُ لكم فخاخاً - من اختار اسم المريض سيرى المسار يتوقف كما يتوقف في الواقع.
  5. املؤوا الآن قاموس البيانات مع فريقكم، ودافعوا عن كل حقل بسؤال واحد: أي قرار يتغير لو حذفناه؟ إن لم تجدوا جواباً فاحذفوه.
  6. وانتبهوا: حذف الاسم وحده ليس إخفاء هوية - التاريخ الدقيق والحالة النادرة قد يعيدان التعرف. الإخفاء إجراء معتمد لا مجرد مسح عمود.

الشكل التوضيحي

من سؤال العمل إلى بيانات تدريب آمنة - الترتيب ليس اختيارياً سؤال العملقرار واحد قابل للقياس أقل الحقولكل عمود له مبرر قاموس البياناتمعنى ووحدة ومالك موافقة الحوكمةقبل أي مصدر حقيقي بيانات آمنةاصطناعية أو مجهولة ممنوع دخول مساحة التدريب الاسم - الهاتف - الهوية - العنوان - الصور - النص السريري الحر قاعدة ذهبية: البيانات التي لا تُجمع لا تُسرَّب

الهدف العلمي

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

الأفكار الأساسية

  • السؤال يسبق جمع البيانات: ما القرار التشغيلي الذي نريد دعمه؟
  • اجمع الحد الأدنى اللازم من الحقول ولا تجمع المعرفات المباشرة.
  • قاموس البيانات يصف المعنى، الوحدة، المصدر، والمالك لكل عمود.

المختبر العملي

  1. من تبويب «جمع البيانات»، أنشئ مساحة مشروع تدريبية آمنة.
  2. افتح data_dictionary_template.csv وحدد الحقول اللازمة فقط.
  3. راجع قائمة الجمع مع مسؤول البيانات والحوكمة قبل استخدام أي مصدر حقيقي.

المخرج اليومي

قالب قاموس بيانات وقائمة تحقق لجمع بيانات تشغيلية مجهولة الهوية.

تنبيه السلامة

لا تعد إزالة الاسم وحدها إخفاء هوية كاملاً؛ التواريخ الدقيقة والمجموعات النادرة قد تعيد التعرف على الشخص.

تجربة تفاعلية

اختر أقل مجموعة حقول تجيب سؤال الانتظار. انتبه: بعض الحقول فخاخ توقف المسار.

قالب Python

import pandas as pd

required_columns = {
    "visit_date",
    "service",
    "scheduled_hour",
    "arrivals_count",
    "staff_available",
    "wait_minutes",
}

dataset = pd.read_csv("data/synthetic/appointments_sample.csv")
missing_columns = required_columns.difference(dataset.columns)

if missing_columns:
    raise ValueError(f"Missing columns: {sorted(missing_columns)}")

print(dataset.head())
print(f"Rows: {len(dataset)}")
دليل المدرب المعمق - اليوم 3 (120 دقيقة)

الفكرة المحورية: السؤال التشغيلي يحدد الحقول؛ ومن جمع أكثر مما يحتاج خلق خطراً لا قيمة.

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: اقرأ ناتج دالة اليوم السابق بلغة العمل
20 دالشكل التوضيحي: خط أنابيب من السؤال إلى بيانات آمنة
25 دسيناريو «بيانات ناقصة أو متناقضة» في المحاكاة
35 دتمرين: اختيار الحد الأدنى من الحقول وملء قاموس البيانات
30 دمراجعة متبادلة بين الفرق: هل كل حقل مبرر بالسؤال؟

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

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

أخطاء شائعة انتبه لها

  • طلب «كل البيانات المتاحة» ثم البحث عن سؤال لاحقاً.
  • اعتبار حذف الاسم إخفاء هوية كاملاً مع بقاء تاريخ دقيق وحالة نادرة تعيد التعرف.
  • بدء الاستخراج من مصدر حقيقي قبل توقيع الحوكمة — حتى «للتجربة فقط».

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

لماذا يعد جمع بيانات زائدة خطراً وليس مجرد هدر؟
كل حقل إضافي هو التزام حماية إضافي وسطح تسريب أوسع وسبب لإعادة تعرف محتملة؛ البيانات التي لا تُجمع لا تُسرّب.
متى تكفي البيانات المجمعة (بالساعة) ومتى نحتاج سجلات فردية؟
لقرارات السعة والانتظار تكفي التجميعات تماماً — وهي نطاق هذه الدورة؛ السجلات الفردية تخص أسئلة سريرية خارج نطاقنا وتتطلب مساراً حوكمياً آخر.

استخدام الشكل والتجربة التفاعلية

تجربة «انتقاء الحقول»: قائمة حقول فيها فخاخ (اسم المريض، رقم الهاتف)؛ اختيار أي فخ يوقف التجربة برسالة — نفس سلوك بوابة اليوم الرابع البرمجية.

علامة الإتقان: قاموس بيانات الفريق يذكر لكل حقل: المعنى والوحدة والمصدر والمالك وسبباً تشغيلياً واحداً لوجوده.

اليوم 4: جودة البيانات وإخفاء الهوية

الزمن المقترح: 120 دقيقة هدف المسار: 40%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

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

الشكل التوضيحي

أربع بوابات قبل التحليل - بوابة الحساسية أولاً ودائماً الحقول الحساسةوجود أي معرف =توقف فوري الاكتمالأين النقص ولماذا؟ التكراروزن زائد للفترة نفسها المدى المنطقيساعة 23 في وردية صباح؟ بيانات صالحةجاهزة للتحليل سجل المعالجة يرافق كل بوابة لكل قرار: الفحص - النتيجة - الإجراء - السبب - المسؤول

الهدف العلمي

يفحص المتدرب اكتمال البيانات وتناسقها قبل أي تحليل ويوقف العمل عند وجود حقول حساسة غير مصرح بها.

الأفكار الأساسية

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

المختبر العملي

  1. شغّل فحوص الاكتمال على الملف الاصطناعي.
  2. أضف عموداً حساساً تجريبياً ولاحظ أن الفحص يوقف المسار.
  3. اكتب سبب أي قرار استبعاد في سجل المعالجة.

المخرج اليومي

تقرير جودة بيانات وسجل معالجة قابل للمراجعة.

تنبيه السلامة

لا تعرض أبداً عينة بيانات حساسة على جهاز العرض قبل التأكد من أن مصدرها مصرح ومجهول الهوية وفق إجراء معتمد.

تجربة تفاعلية

حرّك نسبة اكتمال البيانات وشاهد بوابة العرض تفتح أو تغلق عند العتبة المتفق عليها 82%.

قالب Python

import pandas as pd

dataset = pd.read_csv("data/synthetic/appointments_sample.csv")
sensitive_columns = {"patient_name", "phone_number", "national_id", "address"}
found_sensitive_columns = sensitive_columns.intersection(dataset.columns)

if found_sensitive_columns:
    raise ValueError(f"Sensitive columns found: {sorted(found_sensitive_columns)}")

missing_rate = dataset.isna().mean().sort_values(ascending=False)
print("Missing values by column:")
print(missing_rate)
دليل المدرب المعمق - اليوم 4 (120 دقيقة)

الفكرة المحورية: الفحص قبل التحليل، والتوثيق قبل الحذف؛ وأي حقل حساس يوقف المسار كله فوراً.

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: لماذا الحد الأدنى من الحقول؟
20 دالشكل: بوابات الجودة الأربع بالترتيب ولماذا الحساسية أولاً
40 دمختبر: النسخة المعيبة عمداً — اكتشاف العيوب الأربعة بالفحوص
30 دكتابة سجل المعالجة: قرار وسبب ومسؤول لكل عيب
20 دمنزلق جودة البيانات في المحاكاة: متى نوقف الاقتراح؟

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

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

أخطاء شائعة انتبه لها

  • التعويض الآلي بالمتوسط لمجرد أن الدالة موجودة في المكتبة.
  • حذف الصفوف الشاذة بصمت ثم عرض نتائج «نظيفة» غير قابلة للتدقيق.
  • فحص الاكتمال مرة واحدة في البداية فقط، مع أن البيانات الواردة تتغير كل فترة.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

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

استخدام الشكل والتجربة التفاعلية

بعد المختبر شغّل تجربة «بوابة الاكتمال»: منزلق نسبة الاكتمال يفتح البوابة أو يغلقها عند 82%؛ اربطها بشرط الإيقاف المكتوب في ميثاق اليوم الأول.

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

اليوم 5: التحليل الاستكشافي للبيانات التشغيلية باستخدام Pandas

الزمن المقترح: 120 دقيقة هدف المسار: 50%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. اليوم نحول الجداول إلى قرارات. سؤالي لكل جدول سترسمونه: عن أي سؤال عمل يجيب؟ إن لم يوجد سؤال فلا يوجد جدول.
  2. انظروا إلى مخطط الساعات في الشكل: الذروة عند التاسعة واضحة بلونها الداكن. هذه ليست معلومة إحصائية - هذه دعوة لمراجعة توزيع الكادر.
  3. أحذركم من فخ المتوسط: متوسط 18 دقيقة يبدو مريحاً بينما متوسط ساعة الذروة يتجاوز 27 دقيقة - والوسيط 12 يعني أن نصف الفترات مريحة وذيلاً طويلاً يعاني. المتضرر يتذكر الذيل لا المتوسط.
  4. جرّبوا تجربة «استكشاف الذروة»: انقروا كل ساعة واقرؤوا تعليقها التشغيلي - ثم قرروا مع فريقكم: أي فترة تراجعون أولاً ولماذا؟
  5. في المختبر ستكتشفون أثر يوم الجمعة بالأرقام - وأريد الجواب جدولاً لا انطباعاً: نحن ننقل الإدارة من «أشعر أن» إلى «تظهر البيانات أن».
  6. وتذكروا حدودنا: مؤشراتنا تشغيلية مجمعة - لا تبرر أي استنتاج طبي عن فرد أو مجموعة.

الشكل التوضيحي

متوسط الانتظار (دقيقة) حسب الساعة - بيانات اصطناعية (1911 صفاً) 18.78:00 27.29:00 26.910:00 19.011:00 14.412:00 9.913:00 7.114:00 ساعة الذروة: مراجعة تشغيلية أولاً

الهدف العلمي

يستخرج المتدرب مؤشرات قابلة للتفسير حول المراجعات والسعة والانتظار من بيانات اصطناعية أو معتمدة.

الأفكار الأساسية

  • الجداول يجب أن تجيب سؤالاً عملياً قبل رسم أي مخطط.
  • اعرض القيم المجملة؛ لا تعرض سجلات فردية عندما لا تكون هناك حاجة لها.
  • المتوسط لا يكفي وحده؛ افحص التوزيع والفترات المزدحمة.

المختبر العملي

  1. اقرأ بيانات العينة بوساطة Pandas.
  2. اجمع المراجعات حسب الخدمة والساعة.
  3. ناقش أي ساعة تحتاج مراجعة تشغيلية وليس قراراً سريرياً.

المخرج اليومي

جدول يلخص الطلب ووقت الانتظار حسب الخدمة والساعة.

تنبيه السلامة

المؤشرات التشغيلية لا تبرر استنتاجاً طبياً عن فرد أو مجموعة.

تجربة تفاعلية

انقر ساعة لتمييزها وقراءة تعليقها التشغيلي - أي فترة تراجعها أولاً ولماذا؟

قالب Python

import pandas as pd

dataset = pd.read_csv("data/synthetic/appointments_sample.csv")
summary = (
    dataset.groupby(["service", "scheduled_hour"], as_index=False)
    .agg(
        total_arrivals=("arrivals_count", "sum"),
        average_wait_minutes=("wait_minutes", "mean"),
    )
    .sort_values("average_wait_minutes", ascending=False)
)

print(summary.head(10))
دليل المدرب المعمق - اليوم 5 (120 دقيقة)

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

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: بوابات الجودة الأربع بالترتيب
20 دالشكل: مخطط الانتظار حسب الساعة وقراءة الذروة
45 دمختبر Pandas: أسئلة الخدمة والساعة واليوم والتوزيع
25 دتمرين الفرق: أي فترة نراجعها تشغيلياً أولاً ولماذا؟
20 دعرض النتائج: جدول واحد وقرار واحد لكل فريق

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • دالة groupby مثل فرز ملفات الأرشيف في أدراج حسب القسم ثم عدّ كل درج — لا سحر، مجرد تنظيم وعدّ.
  • لماذا لا يكفي المتوسط؟ متوسط انتظار 18 دقيقة مع وسيط 12 يعني أن نصف الفترات مريحة وذيلاً طويلاً يعاني — والمتضرر يتذكر الذيل لا المتوسط.
  • درّبهم على قراءة الجدول بجملة عمل: «ساعة 9 في الأشعة تحتاج مراجعة سعة» لا «القيمة القصوى 27.2».

أخطاء شائعة انتبه لها

  • رسم مخططات قبل صياغة السؤال — زينة بلا قرار.
  • عرض سجلات فردية على الشاشة بينما يجيب السؤال جدول مجمع.
  • الخلط بين الارتباط والسبب: الازدحام يصاحب طول الانتظار ولا يثبت وحده أنه سببه الوحيد.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

وجدنا أن الجمعة أقل ازدحاماً بكثير — ما القرار التشغيلي الممكن؟
مراجعة توزيع الكادر بين الأيام أو نقل مواعيد مرنة إلى الجمعة؛ ثم قياس أثر التغيير بعد فترة محددة — قرار تجريبي قابل للعكس.
متى نثق بمؤشر مجمع بما يكفي لعرضه على الإدارة؟
عندما نعرف مصدر بياناته واكتمالها وفترتها، ونستطيع إعادة إنتاجه بنفس الكود — المؤشر غير القابل لإعادة الإنتاج لا يُعرض.

استخدام الشكل والتجربة التفاعلية

تجربة «استكشاف الذروة»: أزرار الساعات تضيء أعمدة المخطط ويظهر تعليق تشغيلي لكل ساعة؛ اطلب من كل فريق اختيار ساعة والدفاع عن قرار مراجعتها.

علامة الإتقان: يحوّل المتدرب جدولاً إلى جملة قرار تشغيلي واحدة ويحدد المؤشر الذي سيتابعه بعد التغيير.

اليوم 6: هندسة الميزات ومنع تسرّب الهدف

الزمن المقترح: 120 دقيقة هدف المسار: 60%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. اليوم أكشف لكم أخطر خطأ في هذا المجال كله: تسرب الهدف. نموذج يبدو عبقرياً في الاختبار ثم ينهار في الواقع - لأنه غشّ دون أن يقصد أحد.
  2. الشكل يوضح القصة: نتدرب على الماضي الأزرق ونختبر على المستقبل البرتقالي، والسهم الأحمر المتقطع هو الغش - معلومة من المستقبل تتسلل إلى التدريب.
  3. قاعدة الفحص التي أريدكم أن تحفظوها حرفياً: هل نعرف قيمة هذه الميزة لحظة إصدار التوقع؟ نعم ميزة مشروعة، لا تسرب مرفوض.
  4. جرّبوا منزلق تاريخ الفصل: حركوه لأقصى اليسار وشاهدوا الاختبار يصبح أقصر من أن يثبت شيئاً - التقسيم قرار له عواقب وليس تفصيلاً تقنياً.
  5. في تمرين صيد التسرب سأعطيكم حقولاً تبدو بريئة - «وقت انتهاء الخدمة الفعلي» مثلاً. طبقوا القاعدة بصرامة ولا تستثنوا حقلاً لأنه «مفيد».
  6. لماذا أشدد هكذا؟ لأن النموذج المتسرب يكسب ثقة غير مستحقة - وفي بيئة صحية، الثقة غير المستحقة أخطر من الضعف الواضح.

الشكل التوضيحي

القرار مستقبلي - إذن الاختبار على مستقبل لم يره النموذج تدريب: 1407 صفوف 2025-11-02 حتى 2026-01-07 اختبار: 504 صفوف 2026-01-08 حتى 2026-01-31 تاريخ الفصل 2026-01-08 تسرب الهدف: معلومة من فترة الاختبار تدخل التدريب = دقة كاذبة قاعدة كل ميزة: هل نعرف قيمتها لحظة إصدار التوقع؟

الهدف العلمي

يفهم المتدرب أن المتغيرات يجب أن تكون معروفة وقت التنبؤ وأن الهدف لا يجوز تسريبه إلى ميزات التدريب.

الأفكار الأساسية

  • الميزة متاحة قبل النتيجة؛ الهدف هو ما نحاول توقعه.
  • استخدم تقسيمات زمنية للبيانات عندما يكون القرار مستقبلياً.
  • افصل تدريب النموذج عن الاختبار النهائي حتى لا يختبر نفسه.

المختبر العملي

  1. حدد هدفاً تشغيلياً: وقت الانتظار في الفترة التالية.
  2. أنشئ ميزات من الوقت والسعة فقط.
  3. استبعد أي حقل يتكون بعد انتهاء فترة الانتظار.

المخرج اليومي

قائمة ميزات موثقة وخطة تقسيم زمني للتدريب والاختبار.

تنبيه السلامة

لا تستخدم قراراً بشرياً لاحقاً أو معلومة مستقبلية كميزة؛ ذلك يعطي نموذجاً يبدو دقيقاً بصورة مضللة.

تجربة تفاعلية

حرّك تاريخ الفصل الزمني وشاهد حجمي التدريب والاختبار - ولاحظ متى يصبح الاختبار قصيراً بلا معنى.

قالب Python

import pandas as pd

dataset = pd.read_csv("data/synthetic/appointments_sample.csv", parse_dates=["visit_date"])
dataset["weekday"] = dataset["visit_date"].dt.dayofweek
dataset["capacity_ratio"] = dataset["arrivals_count"] / dataset["staff_available"].clip(lower=1)

feature_columns = ["scheduled_hour", "staff_available", "weekday", "capacity_ratio"]
target_column = "wait_minutes"

training_dataset = dataset[dataset["visit_date"] < "2026-01-08"]
test_dataset = dataset[dataset["visit_date"] >= "2026-01-08"]

print(training_dataset[feature_columns].head())
print(f"Training rows: {len(training_dataset)} | Test rows: {len(test_dataset)}")
دليل المدرب المعمق - اليوم 6 (120 دقيقة)

الفكرة المحورية: الميزة الصالحة معروفة لحظة التنبؤ؛ وأي معلومة من المستقبل تتسرب إلى التدريب تصنع نموذجاً كاذب الدقة.

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: جدولك أجاب أي سؤال؟
25 دالشكل: خط الزمن والفصل الزمني وسهم التسرب
35 دمختبر: بناء الميزات الخمس وتوثيق سبب مشروعية كل منها
30 دتمرين صيد التسرب: قائمة حقول يصنفها الفريق مشروع/تسرب
20 دالتقسيم الزمني وتأكيد عدم التداخل

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • اختبار بأسئلة رآها الطالب مسبقاً يعطي علامة كاملة كاذبة — التقسيم العشوائي لبيانات زمنية يفعل الشيء نفسه بالنموذج.
  • قاعدة الفحص الذهبية لكل ميزة: «هل نعرف قيمتها الساعة 8 صباحاً ونحن نتنبأ بانتظار الساعة 10؟».
  • وقت انتهاء الخدمة الفعلي يتكون بعد النتيجة — إدخاله كميزة كإعطاء الطبيب نتيجة التحليل قبل طلبه.
  • الدليل الميداني يدعم بساطتنا: في دراسات الانتظار المنشورة حققت متغيرات التقويم وحالة الطابور وحدها جل القوة التنبؤية — وهي نفسها ميزات الورشة الخمس (المصدر: Q-Lasso, M&SOM 2016).

أخطاء شائعة انتبه لها

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

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

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

استخدام الشكل والتجربة التفاعلية

تجربة «حرّك تاريخ الفصل»: منزلق يغيّر تاريخ الفصل ويعرض حجمي التدريب والاختبار؛ وعند سحب ميزة مستقبلية إلى صندوق التدريب يظهر تحذير التسرب.

علامة الإتقان: يصنف المتدرب 5 حقول من 6 تصنيفاً صحيحاً (مشروع/تسرب) مع ذكر السبب بقاعدة «معروف لحظة التنبؤ».

اليوم 7: نموذج خط أساس باستخدام Scikit-Learn

الزمن المقترح: 120 دقيقة هدف المسار: 70%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. اليوم ندرب أول نموذج حقيقي - لكن درسي ليس النموذج بل السؤال الذي سيحميكم من التسويق المبالَغ فيه: أفضل من ماذا؟
  2. تأملوا سلم المقارنة في الشكل: التخمين بالمتوسط يخطئ 11.6 دقيقة، والغابة العشوائية 4.1. الرقم الأخير بلا الأول لا يعني شيئاً - المقارنة هي المعنى كله.
  3. جرّبوا تجربة «سلم النماذج»: توقعوا الترتيب قبل نقر كل طريقة - من توقع أن المتوسط التاريخي البسيط سينافس فهم لماذا نبدأ دائماً بخط أساس.
  4. في المختبر ستبنون السلم بأنفسكم: خطا أساس ثم نموذجان. وأسألكم بعدها سؤال الحسم: هل فارق الدقيقتين بين النموذجين يغيّر قراراً تشغيلياً فعلياً؟ إن لم يكن، فالأبسط يفوز.
  5. وحين تعرضون النتائج على الإدارة قولوا «متوسط خطئنا 6 دقائق مقابل 11.6 للتخمين» - وحدة مفهومة ومقارنة صادقة، لا «دقة 94%» المبهمة.
  6. أخيراً: تدريب النموذج لا يساوي اعتماده - بين الاثنين يقف يوما التقييم والحوكمة، وهذا مقصود.

الشكل التوضيحي

الخطأ المطلق المتوسط بالدقائق - أقصر يعني أفضل، والمقارنة هي المعنى توقع المتوسط دائماً 11.6 متوسط تاريخي (خدمة وساعة) 9.3 انحدار خطي LinearRegression 6.0 غابة عشوائية RandomForest 4.1 الأفضل سؤال الحسم: هل فارق الدقائق يغيّر قراراً تشغيلياً فعلياً؟

الهدف العلمي

يدرب المتدرب نموذجاً بسيطاً لتوقع وقت الانتظار التشغيلي ويقارنه بخط أساس مفهوم.

الأفكار الأساسية

  • ابدأ بنموذج بسيط يمكن شرحه قبل زيادة التعقيد.
  • المقارنة بخط أساس أهم من الاحتفال برقم دقة منفصل.
  • تدريب النموذج لا يساوي اعتماده للاستخدام الحقيقي.

المختبر العملي

  1. جهّز ميزات اليوم السادس وهدف وقت الانتظار.
  2. درب نموذج LinearRegression أو RandomForestRegressor للتوضيح.
  3. قارن خطأ النموذج بمتوسط تاريخي بسيط.

المخرج اليومي

نموذج خط أساس وتقرير خطأ على مجموعة اختبار زمنية.

تنبيه السلامة

هذا تمرين تعليمي تشغيلي؛ لا يعطى للمستخدمين كأداة قرار سريري أو أولوية علاجية.

تجربة تفاعلية

انقر كل طريقة بالترتيب وشاهد سلم المقارنة يبنى - توقع الترتيب قبل النقر.

قالب Python

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

dataset = pd.read_csv("data/synthetic/appointments_sample.csv", parse_dates=["visit_date"])
dataset["weekday"] = dataset["visit_date"].dt.dayofweek

feature_columns = ["scheduled_hour", "arrivals_count", "staff_available", "weekday"]
training_dataset = dataset[dataset["visit_date"] < "2026-01-08"]
test_dataset = dataset[dataset["visit_date"] >= "2026-01-08"]

model = LinearRegression()
model.fit(training_dataset[feature_columns], training_dataset["wait_minutes"])
predicted_wait = model.predict(test_dataset[feature_columns])
mean_error = mean_absolute_error(test_dataset["wait_minutes"], predicted_wait)

print(f"Mean absolute error: {mean_error:.2f} minutes")
دليل المدرب المعمق - اليوم 7 (120 دقيقة)

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

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: قاعدة الميزة المشروعة
20 دالشكل: سلم المقارنة من التخمين إلى الغابة العشوائية
40 دمختبر: خطا الأساس ثم النموذجان وقياس الخطأ زمنياً
25 دنقاش الجدول: هل التحسن يغير قراراً؟ وأي نموذج نعرض ولماذا؟
25 دسيناريو «فرق الأداء بين المواقع» تمهيداً ليوم الحوكمة

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • خط الأساس مثل قياس دواء جديد مقابل العلاج القياسي لا مقابل لا شيء — «أفضل من ماذا؟» هي السؤال دائماً.
  • اشرح MAE بجملة: «متوسط كم دقيقة نخطئ» — وحدة مفهومة لمدير لا يعرف الإحصاء.
  • النموذج الأبسط الذي يخدم القرار يفوز؛ التعقيد يشترى فقط بفارق يستحق ثمنه في الصيانة والتفسير.
  • حالتان موثقتان من النشر الفعلي: نظام Q-Lasso في San Mateo خفض خطأ التنبؤ 33% عن المتوسط المتحرك بنموذج خطي بسيط، وشبكة Hartford (7 مستشفيات) اكتفت في الإنتاج بـXGBoost وحده لأن الأعمق لم يبرر فقدان التفسير (المصادر: M&SOM 2016; arXiv 2305.15629).

أخطاء شائعة انتبه لها

  • الاحتفال بخطأ 4 دقائق دون ذكر أن التخمين بالمتوسط يعطي 11.6.
  • اعتبار أهمية الميزات في الغابة علاقة سببية أو مبرراً كافياً أمام الحوكمة.
  • مقارنة نماذج على تقسيمات مختلفة — المقارنة العادلة تكون على نفس مجموعة الاختبار الزمنية.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

الغابة العشوائية خفضت الخطأ من 6.0 إلى 4.1 دقيقة — هل نعتمدها؟
اسأل أولاً: هل فارق دقيقتين يغير توزيع كادر أو قرار فتح مسار؟ إن لم يكن، فالانحدار الخطي الأبسط تفسيراً قد يكون الخيار الأنضج — والاعتماد نفسه قرار حوكمة لا قرار مبرمج.
لماذا خط أساس «المتوسط التاريخي لكل خدمة وساعة» مهم مع بساطته؟
لأنه ما يفعله مدير خبير ذهنياً؛ إن لم يتفوق النموذج عليه فنحن نعقّد بلا مكسب — وإن تفوق فهذا مكسب مفهوم وقابل للشرح.

استخدام الشكل والتجربة التفاعلية

تجربة «سلم النماذج»: انقر كل طريقة لتُرسم عارضة خطئها تراكمياً؛ اطلب توقع الترتيب قبل النقر — التوقع قبل النتيجة يكشف الفهم.

علامة الإتقان: يعرض المتدرب جدول المقارنة ويجيب بثقة عن «أفضل من ماذا؟ وبكم؟ وهل يغير قراراً؟».

اليوم 8: التدريب المحلي باستخدام PyTorch وCUDA

الزمن المقترح: 150 دقيقة هدف المسار: 80%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. اليوم نلمس وحدة GPU - وأول ما أقوله: هي تشتري السرعة فقط، لا الصحة ولا السلامة. نفس المنهج ونفس القواعد أياً كان الجهاز.
  2. الشكل يرسم المسار: نسأل torch عن CUDA، فإن قال نعم تدربنا سريعاً، وإن قال لا تدربنا على المعالج بصبر أجمل - والنتيجة تقيّم بنفس المعايير.
  3. جرّبوا منحنى التعلم التفاعلي: زيدوا الدورات وراقبوا الخطأ يهبط من 27 إلى قرابة 3 دقائق. هذا الهبوط هو «التعلم» حرفياً - مقارنة وتصحيح في كل دورة.
  4. ثم اسحبوا الدفعة إلى أقصاها وشاهدوا تحذير الذاكرة: التصرف الصحيح تصغير الدفعة - لا إخفاء الخطأ ولا العبث بالبيانات. هكذا يتصرف المحترف.
  5. في المختبر شغّلوا التمرين على أجهزتكم وغيّروا معاملاً واحداً فقط في كل تجربة - من غيّر اثنين معاً لن يعرف أيهما صنع الفرق.
  6. وسؤال أتركه لنقاشكم: خطأ التحقق وصل 3 دقائق - فهل النموذج جاهز للاستخدام؟ من قال «لا، ينقصه التقييم والحوكمة» فقد سبق إلى درس الغد.

الشكل التوضيحي

اختيار الجهاز والرجوع الآمن - الجهاز لا يغيّر صحة المنهج torch.cuda.is_available() True: تدريب على GPU أسرع بكثير في العمليات المتوازية False: تدريب على CPU أبطأ لكنه صحيح تعليمياً تماماً نفدت ذاكرة GPU؟ صغّر batch size أو النموذج لا تخفِ الخطأ ولا تغيّر البيانات القاعدة: النموذج والبيانات على الجهاز نفسه - والنتيجة تقيّم بنفس المعايير أياً كان الجهاز

الهدف العلمي

ينفذ المتدرب تدريباً صغيراً على GPU إن كان متاحاً ويعرف كيفية الرجوع إلى CPU بأمان.

الأفكار الأساسية

  • يختار PyTorch وحدة GPU فقط عندما تعيد torch.cuda.is_available() القيمة True.
  • انقل النموذج والبيانات إلى الجهاز نفسه.
  • صغّر حجم الدفعة أو النموذج عند نفاد ذاكرة GPU؛ لا تخفِ الخطأ ولا تغير البيانات عشوائياً.

المختبر العملي

  1. افتح تبويب البيئة وشغّل الفحص المحلي.
  2. ثبت PyTorch عبر المحدد الرسمي المناسب للجهاز، ثم شغّل cuda_training_demo.py.
  3. راقب اسم الجهاز والنتيجة، ثم غيّر عدد epochs أو batch size فقط.

المخرج اليومي

تقرير تدريب اصطناعي يظهر الجهاز المستخدم وخطأ التدريب والتحقق.

تنبيه السلامة

وحدة GPU تزيد سرعة الحساب فقط؛ لا تحول نموذجاً غير متحقق منه إلى نظام آمن أو صالح سريرياً.

تجربة تفاعلية

غيّر عدد الدورات وحجم الدفعة وشاهد منحنى خطأ التحقق - وجرب دفعة ضخمة لترى تحذير الذاكرة.

قالب Python

try:
    from cuda_training_demo import select_device
except ModuleNotFoundError:
    raise SystemExit("ضع cuda_training_demo.py بجوار هذا الملف، أو شغّل التمرين من جذر مساحة التدريب.")

device = select_device()
print(f"Training device: {device}")
print("Run: python cuda_training_demo.py")
دليل المدرب المعمق - اليوم 8 (150 دقيقة)

الفكرة المحورية: وحدة GPU تغيّر سرعة الحساب لا صحة المنهج؛ والرجوع الآمن إلى CPU مهارة وليس فشلاً.

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: أفضل من ماذا؟ سلم المقارنة
25 دالشكل: مسار اختيار الجهاز والتعامل مع نفاد الذاكرة
50 دمختبر: تشغيل cuda_training_demo ومراقبة انخفاض الخطأ عبر الدورات
35 دتجارب موجهة: تغيير epochs أو batch size فقط وتفسير الأثر
30 داستخلاص: ماذا اشترينا بالسرعة؟ وماذا لم نشترِ؟

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • المعالج CPU طبيب عام يعالج كل شيء بالتسلسل؛ GPU فريق كامل يجري آلاف العمليات الصغيرة المتشابهة معاً — التدريب من النوع الثاني.
  • منحنى الخطأ الهابط هو «التعلم» حرفياً: كل دورة يقارن النموذج توقعه بالحقيقة ويصحح قليلاً.
  • نفاد ذاكرة GPU مثل محاولة إدخال 200 ملف في درج يتسع لمئة: صغّر الدفعة، لا تكسر الدرج ولا تخف الملفات.

أخطاء شائعة انتبه لها

  • زيادة epochs بلا حدود واعتبار كل انخفاض في خطأ التدريب مكسباً — راقب خطأ التحقق.
  • تغيير عدة معاملات دفعة واحدة ثم عجز عن تفسير سبب التحسن أو التدهور.
  • الظن أن نجاح التدريب على GPU يجعل النموذج جاهزاً للاستخدام — التقييم والحوكمة لم يبدآ بعد.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

انخفض خطأ التحقق من 27.8 إلى 3.0 دقائق — ماذا تعلم النموذج فعلاً؟
تعلم العلاقة المزروعة في البيانات الاصطناعية بين الازدحام والانتظار؛ وهذا يثبت أن دورة التدريب تعمل — لا أن النموذج يصلح لأي واقع فعلي.
متى يستحق شراء GPU للمديرية ومتى لا؟
عندما تتكرر تدريبات كبيرة (صور طبية مثلاً ضمن مشروع محوكم) يصبح الاستثمار مبرراً؛ لتحليلات تشغيلية جدولية مثل دورتنا فإن CPU يكفي تماماً.

استخدام الشكل والتجربة التفاعلية

تجربة «منحنى التعلم»: منزلقا epochs وbatch size يرسمان منحنى الخطأ فوراً، ومع دفعة ضخمة يظهر تحذير الذاكرة وطريقة التصرف الصحيحة.

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

اليوم 9: التقييم والحوكمة وبطاقة النموذج

الزمن المقترح: 120 دقيقة هدف المسار: 90%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. وصلنا إلى اليوم الذي يفصل الهواية عن الاحتراف: الحوكمة. النموذج بلا بطاقة وسجل مخاطر وشرط إيقاف غير موجود إدارياً - مهما كانت أرقامه.
  2. في الشكل تشريح البطاقة: ستة حقول إلزامية، ولاحظوا الثاني بالأحمر - «ما لا يستخدم له» - والسادس بالبرتقالي - شرط الإيقاف الرقمي. هذان أهم سطرين تكتبونهما.
  3. شبهوها بالنشرة الدوائية: دواعي الاستعمال وموانعه ومتى يوقف. نموذج بلا نشرة لا يُصرف - هذه سياستنا.
  4. جرّبوا مصفوفة المخاطر: اختاروا احتمالاً وأثراً لخطر من واقع قسمكم وشاهدوا الأولوية والإجراء. ثم انقلوا الناتج إلى سجل المخاطر المكتوب.
  5. وانتبهوا لدرس المواقع في دورة المراقبة: المتوسط الممتاز لا يغفر فجوة تصيب موقعاً بعينه - العدالة تقاس عند أضعف مجموعة، والفجوة تصعّد لا تُخفى.
  6. سؤال أختم به: من يملك قرار إيقاف النموذج؟ ليس مطوره - فصل الصلاحيات مبدأ سلامة قبل أن يكون مبدأ إدارة.

الشكل التوضيحي

بطاقة النموذج: هويته الإدارية - ودورة المراقبة التي تبقيه صادقاً بطاقة النموذج - الحقول الإلزامية 1. الاستخدام المقصود (تشغيلي، بجملة واحدة) 2. ما لا يستخدم له: تشخيص، فرز، قرار علاجي 3. مصدر البيانات ونافذتها الزمنية 4. المقياس مقابل خط أساس + الأداء لكل موقع 5. المالك بالاسم والدور + خطة التراجع 6. شرط الإيقاف الرقمي (مثال: اكتمال أقل من 82%) مراقبة دورية فجوة أو تدهور؟ تصعيد وقرار المالك استمرار موثق

الهدف العلمي

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

الأفكار الأساسية

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

المختبر العملي

  1. املأ بطاقة نموذج للتمرين التشغيلي.
  2. حدد متى يتوقف العرض أو يطلب مراجعة بيانات.
  3. شغّل سيناريو «فرق الأداء بين المواقع» في محاكاة المدرب.

المخرج اليومي

بطاقة نموذج وسجل مخاطر لعرض تعليمي فقط.

تنبيه السلامة

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

تجربة تفاعلية

اختر الاحتمال والأثر لخطر ما وشاهد درجة الأولوية والإجراء المطلوب في المصفوفة.

قالب Python

model_card = {
    "intended_use": "توقع تشغيلي لوقت الانتظار في بيانات تدريبية",
    "not_for": "التشخيص أو الفرز أو قرار علاجي",
    "data_source": "بيانات اصطناعية أو معتمدة مجهولة الهوية",
    "owner": "فريق التحول الرقمي",
    "stop_condition": "انخفاض جودة البيانات أو ظهور فجوة أداء غير مفسرة",
}

for field_name, field_value in model_card.items():
    print(f"{field_name}: {field_value}")
دليل المدرب المعمق - اليوم 9 (120 دقيقة)

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

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: ماذا اشترت السرعة وماذا لم تشترِ؟
25 دسيناريو «فرق الأداء بين المواقع» في المحاكاة
30 دالشكل: تشريح بطاقة النموذج ودورة المراقبة والإيقاف
35 دمختبر: ملء بطاقة نموذج وسجل مخاطر لتمرين اليوم السابع
20 دمحاكاة لجنة حوكمة: فريق يعرض وفريق يسائل

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • بطاقة النموذج مثل النشرة الدوائية: دواعي الاستعمال وموانعه والجرعة والآثار الجانبية ومتى يوقف — نموذج بلا نشرة لا يُصرف.
  • شرط الإيقاف يُكتب يوم الهدوء لا يوم الأزمة؛ مثل عتبة استدعاء الإنعاش: رقم متفق عليه سلفاً لا اجتهاد لحظي.
  • خطة التراجع سؤال واحد: «كيف يستمر العمل غداً لو أطفأنا النموذج الليلة؟» — من لا يملك جواباً لا يملك نشر نموذج.
  • قصة تحذيرية موثقة: مستشفى Leiden الجامعي نشر نموذجاً دقيقاً متحققاً منه أربعة أشهر بلوحة عرض — ففشل تشغيلياً: 67% من الطاقم لم يستخدموه لغياب التكامل مع سير العمل وغياب إجراءات مرتبطة بالتنبؤ (Int J Med Inform 2026). الدرس: تصميم الاستخدام يسبق النموذج.

أخطاء شائعة انتبه لها

  • كتابة البطاقة بعد النشر كإجراء شكلي بدل كتابتها قبل أي عرض.
  • شرط إيقاف إنشائي («عند تدهور الجودة») بلا رقم قابل للقياس.
  • معالجة فجوة الموقع بتعديل عتبة أو إخفاء الموقع بدل التصعيد وتحليل السبب.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

المتوسط العام ممتاز لكن موقعاً واحداً أداؤه ضعيف — لماذا لا نكتفي بالمتوسط؟
لأن الضرر لا يتوزع بالمتوسط؛ سكان ذلك الموقع يتلقون خدمة أسوأ بانتظام. العدالة تقاس عند أضعف مجموعة، والتصعيد للحوكمة واجب لا خيار.
من يملك قرار إيقاف النموذج؟ ولماذا لا يكون مطوره؟
مالك معلن في البطاقة (مدير خدمة/مسؤول حوكمة)؛ المطور منحاز لمنتجه بحكم الطبيعة البشرية، وفصل الصلاحيات مبدأ سلامة قبل أن يكون مبدأ إدارة.

استخدام الشكل والتجربة التفاعلية

تجربة «مصفوفة المخاطر»: يختار الفريق احتمالاً وأثراً لكل خطر فتتلون الخلية ويظهر الإجراء المطلوب؛ ثم يُنقل الناتج إلى سجل المخاطر المكتوب.

علامة الإتقان: بطاقة الفريق تحوي شرط إيقاف رقمياً ومالكاً بالاسم وخطة تراجع تجيب سؤال «ماذا لو أطفأناه الليلة؟».

اليوم 10: مشروع التخرج: لوحة تدريبية قابلة للشرح

الزمن المقترح: 150 دقيقة هدف المسار: 100%
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. يوم التخرج. اليوم لا أعلمكم شيئاً جديداً - أشاهدكم تجمعون كل شيء في لوحة واحدة تصمد أمام الأسئلة.
  2. تأملوا تشريح اللوحة الآمنة في الشكل: شريط الصدق أعلاها، ثلاثة مؤشرات لا أكثر، مخطط واحد يخدم القرار، واسم صاحب القرار ظاهر. وعلى اليسار قائمة الممنوعات الحمراء.
  3. قاعدتي في التصميم: الثواني الخمس - مدير يمر أمام الشاشة يجب أن يفهم الرسالة في خمس ثوانٍ. إن احتاج شرحاً فلوحتكم معرض بيانات لا أداة قرار.
  4. جرّبوا تجربة «ركّب لوحتك»: فعّلوا حقل رقم المريض وشاهدوا الحكم يتحول إلى الأحمر مهما جمّلتم البقية - عنصر ممنوع واحد يفسد كل شيء، وهذه رسالتي الأخيرة لكم.
  5. في عرضكم سأقيّمكم بمعايير معلنة - وأصعب سؤال سأطرحه: «ما الذي لن تفعله هذه اللوحة أبداً؟». الفريق الذي يجيب بثقة فهم الدورة.
  6. شكراً لعشرة أيام من الجد. خطوتكم التالية المشروعة: التحسين ضمن بوابات الحوكمة وتدريب زملائكم - وأما وصل اللوحة بنظام حي فمشروع آخر له طريقه الكامل. وفقكم الله.

الشكل التوضيحي

تشريح لوحة آمنة: أقل ما يلزم القرار + صدق كامل عن الحدود تدريب فقط - بيانات اصطناعية - ليست أداة قرار سريري متوسط الانتظار18 دقيقة ساعة الذروة9:00 اكتمال البيانات96% مخطط واحد يخدم القرار صاحب القرار: مدير الخدمة مراجعة أسبوعية موثقة شرط الإيقاف ظاهر دائماً: يتوقف العرض إذا قل الاكتمال عن 82% ممنوع في اللوحة نهائياً اتصال بنظام حي أو HIS/PACS أي حقل يخص مريضاً بعينه صياغة توحي بقرار سريري إدخال أو تخزين بيانات حية

الهدف العلمي

يعرض الفريق لوحة محلية تستخدم بيانات مجمعة وتشرح النتيجة والحدود وخطوة المراجعة البشرية.

الأفكار الأساسية

  • واجهة المستخدم يجب أن توضح أن المخرج اقتراح تشغيلي لا حكم طبي.
  • اعرض المعلومة التي يحتاجها المستخدم، لا كل البيانات المتاحة.
  • النجاح هو تفسير آمن وقابل للمراجعة، لا مجرد تشغيل التطبيق.

المختبر العملي

  1. اختر مؤشراً تشغيلياً واحداً من بيانات العينة.
  2. اصنع لوحة محلية صغيرة باستخدام Streamlit أو اعرض TRAINER_SIMULATION.html.
  3. قدم بطاقة النموذج، شرط الإيقاف، وخطة التحسين التالية.

المخرج اليومي

عرض فريق للوحة تشغيلية تعليمية وملف حوكمة مختصر.

تنبيه السلامة

لا تربط لوحة مشروع التخرج بنظام حي ولا تسمح بإدخال أو تخزين بيانات مرضى.

تجربة تفاعلية

ركّب لوحتك بالمفاتيح وشاهد الحكم: عنصر واحد ممنوع يقلب اللوحة كلها إلى غير آمنة.

قالب Python

import streamlit as st

st.set_page_config(page_title="لوحة تدريبية", layout="wide")
st.title("لوحة توقع تشغيلي - تدريب فقط")
st.warning("بيانات اصطناعية. لا تستخدم للتشخيص أو الفرز أو قرار علاجي.")
st.metric("وقت انتظار متوقع", "24 دقيقة")
st.caption("يلزم قرار بشري ومراجعة لجودة البيانات قبل أي إجراء تشغيلي.")
دليل المدرب المعمق - اليوم 10 (150 دقيقة)

الفكرة المحورية: اللوحة الناجحة تعرض أقل ما يلزم القرار، وتقول بوضوح ما هي وما ليست، وتترك القرار لإنسان مسمى.

خطة التوقيت المقترحة

الزمنالنشاط
10 داسترجاع: عناصر بطاقة النموذج الإلزامية
20 دالشكل: تشريح لوحة آمنة — ما يوجد وما يمنع
55 دعمل الفرق: بناء اللوحة وملف الحوكمة المرافق
45 دالعروض: 7 دقائق عرض و5 أسئلة لكل فريق بمعايير التقييم
20 دالختام: الاختبار البعدي وبطاقة خروج الدورة

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • قاعدة الثواني الخمس: مدير يمر أمام الشاشة يجب أن يفهم الرسالة الرئيسية في خمس ثوانٍ — وإلا فاللوحة معرض بيانات لا أداة قرار.
  • عبارة «تدريب فقط - ليست أداة قرار سريري» ليست زينة قانونية؛ هي خط الدفاع الأول ضد انزلاق الاستخدام مع الوقت.
  • قيّم العرض بسؤال واحد: «لو رفضت اللجنة لوحتكم، أي شريحة تدافع عنها أولاً؟» — الجواب يكشف هل فهموا الجوهر.

أخطاء شائعة انتبه لها

  • حشو اللوحة بكل مخطط ممكن بدل مؤشر واحد يخدم قراراً واحداً.
  • نسيان شرط الإيقاف وحالة البيانات (الاكتمال والفترة) من واجهة العرض.
  • وصف المشروع في العرض بعبارات سريرية («يكتشف الحالات الحرجة») بعد عشرة أيام من التحذير.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

ما الفرق بين لوحة تعرض 12 مخططاً ولوحة تعرض مؤشرين؟
الأولى تنقل عبء التفكير للمشاهد والثانية أنجزت التفكير سلفاً؛ القيمة في الانتقاء — «ماذا حذفت؟» سؤال تصميم أهم من «ماذا أضفت؟».
انتهت الدورة — ما الخطوة التالية المشروعة وما غير المشروعة؟
المشروع: تحسين اللوحة على بيانات مجمعة معتمدة ضمن بوابات الحوكمة، وتدريب زملاء جدد. غير المشروع: وصلها بنظام حي أو استخدامها لقرار يمس مريضاً — هذا مسار مشروع آخر كامل الأركان.

استخدام الشكل والتجربة التفاعلية

تجربة «ركّب لوحتك»: مفاتيح تضيف وتزيل عناصر (شريط تحذير، مؤشر، جدول، حقل رقم مريض) والحكم يتغير فوراً؛ إضافة حقل المريض تقلب الحكم أحمر مهما جمّلت البقية.

علامة الإتقان: عرض الفريق يجتاز معايير التقييم مع درجتين كاملتين في «جودة البيانات» و«الإشراف البشري»، ولوحته تصمد أمام سؤال «ما الذي لن تفعله هذه اللوحة أبداً؟».

ملحق: درّب نموذجك خطوة بخطوة

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

  1. هذا الملحق جوابي على سؤال يقلقني أكثر من أي شيء آخر: هل ستستطيعون تدريب نموذج بأنفسكم بعد أن أغادر القاعة؟ كل ما سبق يقود إلى هنا.
  2. انظروا إلى الشكل: ثماني محطات. أكثرها تخطياً هي محطة الفصل - ولهذا لونتها بالأصفر. من يتخطاها يحصل على رقم جميل لا معنى له.
  3. القاعدة التي أريدكم أن تحفظوها بالتكرار لا بالفهم أولاً: ست خطوات، لا تتغير أبداً. حمّل، افحص، افصل، درّب السلّم، اقرأ التقرير، ثم قرر. التبديل بين مجموعة وأخرى يغيّر ثلاثة أسماء فقط.
  4. جرّبوا الآن التجربة التفاعلية: اختاروا بيانات الدراجات وانظروا إلى النموذج الخطي. خسر أمام متوسط تاريخي بسيط. هذه ليست حالة نادرة، هذا هو الواقع - ولهذا نبني السلّم بالترتيب.
  5. ثم بدّلوا طريقة الفصل على البيانات نفسها: 77.7 تصبح 46.8. رقم أفضل بأربعين بالمئة وكاذب تماماً. لو عرض عليكم موظف الرقمين، أيهما سيضعه في عرضه؟ هنا مسؤوليتكم.
  6. خطتكم بعد الورشة مكتوبة أسفل الصفحة: تمارين اليوم الثاني تصحح نفسها، ثم تمارين الجدول، ثم الوصفة على بيانات جديدة، ثم مشروع ببطاقة نموذج. كرروا المشروع على مجموعة جديدة كل شهر - التكرار على بيانات جديدة هو ما يحول المعرفة إلى مهارة.

الشكل التوضيحي

مسار بناء النموذج: ثماني محطات لا تُختصر السؤالاليوم 1 البياناتاليوم 3 الجودةاليوم 4 الميزاتاليوم 6 الفصلاليوم 6 التدريباليوم 7 التقييماليوم 7 القرار: بطاقة نموذج أو توقف - اليوم 9 الوصفة نفسها لأي جدول - ست خطوات load_table - peek - time_split - train_ladder - report - قرر ثلاثة فخاخ تُقاس بالأرقام لا بالنصيحة فصل عشوائي - تعقيد بلا داع - تسريب ميزة تخطي محطة واحدة يجعل باقي المسار بلا معنى - وأكثرها تخطياً محطة الفصل

لماذا وصفة واحدة؟

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

تجربة تفاعلية

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

مجموعات البيانات المتاحة للتدرب

المجموعةماذا نتوقعالحجم والترخيصلماذا اخترناها
bike_hourly
UCI Bike Sharing
حجم الطلب في كل ساعة 17,379 صفاً
CC BY 4.0 - يشترط الإسناد
بنيتها مطابقة لمسألة الورشة: ساعة ويوم أسبوع وعطلة وطقس تتنبأ بالطلب. تنزيل مباشر بلا حساب وبلا أي خطر خصوصية.
no_shows
Kaggle
هل يحضر المريض موعده 110,527 موعداً
يتطلب حساباً مجانياً
أقرب مجموعة عامة إلى واقع المديرية، ومدخل طبيعي لدرس التصنيف والفئات غير المتوازنة. بيانات حقيقية منزوعة الهوية تُعامل باحترام.
cms_ed_times
CMS - وزارة الصحة الأميركية
زمن البقاء في الطوارئ لكل مستشفى 4,081 مستشفى
مجال عام
أرقام طوارئ حقيقية منشورة رسمياً. تفتح نقاش «ماذا يقيس المؤشر بالضبط؟» ومثال على أن الفصل العشوائي هو الصحيح أحياناً.
nhs_ae_monthly
NHS England
عدد المراجعات الشهرية 180 شهراً
Open Government Licence
تُعلّم ميزات التأخر lag وخط الأساس الموسمي، وتُظهر انحراف السلسلة بعد الجائحة بالعين المجردة.
mimic_iv_ed
PhysioNet
لا يُنزَّل في الورشة وصول معتمد
اتفاقية + تدريب أخلاقيات بحث
مدرجة عمداً كمثال على ما نمتنع عنه: بيانات طوارئ على مستوى المريض تتطلب اعتماداً شخصياً. البوابة تسبق الفضول التقني.

الخطة العملية من اليوم الثاني إلى ما بعد الورشة

  1. قبل الورشة بيوم (المدرب): python tools/fetch_datasets.py ثم --offline-check. إن نجحت البوابة عملت الورشة كلها بلا إنترنت.
  2. اليوم 2: اثنا عشر تمريناً يصحح نفسه في labs/day02b_python_drills.py - كل تمرين سطر واحد وتلميح عند الخطأ.
  3. اليوم 5: ثمانية تمارين على الجدول في labs/day05b_pandas_drills.py: تصفية، تجميع، ترتيب، وقراءة النقص.
  4. اليوم 7: شغّل الوصفة على بيانات الورشة، ثم على بيانات UCI بلا تعديل يذكر عبر labs/day07b_train_any_table.py.
  5. اليوم 9: مشروع التخرج labs/day09b_capstone.py - يولد مسودة بطاقة نموذج تكملها بنفسك.
  6. بعد الورشة: كرر المشروع على مجموعة جديدة كل شهر. التكرار على بيانات جديدة هو ما يحول المعرفة إلى مهارة.

الوصفة كاملة للنسخ

# الوصفة نفسها لأي جدول - ست خطوات لا تتغير
from trainkit import load_table, peek, add_calendar_features, time_split, train_ladder, report

table = load_table("data/synthetic/appointments_sample.csv")
peek(table)
table = add_calendar_features(table, date_column="visit_date")
train, test = time_split(table, date_column="visit_date", split_date="2026-01-08")
result = train_ladder(
    train,
    test,
    features=["scheduled_hour", "arrivals_count", "staff_available", "weekday"],
    target="wait_minutes",
)
report(result)

# التبديل إلى مجموعة أخرى لا يغير الوصفة، بل ثلاثة أسماء فقط:
# اسم الملف، اسم عمود التاريخ، واسم الهدف.

تنبيهات السلامة

  • الخط الأحمر مزدوج الاتجاه: ننزّل بيانات عامة للتدرب، ولا نرفع أي بيانات وزارية إلى الإنترنت مهما كان المبرر.
  • لا بيانات مرضى على أجهزة الورشة حتى لو أتيحت بحساب شخصي - ولهذا تحديداً لا نستخدم MIMIC-IV-ED هنا.
  • تدريب النموذج لا يساوي اعتماده. لا يُعرض أي نموذج على جهة تشغيلية قبل بطاقة نموذج مكتملة وشرط إيقاف وصاحب قرار بالاسم.
  • الأرقام هنا تعليمية على بيانات أجنبية أو اصطناعية، ولا تُنقل كمعايير لأداء أي مؤسسة عراقية.
دليل المدرب المعمق - اليوم 98 (60 دقيقة)

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

خطة التوقيت المقترحة

الزمنالنشاط
10 دلماذا وصفة واحدة؟ عرض الست خطوات وربطها بالأيام السابقة
12 دالتجربة التفاعلية: سلّم النماذج على أربع مجموعات حقيقية
8 دفخ الفصل: 77.7 مقابل 46.8 على البيانات نفسها
20 دتطبيق: تشغيل الوصفة على مجموعة لم يعملوا عليها
10 داستخلاص: متى يكون القرار الصحيح ألا نستخدم نموذجاً أصلاً؟

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

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

أخطاء شائعة انتبه لها

  • الانبهار بانخفاض مفاجئ في الخطأ بدل الشك فيه - أول تفسير يجب فحصه هو التسريب لا العبقرية.
  • استخدام الفصل العشوائي على سلسلة زمنية لأنه أعطى رقماً أفضل.
  • تجاوز خط الأساس والقفز إلى الغابة العشوائية مباشرة، فلا يعرف أحد هل تفوقت على حساب يدوي بسيط أصلاً.
  • اعتبار الوصفة صندوقاً سحرياً: هي ترتيب للتفكير لا بديل عنه، وكل بوابة فيها تمثل خطأ وقع فعلاً في مشاريع حقيقية.
  • تنزيل بيانات مرضى حقيقية «للتدرب» لأنها متاحة بحساب شخصي - وهذا تحديداً ما يمنعه مثال MIMIC-IV-ED المدرج في الدليل.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

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

استخدام الشكل والتجربة التفاعلية

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

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

ملحق: تشغيل الورشة على Google Colab

مسار اختياري بديل يتطلب إنترنت وحساب Google
د
د. حسام صلاح مهدي يشرح الشرح الموجه: تنقّل بين الخطوات ونفّذ ما يطلبه منك

  1. هذا الملحق لمن جهازه لا يسعفه - Colab يعطيكم جهازاً جاهزاً في المتصفح مع GPU مجاني. لكن اسمعوا قاعدتي قبل أي شيء.
  2. القاعدة الصفرية: Colab خدمة سحابية عامة خارج بيئة وزارتنا - بيانات اصطناعية فقط، ولا ملف واحد من أنظمة العمل يقترب منه، مهما كان المبرر ومهما صغر الملف.
  3. جرّبوا تجربة الملاءمة: فعّلوا مفتاح «سأرفع ملفات من نظام المستشفى» وشاهدوا كل شيء يتحول إلى الأحمر - صممتها هكذا عمداً لتتذكروا.
  4. المسار عملياً تسع خطوات مكتوبة أسفل التجربة - وخلاصتها: ارفعوا دفتر الإعداد، ولّدوا البيانات داخل الجلسة، وفعّلوا GPU من قائمة Runtime عند الحاجة.
  5. واحفظوا طبيعة المكان: الجلسة مؤقتة وكل ملفاتها تزول - لذلك عودوا أنفسكم «أعد التوليد ولا تخزّن»، ونزّلوا ما يلزم قبل الإغلاق.
  6. أخيراً: لوحة اليوم العاشر تعرض محلياً لا على Colab - والمسار المحلي يبقى خيارنا الافتراضي في القاعة؛ هذا الملحق شبكة أمان لا بديل دائم.

الشكل التوضيحي

مساران لنفس الكود - والبوابة الصفرية تحكم المسار السحابي أين نشغّل مختبرات الورشة؟ المسار الأساسي: جهاز محلي بيئة .venv - يعمل دون إنترنت بعد الإعداد الخيار الافتراضي في قاعة التدريب البديل السحابي: Google Colab جهاز جاهز في المتصفح + GPU مجاني جلسة مؤقتة - كل شيء يعاد توليده بوابة صفرية: بيانات اصطناعية فقط - لا ملفات مرضى إطلاقاً المساران يشغلان الكود نفسه بلا أي تعديل

لماذا هذا المسار ومتى؟

  • جهاز جاهز في المتصفح خلال دقيقة: لا تثبيت Python ولا مكتبات - كل أساسيات الورشة (pandas وscikit-learn وtorch) مثبتة مسبقاً.
  • وحدة GPU مجانية عند الحاجة - تمرين اليوم الثامن يعمل عليها كما هو.
  • حل عملي للمتدرب الذي لا يملك جهازاً يكفي للتدريب المحلي.
  • نفس دفاتر الورشة ونفس الكود بلا أي تعديل - المسار المحلي يبقى الخيار الافتراضي في القاعة.

تجربة تفاعلية

بدّل المفاتيح لتعرف هل يناسب Colab حالتك - ولاحظ أن مفتاحاً واحداً يقلب كل شيء إلى منع قاطع.

خطوات من الألف إلى الياء

  1. الحساب والدخول: سجل الدخول بحساب Google تدريبي ثم افتح colab.research.google.com.
  2. تجربة أولى (دقيقة واحدة): أنشئ دفتراً جديداً (New notebook)، اكتب print("مرحباً") وشغّل الخلية بزر التشغيل أو Shift+Enter.
  3. ارفع دفتر الإعداد: من القائمة File ← Upload notebook اختر notebooks/colab_setup.ipynb من حزمة الورشة.
  4. جهّز الجلسة: شغّل خلايا دفتر الإعداد بالترتيب: رفع generate_synthetic_data.py وcuda_training_demo.py، ثم توليد البيانات الاصطناعية داخل الجلسة.
  5. فعّل GPU عند الحاجة (اليوم الثامن): من القائمة Runtime ← Change runtime type اختر T4 GPU ثم Save - ستعاد تهيئة الجلسة فأعد تشغيل خلايا الإعداد.
  6. افتح مختبر اليوم: ارفع دفتر اليوم المطلوب من مجلد notebooks/ بنفس طريقة الخطوة 3 وتابع كما في القاعة.
  7. احفظ نسختك: من File ← Save a copy in Drive تحفظ نسخة دائمة من الدفتر في حسابك.
  8. نزّل المخرجات قبل الإغلاق: ملفات الجلسة في /content تُمسح عند إعادة التشغيل - نزّل ما تحتاجه أو احفظه في Drive.
  9. انقطعت الجلسة؟ طبيعي في الخطة المجانية: أعد فتح دفتر الإعداد وشغّل خلاياه - تعود البيئة كاملة خلال دقيقة لأن كل شيء قابل لإعادة التوليد.

تفاصيل صغيرة تصنع فرقاً

  • Runtime ← Run all (أو Ctrl+F9) يشغّل كل الخلايا بالترتيب - مفيد بعد انقطاع الجلسة.
  • عند فتح دفتر شاركه معك المدرب اضغط Copy to Drive أولاً - وإلا لن تُحفظ تعديلاتك.
  • خلايا النص (Markdown) للشرح ولا تُنفذ؛ خلايا الكود وحدها تعمل. لمحاذاة عربية يمينية في خلية نص غلّف المحتوى بـ <div dir="rtl">.
  • الحصة المجانية متغيرة وغير معلنة، والجلسة 12 ساعة كحد أقصى - أعد المسرّع إلى CPU عندما لا تحتاج GPU حفاظاً على حصتك.
  • تغيير نوع بيئة التشغيل يعيد تشغيل الجلسة - لذلك فعّل GPU أولاً ثم شغّل خلايا الإعداد.

خلايا جاهزة للنسخ

# خلايا جاهزة تعمل داخل Colab (كل مجموعة في خلية مستقلة)

# 1) رفع ملفات المشروع من جهازك
from google.colab import files
uploaded = files.upload()   # اختر generate_synthetic_data.py و cuda_training_demo.py

# 2) توليد بيانات الورشة الاصطناعية داخل الجلسة
!python generate_synthetic_data.py

# 3) فحص GPU بعد تفعيله من Runtime > Change runtime type
import torch
print("CUDA:", torch.cuda.is_available())

# 4) تشغيل تمرين اليوم الثامن كما هو
!python cuda_training_demo.py --epochs 40

# 5) تنزيل ناتج إلى جهازك قبل انتهاء الجلسة
files.download("data/synthetic/appointments_sample.csv")

# 6) (اختياري) ربط Google Drive للحفظ الدائم
from google.colab import drive
drive.mount("/content/drive")

تنبيهات السلامة

قواعد المسار السحابي - غير قابلة للاستثناء: Colab خدمة سحابية عامة خارج بيئة الوزارة، لذلك يُمنع رفع أي بيانات مرضى أو ملفات من أنظمة العمل أو كلمات مرور أو اتصالات قواعد بيانات - مهما كان المبرر. هذا المسار مخصص حصراً للبيانات الاصطناعية المولدة داخل الجلسة. لا تفتح دفاتر من مصادر مجهولة (الدفتر كود يُنفذ على حسابك)، ولوحة اليوم العاشر (Streamlit) تُعرض محلياً لأن Colab لا يشغلها مباشرة.

دليل المدرب المعمق - ملحق Google Colab (70 دقيقة)

الفكرة المحورية: منصة Colab تحل مشكلة الأجهزة الضعيفة وتهدي GPU مجانياً - لكنه خدمة سحابية عامة: بيانات اصطناعية فقط، ولا شيء يخص مريضاً يقترب منه أبداً.

خطة التوقيت المقترحة

الزمنالنشاط
10 دمتى نلجأ إلى Colab؟ قرار جماعي بقائمة الملاءمة التفاعلية
15 دإنشاء الحسابات والدخول إلى colab.research.google.com
20 درفع دفتر اليوم وملفات المشروع وتوليد البيانات داخل الجلسة
15 دتفعيل GPU والتحقق منه ثم تشغيل تمرين اليوم الثامن
10 دالحفظ في Drive وتنزيل المخرجات وفهم زوال الجلسة

اشرحها ببساطة (تشبيهات للكوادر غير البرمجية)

  • شبّه Colab بقاعة تدريب مستأجرة: مجهزة بالكامل وتصل إليها فوراً، لكنها ليست مكتبك - لا تترك فيها أوراقك (الجلسة تُمسح) ولا تُدخل إليها ملفات المرضى (ليست منشأتك).
  • قاعدة الجلسة المؤقتة: كل ما في /content يزول عند إعادة تشغيل بيئة التشغيل - اجعل «أعد التوليد لا تُخزّن» عادة: البيانات الاصطناعية تُعاد بأمر واحد.
  • وحدة GPU المجانية في Colab هي نفسها مفهوم اليوم الثامن: تسرّع الحساب فقط - نفس الكود ونفس القواعد.

أخطاء شائعة انتبه لها

  • رفع أي ملف حقيقي من جهاز العمل «للتجربة» - القاعدة صفرية: ما لم يكن اصطناعياً لا يُرفع.
  • نسيان تفعيل GPU قبل تمرين PyTorch ثم الاستغراب من البطء.
  • ترك النتائج في /content وفقدانها بانتهاء الجلسة بدل تنزيلها أو حفظها في Drive.
  • فتح دفاتر من مصادر مجهولة وتشغيلها - الدفتر كود يُنفذ على حسابك.

أسئلة نقاش بإجابات مرشدة (انقر السؤال)

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

استخدام الشكل والتجربة التفاعلية

ابدأ بتجربة «هل يصلح Colab لحالتك؟»: بدّل المفاتيح وشاهد الحكم - مفتاح «بيانات حقيقية» يقلب كل شيء إلى أحمر مهما كانت بقية الإجابات، وهذه هي الرسالة.

علامة الإتقان: يرفع المتدرب دفتراً وملف المولد، يفعّل GPU ويثبت عمله، يعيد توليد البيانات بعد قطع الجلسة عمداً - ويشرح لماذا لا يقترب أي ملف حقيقي من هذا المسار.