استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS

في 9 أغسطس 2022 ، أعلنا عن التوفر العام للمشاركة عبر الحسابات لـ كيانات Amazon SageMaker Pipelines. يمكنك الآن استخدام الدعم عبر الحسابات لـ خطوط أنابيب Amazon SageMaker لمشاركة كيانات خطوط الأنابيب عبر حسابات AWS والوصول إلى خطوط الأنابيب المشتركة مباشرةً من خلالها الأمازون SageMaker مكالمات API.

يتبنى العملاء بشكل متزايد معماريات متعددة الحسابات لنشر وإدارة سير عمل التعلم الآلي (ML) باستخدام خطوط أنابيب SageMaker. يتضمن ذلك إنشاء تدفقات عمل في حسابات التطوير أو التجريب (dev) ، ونشرها واختبارها في حساب اختبار أو ما قبل الإنتاج (اختبار) ، وأخيراً ترقيتها إلى حسابات الإنتاج (prod) للتكامل مع العمليات التجارية الأخرى. يمكنك الاستفادة من المشاركة عبر الحسابات لخطوط أنابيب SageMaker في حالات الاستخدام التالية:

  • عندما يبني علماء البيانات تدفقات عمل تعلم الآلة في حساب مطور ، يتم نشر تدفقات العمل هذه بواسطة مهندس تعلم الآلة كخط أنابيب SageMaker في حساب اختبار مخصص. لمزيد من مراقبة تدفقات العمل هذه ، يطلب علماء البيانات الآن إذنًا للقراءة فقط عبر الحسابات لخط الأنابيب المنشور في حساب الاختبار.
  • يتطلب أيضًا مهندسو ML ، ومسؤولو ML ، وفرق الامتثال ، الذين يديرون نشر وعمليات سير عمل ML من حساب الخدمات المشتركة ، رؤية خط الأنابيب المنشور في حساب الاختبار. قد تتطلب أيضًا أذونات إضافية لبدء عمليات سير عمل ML وإيقافها وإعادة المحاولة.

في هذا المنشور ، نقدم مثالاً على بنية متعددة الحسابات لتطوير ونشر مهام سير عمل تعلم الآلة باستخدام خطوط أنابيب SageMaker.

حل نظرة عامة

تساعدك إستراتيجية الحسابات المتعددة على تحقيق عزل البيانات والمشروع والفريق مع دعم خطوات دورة حياة تطوير البرامج. تدعم المشاركة عبر الحسابات استراتيجية متعددة الحسابات ، مما يؤدي إلى إزالة النفقات العامة لتسجيل الدخول والخروج من حسابات متعددة وتحسين اختبار ML وتدفقات عمل النشر من خلال مشاركة الموارد مباشرة عبر حسابات متعددة.

في هذا المثال ، لدينا فريق علم بيانات يستخدم حساب مطور مخصص للتطوير الأولي لخط أنابيب SageMaker. ثم يتم تسليم خط الأنابيب هذا إلى مهندس ML ، الذي يقوم بإنشاء ملف خط أنابيب التكامل المستمر والتسليم المستمر (CI / CD) في حساب الخدمات المشتركة الخاص بهم لنشر خط الأنابيب هذا في حساب اختباري. لتظل قادرًا على مراقبة خط الأنابيب المنتشر والتحكم فيه من حسابات التطوير والخدمات المشتركة الخاصة بهم ، مشاركات الموارد مع مدير الوصول إلى موارد AWS في حسابات الاختبار والتطوير. من خلال هذا الإعداد ، يمكن لمهندس ML وعالم البيانات الآن مراقبة خطوط الأنابيب والتحكم فيها في حسابات التطوير والاختبار من حساباتهم الخاصة ، كما هو موضح في الشكل التالي.

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

في سير العمل ، يقوم عالم البيانات ومهندس ML بتنفيذ الخطوات التالية:

  1. ينشئ عالم البيانات (DS) خط أنابيب نموذجي في حساب dev.
  2. يقوم مهندس ML (MLE) بإنتاج خط الأنابيب النموذجي وإنشاء خط أنابيب ، (لهذا المنشور ، نسميها sagemaker-pipeline).
  3. sagemaker-pipeline رمز ملتزم بـ كود AWS المستودع في حساب الخدمات المشتركة.
  4. ينشئ عالم البيانات حصة موارد AWS RAM لـ sagemaker-pipeline ومشاركتها مع حساب الخدمات المشتركة الذي يقبل مشاركة المورد.
  5. من حساب الخدمات المشتركة ، أصبح مهندسو ML الآن قادرين على وصف ومراقبة وإدارة عمليات تشغيل خط الأنابيب في حساب dev باستخدام مكالمات واجهة برمجة تطبيقات SageMaker.
  6. يقوم خط أنابيب CI / CD الذي يتم تشغيله في حساب الخدمة المشتركة بإنشاء التعليمات البرمجية ونشرها في حساب الاختبار باستخدام خط أنابيب AWS.
  7. يتم إنشاء وتشغيل خط أنابيب CI / CD sagemaker-pipeline في حساب الاختبار.
  8. بعد تشغيل sagemaker-pipeline في حساب الاختبار ، يقوم خط أنابيب CI / CD بإنشاء مشاركة مورد لـ sagemaker-pipeline في حساب الاختبار.
  9. حصة مورد من الاختبار sagemaker-pipeline باستخدام أذونات للقراءة فقط ، يتم إنشاء حساب dev ، الذي يقبل مشاركة المورد.
  10. أصبح عالم البيانات قادرًا الآن على وصف حالة تشغيل خط أنابيب الاختبار ومراقبتها باستخدام استدعاءات SageMaker API من حساب dev.
  11. حصة مورد من الاختبار sagemaker-pipeline مع أذونات موسعة يتم إنشاؤه باستخدام حساب الخدمات المشتركة الذي يقبل مشاركة المورد.
  12. أصبح مهندس ML الآن قادرًا على وصف ومراقبة وإدارة تشغيل خط أنابيب الاختبار باستخدام استدعاءات SageMaker API من حساب الخدمات المشتركة.

في الأقسام التالية ، ندخل في مزيد من التفاصيل ونقدم عرضًا توضيحيًا حول كيفية إعداد المشاركة عبر الحسابات لخطوط أنابيب SageMaker.

كيفية إنشاء ومشاركة خطوط أنابيب SageMaker عبر الحسابات

في هذا القسم ، نتصفح الخطوات اللازمة لإنشاء خطوط الأنابيب ومشاركتها عبر الحسابات باستخدام AWS RAM وواجهة برمجة تطبيقات SageMaker.

هيئ البيئة

أولاً ، نحتاج إلى إعداد بيئة متعددة الحسابات لإثبات المشاركة عبر الحسابات لخطوط أنابيب SageMaker:

  1. قم بإعداد حسابي AWS (مطور واختبار). يمكنك إعداد هذا كحسابات أعضاء في مؤسسة أو كحسابات مستقلة.
  2. إذا كنت تقوم بإعداد حساباتك كعضو في مؤسسة ، فيمكنك تمكينها تقاسم الموارد مع مؤسستك. باستخدام هذا الإعداد ، عندما تشارك الموارد في مؤسستك ، لا ترسل AWS RAM دعوات إلى المديرين. يحصل المدراء في مؤسستك على حق الوصول إلى الموارد المشتركة دون تبادل الدعوات.
  3. في حساب الاختبار ، قم بتشغيل أمازون ساجميكر ستوديو وتشغيل دفتر الملاحظات سجل القطار نشر نموذج خط الأنابيب. يؤدي هذا إلى إنشاء مثال لخط الأنابيب في حسابك التجريبي. لتبسيط العرض التوضيحي ، نستخدم SageMaker Studio في حساب الاختبار لبدء تشغيل خط الأنابيب. بالنسبة لمشاريع الحياة الواقعية ، يجب عليك استخدام Studio في حساب dev فقط وتشغيل SageMaker Pipeline في حساب الاختبار باستخدام أدوات CI / CD.

اتبع التعليمات الواردة في القسم التالي لمشاركة خط الأنابيب هذا مع حساب dev.

قم بإعداد مشاركة موارد خط الأنابيب

