الوحدة 2 — Studio والدفاتر وبيئات العمل
قدّمت الوحدة السابقة SageMaker على أنّه بنية تحتيّة مُدارة. لكن قبل أن تُشغَّل أوّل مهمّة تدريب، يحتاج المطوّر إلى مكان يكتب فيه الشيفرة ويقرأ فيه السجلّات. هذا المكان اسمه SageMaker Studio. ليست منصّة تعلّم آليّ مستقلّة، بل بيئة تطوير مُدارة تعرف عن كلّ مكوّنات SageMaker وتوصل بينها.
المجال (Domain) وملفّات الأعضاء
أوّل شيء تُنشئه في حسابك هو مجال SageMaker (Domain). المجال حاوية إداريّة كبرى تربط بين شبكة (VPC)، وتخزين مشترك (EFS)، وقائمة من المستخدمين. لكلّ مستخدم ملفّ عضو (User Profile) خاصّ به، له مساحة تخزين معزولة وأدوار IAM يمكن أن تختلف من واحد إلى آخر.
هذه البنية ليست ترفًا: في فريق مؤلّف من خمسة أشخاص، المجال الواحد يعني أنّ الجميع يستعملون نفس الشبكة والسياسات الأمنية، لكنّ عمل زميل لا يرى ملفّات زميل آخر. لا يمكن استرجاع الملفّات المحذوفة من مساحة عضو، فينبغي أن تكون كلّ الشيفرة المهمّة في مستودع Git خارجيّ لا داخل مساحة الدفاتر فقط.
Studio في مقابل نُسخ الدفاتر الكلاسيكيّة
قبل ظهور Studio في 2019، كانت الطريقة الرسميّة للعمل هي نسخة دفتر (Notebook Instance): آلة EC2 مخصّصة تعمل Jupyter عليها. لا تزال متاحة، لكنّها أصبحت خيارًا يُفضَّل تجنّبه للأسباب التالية:
| المعيار | نسخة دفتر كلاسيكيّة | Studio |
|---|---|---|
| العتاد | آلة واحدة ثابتة | يمكن أن تختلف من دفتر إلى آخر |
| بدء الجلسة | 3-5 دقائق (تشغيل EC2 كامل) | ثوانٍ (حاوية جديدة) |
| الفاتورة عند الخمول | مستمرّة حتّى الإيقاف اليدويّ | يمكن ضبط إغلاق تلقائيّ |
| المشاركة | آلة واحدة لمستخدم واحد | مجال متعدّد المستخدمين |
| الدمج مع Pipelines | يدويّ | مباشر عبر الواجهة |
الاختيار الاعتياديّ اليوم هو Studio، ولا تُحتفظ بنُسخ الدفاتر الكلاسيكيّة إلّا لمشاريع قديمة يُصعب هجرها.
الصور والأنوية (Images & Kernels)
في Studio، كلّ دفتر يعمل داخل صورة Docker مختارة (SageMaker Image) وعلى نواة (Kernel) بايثونيّة داخل هذه الصورة. الصور المدمجة تغطّي أشيع المكتبات: Data Science 3.0 مع pandas وscikit-learn وnumpy، وPyTorch 2.x، وTensorFlow 2.x، مع تدرّج CPU/GPU.
كلّ صورة تُشغَّل على نوع مثيل ينبغي اختياره بحذر: ml.t3.medium لتحرير النصّ (رخيصة، حوالي 0.05 دولار/ساعة)، وml.m5.xlarge للاستكشاف الجدّيّ، وml.g4dn.xlarge إذا كنت تختبر شبكة عصبيّة صغيرة على GPU. لا تجرِ التدريب الحقيقيّ في الدفتر: هذا دور مهمّة التدريب المُدارة (الوحدة 4). الدفتر مكان للاستكش اف واستدعاء المهامّ.
بيئة بايثون قابلة للتكرار
الصور المدمجة تحتوي كلّ ما تحتاجه غالبًا، لكنّ مشروع الخيط الأحمر يستلزم مكتبات إضافيّة. طريقتان مقبولتان:
pip installمؤقّت في الدفتر: مفيد للتجريب، لكنّه يختفي عند إعادة تشغيل النواة.requirements.txtمُلتزَم في المستودع: يُثبَّت في بداية كلّ جلسة أو داخل صورة مخصّصة.
%pip install --quiet "xgboost==2.0.3" "sagemaker>=2.230.0" "scikit-learn==1.4.2"
الرقم بعد == ليس تنميقًا: بدونه يمكن أن تختلف نسخة xgboost بين مطوّرَين في الفريق نفسه، فيتغيّر ناتج التدريب دون أن يُلاحظ أحد. هذه هي قابلية التكرار التي أفردت لها الوحدة 2 من دورة MLOps فصلًا كاملًا.
SDK بايثون هو الواجهة الحقيقيّة
الواجهة الرسوميّة لStudio مفيدة للاستكشاف، لكنّ كلّ ما يستحقّ الأتمتة يمرّ عبر SDK Python SageMaker (sagemaker). كلّ تفاعل داخل هذه الدورة يكتب بهذا الأسلوب:
import sagemaker
from sagemaker import Session, get_execution_role
session = Session()
role = get_execution_role()
bucket = session.default_bucket() # يُنشأ تلقائيًّا: sagemaker-<region>-<account>
prefix = "churn/xgboost/v1"
print(f"Region: {session.boto_region_name}")
print(f"Bucket: s3://{bucket}/{prefix}/")
سيرافقك session وrole وbucket في كلّ الوحدات التالية. اجعل السطرين الأخيرين قالبًا في بداية كلّ دفتر جديد.
الإغلاق التلقائيّ: القاعدة الذهبيّة
الفخّ الأشيع في الفواتير غير المتوقّعة: دفتر تُرك مفتوحًا يوم الجمعة، عاد الفريق يوم الاثنين ليجد ثلاث ليالٍ من الفوترة على ml.g4dn.xlarge (نحو 0.74 دولار/ساعة). ضاعت الفاتورة نحو 53 دولارًا لدفتر لم يعمل شيئًا.
Studio يقدّم إضافة رسميّة اسمها Idle Shutdown، تُضبط على مستوى المجال أو الملفّ الشخصيّ. القاعدة العمليّة: 60 دقيقة خمول قصوى للدفاتر، و15 دقيقة لتطبيقات الطرفيّة (Terminals). يبقى العمل محفوظًا على EFS، فتُستأنف الجلسة في الغد كأنّها لم تُغلق:
# Configuration à définir dans les paramètres du Domain (console AWS)
# LifecycleConfig -> auto-shutdown script -> 60 min pour les kernels
تكرار «سأُغلق الدفتر آخر اليوم» فقاعة تنفجر مرّة في الشهر. اجعل الإغلاق التلقائيّ إلزاميًّا على مستوى المجال حتّى لا يعتمد على انتباه فرديّ.
الخلاصة
- المجال حاوية إداريّة تجمع الشبكة والتخزين والمستخدمين؛ لكلّ مستخدم ملفّ عضو معزول.
- Studio يحلّ محلّ نُسخ الدفاتر الكلاسيكيّة بفضل بدء أسرع وفاتورة أفضل ودمج أعمق.
- الدفتر مكان استكشاف واستدعاء، لا تدريب حقيقيّ؛ ثبّت نسخ المكتبات لضمان التكرار.
- الإغلاق التلقائيّ إلزاميّ على مستوى المجال؛ الاعتماد على الإغلاق اليدويّ يوّلد فواتير مذهلة.
الوحدة التالية: أين نضع البيانات، ولماذا تنظيم بادئات S3 يوفّر ساعات من الشيفرة لاحقًا.