أدخلنا مؤخرًا إمكانية إنشاء وإدارة Amazon SageMaker Spaces على مجموعات Amazon SageMaker HyperPod EKS مباشرةً من واجهة مستخدم Amazon SageMaker Studio. ويمكن الآن لعلماء البيانات ومهندسي التعلم الآلي (ML) تشغيل بيئات JupyterLab و Code Editor على مجموعات HyperPod دون مغادرة متصفحهم أو استخدام أدوات سطر الأوامر، مما يقلل الوقت من الوصول إلى المجموعة حتى بدء التطوير الفعلي إلى بضع نقرات فقط.
الخلفية
Amazon SageMaker HyperPod يوفر بنية تحتية مصممة خصيصًا لتدريب نماذج الأساس (FM) والاستدلال منها على نطاق واسع. مع خدمة Amazon Elastic Kubernetes Service (Amazon EKS) التنسيق (orchestration)، يمكن للفرق تشغيل مهام التدريب الموزعة عبر مئات من المسرّعات مع مرونة مدمجة واسترداد تلقائي من الأعطال. وبالإضافة إلى التدريب، يوسّع HyperPod هذه البنية التحتية المنسّقة عبر EKS لتقديم استدلال منخفض الكمون وقابل للتوسع لنماذج الأساس ذات المعاملات المتعددة بمليارات المعاملات.
في وقت سابق من هذا العام، أطلقنا Amazon SageMaker Spaces لـ HyperPodTranslate.", وإضافة يمكن لمطوري تعلم الآلة استخدامها لإنشاء بيئات تطوير تفاعلية مباشرة على عناقيد HyperPod EKS. وبذلك تستطيع المؤسسات تعظيم استثماراتها في وحدات معالجة الرسومات من خلال تشغيل أحمال العمل التفاعلية إلى جانب مهام التدريب ونشر النماذج على البنية التحتية نفسها، مع دعم تخصيصات GPU الجزئية."
سابقًا، كان إنشاء وإدارة المساحات يعتمد بشكل أساسي على HyperPod CLI أو kubectl بينما يوفر هذا النهج تحكمًا قويًا ودقيقًا لمسؤولي البنية التحتية، يمكن لعلماء البيانات الذين يفضلون واجهة مرئية الآن استخدام ميزة SageMaker Studio الجديدة هذه لتجاوز أدوات سطر الأوامر والتركيز تمامًا على تطوير النماذج.
ما الجديد
بفضل هذه القدرة الجديدة، يمكن لعلماء البيانات الآن إنشاء Spaces وتكوينها وبدء تشغيلها وإيقافها وفتحها مباشرة من SageMaker Studio. توفر علامة التبويب الجديدة IDE and Notebooks في صفحة تفاصيل مجموعة HyperPod واجهة مستخدم كاملة لإدارة Spaces، مما يلغي الحاجة إلى أدوات CLI في عمليات Spaces اليومية.
تشمل القدرات الرئيسية المتاحة عبر Studio:
- أنشئ مساحات مع قدرات حوسبة ومساحات أسماء وتخزين قابلة للتهيئة, حوكمة المهام في HyperPod لإدارة حصة الحوسبة وإعدادات الصور من خلال نموذج موجّه.
- اعرض جميع مساحات العمل في جدول قابل للبحث يعرض الاسم ونوع التطبيق والحالة ونوع الوصول والتخزين وموارد GPU وvCPU المخصصة.
- ابدأ وأوقف الـ Spaces بعملية اختيار واحدة لتحرير موارد الحوسبة عندما لا تُستخدم الـ Spaces.
- افتح Spaces مباشرة في المتصفح (JupyterLab أو Code Editor) أو اتصل عبر IDE بعيد من اختيارك (على سبيل المثال، VS Code).
الشكل 1: تعرض علامة التبويب IDE وNotebooks في صفحة تفاصيل عنقود HyperPod جميع الـ Spaces مع حالتها ومخصصاتها الحاسوبية وإجراءات سريعة للإيقاف أو الفتح أو الفتح في IDE بعيد
البدء
يتضمن الإعداد دورين: المسؤولون تحضير العنقود، و علماء البيانات إنشاء ومساحات مفتوحة. تغطي الأقسام التالية كل واحد منها.
للمسؤولين
المسؤولون تثبيت إضافة SageMaker Spaces على عنقود HyperPod EKS الخاص بهم باستخدام أحد الخيارين التثبيت السريع (نقرة واحدة مع إعدادات افتراضية محسّنة) أو التثبيت المخصص (مطلوب لإعداد الوصول إلى واجهة مستخدم الويب) من علامة التبويب IDE and Notebooks في عنقود SageMaker HyperPod EKS الخاص بهم. بعد التثبيت، يمكن للمسؤول تكوين مساحات الأسماء، وإنشاء قوالب Space، وإدارة الوصول من خلال إدخالات وصول EKS.
فيما يلي إعداد يُنفَّذ مرة واحدة يجب على المسؤولين القيام به:
- تثبيت إضافة Spaces: من وحدة تحكم Amazon SageMaker AI، افتح عنقود HyperPod الخاص بك، وانتقل إلى علامة التبويب IDE and Notebooks ثم اختر إما التثبيت السريع أو التثبيت المخصص (التثبيت المخصص مطلوب لتمكين الوصول عبر متصفح الويب). راجع وثائق AWS للحصول على التعليمات الكاملة.
- تكوين إدخالات وصول EKS: أرفق السياسات المُدارة الثلاث
AmazonSagemakerHyperpodSpacePolicy,AmazonSagemakerHyperpodUserClusterPolicyوAmazonSagemakerHyperpodSpaceTemplatePolicyبأدوار AWS Identity and Access Management (IAM) المستخدمة من قبل علماء البيانات لديك. - تمكين نشر الهوية لكل مستخدم على نطاق Studio: إذا تم إنشاء نطاق Studio الخاص بك قبل طرح تكامل SageMaker Studio وHyperPod Spaces، فيجب عليك تمكين نشر الهوية لكل مستخدم إلى عنقود HyperPod EKS. هذا يضمن نسبة أفعال كل مستخدم Studio على العنقود (إنشاء أو إيقاف أو حذف Space) إلى ملف تعريف المستخدم الخاص به في إدخالات وصول EKS وAWS CloudTrail. علاوة على ذلك، يفرض هذا الربط بين الهويات ملكية صارمة للـ Space. فهو يتتبع المستخدم الذي أنشأ البيئة ويحدد ما إذا كان الـ Space خاصًا أو مشتركًا عبر نطاق SageMaker Studio.
شغّل الأمر التالي مرة واحدة لكل نطاق Studio:
aws sagemaker update-domain \
--domain-id $DOMAIN_ID \
--default-user-settings '{
"StudioWebPortalSettings": {
"ExecutionRoleSessionNameMode": "USER_IDENTITY"
}
}'
بعد تحديث النطاق، تحقق من أن الأمر التالي يُرجع “USER_IDENTITY”:
aws sagemaker describe-domain --domain-id $DOMAIN_ID \
--query 'DefaultUserSettings.StudioWebPortalSettings.ExecutionRoleSessionNameMode'
التطبيقات الجارية القائمة غير متأثرة. يحصل المستخدمون على الإعداد الجديد عند تسجيل دخولهم التالي.
- اختياريًا، شغّل إمكانيات إضافية: فعّل أيًا من الإمكانيات من جدول Optional capabilities التالي.
لعلماء البيانات
بعد تثبيت الإضافة وتكوين الوصول، ينتقل علماء البيانات إلى عنقود HyperPod الخاص بهم في SageMaker Studio ضمن Compute → HyperPod ويحددون علامة التبويب IDE and Notebooks لرؤية واجهة إدارة الـ Spaces (انظر الشكل 1). تعرّف على المزيد حول إنشاء وإدارة الـ Spaces: Create and manage Spaces on HyperPod.
بعد أن تظهر حالة الـ Space Running (عادةً بضع دقائق على عنقود بارد، ونحو 30–40 ثانية مع التوفير الزائد)، اختر Open لتشغيل JupyterLab أو Code Editor في متصفحك (الشكلان 2 و3)، أو Open in VS Code للاتصال من المحرر المحلي لديك عبر SSH-over-SSM (الشكل 4).
الشكل 2: Space الخاص بـ JupyterLab يتم الوصول إليه عبر متصفح الويب، ويُظهر الـ Launcher مع نواة دفاتر الملاحظات ووحدات التحكم والوصول إلى الطرفية المتاحة
العمل في Space الخاص بـ JupyterLab
بعد فتح Space الخاص بـ JupyterLab، تحصل على بيئة تطوير مهيأة بالكامل مع وصول إلى:
- دفاتر ملاحظات Python 3 مع ipykernel.
- وحدات تحكم Glue PySpark وGlue Spark.
- نوا SparkMagic PySpark وSpark.
- الوصول إلى الطرفية لتشغيل الأوامر.
- متصفح ملفات مع تخزين دائم.
- دردشة مدمجة ومساعدة سياقية.
يستمر عملك على وحدة Amazon Elastic Block Store (Amazon EBS) المرفقة، بحيث يمكنك إيقاف وإعادة تشغيل الـ Spaces دون فقدان التقدم.
الشكل 3: Space خاص بـ Code Editor يعمل على HyperPod، ويعرض واجهة الويب بأسلوب VS Code مع مستكشف الملفات والمحرر والطرفية المدمجة
العمل في Space خاص بـ Code Editor
بالنسبة للمطورين الذين يفضلون تجربة بأسلوب VS Code في المتصفح، توفر الـ Spaces الخاصة بـ Code Editor بيئة تطوير متكاملة خفيفة الوزن قائمة على الويب تتضمن:
- تحرير كامل للملفات مع تلوين الصياغة وIntelliSense.
- طرفية متكاملة لتشغيل أوامر الصدفة (shell)، وإرسال مهام التدريب، أو التفاعل مع موارد العنقود.
- دعم الإضافات (extensions) لخوادم اللغات وأدوات الفحص (linters) وأدوات التنسيق.
- تكامل مع Git لسير عمل التحكم في الإصدارات.
- وصول مباشر إلى نظام ملفات العنقود وأحجام Amazon FSx المُحمّلة.
مساحات محرر الأكواد (Code Editor Spaces) مناسبة تمامًا لكتابة نصوص التدريب وتصحيحها، وإدارة إعدادات التجارب، والعمل على مستودعات الأكواد، وكل ذلك دون مغادرة المتصفح.
الشكل 4: نسخة VS Code محلية متصلة عن بُعد بمساحة HyperPod Space، تُظهر مؤشر الاتصال عن بُعد وقدرات بيئة التطوير المتكاملة الكاملة التي تعمل على موارد العنقود الحسابية
الاتصال ببيئة التطوير المتكاملة عن بُعد (VS Code)
اختر Open in VS Code من جدول المساحات (Spaces) لربط Visual Studio Code المحلي لديك بالمساحة العاملة على HyperPod. يستخدم هذا داخليًا أنفاق SSH-over-SSM، ما يوفر اتصالاً آمنًا دون حاجة منك لإدارة مفاتيح SSH أو كشف المنفذ 22.
تحصل على كامل قدرات بيئة VS Code المحلية لديك، بما في ذلك الإضافات والسمات وربطات المفاتيح، بينما يتم تنفيذ الكود على موارد العنقود الحسابية في HyperPod.
يمكنك أيضًا الاتصال باستخدام AWS Toolkit for Visual Studio Code، الذي يسرد مساحاتك تحت SageMaker AI > HyperPod، ويمكنك بدء المساحات وإيقافها والاتصال بها مباشرةً من لوحة الأدوات.
قدرات اختيارية
كل قدرة مما يلي اختيارية وقابلة للدمج. يمكنك تمكين أي مجموعة منها تناسب احتياجات فريقك.
| القدرة | الوصف |
| الوصول إلى متصفح الويب | AWS Application Load Balancer ونظام أسماء نطاقات مخصص عبر Amazon Route 53 لتوجيه حركة مرور المتصفح إلى Spaces. غير مطلوب للوصول إلى بيئة التطوير البعيدة (VS Code عبر SSM). |
| قوالب Spaces | قوالب يحددها المسؤول تقوم بإعداد مسبق للحوسبة والصور والتخزين وسكربتات دورة الحياة لضمان تكوينات Spaces متسقة عبر الفرق. |
| حوكمة المهام (Task Governance) | حصص حسابية على مستوى الـ namespace وطوابير وقبول على أساس الأولوية عبر Kueue للمجموعات متعددة المستأجرين. |
| التوسع التلقائي باستخدام Karpenter | زيادة أو تقليل ديناميكي في عدد العقد بناءً على الطلب على Spaces. |
| التوفير الزائد باستخدام Karpenter | عقد مسخنة مسبقًا مع صور مسحوبة مسبقًا تُخفض وقت بدء تشغيل Space من 5–7 دقائق إلى ما يقرب من 30–40 ثانية. انظر قسم النصيحة الاحترافية التالي. |
| وحدات التخزين الدائمة (EFS / FSx) | أدلة مستخدمين مشتركة ومجموعات بيانات للفريق تبقى موجودة عبر مختلف Spaces. |
| صور مخصصة (ECR) | بيئات تشغيل ومكتبات خاصة بالفريق مدمجة في صور حاويات مستضافة في Amazon Elastic Container Registry (Amazon ECR). |
| الإيقاف عند الخمول | إنهاء تلقائي لـ Spaces غير النشطة للحماية من تكاليف حوسبة جامحة. |
| NVIDIA MIG | تخصيص جزئي لوحدات معالجة الرسومات (GPU) لأعباء عمل تفاعلية فعّالة من حيث التكلفة على أجهزة A100/H100. |
نصيحة احترافية: تقليل وقت بدء تشغيل Space باستخدام التوفير الزائد في العقد
افتراضيًا، تتكبد SageMaker Spaces على مجموعات HyperPod EKS التي تستخدم التوسع التلقائي عبر Karpenter تأخير بدء بارد يبلغ 5–7 دقائق في المرة الأولى التي يُنشأ فيها Space على مجموعة من نوع scale-to-zero، ويعود ذلك بشكل رئيسي إلى:
- إطلاق نسخة من Amazon Elastic Compute Cloud (Amazon EC2).
- تسجيل عقدة Kubernetes.
- سحب صورة SageMaker Distribution (SMD).
بالنسبة لأعباء العمل التفاعلية الحساسة لزمن الاستجابة (JupyterLab، Code Editor)، يمكنك الاحتفاظ بمجموعة من العقد المسخنة مسبقًا وذات الصور المخزنة مؤقتًا باستخدام نمط المبالغة في التوفير (over-provisioning) القياسي في Kubernetes. هذا يقلل وقت بدء Space من دقائق إلى نحو 30–40 ثانية.
كيف يعمل
- يحافظ نشر Deployment للعنصر النائب ذو الأولوية المنخفضة (
-1000) على جراب Kubernetes واحد في كل عقدة دافئة. تطلب هذه الجرابات نفس موارد CPU/الذاكرة التي يطلبها Space حقيقي. - يقوم
initContainerفي كل عنصر نائب بجلب صورة SageMaker Distribution مسبقًا إلى العقدة عندما يوفرها Karpenter. - عندما ينشئ مستخدم Space (الأولوية الافتراضية
0)، يستبق مجدول Kubernetes عنصر النائب (الأولوية-1000). يهبط Space بعد ذلك على العقدة الدافئة المخزنة الصورة مسبقًا خلال ثوانٍ معدودة، دون انتظار سحب الصورة ولا انتظار إطلاق العقدة. - يقوم Karpenter بتوفير عقدة بديلة للعنصر النائب المهجور في الخلفية.
اعرف المزيد عن نشر نصيحة احترافية: التوفير الزائد لـ HyperPod Spaces.
زمنات بدء التشغيل المتحقق منها على ml.m5.12xlarge (24 vCPU قابلة للتخصيص، 2 vCPU للعنصر النائب، 8 GiB ذاكرة العنصر النائب) مع sagemaker-distribution:latest-cpu صورة SMD، التي يبلغ حجمها حوالي 3.5 GB:
| المسار | زمن الاستجابة |
| Space يتسع بجانب العنصر النائب (تعايش) | ~14 s |
| Space يزيح العنصر النائب | ~35 s |
| بداية باردة (بدون مجموعة إحماء) | 5-7 دقائق |
ملاحظة: هذه الأرقام خاصة بوحدات المعالجة المركزية فقط. تحتاج GPU Spaces إلى Deployment للعنصر النائب خاص بها يطلب nvidia.com/gpu مع صورة GPU المسحوبة مسبقًا. وإلا، تبقى عقد GPU باردة، وبحجم يقارب 10 GB فإن صورة GPU تكلف كثيرًا في السحب مقارنة بصورة CPU البالغ حجمها 3.5 GB.
ملاحظة: تحتفظ كل عقدة إحماء بمثيل EC2 واحد في حالة التشغيل Running. بالنسبة للعقد عند الطلب، فإن هذا يمثل تكلفة إضافية لإبقاء عقد الإحماء قيد التشغيل والعاملة.
لمزيد من المعلومات حول تثبيت إضافة HyperPod Spaces والبدء في استخدامها، راجع وثائق AWS.
الأسعار
لا يتضمن تكوين إضافة SageMaker Spaces أي رسوم إضافية. تدفع مقابل موارد الحوسبة الخاصة بمجموعة HyperPod الأساسية التي تستهلكها Spaces لديك، ورسومًا بالساعة مقابل AWS Systems Manager Advanced On-Premises Instance المستخدمة للاتصال عن بُعد عبر SSH-over-SSM. راجع أسعار AWS Systems Manager للتفاصيل.
إذا كنت تستخدم التوفير الزائد الموضح سابقًا، فلاحظ أن هناك تكلفة إضافية لعقد الإحماء. واعتمادًا على نوع المثيل وحجمه، تبقى هذه العقد في حالة التشغيل بانتظار توفير Spaces.
الخلاصة
تسد إدارة HyperPod Spaces مع SageMaker Studio الفجوة بين علماء البيانات وبنية الحوسبة عالية الأداء. يمكن للفرق الآن الانتقال من الوصول إلى المجموعة إلى بيئة JupyterLab أو Code Editor عاملة في غضون دقائق، دون الحاجة إلى تعلم أدوات سطر الأوامر أو مفاهيم Kubernetes. وبالجمع بين ميزات مثل HyperPod Task Governance ودعم GPU الجزئي والإيقاف عند الخمول، يمكن للمؤسسات توفير وصول ذاتي الخدمة إلى المجموعات المشتركة مع الحفاظ على التحكم في التكاليف وعدالة الموارد.
للبدء، انتقل إلى مجموعة HyperPod EKS الخاصة بك في وحدة تحكم SageMaker AI واختر علامة التبويب IDE and Notebooks. لمزيد من المعلومات، راجع وثائق SageMaker HyperPod Spaces.
