شعار زيفيرنت

استخدم AWS CDK لنشر تكوينات دورة حياة Amazon SageMaker Studio | خدمات أمازون ويب

التاريخ:

أمازون ساجميكر ستوديو هي أول بيئة تطوير متكاملة (IDE) للتعلم الآلي (ML). يوفر Studio واجهة مرئية واحدة قائمة على الويب حيث يمكنك تنفيذ جميع خطوات تطوير ML المطلوبة لإعداد البيانات ، بالإضافة إلى إنشاء النماذج وتدريبها ونشرها. تكوينات دورة الحياة هي نصوص برمجية shell يتم تشغيلها بواسطة أحداث دورة حياة Studio ، مثل بدء تشغيل دفتر ملاحظات Studio جديد. يمكنك استخدام تكوينات دورة الحياة لأتمتة التخصيص لبيئة الاستوديو الخاصة بك. يتضمن هذا التخصيص تثبيت حزم مخصصة ، وتكوين ملحقات الكمبيوتر المحمول ، وتحميل مجموعات البيانات مسبقًا ، وإعداد مستودعات كود المصدر. على سبيل المثال ، كمسؤول عن مجال Studio ، قد ترغب في ذلك توفير التكاليف من خلال إيقاف تشغيل تطبيقات الكمبيوتر المحمول تلقائيًا بعد فترات طويلة من عدم النشاط.

مجموعة تطوير سحابة AWS (AWS CDK) هو إطار لتعريف البنية التحتية السحابية من خلال التعليمات البرمجية وتوفيرها من خلاله تكوين سحابة AWS مداخن. المكدس عبارة عن مجموعة من موارد AWS التي يمكن تحديثها أو نقلها أو حذفها برمجيًا. AWS CDK يبني هي اللبنات الأساسية لتطبيقات AWS CDK ، والتي تمثل مخططًا لتعريف البنى السحابية.

في هذا المنشور ، نوضح كيفية استخدام AWS CDK لإعداد Studio ، واستخدام تكوينات دورة حياة Studio ، وتمكين وصول علماء البيانات والمطورين في مؤسستك إليها.

حل نظرة عامة

تسمح لك نمطية تكوينات دورة الحياة بتطبيقها على جميع المستخدمين في مجال ما أو على مستخدمين محددين. بهذه الطريقة ، يمكنك إعداد تكوينات دورة الحياة والرجوع إليها في الاستوديو بوابة النواة أو خادم Jupyter بسرعة وباستمرار. بوابة kernel هي نقطة الدخول للتفاعل مع مثيل دفتر ملاحظات ، بينما يمثل خادم Jupyter مثيل Studio. يمكّنك هذا من تطبيق أفضل ممارسات DevOps وتلبية معايير الأمان والامتثال والتكوين عبر جميع حسابات AWS والمناطق. في هذا المنشور ، نستخدم Python كلغة رئيسية ، ولكن يمكن تغيير الكود بسهولة إلى لغات أخرى مدعومة من AWS CDK. لمزيد من المعلومات ، يرجى الرجوع إلى العمل مع AWS CDK.

المتطلبات الأساسية المسبقة

للبدء ، تأكد من توفر المتطلبات الأساسية التالية لديك:

استنساخ مستودع GitHub

أولا، استنساخ ال مستودع جيثب.

أثناء استنساخ المستودع ، يمكنك ملاحظة أن لدينا مشروع AWS CDK كلاسيكي مع الدليل studio-lifecycle-config-construct، والتي تحتوي على البنية والموارد المطلوبة لإنشاء تكوينات دورة الحياة.

تُنشئ AWS CDK

الملف الذي نريد فحصه هو aws_sagemaker_lifecycle.py. يحتوي هذا الملف على ملف SageMakerStudioLifeCycleConfig نحن نستخدمها لإعداد تكوينات دورة الحياة وإنشائها.

SageMakerStudioLifeCycleConfig يوفر الإنشاء إطار عمل لإنشاء تكوينات دورة الحياة باستخدام ملف مخصص AWS لامدا وظيفة ورمز قذيفة قراءة من ملف. يحتوي البناء على المعلمات التالية:

  • ID - اسم المشروع الحالي.
  • studio_lifecycle_content - و base64 محتوى مشفر.
  • studio_lifecycle_tags - التصنيفات التي تخصصها لتنظيم موارد أمازون. يتم إدخالها كأزواج مفتاح-قيمة وهي اختيارية لهذا التكوين.
  • studio_lifecycle_config_app_type - JupyterServer هو الخادم الفريد نفسه ، و KernelGateway يتوافق التطبيق مع حاوية صورة SageMaker قيد التشغيل.

