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

الوحدة 1 — نظرة عامّة على SageMaker ومكوّناته

انتهت دورة MLOps السابقة إلى قناعة عملية: بناء سلسلة إنتاج تعلّم الآلة يدويًّا مع Docker وKubernetes وMLflow يعمل، لكنّه يستهلك أسابيع من الهندسة قبل أن يظهر أوّل توقّع. تقترح AWS SageMaker إجابة مختلفة: منصّة مُدارة تُغلف الخطوات الأربع الحرجة — التدريب، والضبط، والنشر، والمراقبة — خلف SDK بايثون واحد. ثمن هذه الراحة معلوم: قفل مع المزوّد وفاتورة تتراكم بالثانية. الغرض من هذه الدورة أن تختار بوعي متى تدفع هذا الثمن ومتى ترفضه.

الخيط الأحمر: نموذج التسرّب المنقول

الحالة الدراسيّة نفسها التي رافقتك في الدورة 20: التنبّؤ بتسرّب عملاء مشغّل اتّصالات. البيانات جدوليّة (نحو 100 ألف سطر و30 عمودًا)، والهدف عمود ثنائيّ churn، والمقياس المرجعيّ هو F1 على الفئة الأقلّية. ننقل هذا النموذج نفسه إلى SageMaker، فنبني الخطوات واحدة تلو الأخرى: البيانات على S3 (الوحدة 3)، ثمّ التدريب بـXGBoost المدمج (الوحدة 4)، ثمّ سكربت scikit-learn مخصّص (الوحدة 5)، إلى غاية Model Monitor والفاتورة الشهريّة (الوحدة 10). ستقارن في كلّ مرحلة الحلّ اليدويّ الذي بنيته في الدورة السابقة بالمكافئ المُدار داخل SageMaker.

خريطة المكوّنات الأساسيّة

SageMaker ليست خدمة واحدة بل عائلة من ثلاثين خدمة تقريبًا. تسع منها فقط تُشكّل 95٪ من الاستعمال العمليّ:

المكوّنما يفعلهمتى يُستعمل
Studioواجهة ويب موحّدة (JupyterLab، تحرير، مراقبة)نقطة الدخول اليوميّة
Training Jobsتشغيل حاوية تدريب على عتاد مؤقّتكلّ تجربة تدريب
Processing Jobsتشغيل حاوية معالجة بيانات مؤقّتةتنظيف وتوليد ميزات قبل التدريب
Endpointsاستضافة نموذج على HTTP في الوقت الحقيقيّتنبّؤ بزمن استجابة تحت 100 ميلي‌ثانية
Serverless Endpointsنفس الفكرة بلا عتاد دائمحمولة متقطّعة أو غير متوقّعة
Batch Transformتسجيل ملفّ كبير دفعةً واحدةتسجيل شهريّ أو أسبوعيّ لملايين السطور
Automatic Model Tuningضبط المعاملات الفائقة بالبحث البيزيّالبحث عن نموذج أفضل
Pipelinesتعاقب خطوات مع شروط وسجلّ نماذجالأتمتة المتكرّرة من التدريب إلى النشر
Model Monitorمقارنة توزيع الإنتاج بالتوزيع المرجعيّكشف انزياح البيانات في الإنتاج

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

ما هو مُدار وما ليس مُدارًا

الفرق بين خدمة مُدارة وأخرى غير مُدارة يُترجم مباشرةً إلى ساعات عمل وسطور شفرة:

  • مُدار داخل SageMaker: توفير العتاد، وسحب صور Docker، وتركيب البيئة، وحفظ اللقطات على S3، وإيقاف الآلة عند انتهاء المهمّة، وتدوير السجلّات في CloudWatch. لا تكتب docker run ولا terraform apply، بل تنادي دالّة estimator.fit() وتنتظر.
  • يبقى على عاتقك: تصميم الميزات، وكتابة سكربت التدريب أو اختيار الحاوية المدمجة، وتنظيم مجلّدات S3، وسياسات IAM، ومراجعة الفاتورة، والقرار الاستراتيجيّ حول أيّ نمط نشر يناسب مهمّتك.

الالتباس الأشيع: الظنّ أنّ SageMaker «يعرف تعلّم الآلة». إنّها ليست AutoML. إنّها بنية تحتيّة مُدارة تشغّل شفرتك أنت، وإن كنتَ لا تعرف لماذا اخترت XGBoost بدل شبكة عصبيّة، فلن تُنقذك المنصّة من هذا القرار.

دور IAM بأدنى صلاحيات

كلّ تنفيذ داخل SageMaker يعمل تحت دور IAM (SageMaker Execution Role). ينبغي منح هذا الدور القدر الأدنى الذي يسمح بأداء المهمّة، لا أكثر:

from sagemaker import get_execution_role

role = get_execution_role()
print(role)

الحدّ الأدنى العمليّ لخيطنا الأحمر: قراءة/كتابة على مجلّد S3 المخصّص للمشروع فقط، وإنشاء مهامّ التدريب والمعالجة، وكتابة السجلّات في CloudWatch. لا ينبغي أبدًا إعطاء AdministratorAccess كما تفعل الدروس المتسرّعة: تسرّب مفتاح واحد يعني حينها ضياع الحساب كلّه.

نموذج الفاتورة قبل النقر على «تشغيل»

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

  • مهمّة تدريب لمدّة 20 دقيقة على ml.m5.xlarge (نحو 0.23 دولار/ساعة) ≈ 0.08 دولار
  • نقطة نهاية ml.m5.xlarge تعمل شهرًا كاملًا ≈ 165 دولارًا
  • استعمال نُسخ Spot يخفّض التدريب حتّى 70٪ لكنّه معرّض للمقاطعة

سنعود إلى كلّ رقم من هذه الأرقام في وحدته المخصّصة.

حساب مُنشأ لأوّل مرّة

فعّل AWS Budgets بحدّ شهريّ (مثلًا 50 دولارًا) وتنبيه بريديّ عند تجاوز 80٪. هذه الدقيقتان يُنقذان من فواتير مذهلة يتحدّث عنها المنتدى كلّ أسبوع. سنؤتمت هذا في الوحدة 10.

الخلاصة

  • SageMaker بنية تحتيّة مُدارة لا AutoML: تُشغّل شفرتك بدل أن تفكّر مكانك.
  • تسع خدمات تكفي لبناء سلسلة إنتاج كاملة، وStudio ليس سوى واجهة موحّدة.
  • كلّ تنفيذ يتّكئ على دور IAM يجب تقييده بأدنى الصلاحيات ومحدّدًا لمجلّد S3 المخصّص.
  • الفاتورة بالثانية على العتاد؛ فعّل ميزانيّة ونبّهات قبل أوّل تشغيل.

الوحدة التالية: كيف نُهيّئ Studio وبيئات العمل، ولماذا يُطفأ الدفتر تلقائيًّا في نهاية اليوم.