كيفية مراقبة مشاريع تعلّم الآلة من هاتفك المحمول بسهولة

دقائق القراءة: 6

مقدمة: لماذا تحتاج إلى متابعة نماذج تعلّم الآلة من الهاتف؟

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

إذا كنت تستخدم Google Colab أو Kaggle أو AzureML، فبإمكانك الاطلاع على تقدم النموذج أثناء التنقل، ومعرفة مؤشرات مثل loss وaccuracy مباشرة من جهازك المحمول. والأفضل من ذلك أن التنفيذ لا يتطلب سوى أسطر قليلة من الشيفرة.

مراقبة مشاريع تعلم الآلة من الهاتف المحمول عبر لوحة تحكم لحظية

ما هي أداة TF Watcher وما فائدتها؟

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

أهم المزايا التي تقدمها الأداة

  • تتكامل بسهولة مع سير العمل الحالي في مشاريع ML دون تعديلات كبيرة.
  • تعرض الرسوم البيانية ولوحات المتابعة بشكل لحظي.
  • توفر روابط قابلة للمشاركة لمتابعة لوحة مباشرة أو مراجعة جلسات سابقة.
  • تعمل كتطبيق ويب تقدمي PWA، ما يسمح باستخدامها على الهاتف بشكل قريب من التطبيقات الأصلية.
  • تمنحك تحكماً دقيقاً في توقيت تسجيل المقاييس metrics.

كيفية مراقبة مشروع تعلّم الآلة على الهاتف باستخدام Google Colab

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

1) تثبيت حزمة tf-watcher

أول خطوة هي تثبيت الحزمة البرمجية tf-watcher من PyPI داخل الدفتر البرمجي.

!pip install tf-watcher

بعد التثبيت، تصبح الأداة جاهزة للدمج مع تدريب النموذج أو حتى مع عمليات التقييم والتنبؤ.

2) إنشاء نموذج بسيط للتجربة

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

لنبدأ بتحميل البيانات وتجهيزها:

import tensorflow as tf

# Load example MNIST data and pre-process it
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 784).astype("float32") / 255.0
x_test = x_test.reshape(-1, 784).astype("float32") / 255.0

# Limit the data to 1000 samples to make it faster
x_train = x_train[:1000]
y_train = y_train[:1000]
x_test = x_test[:1000]
y_test = y_test[:1000]

في هذا المثال، جرى تقليل حجم البيانات إلى 1000 عينة فقط لتسريع التنفيذ داخل بيئة تجريبية.

3) تعريف نموذج Keras بسيط

الآن سننشئ شبكة عصبية بسيطة تحتوي على طبقة Dense واحدة. ورغم بساطة النموذج، فإنه كافٍ لتوضيح آلية المراقبة اللحظية.

# Define the Keras model
def get_model():
    model = keras.Sequential()
    model.add(keras.layers.Dense(1, input_dim=784))
    model.compile(
        optimizer=keras.optimizers.RMSprop(learning_rate=0.1),
        loss="mean_squared_error",
        metrics=["accuracy"],
    )
    return model

لاحظ أننا أضفنا المقياس accuracy داخل الوسيط metrics. هذا يعني أن الأداة ستتمكن من عرض هذا المؤشر أثناء التدريب. وبشكل افتراضي، يتم كذلك تسجيل loss، وبالتالي ستحصل هنا على مقياسين أساسيين للمتابعة.

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

إعداد كائن المراقبة عبر Callback

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

import tfwatcher

MonitorCallback = tfwatcher.callbacks.EpochEnd(schedule=1)

ماذا يفعل هذا السطر؟

  • الصنف EpochEnd يعني أننا نريد تسجيل البيانات عند نهاية كل epoch.
  • القيمة schedule=1 تعني تنفيذ التسجيل بعد كل دورة تدريب.
  • يمكنك تمرير قيمة مثل 3 للتسجيل كل ثلاث دورات، أو تمرير قائمة محددة بأرقام الدورات التي تريد مراقبتها.