لمشاركة خط الأنابيب الخاص بك مع حساب dev ، أكمل الخطوات التالية:

  1. في وحدة تحكم AWS RAM ، اختر إنشاء حصة الموارد.
  2. في حالة حدد نوع المورد، اختر خطوط الأنابيب SageMaker.
  3. حدد خط الأنابيب الذي أنشأته في الخطوة السابقة.
  4. اختار التالى.
  5. في حالة أذونات، اختر الأذونات المرتبطة.
  6. اختار التالى.
    استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.بعد ذلك ، عليك أن تقرر كيف تريد منح حق الوصول إلى مديري المدارس.
  7. إذا كنت بحاجة إلى مشاركة خط الأنابيب داخل حسابات مؤسستك فقط ، فحدد السماح بالمشاركة داخل مؤسستك فقط؛ حدد خلاف ذلك السماح بالمشاركة مع أي شخص.
  8. في حالة مدراء، اختر النوع الأساسي (يمكنك استخدام حساب AWS أو مؤسسة أو وحدة تنظيمية ، بناءً على متطلبات المشاركة الخاصة بك). بالنسبة إلى هذا المنشور ، نشاركه مع أي شخص على مستوى حساب AWS.
  9. حدد المعرف الرئيسي الخاص بك.
  10. اختار التالى.
    استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.
  11. على مراجعة وإنشاء الصفحة ، تحقق من صحة معلوماتك واختر إنشاء حصة الموارد.
    استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.
  12. انتقل إلى حساب وجهتك (لهذا المنشور ، حساب dev الخاص بك).
  13. على وحدة تحكم AWS RAM ، تحت شارك معي في جزء التنقل ، اختر مشاركات الموارد.
  14. اختر حصة الموارد الخاصة بك واختر قبول حصة الموارد.
    استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

أذونات مشاركة الموارد

عند إنشاء مشاركة الموارد الخاصة بك ، يمكنك الاختيار من إحدى سياستي الأذونات المدعومين للاقتران بنوع مورد خط أنابيب SageMaker. كلا السياستين تمنحان الوصول إلى أي خط أنابيب محدد وجميع عمليات التشغيل الخاصة به.

AWSRAMDefaultPermissionSageMakerPipeline تسمح السياسة بالإجراءات التالية للقراءة فقط:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

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

يسمح نهج أذونات تشغيل خط الأنابيب الممتد بالإجراءات التالية:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

الوصول إلى كيانات خطوط الأنابيب المشتركة من خلال مكالمات API المباشرة

في هذا القسم ، نتعرف على كيفية استخدام العديد من استدعاءات واجهة برمجة تطبيقات SageMaker Pipeline للحصول على رؤية لخطوط الأنابيب التي تعمل في الحسابات البعيدة التي تمت مشاركتها معك. لاختبار واجهات برمجة التطبيقات مقابل خط الأنابيب الذي يعمل في حساب الاختبار من حساب dev ، سجّل الدخول إلى حساب dev واستخدمه أوس كلاودشيل.

بالنسبة إلى استدعاءات SageMaker Pipeline API عبر الحسابات ، تحتاج دائمًا إلى استخدام ARN لخط الأنابيب الخاص بك كتعريف لخط الأنابيب. يتضمن ذلك أيضًا الأوامر التي تتطلب اسم خط الأنابيب ، حيث تحتاج إلى استخدام خط الأنابيب الخاص بك ARN كاسم لخط الأنابيب.

للحصول على ARN الخاص بخط الأنابيب ، في حسابك التجريبي ، انتقل إلى تفاصيل خط الأنابيب في Studio عبر موارد SageMaker.

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

اختار خطوط الأنابيب في قائمة الموارد الخاصة بك.

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

اختر خط الأنابيب الخاص بك وانتقل إلى خط الأنابيب الخاص بك الإعدادات التبويب. يمكنك العثور على خط الأنابيب ARN باستخدام ملف البيانات الوصفية معلومة. في هذا المثال ، يتم تعريف ARN الخاص بك على أنه "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

قائمة تنفيذ خط الأنابيب

هذا استدعاء API يسرد الأشواط من خط الأنابيب الخاص بك. قم بتشغيل الأمر التالي ، مع استبدال $SHARED_PIPELINE_ARN مع خط الأنابيب الخاص بك ARN من CloudShell أو باستخدام واجهة سطر الأوامر AWS (AWS CLI) تم تكوينه باستخدام ملف إدارة الهوية والوصول AWS (انا) دور:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

يسرد الرد جميع عمليات تشغيل خط الأنابيب الخاص بك مع PipelineExecutionArn, StartTime, PipelineExecutionStatusو PipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

وصف

هذا استدعاء API يصف التفاصيل من خط الأنابيب الخاص بك. قم بتشغيل الأمر التالي ، مع استبدال $SHARED_PIPELINE_ARN مع خط الأنابيب الخاص بك ARN:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

توفر الاستجابة البيانات الوصفية لخط الأنابيب الخاص بك ، بالإضافة إلى معلومات حول إنشائها وتعديلاتها:

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

وصف خط الأنابيب التنفيذ

هذا استدعاء API يصف التفاصيل من تشغيل خط الأنابيب الخاص بك. قم بتشغيل الأمر التالي ، مع استبدال $SHARED_PIPELINE_ARN مع خط الأنابيب الخاص بك ARN:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

توفر الاستجابة تفاصيل حول تشغيل خط الأنابيب ، بما في ذلك ملف PipelineExecutionStatus, ExperimentNameو TrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

تنفيذ خط الأنابيب

هذا استدعاء API يبدأ تشغيل خط الأنابيب. قم بتشغيل الأمر التالي ، مع استبدال $SHARED_PIPELINE_ARN مع خط الأنابيب الخاص بك ARN و $CLIENT_REQUEST_TOKEN بمعرف فريد حساس لحالة الأحرف تقوم بإنشائه لهذا التشغيل. يجب أن يتكون المعرف من 32 إلى 128 حرفًا. على سبيل المثال ، يمكنك إنشاء سلسلة باستخدام الامتداد تقوم AWS CLI kms بإنشاء أمر عشوائي.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

كاستجابة لذلك ، يقوم استدعاء API هذا بإرجاع ملف PipelineExecutionArn من المدى الذي بدأ:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

StopPipelineExecution

هذا استدعاء API توقف تشغيل خط الأنابيب. قم بتشغيل الأمر التالي ، مع استبدال $PIPELINE_EXECUTION_ARN باستخدام خط الأنابيب ، قم بتشغيل ARN لخط الأنابيب الجاري و $CLIENT_REQUEST_TOKEN بمعرف فريد حساس لحالة الأحرف تقوم بإنشائه لهذا التشغيل. يجب أن يتكون المعرف من 32 إلى 128 حرفًا. على سبيل المثال ، يمكنك إنشاء سلسلة باستخدام الامتداد تقوم AWS CLI kms بإنشاء أمر عشوائي.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

كاستجابة لذلك ، يقوم استدعاء API هذا بإرجاع ملف PipelineExecutionArn من خط الأنابيب المتوقف:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

وفي الختام

تتيح لك المشاركة عبر الحسابات لخطوط أنابيب SageMaker مشاركة كيانات خطوط الأنابيب بأمان عبر حسابات AWS والوصول إلى خطوط الأنابيب المشتركة من خلال مكالمات API المباشرة ، دون الحاجة إلى تسجيل الدخول والخروج من حسابات متعددة.

في هذا المنشور ، نتعمق في الوظيفة لإظهار كيف يمكنك مشاركة خطوط الأنابيب عبر الحسابات والوصول إليها عبر مكالمات SageMaker API.

كخطوة تالية ، يمكنك استخدام هذه الميزة لمشروع ML التالي الخاص بك.

الموارد

لبدء استخدام خطوط أنابيب SageMaker ومشاركة خطوط الأنابيب عبر الحسابات ، راجع الموارد التالية:


عن المؤلفين

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.رام فيتال هو مهندس حلول متخصص في ML في AWS. يتمتع بخبرة تزيد عن 20 عامًا في تصميم وبناء التطبيقات الموزعة والهجينة والسحابة. إنه متحمس لبناء حلول آمنة وقابلة للتطوير للذكاء الاصطناعي / التعلم الآلي والبيانات الضخمة لمساعدة عملاء المؤسسات في تبني السحابة ورحلة التحسين لتحسين نتائج أعمالهم. يستمتع في أوقات فراغه بالتنس والتصوير وأفلام الحركة.

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.ميرا لاديرا تانك هو مهندس حلول متخصص في ML في AWS. تتمتع بخلفية في علم البيانات ، ولديها 9 سنوات من الخبرة في تصميم وبناء تطبيقات ML مع العملاء عبر الصناعات. بصفتها رائدة فنية ، فهي تساعد العملاء على تسريع تحقيقهم لقيمة الأعمال من خلال التقنيات الناشئة والحلول المبتكرة. في أوقات فراغها ، تستمتع ميرا بالسفر وقضاء الوقت مع أسرتها في مكان دافئ.

استخدم مشاركة خط أنابيب Amazon SageMaker لعرض خطوط الأنابيب أو إدارتها عبر حسابات AWS PlatoBlockchain Data Intelligence. البحث العمودي. عاي.غابرييل زيلكا هو مستشار خدمات احترافية في AWS. إنه يعمل عن كثب مع العملاء لتسريع رحلة تبني السحابة الخاصة بهم. متخصص في مجال MLOps ، ويركز على إنتاج أعباء عمل التعلم الآلي من خلال أتمتة دورات حياة التعلم الآلي الشاملة والمساعدة في تحقيق نتائج الأعمال المرغوبة. في أوقات فراغه ، يستمتع بالسفر والمشي لمسافات طويلة في جبال الألب البافارية.

الطابع الزمني:

اكثر من التعلم الآلي من AWS