تخطي إلى المحتوى

دليل لنشر YOLO11 على نقاط نهاية Amazon SageMaker النهائية على Amazon SageMaker

يفتح نشر نماذج الرؤية الحاسوبية المتقدمة مثل Ultralytics' YOLO11 على نقاط نهاية Amazon SageMaker Endpoints مجموعة واسعة من الاحتمالات لتطبيقات التعلم الآلي المختلفة. ويكمن مفتاح استخدام هذه النماذج بفعالية في فهم عمليات إعدادها وتكوينها ونشرها. YOLO11 يصبح أكثر قوة عند دمجها بسلاسة مع Amazon SageMaker، وهي خدمة قوية وقابلة للتطوير لتعلم الآلة من AWS.

سيأخذك هذا الدليل خلال عملية نشر نماذج YOLO11 PyTorch النماذج على نقاط نهاية Amazon SageMaker Endpoints خطوة بخطوة. ستتعرف على أساسيات إعداد بيئة AWS الخاصة بك، وتهيئة النموذج بشكل مناسب، واستخدام أدوات مثل AWS CloudFormation و AWS Cloud Development Kit (CDK) للنشر.

أمازون سيج ميكر

نظرة عامة على أمازون سيج ميكر

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

نشر YOLO11 على نقاط نهاية أمازون سيج ميكر على موقع أمازون سيج ميكر

يتيح لك نشر YOLO11 على Amazon SageMaker استخدام بيئته المُدارة للاستدلال في الوقت الفعلي والاستفادة من ميزات مثل التوسيع التلقائي. ألق نظرة على بنية AWS أدناه.

بنية AWS

الخطوة 1: إعداد بيئة AWS الخاصة بك

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

  • حساب AWS: إذا لم يكن لديك حساب بالفعل، قم بالتسجيل للحصول على حساب AWS.

  • تكوين أدوار IAM: ستحتاج إلى دور IAM مع الأذونات اللازمة ل Amazon SageMaker و AWS CloudFormation و Amazon S3. يجب أن يكون لهذا الدور سياسات تسمح له بالوصول إلى هذه الخدمات.

  • AWS CLI: إذا لم يكن مثبتًا بالفعل، قم بتنزيل وتثبيت واجهة سطر أوامر AWS (CLI) وتهيئتها بتفاصيل حسابك. اتبع تعليمات AWS CLI للتثبيت.

  • AWS CDK: إذا لم يكن مثبتًا بالفعل، فقم بتثبيت AWS Cloud Development Kit (CDK)، والذي سيتم استخدامه لبرمجة النشر. اتبع تعليمات AWS CDK للتثبيت.

  • حصة خدمة كافية: تأكد من أن لديك حصصًا كافية لموردين منفصلين في Amazon SageMaker: واحد ل ml.m5.4xlarge لاستخدام نقطة النهاية وآخر ل ml.m5.4xlarge لاستخدام مثيل دفتر الملاحظات. يتطلب كل منها قيمة حصة واحدة كحد أدنى. إذا كانت حصصك الحالية أقل من هذا المتطلب، فمن المهم طلب زيادة لكل منها. يمكنك طلب زيادة الحصة باتباع الإرشادات المفصلة في وثائق حصص خدمات AWS.

الخطوة 2: استنساخ مستودع سيج ميكر YOLO11

الخطوة التالية هي استنساخ مستودع AWS المحدد الذي يحتوي على موارد النشر YOLO11 على SageMaker. يتضمن هذا المستودع، المستضاف على GitHub، البرامج النصية CDK وملفات التكوين اللازمة.

  • استنساخ مستودع GitHub: نفّذ الأمر التالي في جهازك الطرفي لاستنساخ مستودع نقطة نهاية المضيف-yolov8-على-ساجمايكر-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • انتقل إلى الدليل المستنسخ: قم بتغيير الدليل إلى المستودع المستنسخ:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

الخطوة 3: إعداد بيئة CDK

والآن بعد أن أصبح لديك الكود اللازم، قم بإعداد بيئتك للنشر باستخدام AWS CDK.

  • إنشاء بيئة افتراضية Python : يؤدي ذلك إلى عزل بيئة Python وتبعياتها. تشغيل:
python3 -m venv .venv
  • تنشيط البيئة الافتراضية:
source .venv/bin/activate
  • تثبيت التبعيات: قم بتثبيت التبعيات المطلوبة Python للمشروع:
pip3 install -r requirements.txt
  • ترقية مكتبة AWS CDK: تأكد من أن لديك أحدث إصدار من مكتبة AWS CDK:
pip install --upgrade aws-cdk-lib

الخطوة 4: إنشاء مكدس AWS CloudFormation Stack

  • توليف تطبيق CDK: أنشئ قالب AWS CloudFormation من كود CDK الخاص بك:
cdk synth
  • تمهيد تطبيق CDK: قم بإعداد بيئة AWS الخاصة بك لنشر CDK:
cdk bootstrap
  • نشر المكدس: سيؤدي ذلك إلى إنشاء موارد AWS اللازمة ونشر النموذج الخاص بك:
cdk deploy

الخطوة 5: نشر النموذج YOLO

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

بعد إنشاء AWS CloudFormation Stack، فإن الخطوة التالية هي النشر YOLO11.

  • افتح مثيل دفتر الملاحظات: انتقل إلى وحدة تحكم AWS وانتقل إلى خدمة Amazon SageMaker. حدد "مثيلات دفتر الملاحظات" من لوحة التحكم، ثم حدد موقع مثيل دفتر الملاحظات الذي تم إنشاؤه بواسطة البرنامج النصي لنشر CDK. افتح المثيل الدفتري للوصول إلى بيئة جوبيتر.

  • الوصول إلى inference.py وتعديلها: بعد فتح مثيل دفتر ملاحظات SageMaker في Jupyter، حدد موقع ملف inference.py. قم بتحرير الدالة output_fn في inference.py كما هو موضح أدناه واحفظ التغييرات التي أجريتها على البرنامج النصي، مع التأكد من عدم وجود أخطاء في بناء الجملة.

import json


def output_fn(prediction_output):
    """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints."""
    print("Executing output_fn from inference.py ...")
    infer = {}
    for result in prediction_output:
        if result.boxes is not None:
            infer["boxes"] = result.boxes.numpy().data.tolist()
        if result.masks is not None:
            infer["masks"] = result.masks.numpy().data.tolist()
        if result.keypoints is not None:
            infer["keypoints"] = result.keypoints.numpy().data.tolist()
        if result.obb is not None:
            infer["obb"] = result.obb.numpy().data.tolist()
        if result.probs is not None:
            infer["probs"] = result.probs.numpy().data.tolist()
    return json.dumps(infer)
  • انشر نقطة النهاية باستخدام 1_DeployEndpoint.ipynb: في بيئة Jupyter، افتح دفتر الملاحظات 1_DeployEndpoint.ipynb الموجود في دليل sm-notebook. اتبع الإرشادات الموجودة في دفتر الملاحظات وقم بتشغيل الخلايا لتنزيل النموذج YOLO11 ، وحزمه مع رمز الاستدلال المحدّث، وتحميله إلى دلو Amazon S3. سيرشدك دفتر الملاحظات خلال إنشاء ونشر نقطة نهاية SageMaker لنموذج YOLO11 .

الخطوة 6: اختبار النشر الخاص بك

والآن بعد أن تم نشر نموذج YOLO11 الخاص بك، من المهم اختبار أدائه ووظائفه.

  • افتح دفتر الاختبار: في نفس بيئة Jupyter، حدد موقع دفتر الملاحظات 2_TestEndpoint.ipynb وافتحه في دليل دفتر الملاحظات 2_TestEndpoint.ipynb، الموجود أيضًا في دليل sm-notebook.

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

نتائج الاختبار YOLO11

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

الخطوة 7: المراقبة والإدارة

بعد الاختبار، من الضروري المراقبة والإدارة المستمرة للنموذج الذي تم نشره.

  • راقب باستخدام Amazon CloudWatch: تحقق بانتظام من أداء وصحة نقطة نهاية SageMaker الخاصة بك باستخدام Amazon CloudWatch.

  • إدارة نقطة النهاية: استخدم وحدة تحكم SageMaker للإدارة المستمرة لنقطة النهاية. يتضمن ذلك توسيع نطاق النموذج أو تحديثه أو إعادة نشره حسب الحاجة.

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

الملخص

يأخذك هذا الدليل خطوة بخطوة خلال نشر YOLO11 على نقاط نهاية Amazon SageMaker Endpoints باستخدام AWS CloudFormation و AWS Cloud Development Kit (CDK). تتضمن العملية استنساخ مستودع GitHub الضروري، وإعداد بيئة CDK، ونشر النموذج باستخدام خدمات AWS، واختبار أدائه على SageMaker.

لمزيد من التفاصيل التقنية، راجع هذه المقالة على مدونة AWS Machine Learning Blog. يمكنك أيضًا الاطلاع على وثائق Amazon SageMaker الرسمية للحصول على مزيد من المعلومات حول الميزات والوظائف المختلفة.

هل أنت مهتم بمعرفة المزيد عن عمليات التكامل المختلفة YOLO11 ؟ تفضل بزيارة صفحة دليل عمليات التكاملUltralytics لاكتشاف أدوات وإمكانات إضافية يمكنها تحسين مشاريعك في مجال التعلم الآلي.

الأسئلة الشائعة

كيف يمكنني نشر النموذج Ultralytics YOLO11 على نقاط نهاية Amazon SageMaker Endpoints؟

لنشر الطراز Ultralytics YOLO11 على نموذج Amazon SageMaker Endpoints، اتبع الخطوات التالية:

  1. قم بإعداد بيئة AWS الخاصة بك: تأكد من أن لديك حساب AWS، وأدوار IAM مع الأذونات اللازمة، وتكوين AWS CLI . قم بتثبيت AWS CDK إذا لم يكن قد تم بالفعل (راجع تعليمات AWS CDK).
  2. استنساخ مستودع سيج ميكر YOLO11:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. إعداد بيئة CDK: إنشاء بيئة افتراضية Python وتفعيلها وتثبيت التبعيات وترقية مكتبة AWS CDK.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. النشر باستخدام AWS CDK: تجميع مكدس CloudFormation ونشره، وتهيئة البيئة.
    cdk synth
    cdk bootstrap
    cdk deploy
    

لمزيد من التفاصيل، راجع قسم التوثيق.

ما هي المتطلبات الأساسية لنشر YOLO11 على Amazon SageMaker؟

لنشر YOLO11 على Amazon SageMaker، تأكد من توفر المتطلبات الأساسية التالية:

  1. حساب AWS: حساب AWS نشط(قم بالتسجيل هنا).
  2. أدوار IAM: تكوين أدوار IAM مع أذونات لـ SageMaker و CloudFormation و Amazon S3.
  3. AWS CLI: تثبيت وتهيئة واجهة سطر أوامر AWS(دليل تثبيت AWS CLI ).
  4. AWS CDK: تثبيت AWS Cloud Development Kit(دليل إعداد CDK).
  5. حصص الخدمات: حصص كافية لـ ml.m5.4xlarge مثيلات لاستخدام كل من نقطة النهاية والدفتر (طلب زيادة الحصة).

للحصول على الإعداد التفصيلي، راجع هذا القسم.

لماذا يجب أن أستخدم Ultralytics YOLO11 على موقع Amazon SageMaker؟

يوفر استخدام Ultralytics YOLO11 على موقع أمازون سيج ميكر العديد من المزايا:

  1. قابلية التوسع والإدارة: يوفّر SageMaker بيئة مُدارة مع ميزات مثل التوسعة التلقائية، والتي تساعد في احتياجات الاستدلال في الوقت الحقيقي.
  2. التكامل مع خدمات AWS: التكامل بسلاسة مع خدمات AWS الأخرى، مثل S3 لتخزين البيانات، و CloudFormation للبنية التحتية كرمز، و CloudWatch للمراقبة.
  3. سهولة النشر: إعداد مبسط باستخدام البرامج النصية لـ AWS CDK وعمليات نشر مبسطة.
  4. الأداء: استفد من البنية التحتية عالية الأداء في Amazon SageMaker لتشغيل مهام الاستدلال على نطاق واسع بكفاءة.

اكتشف المزيد حول مزايا استخدام SageMaker في قسم المقدمة.

هل يمكنني تخصيص منطق الاستدلال YOLO11 على Amazon SageMaker؟

نعم، يمكنك تخصيص منطق الاستدلال YOLO11 على Amazon SageMaker:

  1. تعديل inference.py: تحديد موقع وتخصيص output_fn في الدالة inference.py ملف لتخصيص تنسيقات الإخراج.

    import json
    
    
    def output_fn(prediction_output):
        """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints."""
        infer = {}
        for result in prediction_output:
            if result.boxes is not None:
                infer["boxes"] = result.boxes.numpy().data.tolist()
            # Add more processing logic if necessary
        return json.dumps(infer)
    
  2. نشر النموذج المحدّث: تأكّد من إعادة نشر النموذج باستخدام دفاتر ملاحظات Jupyter المتوفرة (1_DeployEndpoint.ipynb) لتضمين هذه التغييرات.

راجع الخطوات التفصيلية لنشر النموذج المعدل.

كيف يمكنني اختبار نموذج YOLO11 المنشور على Amazon SageMaker؟

لاختبار نموذج YOLO11 المنشور على Amazon SageMaker:

  1. افتح دفتر الاختبار: حدد موقع 2_TestEndpoint.ipynb دفتر الملاحظات في بيئة SageMaker Jupyter.
  2. قم بتشغيل دفتر الملاحظات: اتبع تعليمات الدفتر لإرسال صورة إلى نقطة النهاية وإجراء الاستدلال وعرض النتائج.
  3. تصور النتائج: استخدم وظائف الرسم البياني المضمنة لتصور مقاييس الأداء، مثل المربعات المحدودة حول الكائنات المكتشفة.

للحصول على إرشادات شاملة للاختبار، تفضل بزيارة قسم الاختبار.

📅 تم الإنشاء منذ 11 شهرًا ✏️ تم التحديث منذ 2 أشهر

التعليقات