لمزيد من المعلومات حول بنية Studio للكمبيوتر الدفتري ، يرجى الرجوع إلى تعمق في بنية Amazon SageMaker Studio Notebooks.

فيما يلي مقتطف رمز من تكوين تكوين دورة حياة الاستوديو (aws_sagemaker_lifecycle.py):

class SageMakerStudioLifeCycleConfig(Construct): def __init__( self, scope: Construct, id: str, studio_lifecycle_config_content: str, studio_lifecycle_config_app_type: str, studio_lifecycle_config_name: str, studio_lifecycle_config_arn: str, **kwargs, ): super().__init__(scope, id) self.studio_lifecycle_content = studio_lifecycle_content self.studio_lifecycle_config_name = studio_lifecycle_config_name self.studio_lifecycle_config_app_type = studio_lifecycle_config_app_type lifecycle_config_role = iam.Role( self, "SmStudioLifeCycleConfigRole", assumed_by=iam.ServicePrincipal("lambda.amazonaws.com"), ) lifecycle_config_role.add_to_policy( iam.PolicyStatement( resources=[f"arn:aws:sagemaker:{scope.region}:{scope.account}:*"], actions=[ "sagemaker:CreateStudioLifecycleConfig", "sagemaker:ListUserProfiles", "sagemaker:UpdateUserProfile", "sagemaker:DeleteStudioLifecycleConfig", "sagemaker:AddTags", ], ) ) create_lifecycle_script_lambda = lambda_.Function( self, "CreateLifeCycleConfigLambda", runtime=lambda_.Runtime.PYTHON_3_8, timeout=Duration.minutes(3), code=lambda_.Code.from_asset( "../mlsl-cdk-constructs-lib/src/studiolifecycleconfigconstruct" ), handler="onEvent.handler", role=lifecycle_config_role, environment={ "studio_lifecycle_content": self.studio_lifecycle_content, "studio_lifecycle_config_name": self.studio_lifecycle_config_name, "studio_lifecycle_config_app_type": self.studio_lifecycle_config_app_type, }, ) config_custom_resource_provider = custom_resources.Provider( self, "ConfigCustomResourceProvider", on_event_handler=create_lifecycle_script_lambda, ) studio_lifecyle_config_custom_resource = CustomResource( self, "LifeCycleCustomResource", service_token=config_custom_resource_provider.service_token, ) self. studio_lifecycle_config_arn = studio_lifecycle_config_custom_resource.get_att("StudioLifecycleConfigArn")

بعد استيراد التركيب وتثبيته ، يمكنك استخدامه. يوضح مقتطف الشفرة التالي كيفية إنشاء تكوين دورة حياة باستخدام البنية في مكدس إما في app.py أو بناء آخر:

my_studio_lifecycle_config = SageMakerStudioLifeCycleConfig( self, "MLSLBlogPost", studio_lifecycle_config_content="base64content", studio_lifecycle_config_name="BlogPostTest", studio_lifecycle_config_app_type="JupyterServer", )

انشر بنيات AWS CDK

لنشر مكدس AWS CDK الخاص بك ، قم بتشغيل الأوامر التالية في الموقع الذي نسخت فيه المستودع.

قد يكون الأمر python بدلا من python3 اعتمادا على تكوينات المسار الخاص بك.

  1. قم بإنشاء بيئة افتراضية:
    1. بالنسبة لنظام التشغيل macOS / Linux ، استخدم python3 -m venv .cdk-venv.
    2. لنظام التشغيل Windows ، استخدم python3 -m venv .cdk-venv.
  2. تفعيل البيئة الافتراضية:
    1. بالنسبة لنظام التشغيل macOS / Linux ، استخدم source .cdk-venvbinactivate.
    2. لنظام التشغيل Windows ، استخدم .cdk-venv/Scripts/activate.bat.
    3. بالنسبة إلى PowerShell ، استخدم .cdk-venv/Scripts/activate.ps1.
  3. قم بتثبيت التبعيات المطلوبة:
    1. pip install -r requirements.txt
    2. pip install -r requirements-dev.txt
  4. في هذه المرحلة ، يمكنك تركيب قالب CloudFormation اختياريًا لهذا الرمز:
  5. انشر الحل باستخدام الأوامر التالية:
    1. aws configure
    2. cdk bootstrap
    3. cdk deploy

عندما يتم نشر المكدس بنجاح ، يجب أن تكون قادرًا على عرض الحزمة على وحدة تحكم CloudFormation.

ستتمكن أيضًا من عرض تكوين دورة الحياة على وحدة تحكم SageMaker.

اختر تكوين دورة الحياة لعرض كود shell الذي يتم تشغيله بالإضافة إلى أي علامات قمت بتعيينها.

قم بإرفاق تكوين دورة حياة الاستوديو

توجد طرق متعددة لإرفاق تكوين دورة حياة. في هذا القسم ، نقدم طريقتين: استخدام وحدة تحكم إدارة AWS، واستخدام البنية التحتية المتوفرة برمجيًا.

قم بإرفاق تكوين دورة الحياة باستخدام وحدة التحكم

لاستخدام وحدة التحكم ، أكمل الخطوات التالية:

  1. في وحدة تحكم SageMaker ، اختر المجالات في جزء التنقل.
  2. اختر اسم المجال الذي تستخدمه وملف تعريف المستخدم الحالي ، ثم اختر تعديل.
  3. حدد تكوين دورة الحياة الذي تريد استخدامه واختر تعلق.

من هنا ، يمكنك أيضًا تعيينه كافتراضي.

قم بإرفاق تكوين دورة الحياة برمجيًا

يمكنك أيضًا استرداد ARN لتكوين دورة حياة Studio الذي تم إنشاؤه بواسطة الإنشاء وإرفاقه ببناء Studio برمجيًا. يُظهر الكود التالي تكوين دورة الحياة ARN الذي يتم تمريره إلى بنية Studio:

default_user_settings=sagemaker.CfnDomain.UserSettingsProperty( execution_role=self.sagemaker_role.role_arn, jupyter_server_app_settings=sagemaker.CfnDomain.JupyterServerAppSettingsProperty( default_resource_spec=sagemaker.CfnDomain.ResourceSpecProperty( instance_type="system", lifecycle_config_arn = my_studio_lifecycle_config.studio_lifeycycle_config_arn ) )

تنظيف

أكمل الخطوات في هذا القسم لتنظيف مواردك.

احذف تكوين دورة حياة الاستوديو

لحذف تكوين دورة الحياة ، أكمل الخطوات التالية:

  1. في وحدة تحكم SageMaker ، اختر تكوينات دورة حياة الاستوديو في جزء التنقل.
  2. حدد تكوين دورة الحياة ، ثم اختر حذف.

احذف مكدس AWS CDK

عندما تنتهي من استخدام الموارد التي قمت بإنشائها ، يمكنك تدمير مكدس AWS CDK الخاص بك عن طريق تشغيل الأمر التالي في الموقع الذي نسخت فيه المستودع:

cdk destroy

عندما يُطلب منك تأكيد حذف المكدس ، أدخل yes.

يمكنك أيضًا حذف الحزمة على وحدة تحكم AWS CloudFormation من خلال الخطوات التالية:

  1. في وحدة تحكم AWS CloudFormation ، اختر كومات في جزء التنقل.
  2. اختر المكدس الذي تريد حذفه.
  3. في جزء تفاصيل المكدس ، اختر حذف.
  4. اختار حذف المكدس عندما يطلب منك ذلك.

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

وفي الختام

في هذا المنشور ، ناقشنا كيف يعمل Studio بمثابة IDE لأعباء عمل ML. يوفر Studio دعم تكوين دورة الحياة ، والذي يسمح لك بإعداد برامج نصية مخصصة للقشرة لأداء المهام الآلية ، أو إعداد بيئات التطوير عند الإطلاق. استخدمنا تركيبات AWS CDK لبناء البنية التحتية للمورد المخصص وتكوين دورة الحياة. يتم تصنيع التركيبات في حزم CloudFormation التي يتم نشرها بعد ذلك لإنشاء المورد المخصص ونص دورة الحياة المستخدمة في Studio و kernel للكمبيوتر الدفتري.

لمزيد من المعلومات، يرجى زيارة أمازون ساجميكر ستوديو.


حول المؤلف

كوري هايرستون هو مهندس برمجيات في Amazon ML Solutions Lab. يعمل حاليًا على توفير حلول برمجية قابلة لإعادة الاستخدام.

أليكس شيرايث مهندس أول لتعلم الآلة في Amazon ML Solutions Lab. يقود فرقًا من علماء ومهندسي البيانات لبناء تطبيقات الذكاء الاصطناعي لتلبية احتياجات العمل.

جوري بانديشوار هو مدير مهندس في Amazon ML Solutions Lab. يعمل هو وفريقه من المهندسين على بناء حلول وأطر قابلة لإعادة الاستخدام تساعد في تسريع اعتماد خدمات AWS AI / ML لحالات استخدام الأعمال للعملاء.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة