شعار زيفيرنت

خدمة نماذج PyTorch في الإنتاج مع تكامل TorchServe الأصلي من Amazon SageMaker

التاريخ:

في أبريل 2020 ، أعلنت AWS و Facebook عن إطلاق تورش سيرف للسماح لمطوري الأبحاث والتعلم الآلي (ML) من PyTorch المجتمع لجلب نماذجهم إلى الإنتاج بسرعة أكبر ودون الحاجة إلى كتابة رمز مخصص. TorchServe هو مشروع مفتوح المصدر يجيب على سؤال الصناعة حول كيفية الانتقال من جهاز كمبيوتر محمول إلى الإنتاج باستخدام PyTorch والعملاء في جميع أنحاء العالم ، مثل ماترويد، تجرب الفوائد بشكل مباشر. وبالمثل ، اعتمد أكثر من 10,000 عميل الأمازون SageMaker لبناء نماذج تعلم الآلة وتدريبها ونشرها بسرعة على نطاق واسع ، وقد جعلها العديد منها النظام الأساسي القياسي لتعلم الآلة. من منظور تقديم النموذج ، تستخلص Amazon SageMaker جميع عمليات الرفع الثقيلة التي تتمحور حول البنية التحتية وتتيح لك تقديم تنبؤات بزمن انتقال منخفض بشكل آمن وموثوق لملايين المستخدمين المتزامنين حول العالم.

تكامل TorchServe الأصلي مع Amazon SageMaker

يسر AWS أن تعلن أن TorchServe مدعوم الآن في Amazon SageMaker كخادم نموذج افتراضي لاستدلال PyTorch. في السابق ، كان بإمكانك استخدام TorchServe مع Amazon SageMaker عن طريق تثبيته على مثيل دفتر ملاحظات وبدء خادم لإجراء الاستدلال المحلي أو عن طريق إنشاء حاوية TorchServe والإشارة إلى صورتها لإنشاء نقطة نهاية مستضافة. ومع ذلك ، يمكن أن تكون عمليات التثبيت الكاملة للكمبيوتر الدفتري تستغرق وقتًا طويلاً وقد لا يفضل بعض علماء البيانات ومطوري ML إدارة جميع الخطوات و إدارة الهوية والوصول AWS (IAM) المرتبطة ببناء حاوية Docker وتخزين الصورة عليها سجل الأمازون المرنة للحاويات (Amazon ECR) قبل تحميل النموذج في النهاية إلى خدمة تخزين أمازون البسيطة (Amazon S3) ونشر نقطة نهاية النموذج. مع هذا الإصدار ، يمكنك استخدام Amazon SageMaker SDK الأصلي لخدمة نماذج PyTorch مع TorchServe.

لدعم TorchServe محليًا في Amazon SageMaker ، قدمت فرق هندسة AWS طلبات سحب إلى aws / sagemaker-pytorch-inference-toolkit و AWS / حاويات التعلم العميق مستودعات. بعد دمجها ، يمكننا استخدام TorchServe عبر واجهات برمجة تطبيقات Amazon SageMaker لاستدلال PyTorch. يقدم هذا التغيير تكاملاً أكثر إحكامًا مع مجتمع PyTorch. نظرًا لإصدار المزيد من الميزات المتعلقة بإطار عمل تقديم TorchServe في المستقبل ، يتم اختبارها ونقلها وإتاحتها باعتبارها صورة حاوية AWS Deep Learning. من المهم ملاحظة أن تنفيذنا يخفي ملف .لحر من المستخدم أثناء استخدام امتداد واجهة برمجة تطبيقات Amazon SageMaker PyTorch اعتاد الجميع على.

بنية TorchServe في Amazon SageMaker

يمكنك استخدام TorchServe محليًا مع Amazon SageMaker من خلال الخطوات التالية:

  1. قم بإنشاء نموذج في Amazon SageMaker. من خلال إنشاء نموذج ، فإنك تخبر Amazon SageMaker بمكان العثور على مكونات النموذج. يتضمن ذلك مسار Amazon S3 حيث يتم تخزين القطع الأثرية للنموذج ومسار تسجيل Docker لصورة Amazon SageMaker TorchServe. في خطوات النشر اللاحقة ، يمكنك تحديد الطراز بالاسم. لمزيد من المعلومات، راجع إنشاء نموذج.
  2. قم بإنشاء تكوين نقطة نهاية لنقطة نهاية HTTPS. تقوم بتحديد اسم نموذج واحد أو أكثر في متغيرات الإنتاج ومثيلات حساب ML التي تريد تشغيل Amazon SageMaker لاستضافة كل متغير إنتاج. عند استضافة نماذج في الإنتاج ، يمكنك تكوين نقطة النهاية لتوسيع نطاق مثيلات حساب ML المنتشرة بشكل مرن. لكل متغير إنتاج ، تحدد عدد مثيلات حساب ML التي تريد نشرها. عندما تحدد مثيلين أو أكثر ، يقوم Amazon SageMaker بتشغيلهما في مناطق توافر متعددة. هذا يوفر التوافر المستمر. يدير Amazon SageMaker نشر المثيلات. لمزيد من المعلومات، راجع إنشاء نقطة النهاية.
  3. أنشئ نقطة نهاية HTTPS. قم بتوفير تكوين نقطة النهاية لـ Amazon SageMaker. تبدأ الخدمة مثيلات حساب ML وتنشر النموذج أو النماذج كما هو محدد في التكوين. لمزيد من المعلومات، راجع إنشاء نقطة النهاية. للحصول على استنتاجات من النموذج ، ترسل تطبيقات العميل طلبات إلى نقطة نهاية Amazon SageMaker Runtime HTTPS. لمزيد من المعلومات حول API ، راجع استدعاء Endpoint.

يبسط Amazon SageMaker Python SDK هذه الخطوات كما سنوضح في مثال دفتر الملاحظات التالي.

استخدام محول HuggingFace مضبوط بدقة (RoBERTa)

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

نشر CloudFormation Stack والتحقق من إنشاء دفتر الملاحظات

ستقوم بنشر مثيل دفتر ملاحظات Amazon SageMaker من ml.m5.xlarge. لمزيد من المعلومات حول التسعير ، انظر الأمازون SageMaker التسعير.

  1. تسجيل الدخول إلى وحدة تحكم إدارة AWS.
  2. اختر من الجدول التالي لبدء تشغيل القالب الخاص بك.
إطلاق القالب بلد المنشأ
شمال فرجينيا (لنا-الشرق-1)
أيرلندا (الاتحاد الأوروبي-الغرب-1)
سنغافورة (ap-south-1)

يمكنك تشغيل هذا المكدس لأي منطقة عن طريق تحديث قيمة منطقة الارتباط التشعبي.

  1. في مجلة القدرات والتحولات ، حدد مربعات الإقرار الثلاثة.
  2. اختار إنشاء مكدس.

تستغرق حزمة CloudFormation حوالي 5 دقائق لإكمال إنشاء مثيل دفتر ملاحظات Amazon SageMaker ودور IAM الخاص به.

  1. عند اكتمال إنشاء المكدس ، تحقق من الإخراج على ملف الموارد علامة التبويب.
  2. على وحدة تحكم Amazon SageMaker ، ضمن دفتر، اختر مثيلات دفتر الملاحظات.
  3. حدد موقع دفتر الملاحظات الذي تم إنشاؤه حديثًا واختر فتح كوكب المشتري.

الدخول إلى المختبر

من داخل مثيل دفتر الملاحظات ، انتقل إلى ملف serving_natively_with_amazon_sagemaker الدليل وفتح deploy.ipynb.

يمكنك الآن تنفيذ الخطوات الموجودة في دفتر Jupyter:

  1. قم بإعداد بيئة الاستضافة الخاصة بك.
  2. قم بإنشاء نقطة النهاية الخاصة بك.
  3. قم بإجراء التنبؤات باستخدام نقطة نهاية Amazon SageMaker من TorchServe.

بعد إعداد بيئة الاستضافة الخاصة بك ، يكون إنشاء نقطة نهاية Amazon SageMaker باستخدام مُقدِّر TorchServe الأصلي سهلاً مثل:

model = PyTorchModel(model_data=model_artifact, name=name_from_base('roberta-model'), role=role, entry_point='torchserve-predictor.py', source_dir='source_dir', framework_version='1.6.0', predictor_cls=SentimentAnalysis) endpoint_name = name_from_base('roberta-model')
predictor = model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge', endpoint_name=endpoint_name)

تنظيف

عندما تنتهي من هذا الدرس ، من المفترض أن تكون نقطة نهاية Amazon SageMaker قد تم حذفها بالفعل. إذا لم يكن كذلك ، فأكمل الخطوات التالية لحذفه:

  1. على وحدة تحكم Amazon SageMaker ، ضمن الإستنباط، اختر النهاية.
  2. حدد نقطة النهاية (يجب أن تبدأ بـ roberta-model).
  3. XNUMX. من قائمة الإجراءات القائمة المنسدلة ، اختر حذف.

في وحدة تحكم AWS CloudFormation ، احذف بقية البيئة التي تختارها torchserve-on-aws كومة واختيار حذف.

يمكنك رؤية اثنين من أسماء المكدس الأخرى التي تم إنشاؤها بناءً على نموذج CloudFormation الأصلي. هذه مكدسات متداخلة ويتم حذفها تلقائيًا مع المكدس الرئيسي. تستغرق عملية التنظيف ما يزيد قليلاً عن 3 دقائق لتدوير بيئتك وستحذف مثيل دفتر الملاحظات ودور IAM المرتبط.

وفي الختام

مع استمرار TorchServe في التطور حول الاحتياجات المحددة جدًا لمجتمع PyTorch ، تركز AWS على ضمان أن يكون لديك طريقة مشتركة وفعالة لخدمة النماذج باستخدام PyTorch. سواء كنت تستخدم Amazon SageMaker ، سحابة Amazon Elastic Compute (Amazon EC2))، أو خدمة Amazon Elastic Kubernetes (Amazon EKS) ، يمكنك أن تتوقع أن تواصل AWS تحسين البنية التحتية للواجهة الخلفية لدعم مجتمعنا مفتوح المصدر. نحن نشجعكم جميعًا على إرسال طلبات السحب و / أو إنشاء مشكلات في مستودعاتنا (TorchServe ، وحاويات AWS Deep Learning ، ومجموعة أدوات الاستدلال PyTorch ، إلخ) حسب الحاجة.


عن المؤلف

كمهندس رئيسي للحلول ، يقضي تود وقته في العمل مع العملاء الاستراتيجيين والعالميين لتحديد متطلبات العمل ، وتقديم إرشادات معمارية حول حالات استخدام محددة ، وتصميم تطبيقات وخدمات قابلة للتطوير وموثوقة وذات أداء. لقد ساعد في إطلاق خدمة AWS DeepRacer المدعومة بالتعلم المعزز وتوسيع نطاقها ، وهو مضيف لسلسلة فيديو AWS "This is My Architecture" ، ويتحدث بانتظام في AWS re: Invent و AWS Summit ومؤتمرات التكنولوجيا حول العالم.

المصدر: https://aws.amazon.com/blogs/machine-learning/serving-pytorch-models-in-production-with-the-amazon-sagemaker-native-torchserve-integration/

بقعة_صورة

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

بقعة_صورة