انشر حل MLOps الذي يستضيف نقاط النهاية النموذجية الخاصة بك في AWS Lambda PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

انشر حل MLOps الذي يستضيف نقاط نهاية النموذج في AWS Lambda

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

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

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

في هذا المنشور ، نتعامل مع هذه التحديات من خلال توفير نموذج عمليات التعلم الآلي (MLOps) الذي يستضيف حلاً لإدارة الطاقة المستدامة. الحل غير محدد لاستخدام الحالات ، مما يعني أنه يمكنك تكييفها مع حالات الاستخدام الخاصة بك عن طريق تغيير النموذج والبيانات. نوضح لك كيفية دمج النماذج في خطوط أنابيب Amazon SageMaker، أداة تنسيق سير العمل الأصلية لبناء خطوط أنابيب ML ، والتي تدير وظيفة تدريبية واختيارياً وظيفة معالجة باستخدام محاكاة مونت كارلو. يتم تتبع التجارب تجارب Amazon SageMaker. يتم تعقب النماذج وتسجيلها في سجل نموذج Amazon SageMaker. أخيرًا ، نقدم رمزًا لنشر النموذج النهائي الخاص بك في ملف AWS لامدا وظيفة.

Lambda هي خدمة حوسبة تتيح لك تشغيل التعليمات البرمجية دون إدارة الخوادم أو توفيرها. إن توسيع Lambda التلقائي ، وفوترة الدفع لكل طلب ، وسهولة الاستخدام يجعلها خيارًا شائعًا للنشر لفرق علوم البيانات. من خلال هذا المنشور ، يمكن لعلماء البيانات تحويل نموذجهم إلى وظيفة Lambda فعالة من حيث التكلفة وقابلة للتطوير. علاوة على ذلك ، تسمح Lambda بالتكامل مع AWS تقنيات عمليات Greengrass، مما يساعدك على إنشاء برنامج يمكّن أجهزتك من التصرف على حافة البيانات التي تنتجها ، كما هو الحال بالنسبة لحل إدارة الطاقة المستدامة.

حل نظرة عامة

البنية التي ننشرها (انظر الشكل التالي) هي نهج قائم على CI / CD للتعلم الآلي. يتم فصل العناصر لتجنب وجود محلول واحد متجانسة.

لنبدأ بأعلى يسار الرسم التخطيطي. ال المعالجة - بناء الصورة المكون هو CI / يحركها القرص المضغوط كود AWS المستودع الذي يساعد في بناء ودفع ملف عامل في حوض السفن حاوية ل سجل الأمازون المرنة للحاويات (أمازون ECR). تُعد حاوية المعالجة هذه الخطوة الأولى في خط أنابيب ML الخاص بنا ، ولكن يُعاد استخدامها أيضًا لخطوات المعالجة اللاحقة. في حالتنا ، نطبق محاكاة مونت كارلو كعملية معالجة لاحقة. ال التدريب - بناء الصورة المستودع المبين في الجزء السفلي الأيسر له نفس آلية ملف اﻟﻤﻌﺎﻟﺠﺔ كتلة فوقه. الفرق الرئيسي هو أنه يبني الحاوية لتدريب النموذج.

خط الأنابيب الرئيسي ، بناء نموذجي (خط أنابيب)، هو مستودع CodeCommit آخر يعمل تلقائيًا على تشغيل خطوط أنابيب SageMaker. يعمل خط الأنابيب هذا على أتمتة وربط المعالجة المسبقة للبيانات ، وتدريب النموذج ، وتتبع مقاييس النموذج في تجارب SageMaker ، والمعالجة اللاحقة للبيانات ، وفهرسة النماذج في سجل نموذج SageMaker.

المكون الأخير في أسفل اليمين: نشر النموذج. إذا اتبعت الأمثلة في مشاريع Amazon SageMaker، تحصل على قالب يستضيف نموذجك باستخدام نقطة نهاية SageMaker. بدلاً من ذلك ، يستضيف مستودع النشر الخاص بنا النموذج في دالة Lambda. نعرض طريقة لنشر وظيفة Lambda يمكنها تشغيل تنبؤات في الوقت الفعلي.

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

لنشر حلنا بنجاح ، تحتاج إلى ما يلي:

قم بتنزيل مستودع GitHub

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

  • نشر - يحتوي على تعليمات برمجية ذات صلة بالنشر
  • مليب - يحتوي على كود ML للمعالجة المسبقة والتدريب والخدمة والمحاكاة
  • اختبارات - يحتوي على اختبارات الوحدة والتكامل

الملف الرئيسي للنشر هو البرنامج النصي shell deployment/deploy.sh. يمكنك استخدام هذا الملف لنشر الموارد في حسابك. قبل أن نتمكن من تشغيل البرنامج النصي shell ، أكمل الخطوات التالية:

  1. فتح deployment/app.py وتغيير bucket_name تحته SageMakerPipelineSourceCodeStack. bucket_name يجب أن يكون فريدًا عالميًا (على سبيل المثال ، أضف اسمك الكامل).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py، غير ال default_bucket مع get_pipeline بنفس الاسم كما هو محدد في الخطوة 1.

انشر الحل باستخدام AWS CDK

أولا، تكوين AWS CLI الخاص بك مع الحساب والمنطقة التي تريد النشر فيها. ثم قم بتشغيل الأوامر التالية للتغيير إلى دليل النشر ، وإنشاء بيئة افتراضية ، وتنشيطها ، وتثبيت حزم النقطة المطلوبة المحددة في setup.py، وقم بتشغيل deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh يقوم بالإجراءات التالية:

  1. ينشئ بيئة افتراضية في بايثون.
  2. مصادر البرنامج النصي لتنشيط البيئة الافتراضية.
  3. قم بتثبيت AWS CDK والمتطلبات الموضحة في setup.py.
  4. بوتسترابس البيئة.
  5. Zips ونسخ الملفات الضرورية التي قمت بتطويرها ، مثل ملف mllib الملفات ، في المجلدات المقابلة حيث تكون هناك حاجة إلى هذه الأصول.
  6. أشواط cdk deploy —require-approval never.
  7. يخلق تكوين سحابة AWS تكديس من خلال AWS CDK.

يجب أن تستغرق المرحلة الأولية من النشر أقل من 5 دقائق. يجب أن يكون لديك الآن أربعة مستودعات في CodeCommit في المنطقة التي حددتها من خلال AWS CLI ، كما هو موضح في الرسم التخطيطي للهندسة المعمارية. ال خط أنابيب AWS يتم تشغيل خطوط الأنابيب في وقت واحد. ال modelbuild و modeldeploy تعتمد خطوط الأنابيب على التشغيل الناجح لبناء صورة المعالجة والتدريب. ال modeldeploy يعتمد خط الأنابيب على بناء نموذج ناجح. يجب أن يكتمل نشر النموذج في أقل من 1.5 ساعة.

استنساخ مستودعات النموذج في الاستوديو

لتخصيص خطوط أنابيب SageMaker التي تم إنشاؤها من خلال نشر AWS CDK في Studio UI ، تحتاج أولاً إلى استنساخ المستودعات في Studio. قم بتشغيل محطة النظام في Studio وقم بتشغيل الأوامر التالية بعد توفير اسم المشروع ومعرفه:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

بعد استنساخ المستودعات ، يمكنك دفع الالتزام إلى المستودعات. تؤدي هذه الالتزامات إلى تشغيل CodePipeline لخطوط الأنابيب ذات الصلة.

يمكنك أيضًا تكييف الحل على جهازك المحلي والعمل على IDE المفضل لديك.

انتقل إلى خطوط أنابيب SageMaker وواجهة مستخدم تجارب SageMaker

خط أنابيب SageMaker عبارة عن سلسلة من الخطوات المترابطة التي تم تحديدها باستخدام الأمازون SageMaker Python SDK. يشفر تعريف خط الأنابيب هذا خط أنابيب باستخدام الرسم البياني المباشر الموجه (DAG) الذي يمكن تصديره كتعريف JSON. لمعرفة المزيد حول هيكل هذه الأنابيب ، يرجى الرجوع إلى نظرة عامة على خطوط أنابيب SageMaker.

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

خط أنابيب Amazon SageMaker

تم تشغيل التشغيل تلقائيًا بعد نشر مكدس AWS CDK. يمكنك استدعاء تشغيل يدويًا عن طريق الاختيار إنشاء إعدام. من هناك يمكنك اختيار معلمات خط الأنابيب الخاصة بك مثل نوع المثيل وعدد المثيلات لخطوات المعالجة والتدريب. علاوة على ذلك ، يمكنك إعطاء اسم ووصف للجري. يكون خط الأنابيب قابلاً للتكوين بشكل كبير من خلال معلمات خط الأنابيب التي يمكنك الرجوع إليها وتعريفها من خلال تعريف خط الأنابيب الخاص بك.

لا تتردد في بدء تشغيل خط أنابيب آخر باستخدام المعلمات الخاصة بك حسب الرغبة. بعد ذلك ، انتقل إلى موارد SageMaker جزء مرة أخرى واختر التجارب والمحاكمات. هناك سترى مرة أخرى سطرًا يحمل اسمًا مثل PROJECT_NAME-PROJECT_ID. انتقل إلى التجربة واختر التشغيل الوحيد بمعرف عشوائي. من هناك ، اختر وظيفة تدريب SageMaker لاستكشاف المقاييس المتعلقة بوظيفة التدريب.

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

الموافقة على نشر Lambda في سجل النموذج

كخطوة تالية ، انتقل إلى نموذج التسجيل ضمن موارد SageMaker. هنا يمكنك أن تجد مرة أخرى سطرًا يحمل اسمًا مثل PROJECT_NAME-PROJECT_ID. انتقل إلى النموذج الوحيد الموجود وقم بالموافقة عليه. يؤدي هذا تلقائيًا إلى نشر الأداة النموذجية في حاوية في Lambda.

بعد الموافقة على النموذج الخاص بك في سجل النموذج ، يتم إنشاء ملف أمازون إيفينت بريدج تم تشغيل قاعدة الحدث. تعمل هذه القاعدة على تشغيل خط أنابيب CodePipeline مع النهاية *-modeldeploy. في هذا القسم ، نناقش كيف يستخدم هذا الحل النموذج المعتمد ويستضيفه في دالة Lambda. تأخذ CodePipeline مستودع CodeCommit الحالي الذي ينتهي أيضًا بـ *-modeldeploy ويستخدم هذا الرمز للتشغيل في CodeBuild. الإدخال الرئيسي لـ CodeBuild هو ملف buildspec.yml ملف. لنلقِ نظرة على هذا أولاً:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

أثناء مرحلة التثبيت ، نتأكد من تحديث مكتبات Python ، وإنشاء بيئة افتراضية ، وتثبيت AWS CDK v2.26.0 ، وتثبيت aws-cdk مكتبة Python مع الآخرين باستخدام ملف المتطلبات. نحن أيضا تمهيد حساب AWS. في مرحلة البناء ، نجري build.py، والتي نناقشها بعد ذلك. يقوم هذا الملف بتنزيل أحدث قطعة أثرية معتمدة من SageMaker من خدمة تخزين أمازون البسيطة (Amazon S3) إلى مثيل CodeBuild المحلي. هذه .tar.gz يتم فك ضغط الملف ونسخ محتوياته في المجلد الذي يحتوي أيضًا على رمز Lambda الرئيسي الخاص بنا. يتم نشر وظيفة Lambda باستخدام AWS CDK ، وينفد الرمز من حاوية Docker من Amazon ECR. يتم ذلك تلقائيًا بواسطة AWS CDK.

build.py file هو ملف Python يستخدم في الغالب امتداد الملف AWS SDK لـ Python (Boto3) لسرد حزم الطراز المتاحة.

وظيفة get_approved_package يعرض عنوان Amazon S3 URI للعنصر الذي تم تنزيله بعد ذلك ، كما هو موضح سابقًا.

بعد نشر النموذج الخاص بك بنجاح ، يمكنك ذلك تجربه بالعربي مباشرة على وحدة تحكم Lambda في المنطقة التي اخترتها للنشر فيها. يجب أن يحتوي اسم الوظيفة DigitalTwinStack-DigitalTwin*. افتح الوظيفة وانتقل إلى ملف اختبار التبويب. يمكنك استخدام الحدث التالي لإجراء مكالمة اختبار:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

بعد تشغيل حدث الاختبار ، تحصل على استجابة مماثلة لتلك الموضحة في لقطة الشاشة التالية.

اختبر وظيفة AWS Lambda

إذا كنت ترغب في إجراء المزيد من عمليات المحاكاة أو التجارب ، يمكنك زيادة حد مهلة Lambda وتجربة الكود! أو قد ترغب في التقاط البيانات التي تم إنشاؤها وتصور نفس الشيء في أمازون QuickSight. يوجد أدناه مثال. حان دورك الآن!

أمازون QuickSight

تنظيف

لتجنب المزيد من الرسوم ، أكمل الخطوات التالية:

  • في وحدة تحكم AWS CloudFormation ، احذف ملف EnergyOptimization كومة.
    هذا يحذف الحل بأكمله.
  • احذف المكدس DigitalTwinStack، والتي نشرت وظيفة Lambda الخاصة بك.

وفي الختام

في هذا المنشور ، أظهرنا لك خط أنابيب MLOps يحركه CI / CD لحل إدارة الطاقة حيث نبقي كل خطوة منفصلة. يمكنك تتبع مسارات ML والتجارب في Studio UI. أظهرنا أيضًا نهجًا مختلفًا للنشر: عند الموافقة على نموذج في سجل النموذج ، يتم إنشاء وظيفة Lambda التي تستضيف النموذج المعتمد تلقائيًا من خلال CodePipeline.

إذا كنت مهتمًا باستكشاف إما خط أنابيب MLOps على AWS أو حل إدارة الطاقة المستدامة ، فراجع مستودع جيثب ونشر المكدس في بيئة AWS الخاصة بك!


حول المؤلف

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

انشر حل MLOps الذي يستضيف نقاط النهاية النموذجية الخاصة بك في AWS Lambda PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.كانغكانغ وانغ هو مستشار AI / ML مع AWS Professional Services. لديها خبرة واسعة في نشر حلول الذكاء الاصطناعي / التعلم الآلي في مجال الرعاية الصحية وعلوم الحياة. كما أنها تستمتع بمساعدة عملاء المؤسسات على بناء منصات AI / ML قابلة للتطوير لتسريع رحلة السحابة لعلماء البيانات لديهم.

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

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

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

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