بعد تشغيل هذا الجزء، ستظهر لك معرّفات الجلسة، ومن بينها معرّف فريد مكوّن عادة من 7 أحرف. احتفظ بهذا المعرّف لأنك ستستخدمه للوصول إلى لوحة المتابعة من الهاتف.

معرف جلسة فريد لمراقبة تدريب نموذج تعلم الآلة عبر TF Watcher

بدء التدريب ومراقبة النموذج لحظياً

الآن حان وقت تشغيل التدريب وربط كائن المراقبة مع النموذج.

model = get_model()
history = model.fit(
    x_train,
    y_train,
    batch_size=128,
    epochs=100,
    validation_split=0.5,
    callbacks=[MonitorCallback]
)

في هذا المثال، بدأنا تدريب النموذج لمدة 100 دورة. والعنصر الأهم هنا هو تمرير callbacks=[MonitorCallback] داخل الدالة fit(). بهذه الطريقة، ستقوم الأداة بإرسال السجلات لحظياً إلى لوحة المتابعة.

إذا كنت تريد مراقبة عملية تنبؤ بدلاً من التدريب، فيمكنك استخدام الكائن نفسه مع الدالة predict() عند الحاجة.

كيف تتابع النتائج من الهاتف؟

  1. افتح الموقع https://www.tfwatcher.tech/ من الهاتف.
  2. أدخل معرّف الجلسة الذي ظهر لك سابقاً.
  3. ابدأ بمتابعة تقدم التدريب عبر الرسوم البيانية المباشرة.

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

تثبيت تطبيق الويب TF Watcher على الهاتف لمتابعة النماذج

ما الذي ستراه داخل لوحة المراقبة؟

بعد إدخال معرّف الجلسة، ستظهر لك المقاييس وهي تتحدث بشكل فوري. ويمكنك عادةً متابعة ما يلي:

  • قيمة loss مع مرور الوقت.
  • قيمة accuracy أو أي مقياس آخر أضفته.
  • الزمن المستغرق لكل epoch.
  • سجلّات الجلسة الحالية بشكل مباشر.

لوحة تحكم لمراقبة مقاييس تدريب نموذج تعلم الآلة في الوقت الحقيقي

مشاركة لوحات المتابعة مع فريق العمل

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

هذه الميزة مفيدة في الحالات التالية:

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

استخدامات متقدمة لأداة TF Watcher

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

التدريب الموزع Distributed Training

في المشاريع الأكبر، قد تحتاج إلى توزيع التدريب على عدة وحدات GPU أو على أكثر من جهاز، أو حتى على TPU. في هذه الحالات، يُستخدم غالباً TensorFlow عبر الواجهة tf.distribute.Strategy.

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

مراقبة التدريب الموزع لنماذج تعلم الآلة باستخدام TensorFlow

التنفيذ غير المتعجل Non-eager Execution

في TensorFlow 2، يكون نمط eager execution مفعّلاً بشكل افتراضي. لكن في كثير من الحالات ستحتاج إلى استخدام tf.function لتحويل الشيفرة إلى مخططات تنفيذ أكثر كفاءة.

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

نصائح عملية لتحسين تجربة المراقبة على الهاتف

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

الخلاصة التقنية

تُعد مراقبة مشاريع Machine Learning من الهاتف خطوة ذكية لتحسين الإنتاجية، خصوصاً عند تشغيل تجارب طويلة أو متعددة. أداة TF Watcher تقدم حلاً عملياً وخفيفاً يندمج بسهولة مع TensorFlow ويمنحك رؤية لحظية للمقاييس الأساسية دون تعقيد. من الناحية التقنية، تكمن قوة هذا الأسلوب في أنه يختصر زمن المتابعة اليدوية، ويعزز التعاون داخل الفرق، ويجعل مراقبة النماذج أكثر مرونة في البيئات السحابية والمحلية على حد سواء.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *