إعداد مختبر لتعليم علم البيانات باستخدام Python وJupyter Notebooks

توضح هذه المقالة كيفية إعداد جهاز ظاهري للقالب (VM) في Azure Lab Services يتضمن أدوات لتعليم الطلاب استخدام دفاتر ملاحظات Jupyter. يمكنك أيضا معرفة كيفية اتصال مستخدمي المختبر بدفاتر الملاحظات على أجهزتهم الظاهرية.

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

إشعار

تشير هذه المقالة إلى الميزات المتوفرة في خطط المختبر، والتي حلت محل حسابات المختبر.

المتطلبات الأساسية

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

تكوين إعدادات خطة المختبر

بعد أن يكون لديك اشتراك Azure، يمكنك إنشاء خطة مختبر في Azure Lab Services. لمزيد من المعلومات حول إنشاء خطة مختبر جديدة، راجع التشغيل السريع: إعداد الموارد لإنشاء مختبرات. يمكنك أيضا استخدام خطة مختبر موجودة.

يستخدم هذا التمرين المعملي إحدى صور Data Science Virtual Machine كصورة الجهاز الظاهري الأساسية. تتوفر هذه الصور في Azure Marketplace. يتيح هذا الخيار لمنشئي المختبر ثم تحديد الصورة كصورة أساسية لمختبرهم. تحتاج إلى تمكين هذه الصور في خطة المختبر الخاصة بك.

اتبع هذه الخطوات لتمكين صور Azure Marketplace المتوفرة لمنشئي المختبر.

  • حدد إحدى صور Azure Marketplace التالية، اعتمادا على متطلبات نظام التشغيل:

    • Data Science Virtual Machine – Windows Server 2019/Windows Server 2022
    • Data Science Virtual Machine – Ubuntu 20.04
  • بدلا من ذلك، قم بإنشاء صورة جهاز ظاهري مخصصة:

    تم تكوين صور Data Science VM في Azure Marketplace بالفعل باستخدام Jupyter Notebooks. تتضمن هذه الصور أيضا أدوات تطوير ونمذجة أخرى لعلوم البيانات. إذا لم تكن بحاجة إلى هذه الأدوات الإضافية وتريد إعدادا خفيف الوزن مع دفاتر ملاحظات Jupyter فقط، فبادر بإنشاء صورة جهاز ظاهري مخصصة. على سبيل المثال، راجع تثبيت JupyterHub على Azure.

    بعد إنشاء الصورة المخصصة، قم بتحميل الصورة إلى معرض حساب لاستخدامها مع Azure Lab Services. تعرف على المزيد حول استخدام معرض الحوسبة في Azure Lab Services.

إنشاء معمل

تكوين جهاز القالب

بعد إنشاء مختبر، قم بإنشاء قالب VM يستند إلى حجم الجهاز الظاهري والصورة التي تختارها. قم بتكوين القالب VM مع كل ما تريد توفيره لطلابك لهذا الفصل. لمزيد من المعلومات، راجع إنشاء قالب وإدارته في Azure Lab Services.

تأتي صور Data Science VM مع العديد من أطر عمل علوم البيانات والأدوات المطلوبة لهذا النوع من الفئات. على سبيل المثال، تتضمن الصور ما يلي:

  • Jupyter Notebooks: تطبيق ويب يسمح لعلماء البيانات بأخذ البيانات الأولية وتشغيل الحسابات ورؤية النتائج في نفس البيئة. يتم تشغيله محليا في القالب VM.
  • Visual Studio Code: بيئة تطوير متكاملة (IDE) توفر تجربة تفاعلية غنية عند كتابة دفتر ملاحظات واختباره. لمزيد من المعلومات، راجع العمل مع Jupyter Notebooks في Visual Studio Code.

يتم توفير صورة Data Science Virtual Machine – Ubuntu مع خادم X2Go لتمكين مستخدمي المختبر من استخدام تجربة سطح مكتب رسومية.

تمكين الأدوات لاستخدام وحدات معالجة الرسومات

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

على سبيل المثال، للتحقق من أن TensorFlow يستخدم GPU، اتصل بالقالب VM وقم بتشغيل التعليمات البرمجية Python-TensorFlow التالية في Jupyter Notebooks:

import tensorflow as tf
from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())

إذا كان الإخراج من هذه التعليمة البرمجية يبدو مثل النتيجة التالية، فإن TensorFlow لا يستخدم GPU:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
]

متابعة لهذا المثال، راجع دعم وحدة معالجة الرسومات TensorFlow للحصول على إرشادات. تغطي إرشادات TensorFlow ما يلي:

بعد اتباع خطوات TensorFlow لتكوين وحدة معالجة الرسومات، عند إعادة تشغيل التعليمات البرمجية للاختبار، يجب أن ترى نتائج مشابهة للإخراج التالي.

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 11154792128
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2659412736190423786
physical_device_desc: "device: 0, name: NVIDIA Tesla K80, pci bus id: 0001:00:00.0, compute capability: 3.7"
]

توفير دفاتر الملاحظات للصف

المهمة التالية هي تزويد مستخدمي المختبر بدفاتر الملاحظات التي تريد منهم استخدامها. يمكنك حفظ دفاتر الملاحظات محليا على القالب VM بحيث يكون لكل مستخدم مختبر نسخته الخاصة.

إذا كنت ترغب في استخدام نماذج دفاتر الملاحظات من Azure التعلم الآلي، فشاهد كيفية تكوين بيئة باستخدام Jupyter Notebooks.

نشر جهاز القالب

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

الاتصال إلى Jupyter Notebooks

تعرض الأقسام التالية طرقا مختلفة لمستخدمي المختبر للاتصال بدفاتر ملاحظات Jupyter على الجهاز الظاهري للمختبر.

استخدام Jupyter Notebooks على الجهاز الظاهري للمختبر

يمكن لمستخدمي المختبر الاتصال من أجهزتهم المحلية إلى الجهاز الظاهري للمختبر ثم استخدام Jupyter Notebooks داخل الجهاز الظاهري للمختبر.

إذا كنت تستخدم جهازا ظاهريا معمليا مستندا إلى Windows، يمكن لمستخدمي المختبر الاتصال بأدوات المختبر الظاهرية الخاصة بهم من خلال سطح المكتب البعيد (RDP). لمزيد من المعلومات، راجع كيفية الاتصال بجهاز ظاهري لمختبر Windows.

إذا كنت تستخدم جهازا ظاهريا معمليا يستند إلى Linux، يمكن لمستخدمي المختبر الاتصال بالأجهزة الظاهرية للمختبر الخاصة بهم من خلال SSH أو باستخدام X2Go. لمزيد من المعلومات، راجع كيفية الاتصال ب Linux lab VM.

نفق SSH إلى خادم Jupyter على الجهاز الظاهري

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

اتبع هذه الخطوات لتكوين نفق SSH بين الجهاز المحلي للمستخدم وخادم Jupyter على الجهاز الظاهري للمختبر:

  1. انتقل إلى موقع Azure Lab Services على الويب.

  2. تحقق من تشغيل الجهاز الظاهري للمختبر المستند إلى Linux.

  3. حدد أيقونة >الاتصال الاتصال عبر SSH للحصول على أمر اتصال SSH.

    يبدو أمر اتصال SSH مثل المثال التالي:

    ssh -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus2.cloudapp.azure.com
    

    تعرف على المزيد حول كيفية الاتصال بجهاز Linux الظاهري.

  4. على الكمبيوتر المحلي، قم بتشغيل terminal أو موجه الأوامر، وانسخ سلسلة الاتصال SSH إليه. ثم أضف -L 8888:localhost:8888 إلى سلسلة الأوامر، التي تنشئ النفق بين المنافذ.

    يجب أن يبدو الأمر النهائي مثل المثال التالي.

    ssh –L 8888:localhost:8888 -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus.cloudapp.azure.com
    
  5. اضغط على مفتاح الإدخال Enter لتشغيل الأمر.

  6. عند المطالبة، قم بتوفير كلمة مرور الجهاز الظاهري للمختبر للاتصال بالجهاز الظاهري للمختبر.

  7. عند الاتصال بالجهاز الظاهري، ابدأ تشغيل خادم Jupyter باستخدام هذا الأمر:

    jupyter notebook
    

    يقوم الأمر إخراج عنوان URL لخادم Jupyter في المحطة الطرفية. يجب أن يبدو عنوان URL مثل هذا المثال:

    http://localhost:8888/?token=8c09ecfc93e6a8cbedf9c66dffdae19670a64acc1d37
    
  8. للاتصال بدفتر ملاحظات Jupyter والعمل عليه، الصق عنوان URL هذا في مستعرض على الكمبيوتر المحلي.

    إشعار

    يتيح Visual Studio Code أيضا تجربة تحرير Jupyter Notebook رائعة. يمكنك اتباع الإرشادات حول كيفية الاتصال بخادم Jupyter البعيد واستخدام نفس عنوان URL من الخطوة السابقة للاتصال من VS Code بدلا من المتصفح.

تقدير التكلفة

يوفر هذا القسم تقدير تكلفة لتشغيل هذه الفئة ل 25 مستخدم مختبر. هناك 20 ساعة من الوقت المجدول للفصل الدراسي. أيضا، يحصل كل مستخدم على حصة 10 ساعات للواجب المنزلي أو الواجبات خارج وقت الفصل الدراسي المجدول. كان حجم الجهاز الظاهري الذي تم اختياره هو وحدة معالجة الرسومات الصغيرة البديلة (الحوسبة)، وهي 139 وحدة معملية. إذا كنت تريد استخدام Small (20 وحدة معمل) أو متوسطة الحجم (42 وحدة مختبر)، يمكنك استبدال جزء وحدة المختبر في المعادلة هنا بالرقم الصحيح.

فيما يلي مثال على تقدير التكلفة المحتمل لهذه الفئة: 25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD.

هام

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

في هذه المقالة، تعلمت كيفية إنشاء مختبر لفئة Jupyter Notebooks وكيف يمكن للمستخدم الاتصال بدفاتر الملاحظات الخاصة به على الجهاز الظاهري للمختبر. يمكنك استخدام إعداد مشابه لفئات التعلم الآلي الأخرى.

يمكن الآن نشر صورة القالب إلى المختبر. لمزيد من المعلومات، راجع نشر القالب VM.

أثناء إعداد المختبر، راجع المقالات التالية: