شعار زيفيرنت

نشر نموذج متعدد الحسابات مع Amazon SageMaker Pipelines

التاريخ:

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

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

تجعل خطوط الأنابيب من السهل تطبيق نفس الإستراتيجية لنشر نماذج ML. تخيل حالة استخدام يكون لديك فيها ثلاثة حسابات AWS مختلفة ، واحد لكل بيئة: علم البيانات ، التدريج ، والإنتاج. يتمتع عالم البيانات بحرية إجراء التجارب وتدريب النماذج المختلفة وتحسينها في أي وقت في حسابه الخاص. عندما يكون النموذج جيدًا بما يكفي ليتم نشره في الإنتاج ، يحتاج عالم البيانات فقط إلى قلب حالة الموافقة على النموذج Approved. بعد ذلك ، تنشر عملية مؤتمتة النموذج على حساب التدريج. هنا يمكنك أتمتة اختبار النموذج من خلال اختبارات الوحدة أو اختبارات التكامل أو اختبار النموذج يدويًا. بعد الحصول على موافقة يدوية أو آلية ، يتم نشر النموذج في حساب الإنتاج ، وهو عبارة عن بيئة يتم التحكم فيها بشكل أكثر إحكامًا وتستخدم لخدمة الاستدلالات على بيانات العالم الحقيقي. باستخدام خطوط الأنابيب ، يمكنك تنفيذ بيئة متعددة الحسابات جاهزة للاستخدام.

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

تهيئة البيئة

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

يوضح الرسم التخطيطي التالي البنية المرجعية للبيئة التي تم إنشاؤها بواسطة مشروع SageMaker المخصص وكيف تدمج مؤسسات AWS الحسابات المختلفة.

يحتوي الرسم البياني على ثلاثة حسابات مختلفة تديرها المنظمات. أيضًا ، تعمل ثلاثة أدوار مختلفة للمستخدم (والتي قد تكون نفس الشخص) على هذه البيئة:

  • مهندس ML - مسؤول عن توفير مشروع SageMaker Studio الذي ينشئ خط أنابيب CI / CD وتسجيل النموذج والموارد الأخرى
  • عالم بيانات - مسؤول عن إنشاء خط أنابيب ML الذي ينتهي بنموذج مدرب مسجل لمجموعة النموذج (يشار إليه أيضًا باسم مجموعة الحزمة النموذجية)
  • الموافق - مسؤول عن اختبار النموذج الذي تم نشره في الحساب المرحلي والموافقة على نشر الإنتاج

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

ولكن قبل المضي قدمًا ، عليك إكمال الخطوات التالية ، والتي تم تفصيلها في الأقسام التالية:

  1. أنشئ حساب AWS ليستخدمه علماء البيانات (حساب علم البيانات).
  2. قم بإنشاء وتكوين ملف مجال SageMaker Studio في حساب علوم البيانات.
  3. قم بإنشاء حسابين إضافيين للإنتاج والتدريج.
  4. قم بإنشاء هيكل تنظيمي باستخدام المؤسسات ، ثم قم بدعوة ودمج الحسابات الإضافية.
  5. تكوين الأذونات المطلوبة لتشغيل خطوط الأنابيب ونشر النماذج على الحسابات الخارجية.
  6. قم باستيراد قالب مشروع SageMaker لنشر النماذج في حسابات متعددة وإتاحتها لـ SageMaker Studio.

تكوين SageMaker Studio في حسابك

توفر خطوط الأنابيب دعمًا مدمجًا لـ قوالب MLOps لتسهيل استخدام CI / CD لمشاريع ML الخاصة بك. يتم تعريف قوالب MLOps هذه على أنها أمازون كلاودفورميشن النماذج ونشرها عبر كتالوج خدمة AWS. هذه متاحة لعلماء البيانات عبر SageMaker Studio ، IDE لـ ML. لتكوين Studio في حسابك ، أكمل الخطوات التالية:

  1. قم بإعداد مجال SageMaker Studio الخاص بك.
  2. تفعيل قوالب مشروع SageMaker و SageMaker JumpStart لهذا الحساب ومستخدمي Studio.

إذا كان لديك مجال موجود ، يمكنك ببساطة تحرير إعدادات المجال أو المستخدمين الفرديين لتمكين هذا الخيار. يؤدي تمكين هذا الخيار إلى إنشاء نوعين مختلفين AWS للهوية وإدارة الحساب (IAM) في حساب AWS الخاص بك:

  • AmazonSageMakerServiceCatalogProductsLaunchRole - تستخدم بواسطة SageMaker لتشغيل قوالب المشروع وإنشاء موارد البنية التحتية المطلوبة
  • AmazonSageMakerServiceCatalogProductsUseRole - تُستخدم بواسطة خط أنابيب CI / CD لتشغيل وظيفة ونشر النماذج على الحسابات المستهدفة

إذا قمت بإنشاء مجال SageMaker Studio الخاص بك قبل إعادة: Invent 2020 ، فمن المستحسن أن تقوم بتحديث بيئتك عن طريق حفظ كل العمل الجاري. على ال قم بتقديم القائمة، اختر إغلاقوتأكيد اختيارك.

  1. أنشئ حسابي AWS آخرين وقم بإعدادهما للتشغيل المرحلي والإنتاج ، إذا لم يكن لديك حساب بعد.

تكوين المنظمات

تحتاج إلى إضافة حساب علوم البيانات والحسابين الإضافيين إلى بنية في المؤسسات. تساعدك المؤسسات على إدارة بيئتك وإدارتها مركزيًا أثناء نمو مواردك في AWS وتوسيع نطاقها. إنه مجاني ويفيد استراتيجية الحوكمة الخاصة بك.

يجب إضافة كل حساب إلى ملف الوحدة التنظيمية (OU).

  1. في وحدة تحكم المؤسسات ، قم بإنشاء هيكل للوحدات التنظيمية مثل ما يلي:
  • جذر
    • multi-account-deploymenر (OU)
      • 111111111111 (حساب علم البيانات — SageMaker Studio)
      • production (الوحدة التنظيمية)
        • 222222222222 (حساب AWS)
      • staging (الوحدة التنظيمية)
        • 333333333333 (حساب AWS)

بعد تكوين المؤسسة ، يتلقى كل مالك حساب دعوة. يتعين على المالكين قبول الدعوات ، وإلا فلن يتم تضمين الحسابات في المؤسسة.

  1. الآن تحتاج إلى تمكين الوصول الموثوق به مع مؤسسات AWS ("تمكين جميع الميزات" و "تمكين الوصول الموثوق به في StackSets").

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

  1. بعد ذلك ، في وحدة تحكم المؤسسات ، اختر تنظيم الحسابات.
  2. اختار انطلاق.
  3. لاحظ أسفل معرف OU.
  4. كرر هذه العملية لـ production أو.

كرر هذه العملية للإنتاج OU.

تكوين الأذونات

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

  1. تسجيل الدخول إلى وحدة تحكم إدارة AWS مع حساب التدريج.
  2. قم بتشغيل ما يلي قالب CloudFormation.

ينشئ هذا القالب دور SageMaker جديدًا لك.

  1. قم بتوفير المعلمات التالية:
    1. SageMakerRoleSuffix - سلسلة قصيرة (بحد أقصى 10 أحرف صغيرة بدون مسافات أو أحرف أبجدية رقمية) تتم إضافتها إلى اسم الدور بعد البادئة التالية: sagemaker-role-. اسم الدور النهائي هو sagemaker-role-<<sagemaker_role_suffix>>.
    2. PipelineExecutionRoleArn - ARN للدور من حساب علم البيانات الذي يفترض دور SageMaker الذي تقوم بإنشائه. للعثور على ARN ، قم بتسجيل الدخول إلى وحدة التحكم باستخدام حساب علوم البيانات. في وحدة تحكم IAM ، اختر الأدوار والبحث عن AmazonSageMakerServiceCatalogProductsUseRole. اختر هذا الدور وانسخ ARN (arn:aws:iam::<<data_science_acccount_id>>:role/service-role/AmazonSageMakerServiceCatalogProductsUseRole).
  2. بعد إنشاء هذا الدور في الحساب المرحلي ، كرر هذه العملية لحساب الإنتاج.

في حساب علوم البيانات ، يمكنك الآن تكوين سياسة ملف خدمة تخزين أمازون البسيطة (Amazon S3) دلو يستخدم لتخزين النموذج المدرب. بالنسبة لهذا المنشور ، نستخدم دلو SageMaker الافتراضي للمنطقة الحالية. يحتوي على تنسيق الاسم التالي: sagemaker-<<region>>-<<aws_account_id>>.

  1. في وحدة تحكم Amazon S3 ، ابحث عن هذه المجموعة ، مع توفير المنطقة التي تستخدمها ومعرف حساب علوم البيانات.

إذا لم تجده ، فأنشئ مستودعًا جديدًا يتبع تنسيق الاسم هذا.

  1. على أذونات علامة التبويب ، أضف السياسة التالية:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<<staging_account_id>>:root", "arn:aws:iam::<<production_account_id>>:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>", "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>/*" ] } ]
    }

  1. حفظ الإعدادات الخاصة بك.

أصبح لدى الحسابات المستهدفة الآن إذن لقراءة النموذج المدرب أثناء النشر.

الخطوة التالية هي إضافة أذونات جديدة إلى الأدوار AmazonSageMakerServiceCatalogProductsUseRole و AmazonSageMakerServiceCatalogProductsLaunchRole.

  1. في حساب علوم البيانات ، في وحدة تحكم IAM ، اختر الأدوار.
  2. أعثر على AmazonSageMakerServiceCatalogProductsUseRole دور واختياره.
  3. أضف سياسة جديدة وأدخل ما يلي كود JSON.
  4. احفظ التغييرات.
  5. الآن ، ابحث عن ملف AmazonSageMakerServiceCatalogProductsLaunchRole الدور ، اختره وأضف سياسة جديدة بالمحتوى التالي:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aws-ml-blog/artifacts/sagemaker-pipeline-blog-resources/*" } ]
    }

  1. احفظ التغييرات.

هذا هو! بيئتك جاهزة تقريبًا. ما عليك سوى خطوة واحدة أخرى ويمكنك البدء في التدريب ونشر النماذج في حسابات مختلفة.

استيراد قالب مشروع SageMaker Studio المخصص

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

  1. قم بتسجيل الدخول إلى وحدة التحكم باستخدام حساب علوم البيانات.
  2. في وحدة تحكم AWS Service Catalog ، تحت الإدارة، اختر مشاريعنا.
  3. اختار أنشئ محفظة جديدة.
  4. اسم المحفظة SageMaker Organization Templates.
  5. قم بتنزيل ما يلي قالب لجهاز الكمبيوتر الخاص بك.
  6. اختر المحفظة الجديدة.
  7. اختار تحميل منتج جديد.
  8. في حالة اسم المنتجأدخل Multi Account Deployment.
  9. في حالة الوصف، أدخل Multi account deployment project.
  10. في حالة مالك، أدخل أسمك.
  11. تحت تفاصيل الإصدار، ل خدمة التوصيل، اختر استخدم ملف قالب.
  12. اختار تحميل قالب.
  13. قم بتحميل النموذج الذي قمت بتنزيله.
  14. في حالة عنوان الإصدار، اختر 1.0.

المعلمات المتبقية اختيارية.

  1. اختار التقيم.
  2. راجع إعداداتك واختر إنشاء منتج.
  3. اختار تحديث لسرد المنتج الجديد.
  4. اختر المنتج الذي قمت بإنشائه للتو.
  5. على الاوسمة (تاج) علامة التبويب ، أضف العلامة التالية إلى المنتج:
    1. القفل - sagemaker:studio-visibility
    2. القيم - True

مرة أخرى في تفاصيل المحفظة ، ترى شيئًا مشابهًا للقطة الشاشة التالية (بمعرفات مختلفة).

مرة أخرى في تفاصيل المحفظة ، ترى شيئًا مشابهًا للقطة الشاشة التالية (بمعرفات مختلفة).

  1. على القيود علامة التبويب، اختر خلق القيد.
  2. في حالة منتج ، اختر النشر متعدد الحسابات (المنتج الذي أنشأته للتو).
  3. في حالة نوع القيد، اختر إطلاق.
  4. تحت إطلاق القيد، ل خدمة التوصيل، اختر حدد دور IAM.
  5. اختار AmazonSageMakerServiceCatalogProductsLaunchRole.
  6. اختار إنشاء.
  7. على المجموعات والأدوار والمستخدمين علامة التبويب، اختر أضف المجموعات والأدوار والمستخدمين.
  8. على الأدوار علامة التبويب ، حدد الدور الذي استخدمته عند تكوين مجال SageMaker Studio الخاص بك.
  9. اختار إضافة وصول.

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

انت انتهيت! حان الوقت الآن لإنشاء مشروع باستخدام هذا النموذج.

إنشاء مشروعك

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

  1. قم بتسجيل الدخول إلى وحدة التحكم باستخدام حساب علوم البيانات.
  2. في وحدة تحكم SageMaker ، افتح SageMaker Studio مع المستخدم الخاص بك.
  3. اختيار المكونات والسجلات
  4. في القائمة المنسدلة ، اختر المشاريع.
  5. اختار إنشاء مشروع.

اختر إنشاء مشروع.

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

  1. اختار قوالب المنظمة.
  2. اختار النشر متعدد الحسابات.
  3. اختار حدد قالب المشروع.

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

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

  1. في مجلة تفاصيل المشروع القسم ل الاسم، أدخل iris-multi-01.

يجب أن يتكون اسم المشروع من 15 حرفًا أو أقل.

  1. في مجلة معلمات قالب المشروع، استخدم أسماء الأدوار التي قمت بإنشائها في كل حساب هدف (التدريج والإنتاج) وقم بتوفير الخصائص التالية:
    1. SageMakerExecutionRoleStagingName
    2. SageMakerExecutionRoleProdName
  2. استرجع معرفات OU التي قمت بإنشائها مسبقًا للوحدات التنظيمية للإنتاج المرحلي وقم بتوفير الخصائص التالية:
    1. OrganizationalUnitStagingId
    2. OrganizationalUnitProdId
  3. اختار إنشاء مشروع.

اختر إنشاء مشروع.

يستغرق توفير جميع الموارد بضع دقائق ، وبعد ذلك يتم إدراج المشروع في المشاريع الجزء. عندما تختار المشروع ، يتم فتح علامة تبويب تحتوي على بيانات تعريف المشروع. ال مجموعات النموذج علامة التبويب chows مجموعة نموذج بنفس اسم مشروعك. تم إنشاؤه أيضًا أثناء توفير المشروع.

يستغرق توفير جميع الموارد بضع دقائق ، وبعد ذلك يتم إدراج المشروع في قسم المشاريع.

البيئة جاهزة الآن لعالم البيانات لبدء تدريب النموذج.

تدريب نموذج

الآن وقد أصبح مشروعك جاهزًا ، حان الوقت لتدريب نموذج.

  1. تحميل سبيل المثال دفتر لاستخدامها في هذه الإرشادات التفصيلية.
  2. اختيار مجلد رمز لتغيير منطقة العمل لإدارة الملفات.
  3. اختيار إنشاء مجلد
  4. أدخل اسمًا للمجلد.
  5. اختر اسم المجلد.
  6. اختيار تحميل الملف
  7. اختر دفتر Jupyter الذي قمت بتنزيله وقم بتحميله إلى الدليل الجديد.
  8. اختر دفتر الملاحظات لفتح علامة تبويب جديدة.

اختر دفتر الملاحظات لفتح علامة تبويب جديدة.

يُطلب منك اختيار نواة.

  1. اختار Python3 (علم البيانات).
  2. اختار أختار.

اختر تحديد.

  1. في الخلية الثانية من دفتر الملاحظات ، استبدل ملف project_name متغير بالاسم الذي أعطيته لمشروعك (لهذه المشاركة ، iris-multi-01).

يمكنك الآن تشغيل دفتر Jupyter. ينشئ هذا الكمبيوتر الدفتري مسارًا بسيطًا للغاية من خلال خطوتين فقط: تدريب وتسجيل النموذج. يستخدم مجموعة بيانات قزحية و حاوية XGBoost مدمجة كخوارزمية.

  1. قم بتشغيل الكمبيوتر الدفتري بالكامل.

تستغرق العملية بعض الوقت بعد تشغيل الخلية التي تحتوي على الكود التالي:

start_response = pipeline.start(parameters={ "TrainingInstanceCount": "1"
})

هذا يبدأ مهمة التدريب ، والتي تستغرق حوالي 3 دقائق لإكمالها. بعد انتهاء التدريب ، تحصل الخلية التالية من دفتر Jupyter على أحدث إصدار من النموذج في سجل النموذج وتمييزه على أنه Approved. بدلاً من ذلك ، يمكنك الموافقة على نموذج من SageMaker Studio UI. على ال مجموعات النموذج علامة التبويب ، اختر مجموعة الطراز والإصدار المطلوب. أختر تحديث الحالة و الموافقة على قبل الحفظ.

اختر تحديث الحالة واعتماد قبل الحفظ

هذه هي نهاية مهمة عالم البيانات ولكن بداية تشغيل خط أنابيب CI / CD.

أمازون إيفينت بريدج يراقب نموذج التسجيل. يبدأ المستمع وظيفة نشر جديدة بالموفر خط أنابيب AWS سير العمل (تم إنشاؤه معك بإطلاق مشروع SageMaker Studio).

  1. في وحدة التحكم CodePipeline ، اختر خط الأنابيب الذي يبدأ بالبادئة sagemaker- ، متبوعًا باسم مشروعك.

في وحدة التحكم CodePipeline ، اختر خط الأنابيب الذي يبدأ بالبادئة sagemaker- ، متبوعًا باسم مشروعك.

بعد وقت قصير من الموافقة على النموذج الخاص بك ، يبدأ مسار النشر في العمل. انتظر حتى يصل خط الأنابيب إلى الحالة DeployStaging. يمكن أن تستغرق هذه المرحلة حوالي 10 دقائق حتى تكتمل. بعد نشر نقطة النهاية الأولى في حساب التدريج ، يتم اختبار خط الأنابيب ، ثم ينتقل إلى الخطوة التالية ، ApproveDeployment. في هذه الخطوة ، ينتظر الموافقة اليدوية.

  1. اختار التقيم.
  2. أدخل سبب الموافقة في مربع النص.
  3. اختار الموافقة على.

يتم الآن نشر النموذج في حساب الإنتاج.

يمكنك أيضًا مراقبة خط الأنابيب على وحدة تحكم AWS CloudFormation ، لمعرفة مجموعات المكدس والمكدس التي يتم إنشاؤها لتوزيع نقاط النهاية في الحسابات المستهدفة. لرؤية نقاط النهاية المنشورة لكل حساب ، قم بتسجيل الدخول إلى وحدة تحكم SageMaker إما كحساب مرحلي أو حساب إنتاج واختر النهاية في جزء التنقل.

تنظيف

لتنظيف جميع الموارد التي قدمتها في هذا المثال ، أكمل الخطوات التالية:

  1. قم بتسجيل الدخول إلى وحدة التحكم باستخدام حسابك الرئيسي.
  2. في وحدة تحكم AWS CloudFormation ، انقر فوق StackSets وحذفها العناصر التالية (نقاط النهاية):
    1. همز - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-prod
    2. التدريج - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-staging
  3. في الكمبيوتر المحمول أو محطة العمل الخاصة بك ، استخدم ملف واجهة سطر الأوامر AWS (AWS CLI) وأدخل الرمز التالي لحذف مشروعك:
    aws sagemaker delete-project --project-name iris-multi-01

تأكد من أنك تستخدم ملف أحدث إصدار من AWS CLI.

بناء وتخصيص قالب لمشروع SageMaker الخاص بك

مشاريع SageMaker و قوالب مشروع SageMaker MLOps هي ميزات قوية يمكنك استخدامها لإنشاء البنية التحتية بالكامل وتكوينها تلقائيًا لتدريب نماذج ML وتحسينها وتقييمها ونشرها. مشروع SageMaker عبارة عن منتج مقدم من AWS Service Catalog يمكّنك من إنشاء حل ML من البداية إلى النهاية بسهولة. لمزيد من المعلومات ، راجع دليل مسؤول كتالوج خدمة AWS.

المنتج عبارة عن قالب CloudFormation يديره AWS Service Catalog. لمزيد من المعلومات حول القوالب ومتطلباتها ، راجع تنسيقات قوالب AWS CloudFormation.

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

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

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

وصفنا هذه الخطوات بمزيد من التفصيل في الأقسام استيراد قالب مشروع SageMaker Studio المخصص و إنشاء مشروعك.

كمهندس ML ، يمكنك تصميم و إنشاء قالب CloudFormation جديد بالنسبة للمشروع ، قم بإعداد مجموعة كتالوج خدمات AWS ، وأضف منتجًا جديدًا إليها.

يمكن لعلماء البيانات ومهندسي ML استخدام SageMaker Studio لإنشاء مشروع جديد باستخدام القالب المخصص. يستدعي SageMaker كتالوج خدمات AWS ويبدأ في توفير البنية التحتية الموضحة في قالب CloudFormation.

بصفتك عالم بيانات ، يمكنك الآن بدء تدريب النموذج. بعد تسجيله في سجل النموذج ، يتم تشغيل خط أنابيب CI / CD تلقائيًا ونشر النموذج على الحسابات الهدف.

إذا نظرت إلى قالب CloudFormation من هذا المنشور في محرر نصي ، يمكنك أن ترى أنه يطبق البنية التي حددناها في هذا المنشور.

الكود التالي هو مقتطف من النموذج:

Description: Toolchain template which provides the resources needed to represent infrastructure as code. This template specifically creates a CI/CD pipeline to deploy a given inference image and pretrained Model to two stages in CD -- staging and production.
Parameters: SageMakerProjectName: Type: String SageMakerProjectId: Type: String
…
<<other parameters>>
…
Resources: MlOpsArtifactsBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: …
… ModelDeployCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: … RepositoryDescription: … Code: S3: Bucket: … Key: …
… ModelDeployBuildProject: Type: AWS::CodeBuild::Project
… ModelDeployPipeline: Type: AWS::CodePipeline::Pipeline
…

يحتوي النموذج على قسمين رئيسيين: Parameters (معلمات الإدخال للقالب) و Resources. تتطلب قوالب مشروع SageMaker أن تضيف معلمتين للإدخال إلى القالب الخاص بك: SageMakerProjectName و SageMakerProjectId. يتم استخدام هذه المعلمات داخليًا بواسطة SageMaker Studio. يمكنك إضافة معلمات أخرى إذا لزم الأمر.

في قسم الموارد في المقتطف ، يمكنك أن ترى أنه ينشئ ما يلي:

  • دلو S3 جديد يستخدمه خط أنابيب CI / CD لتخزين القطع الأثرية الوسيطة التي تمر من مرحلة إلى أخرى.
  • An كود AWS مستودع لتخزين القطع الأثرية المستخدمة أثناء مرحلتي النشر والاختبار.
  • An AWS كود البناء المشروع للحصول على القطع الأثرية ، والتحقق من صحتها وتهيئتها للمشروع. في نموذج الحسابات المتعددة ، يقوم هذا المشروع أيضًا بإنشاء نموذج تسجيل جديد ، يتم استخدامه بواسطة خط أنابيب CI / CD لنشر نماذج جديدة.
  • سير عمل CodePipeline الذي ينسق كل خطوات خطوط أنابيب CI / CD.

في كل مرة تقوم فيها بتسجيل نموذج جديد في سجل النموذج أو دفع قطعة أثرية جديدة إلى CodeCommit repo ، يبدأ سير عمل CodePipeline هذا. يتم التقاط هذه الأحداث بواسطة قاعدة EventBridge، يتم توفيره بواسطة نفس النموذج. يحتوي خط أنابيب CI / CD على المراحل التالية:

  • مصدر - يقرأ القطع الأثرية من مستودع CodeCommit ويشاركها مع الخطوات الأخرى.
  • البناء - يقوم بتشغيل مشروع CodeBuild للقيام بما يلي:
    • تحقق مما إذا كان قد تم إنشاء سجل نموذج بالفعل ، وقم بإنشاء واحد إذا لزم الأمر.
    • قم بإعداد قالب CloudFormation جديد يتم استخدامه بواسطة مرحلتي النشر التاليتين.
  • نشر التدريج - يحتوي على المكونات التالية:
    • DeployResourcesStaging - الحصول على قالب CloudFormation المُعد في ملف Build خطوة وتنشر مكدس جديد. ينشر هذا المكدس نقطة نهاية SageMaker جديدة في الحساب الهدف.
    • اختبار التدريج - يستدعي مشروع CodeBuild ثانيًا يقوم بتشغيل برنامج Python النصي المخصص الذي يختبر نقطة النهاية المنشورة.
    • الموافقة على النشر - خطوة موافقة يدوية. إذا تمت الموافقة عليه ، فإنه ينتقل إلى المرحلة التالية لنشر نقطة نهاية في الإنتاج ، أو ينهي سير العمل إذا لم تتم الموافقة عليه.
  • نشر - مشابه ل DeployStaging، فإنه يستخدم نفس قالب CloudFormation ولكن مع معلمات إدخال مختلفة. ينشر نقطة نهاية SageMaker جديدة في حساب الإنتاج. 

يمكنك بدء عملية تدريب جديدة وتسجيل النموذج الخاص بك في سجل النموذج المرتبط بمشروع SageMaker. استخدم دفتر Jupyter الموجود في هذا المنشور وقم بتخصيص دفتر ملاحظاتك الخاص خط أنابيب ML لإعداد مجموعة البيانات الخاصة بك وتدريب النماذج وتحسينها واختبارها قبل نشرها. لمزيد من المعلومات حول هذه الميزات ، راجع أتمتة MLOps مع مشاريع SageMaker. لمزيد من الأمثلة على خطوط الأنابيب ، راجع جيثب ريبو.

الاستنتاجات والخطوات التالية

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

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

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


عن المؤلف

سمير أروجو هو مهندس حلول AI / ML في AWS. يساعد العملاء على إنشاء حلول AI / ML لحل تحديات أعمالهم باستخدام منصة AWS. لقد كان يعمل على العديد من مشاريع الذكاء الاصطناعي / التعلم الآلي المتعلقة برؤية الكمبيوتر ومعالجة اللغة الطبيعية والتنبؤ والتعلم الآلي على الحافة والمزيد. إنه يحب اللعب بمشاريع الأجهزة والأتمتة في أوقات فراغه ، ولديه اهتمام خاص بالروبوتات.

المصدر: https://aws.amazon.com/blogs/machine-learning/multi-account-model-deployment-with-amazon-sagemaker-pipelines/

بقعة_صورة

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

بقعة_صورة