نحن متحمسون للإعلان عن قدراتين جديدتين في أمازون ساجميكر ستوديو سيؤدي ذلك إلى تسريع التطوير التكراري لممارسي التعلم الآلي (ML): دعم الوضع المحلي وDocker. غالبًا ما يتضمن تطوير نموذج ML دورات تكرار بطيئة حيث يقوم المطورون بالتبديل بين البرمجة والتدريب والنشر. تتطلب كل خطوة انتظار بدء تشغيل موارد الحوسبة عن بعد، مما يؤخر التحقق من صحة عمليات التنفيذ والحصول على تعليقات بشأن التغييرات.
باستخدام الوضع المحلي، يمكن للمطورين الآن تدريب النماذج واختبارها، وتصحيح الأخطاء البرمجية، والتحقق من صحة المسارات الشاملة مباشرة على مثيل الكمبيوتر الدفتري SageMaker Studio الخاص بهم دون الحاجة إلى تشغيل موارد الحوسبة عن بعد. يؤدي هذا إلى تقليل دورة التكرار من دقائق إلى ثوانٍ، مما يعزز إنتاجية المطورين. يتيح دعم Docker في أجهزة الكمبيوتر المحمولة SageMaker Studio للمطورين إنشاء حاويات Docker بسهولة والوصول إلى الحاويات المبنية مسبقًا، مما يوفر بيئة تطوير متسقة عبر الفريق وتجنب الإعداد الذي يستغرق وقتًا طويلاً وإدارة التبعية.
يوفر دعم الوضع المحلي وDocker سير عمل مبسطًا للتحقق من صحة تغييرات التعليمات البرمجية ونماذج النماذج الأولية باستخدام الحاويات المحلية التي تعمل على دفتر ملاحظات SageMaker Studio
مثال. في هذا المنشور، نوجهك خلال إعداد الوضع المحلي في SageMaker Studio، وتشغيل نموذج لمهمة تدريبية، ونشر النموذج على الأمازون SageMaker نقطة النهاية من دفتر ملاحظات SageMaker Studio.
الوضع المحلي في SageMaker Studio
يقدم SageMaker Studio الوضع المحلي، مما يتيح لك تشغيل تدريب SageMaker والاستدلال وتحويل الدُفعات ومهام المعالجة مباشرةً على مثيلات دفتر JupyterLab أو Code Editor أو SageMaker Studio Classic الخاصة بك دون الحاجة إلى موارد حوسبة عن بعد. تتضمن فوائد استخدام الوضع المحلي ما يلي:
- التحقق الفوري من صحة واختبار سير العمل داخل بيئات التطوير المتكاملة (IDEs)
- تكرار أسرع من خلال عمليات التشغيل المحلية للوظائف الأصغر حجمًا لفحص المخرجات وتحديد المشكلات مبكرًا
- تحسين كفاءة التطوير وتصحيح الأخطاء من خلال القضاء على انتظار وظائف التدريب عن بعد
- تعليقات فورية على تغييرات التعليمات البرمجية قبل تشغيل المهام الكاملة في السحابة
يوضح الشكل التالي سير العمل باستخدام الوضع المحلي في SageMaker.
لاستخدام الوضع المحلي، قم بضبط instance_type='local'
عند تشغيل وظائف SageMaker Python SDK مثل التدريب والاستدلال. سيؤدي هذا إلى تشغيلها على المثيلات التي تستخدمها بيئة تطوير SageMaker Studio IDEs بدلاً من توفير الموارد السحابية.
على الرغم من أن بعض الإمكانيات، مثل التدريب الموزع، لا تتوفر إلا في السحابة، فإن الوضع المحلي يلغي الحاجة إلى تبديل السياقات لإجراء تكرارات سريعة. عندما تكون مستعدًا للاستفادة من القوة الكاملة لـ SageMaker ونطاقه، يمكنك تشغيل سير عملك بسلاسة في السحابة.
دعم Docker في SageMaker Studio
يتيح SageMaker Studio الآن أيضًا إنشاء حاويات Docker وتشغيلها محليًا على مثيل الكمبيوتر الدفتري SageMaker Studio الخاص بك. تتيح لك هذه الميزة الجديدة إنشاء صور Docker والتحقق من صحتها في SageMaker Studio قبل استخدامها للتدريب والاستدلال على SageMaker.
يوضح الرسم البياني التالي بنية تنسيق Docker عالية المستوى داخل SageMaker Studio.
مع دعم Docker في SageMaker Studio، يمكنك:
- أنشئ حاويات Docker بنماذج وتبعيات متكاملة مباشرة داخل SageMaker Studio
- تخلص من الحاجة إلى عمليات بناء Docker خارجية لتبسيط عملية إنشاء الصور
- قم بتشغيل الحاويات محليًا للتحقق من صحة الوظائف قبل نشر النماذج في الإنتاج
- أعد استخدام الحاويات المحلية عند النشر إلى SageMaker للتدريب والاستضافة
على الرغم من أن بعض إمكانات Docker المتقدمة مثل الحاويات المتعددة والشبكات المخصصة غير مدعومة حتى كتابة هذه السطور، إلا أن وظيفة الإنشاء والتشغيل الأساسية متاحة لتسريع تطوير الحاويات من أجل جلب سير عمل الحاوية الخاصة بك (BYOC).
المتطلبات الأساسية المسبقة
لاستخدام الوضع المحلي في تطبيقات SageMaker Studio، يجب عليك إكمال المتطلبات الأساسية التالية:
- لسحب الصور من سجل الأمازون المرنة للحاويات (Amazon ECR)، يجب أن يوفر الحساب الذي يستضيف صورة ECR إذن وصول للمستخدم الهوية والوصول إلى الإدارة دور (IAM). يجب أن يسمح دور المجال أيضًا بالوصول إلى Amazon ECR.
- لتمكين الوضع المحلي وإمكانيات Docker، يجب عليك تعيين
EnableDockerAccess
المعلمة صحيحة بالنسبة للمجالDockerSettings
يستخدم ال واجهة سطر الأوامر AWS (AWS CLI). يتيح ذلك للمستخدمين في المجال استخدام ميزات الوضع المحلي وDocker. افتراضيًا، يتم تعطيل الوضع المحلي وDocker في SageMaker Studio. ستحتاج أي تطبيقات SageMaker Studio موجودة إلى إعادة التشغيل حتى يصبح تحديث خدمة Docker ساري المفعول. فيما يلي مثال لأمر AWS CLI لتحديث مجال SageMaker Studio:
- تحتاج إلى تحديث دور SageMaker IAM حتى تتمكن من ذلك دفع صور دوكر إلى أمازون إي سي آر:
قم بتشغيل ملفات Python في مساحات SageMaker Studio باستخدام الوضع المحلي
SageMaker Studio JupyterLab ومحرر الأكواد (استنادًا إلى Code-OSS، Visual Studio Code – مفتوح المصدر)، يعمل على توسيع SageMaker Studio حتى تتمكن من كتابة التحليلات وتعليمات ML البرمجية واختبارها وتصحيح أخطائها وتشغيلها باستخدام بيئة تطوير متكاملة (IDE) خفيفة الوزن وشائعة. لمزيد من التفاصيل حول كيفية البدء باستخدام SageMaker Studio IDEs، راجع تعزيز الإنتاجية في Amazon SageMaker Studio: تقديم مساحات JupyterLab وأدوات الذكاء الاصطناعي الإبداعية و جديد - محرر الأكواد، استنادًا إلى Code-OSS VS Code Open Source، وهو متوفر الآن في Amazon SageMaker Studio. أكمل الخطوات التالية:
- إنشاء محطة جديدة.
- قم بتثبيت المكون الإضافي Docker CLI وDocker Compose باتباع الإرشادات الواردة أدناه جيثب ريبو. في حالة فشل الأوامر المتسلسلة، قم بتشغيل الأوامر واحدًا تلو الآخر.
يجب عليك تحديث SageMaker SDK إلى الإصدار الأحدث.
- يجري
pip install sagemaker -Uq
في المحطة.
بالنسبة إلى Code Editor فقط، تحتاج إلى ضبط بيئة Python للتشغيل في الوحدة الطرفية الحالية.
- في محرر التعليمات البرمجية، على ملف القائمةأختر التفضيلات و الإعدادات.
- ابحث عن واختر المحطة الطرفية: التنفيذ في ملف Dir.
- في Code Editor أو JupyterLab، افتح ملف
scikit_learn_script_mode_local_training_and_serving
مجلد وتشغيل ملفscikit_learn_script_mode_local_training_and_serving.py
ملف.
يمكنك تشغيل البرنامج النصي عن طريق الاختيار يجري في Code Editor أو باستخدام CLI في محطة JupyterLab. ستتمكن من رؤية كيفية تدريب النموذج محليًا. ثم تقوم بنشر النموذج على نقطة نهاية SageMaker محليًا، وحساب جذر متوسط مربع الخطأ (RMSE
).
محاكاة التدريب والاستدلال في SageMaker Studio Classic باستخدام الوضع المحلي
يمكنك أيضًا استخدام دفتر ملاحظات في SageMaker Studio Classic لتشغيل مهمة تدريبية صغيرة الحجم عليه CIFAR10
باستخدام الوضع المحلي، قم بنشر النموذج محليًا وإجراء الاستدلال.
قم بإعداد الكمبيوتر الدفتري الخاص بك
لإعداد دفتر الملاحظات، أكمل الخطوات التالية:
- افتح SageMaker Studio Classic وقم باستنساخ ما يلي جيثب ريبو.
- فتح
pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10
.
- في حالة صورة، اختر
PyTorch 2.1.0 Python 3.10 CPU Optimized
.
تأكد من أن الكمبيوتر الدفتري الخاص بك يعرض المثيل الصحيح واختيار kernel.
- افتح المحطة عن طريق الاختيار إطلاق Terminal في صورة SageMaker الحالية.
- قم بتثبيت المكون الإضافي Docker CLI وDocker Compose باتباع الإرشادات الواردة أدناه جيثب ريبو.
نظرًا لأنك تستخدم Docker من SageMaker Studio Classic، فقم بإزالة Sudo عند تشغيل الأوامر لأن الجهاز الطرفي يعمل بالفعل تحت المستخدم المتميز. بالنسبة إلى SageMaker Studio Classic، تعتمد أوامر التثبيت على نظام التشغيل image OS الخاص بتطبيق SageMaker Studio. على سبيل المثال، صور الإطار المستندة إلى DLC تعتمد على Ubuntu، والتي ستعمل فيها الإرشادات التالية. ومع ذلك، بالنسبة للصور المستندة إلى Debian مثل DataScience Images، يجب عليك اتباع الإرشادات الواردة أدناه جيثب ريبو. في حالة فشل الأوامر المتسلسلة، قم بتشغيل الأوامر واحدًا تلو الآخر. يجب أن تشاهد إصدار Docker معروضًا.
- اترك نافذة الوحدة الطرفية مفتوحة، وارجع إلى دفتر الملاحظات، وابدأ في تشغيله خلية تلو الأخرى.
تأكد من تشغيل الخلية باستخدام pip install -U sagemaker
إذن أنت تستخدم أحدث إصدار من SageMaker Python SDK.
تدريب محلي
عندما تبدأ في تشغيل مهمة تدريب SageMaker المحلية، سترى سطور السجل التالية:
يشير هذا إلى أن التدريب كان يتم تنفيذه محليًا باستخدام Docker.
التحلي بالصبر بينما pytorch-training:2.1-cpu-py310
يتم سحب صورة عامل الميناء. نظرًا لحجمه الكبير (5.2 جيجابايت)، قد يستغرق الأمر بضع دقائق.
سيتم تخزين صور Docker في المجلد الجذر لمثيل تطبيق SageMaker Studio، والذي لا يمكن للمستخدمين النهائيين الوصول إليه. الطريقة الوحيدة للوصول إلى صور Docker والتفاعل معها هي عبر عمليات Docker API المكشوفة.
من وجهة نظر سرية المستخدم، لا يصل نظام SageMaker Studio أبدًا إلى الصور الخاصة بالمستخدم أو يخزنها.
عند اكتمال التدريب، ستتمكن من رؤية أسطر سجل النجاح التالية:
الاستدلال المحلي
أكمل الخطوات التالية:
- انشر نقطة نهاية SageMaker باستخدام الوضع المحلي SageMaker.
التحلي بالصبر بينما pytorch-inference:2.1-cpu-py310
يتم سحب صورة عامل الميناء. نظرًا لحجمه الكبير (4.32 جيجابايت)، قد يستغرق الأمر بضع دقائق.
- قم باستدعاء نقطة نهاية SageMaker التي تم نشرها محليًا باستخدام صور الاختبار.
ستتمكن من رؤية الفئات المتوقعة: الضفدع، والسفينة، والسيارة، والطائرة:
- نظرًا لأن نقطة نهاية SageMaker Local لا تزال قيد التشغيل، انتقل مرة أخرى إلى النافذة الطرفية المفتوحة وقم بإدراج الحاويات قيد التشغيل:
docker ps
ستتمكن من رؤية الجري pytorch-inference:2.1-cpu-py310
حاوية تدعم نقطة نهاية SageMaker.
- لإيقاف تشغيل نقطة النهاية المحلية لـ SageMaker وإيقاف الحاوية قيد التشغيل، لأنه لا يمكنك تشغيل سوى نقطة نهاية محلية واحدة في كل مرة، قم بتشغيل رمز التنظيف.
- للتأكد من أن حاوية Docker معطلة، يمكنك الانتقال إلى النافذة الطرفية المفتوحة، وتشغيل docker ps، والتأكد من عدم وجود حاويات قيد التشغيل.
- إذا رأيت حاوية قيد التشغيل، فاركض
docker stop <CONTAINER_ID>
لوقفه.
نصائح لاستخدام الوضع المحلي SageMaker
إذا كنت تستخدم SageMaker لأول مرة، فارجع إلى تدريب نماذج التعلم الآلي. لمعرفة المزيد حول نشر نماذج الاستدلال باستخدام SageMaker، راجع نشر نماذج للاستدلال.
ضع في اعتبارك التوصيات التالية:
- قم بطباعة ملفات ومجلدات الإدخال والإخراج لفهم مجموعة البيانات وتحميل النماذج
- استخدم حقبة أو حقبتين ومجموعات بيانات صغيرة للاختبار السريع
- قم بتثبيت التبعيات مسبقًا في ملف Dockerfile لتحسين إعداد البيئة
- عزل رمز التسلسل في نقاط النهاية لتصحيح الأخطاء
قم بتكوين تثبيت Docker كتكوين دورة الحياة
يمكنك تحديد عملية تثبيت Docker على أنها برنامج نصي لتكوين دورة الحياة (LCC) لتبسيط الإعداد في كل مرة تبدأ فيها مساحة SageMaker Studio جديدة. LCCs هي نصوص برمجية يقوم SageMaker بتشغيلها أثناء أحداث مثل إنشاء المساحة. الرجوع إلى جوبيتر لاب, محرر الكودالطرق أو سيج ميكر ستوديو كلاسيك إعداد LCC (باستخدام عامل تثبيت CLI كمرجع) لمعرفة المزيد.
قم ببناء واختبار صور Docker المخصصة في مساحات SageMaker Studio
في هذه الخطوة، يمكنك تثبيت Docker داخل مساحة تطبيق JupyterLab (أو Code Editor) واستخدام Docker لإنشاء صور Docker مخصصة واختبارها ونشرها باستخدام مساحات SageMaker Studio. تُستخدم المساحات لإدارة احتياجات التخزين والموارد لبعض تطبيقات SageMaker Studio. كل مساحة لها علاقة 1:1 مع مثيل التطبيق. يحصل كل تطبيق مدعوم يتم إنشاؤه على مساحته الخاصة. لمعرفة المزيد حول مساحات SageMaker، راجع تعزيز الإنتاجية في Amazon SageMaker Studio: تقديم مساحات JupyterLab وأدوات الذكاء الاصطناعي الإبداعية. تأكد من توفير مساحة جديدة بسعة تخزينية لا تقل عن 30 جيجابايت للسماح بتخزين كافٍ لصور Docker والتحف.
قم بتثبيت Docker داخل المساحة
لتثبيت المكون الإضافي Docker CLI وDocker Compose داخل مساحة JupyterLab، قم بتشغيل الأوامر التالية جيثب ريبو. ستوديو سيج ميكر يدعم إصدار Docker 20.10.X فقط.
بناء صور دوكر
للتأكد من تثبيت Docker وعمله داخل مساحة JupyterLab الخاصة بك، قم بتشغيل التعليمات البرمجية التالية:
لإنشاء صورة Docker مخصصة داخل مساحة JupyterLab (أو Code Editor)، أكمل الخطوات التالية:
- قم بإنشاء ملف Dockerfile فارغ:
touch Dockerfile
- قم بتحرير ملف Dockerfile باستخدام الأوامر التالية، والتي تنشئ صورة خادم ويب flask بسيطة من قاعدة python:3.10.13-bullseye image المستضافة على دوكر هاب:
يعرض التعليمة البرمجية التالية محتويات ملف تطبيق قارورة المثال app.py
:
بالإضافة إلى ذلك، يمكنك تحديث أوامر Dockerfile المرجعية لتشمل الحزم والعناصر التي تختارها.
- أنشئ صورة Docker باستخدام ملف Dockerfile المرجعي:
docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .
تضمن --network
sagemaker في أمر بناء عامل الإرساء الخاص بك، وإلا فسوف تفشل عملية البناء. لا يمكن تشغيل الحاويات في جسر Docker الافتراضي أو شبكات Docker المخصصة. يتم تشغيل الحاويات في نفس الشبكة مثل حاوية تطبيق SageMaker Studio. يمكن للمستخدمين فقط استخدام sagemaker لاسم الشبكة.
- عند اكتمال البناء، تحقق من وجود الصورة. أعد وضع علامة على البناء كصورة ECR ثم ادفع. إذا واجهت مشكلات تتعلق بالأذونات، فقم بتشغيل الأمر aws ecr get-login-password... وحاول إعادة تشغيل Docker Push/pull:
اختبار صور Docker
يتيح لك تثبيت Docker داخل مساحة JupyterLab (أو محرر التعليمات البرمجية) SageMaker Studio اختبار صور Docker المعدة مسبقًا أو المخصصة كحاويات (أو تطبيقات داخل حاويات). في هذا القسم، نستخدم أمر docker run لتوفير حاويات Docker داخل مساحة SageMaker Studio لاختبار أحمال العمل الحاوية مثل خدمات الويب REST والبرامج النصية Python. أكمل الخطوات التالية:
- إذا لم تكن صورة الاختبار موجودة، فقم بتشغيل docker pull لسحب الصورة إلى جهازك المحلي:
sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
- إذا واجهت مشاكل في المصادقة، قم بتشغيل الأوامر التالية:
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
- قم بإنشاء حاوية لاختبار عبء العمل الخاص بك:
docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
يؤدي ذلك إلى تشغيل نسخة حاوية جديدة وتشغيل التطبيق المحدد باستخدام ENTRYPOINT الخاص بـ Docker:
- لاختبار ما إذا كانت نقطة نهاية الويب الخاصة بك نشطة، انتقل إلى عنوان URL
https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/
.
من المفترض أن تشاهد استجابة JSON مشابهة للقطة الشاشة التالية.
تنظيف
لتجنب تكبد رسوم غير ضرورية، احذف الموارد التي قمت بإنشائها أثناء تشغيل الأمثلة في هذا المنشور:
- في مجال SageMaker Studio الخاص بك، اختر استوديو كلاسيك في جزء التنقل ، ثم اختر قلة النوم.
- في مجال SageMaker Studio الخاص بك، اختر جوبيتر لاب or محرر الكود في جزء التنقل، اختر تطبيقك، ثم اختر قلة النوم.
وفي الختام
يعمل دعم SageMaker Studio Local Mode وDocker على تمكين المطورين من إنشاء تطبيقات ML واختبارها وتكرارها بشكل أسرع دون مغادرة مساحة العمل الخاصة بهم. ومن خلال توفير الوصول الفوري إلى بيئات الاختبار والمخرجات، تعمل هذه الإمكانات على تحسين سير العمل وتحسين الإنتاجية. جرّب دعم SageMaker Studio Local Model وDocker باستخدام خدماتنا ميزة سريعة على متن الطائرة، والذي يسمح لك بإنشاء نطاق جديد للمستخدمين الفرديين في غضون دقائق. شارك أفكارك في قسم التعليقات!
حول المؤلف
شويتا سينغ هو مدير منتج أول في فريق منصة Amazon SageMaker Machine Learning (ML) في AWS، وهو يقود SageMaker Python SDK. عملت في العديد من أدوار المنتجات في أمازون لأكثر من 5 سنوات. حصلت على درجة بكالوريوس العلوم في هندسة الكمبيوتر ودرجة الماجستير في العلوم في الهندسة المالية، وكلاهما من جامعة نيويورك
ايتان سيلا هو مهندس حلول متخصص في الذكاء الاصطناعي والتعلم الآلي في AWS. وهو يعمل مع عملاء AWS لتقديم التوجيه والمساعدة الفنية، ومساعدتهم في بناء وتشغيل حلول الذكاء الاصطناعي والتعلم الآلي على AWS. في أوقات فراغه، يستمتع إيتان بالركض وقراءة أحدث المقالات المتعلقة بالتعلم الآلي.
براناف مورثي هو مهندس حلول متخصص في الذكاء الاصطناعي/تعلم الآلة في AWS. وهو يركز على مساعدة العملاء في بناء أعباء عمل التعلم الآلي (ML) وتدريبها ونشرها وترحيلها إلى SageMaker. وقد عمل سابقًا في صناعة أشباه الموصلات في تطوير نماذج الرؤية الحاسوبية الكبيرة (CV) ومعالجة اللغة الطبيعية (NLP) لتحسين عمليات أشباه الموصلات باستخدام أحدث تقنيات تعلم الآلة. وفي أوقات فراغه يستمتع بلعب الشطرنج والسفر. يمكنك العثور على براناف على لينكدين:.
مفضل روهاوالا هو مهندس برمجيات في AWS. وهو يعمل في مكتبة SageMaker Python SDK لـ Amazon SageMaker. يستمتع في أوقات فراغه بالسفر والأنشطة الخارجية وهو من مشجعي كرة القدم.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/accelerate-ml-workflows-with-amazon-sagemaker-studio-local-mode-and-docker-support/