حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker

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

أثناء قيامك بتقييم أهدافك فيما يتعلق باستدلال نموذج ML ، يمكن النظر في العديد من الخيارات ، ولكن القليل منها قادر ومثبت مثل الأمازون SageMaker مع خادم الاستدلال تريتون. كان SageMaker المزود بـ Triton Inference Server خيارًا شائعًا للعديد من العملاء لأنه مصمم خصيصًا لزيادة الإنتاجية واستخدام الأجهزة مع زمن انتقال منخفض للغاية (ملي ثانية من رقم واحد). لديها مجموعة واسعة من أطر عمل تعلم الآلة المدعومة (بما في ذلك TensorFlow و PyTorch و ONNX و XGBoost و NVIDIA TensorRT) وخلفيات البنية التحتية ، بما في ذلك NVIDIA GPUs و CPUs و استدلال AWS. بالإضافة إلى ذلك ، تم دمج Triton Inference Server مع SageMaker ، وهي خدمة ML شاملة مُدارة بالكامل ، توفر خيارات استدلال في الوقت الفعلي لاستضافة النموذج.

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

حل نظرة عامة

من الضروري لأي مشروع أن يكون لديه قائمة بالمتطلبات وتقدير للجهد لتقريب التكلفة الإجمالية للمشروع. من المهم تقدير عائد الاستثمار (ROI) الذي يدعم قرار المؤسسة. تتضمن بعض الاعتبارات التي يجب مراعاتها عند نقل عبء العمل إلى Triton ما يلي:

يعد تقدير الجهد أمرًا أساسيًا في تطوير البرامج ، وغالبًا ما يعتمد قياسه على مدخلات غير مكتملة وغير مؤكدة وصاخبة. لا تختلف أعباء العمل ML. ستؤثر عوامل متعددة على بنية استنتاج MLومنها ما يلي:

  • ميزانية وقت الاستجابة من جانب العميل - تحدد الحد الأقصى لوقت الانتظار المقبول من جانب العميل لردود الاستدلال ، والذي يتم التعبير عنه بشكل عام بالنسب المئوية. بالنسبة لأحمال العمل التي تتطلب ميزانية زمن انتقال تقترب من عشرات المللي ثانية ، قد تصبح عمليات نقل الشبكة باهظة الثمن ، لذا فإن استخدام النماذج على الحافة سيكون مناسبًا بشكل أفضل.
  • حجم توزيع حمولة البيانات - الحمولة ، وغالبًا ما يشار إليها باسم نص الرسالة، هي بيانات الطلب المنقولة من العميل إلى النموذج ، وكذلك بيانات الاستجابة المرسلة من النموذج إلى العميل. غالبًا ما يكون لحجم الحمولة تأثير كبير على زمن الوصول ويجب أخذه في الاعتبار.
  • تنسيق البيانات - يحدد هذا كيفية إرسال الحمولة إلى نموذج ML. يمكن أن يكون التنسيق قابلاً للقراءة البشرية ، مثل JSON و CSV ، ولكن هناك أيضًا تنسيقات ثنائية ، غالبًا ما تكون مضغوطة وأصغر حجمًا. هذا هو المفاضلة بين الضغط الزائد وحجم النقل ، مما يعني أن دورات وحدة المعالجة المركزية وزمن الانتقال يضافان للضغط أو فك الضغط ، من أجل حفظ البايت المنقولة عبر الشبكة. يوضح هذا المنشور كيفية استخدام كل من التنسيقين JSON والثنائي.
  • مكدس البرامج والمكونات المطلوبة - المكدس عبارة عن مجموعة من المكونات التي تعمل معًا لدعم تطبيق ML ، بما في ذلك نظام التشغيل وأوقات التشغيل وطبقات البرامج. يأتي Triton مع أطر ML الشائعة المضمنة ، والتي تسمى الخلفيات، مثل ONNX و TensorFlow و FIL و OpenVINO و Python الأصلية وغيرها. يمكنك أيضًا تأليف ملف خلفية مخصصة للمكونات المحلية الخاصة بك. يتطرق هذا المنشور إلى نموذج XGBoost والمعالجة المسبقة للبيانات ، والتي نرحلها إلى NVIDIA التي توفر FIL و Python Triton الخلفية ، على التوالي.

يجب أن تلعب كل هذه العوامل دورًا حيويًا في تقييم أداء أعباء العمل لديك ، ولكن في حالة الاستخدام هذه ، نركز على العمل المطلوب لنقل نماذج ML الخاصة بك ليتم استضافتها في SageMaker مع Triton Inference Server. على وجه التحديد ، نستخدم مثالًا لمجموعة اكتشاف الاحتيال المكونة من نموذج XGBoost مع منطق معالجة مسبقة مكتوب بلغة Python.

خادم الاستدلال NVIDIA Triton

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

يوضح الرسم البياني التالي مثالاً على خط أنابيب مجموعة NVIDIA Triton.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

يجب أن تأخذ أعباء العمل في الاعتبار القدرات التي يوفرها Triton جنبًا إلى جنب مع استضافة SageMaker لتعظيم الفوائد المقدمة. على سبيل المثال ، يدعم Triton HTTP بالإضافة إلى ملف API C، والتي تتيح المرونة بالإضافة إلى تحسين الحمولة عند الحاجة. كما ذكرنا سابقًا ، يدعم Triton العديد من الأطر الشائعة خارج الصندوق ، بما في ذلك TensorFlow و PyTorch و ONNX و XGBoost و NVIDIA TensorRT. يتم دعم هذه الأطر من خلال خلفيات Triton ، وفي الحالات النادرة التي لا تدعم فيها الواجهة الخلفية حالة الاستخدام الخاصة بك ، يسمح لك Triton بتنفيذ ما يخصك ودمجه بسهولة.

يوضح الرسم البياني التالي مثالاً على بنية NVIDIA Triton.

NVIDIA Triton على SageMaker

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

تحت مظلة استضافة SageMaker ، توجد أيضًا مجموعة من حاويات التعلم العميق (DLC) من SageMaker ، والتي تأتي مُعبأة مسبقًا مع برنامج الخادم النموذجي المناسب لإطار عمل ML المدعوم المقابل. يمكّنك هذا من تحقيق أداء استدلال عالي بدون إعداد خادم نموذج ، والذي غالبًا ما يكون الجانب التقني الأكثر تعقيدًا لنشر النموذج وبشكل عام ليس جزءًا من مجموعة مهارات عالم البيانات. خادم الاستدلال Triton هو الآن متاح على SageMaker DLCs.

إن اتساع الخيارات والنمطية وسهولة استخدام أطر عمل مختلفة تجعل SageMaker و Triton تطابقًا قويًا.

دعم NVIDIA FIL للواجهة الخلفية

مع إصدار 22.05 من Triton، تدعم NVIDIA الآن نماذج الغابات المدربة بواسطة العديد من أطر ML الشائعة ، بما في ذلك XGBoost و LightGBM و Scikit-Learn و cuML. عند استخدام الواجهة الخلفية FIL لـ Triton ، يجب أن تتأكد من أن عناصر النموذج التي تقدمها مدعومة. على سبيل المثال ، يدعم FIL model_type xgboost, xgboost_json, lightgbmالطرق أو treelite_checkpoint، للإشارة إلى ما إذا كان النموذج المقدم بتنسيق XGBoost ثنائي ، أو تنسيق XGBoost JSON ، أو تنسيق نص LightGBM ، أو تنسيق Treelite الثنائي ، على التوالي.

يعد دعم الواجهة الخلفية هذا ضروريًا لاستخدامه في مثالنا لأن FIL يدعم نماذج XGBoost. الاعتبار الوحيد الذي يجب التحقق منه هو التأكد من أن النموذج الذي ننشره يدعم تنسيقات ثنائية أو JSON.

بالإضافة إلى التأكد من أن لديك تنسيق النموذج المناسب ، يجب أخذ اعتبارات أخرى. توفر الواجهة الخلفية لـ FIL لـ Triton خيارات قابلة للتكوين للمطورين لضبط أحمال عملهم وتحسين أداء تشغيل النموذج. التكوين dynamic_batching يسمح لـ Triton بالاحتفاظ بالطلبات من جانب العميل وتجميعها على جانب الخادم ، من أجل استخدام حساب FIL المتوازي بكفاءة لاستدلال المجموعة بأكملها معًا. الخيار max_queue_delay_microseconds يوفر تحكمًا آمنًا من الفشل في المدة التي ينتظرها Triton لتشكيل دفعة. يأتي FIL مع شرح Shapley ، والذي يمكن تنشيطه بواسطة التكوين treeshap_output؛ ومع ذلك ، يجب أن تضع في اعتبارك أن مخرجات Shapley تضر بالأداء نظرًا لحجمها الناتج. جانب آخر مهم هو storage_type من أجل المفاضلة بين بصمة الذاكرة ووقت التشغيل. على سبيل المثال ، يمكن أن يؤدي استخدام التخزين كـ SPARSE إلى تقليل استهلاك الذاكرة ، بينما يمكن أن يقلل DENSE من أداء تشغيل النموذج الخاص بك على حساب استخدام أعلى للذاكرة. يعتمد تحديد الخيار الأفضل لكل من هذه على عبء العمل لديك وميزانية وقت الاستجابة ، لذلك نوصي بإلقاء نظرة أعمق على جميع الخيارات في الأسئلة الشائعة حول الواجهة الخلفية لـ FIL و قائمة التكوينات المتاحة في FIL.

خطوات استضافة نموذج على triton

لنلقِ نظرة على حالة استخدام الكشف عن الاحتيال كمثال لما يجب مراعاته عند نقل عبء العمل إلى Triton.

تحديد عبء العمل الخاص بك

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

حدد مقاييس الأداء الحالية والمستهدفة والأهداف الأخرى التي قد تنطبق

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

اعمل للخلف لتحديد ما إذا كان Triton يمكنه استضافة عبء العمل بناءً على متطلباتك

لتحديد ما إذا كان Triton يمكنه تلبية متطلباتك ، فأنت تريد الانتباه إلى مجالين رئيسيين للقلق. الأول هو التأكد من أن Triton يمكنه العمل بخيار واجهة أمامية مقبول مثل HTTP أو C API.

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

لحالة الاستخدام هذه ، نحدد الخلفية FIL يمكن أن تدعم نموذج XGBoost دون الحاجة إلى تغييرات ويمكننا استخدام الخلفية بايثون للمعالجة المسبقة. باستخدام ميزة المجموعة الخاصة بـ Triton ، يمكنك تحسين عبء العمل لديك عن طريق تجنب مكالمات الشبكة المكلفة بين حالات الاستضافة.

قم بإنشاء خطة وقم بتقدير الجهد المطلوب لاستخدام Triton للاستضافة

لنتحدث عن خطة نقل عارضاتك إلى Triton. تتطلب كل عملية نشر لـ Triton ما يلي:

  • المصنوعات النموذجية المطلوبة من قبل خلفيات Triton
  • ملفات تكوين Triton
  • مجلد مستودع نموذج بهيكل مناسب

نعرض مثالاً على كيفية إنشاء تبعيات النشر هذه لاحقًا في هذا المنشور.

قم بتشغيل الخطة والتحقق من صحة النتائج

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

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

تطبيق

الآن دعونا نلقي نظرة على تفاصيل التنفيذ. لهذا قمنا بإعداد دفتريْن يقدمان مثالاً لما يمكن توقعه. ال أول دفتر يوضح تدريب نموذج XGBoost المحدد بالإضافة إلى منطق المعالجة المسبقة المستخدم لكل من وقت التدريب والاستنتاج. ال دفتر الملاحظات الثاني يوضح كيف نقوم بإعداد القطع الأثرية اللازمة للنشر على Triton.

يعرض دفتر الملاحظات الأول دفتر ملاحظات موجودًا لدى مؤسستك يستخدم ملف رابيدز مجموعة المكتبات ونواة RAPIDS Conda. يتم تشغيل هذا المثيل على نوع مثيل G4DN المقدم من AWS ، والذي يتم تسريعه بواسطة GPU باستخدام معالجات NVIDIA T4.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

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

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

يختتم الكمبيوتر الدفتري الأول بتدريب نموذج XGBoost الخاص بنا وحفظ القطع الأثرية وفقًا لذلك.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

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

دعنا الآن ننتقل إلى دفتر الملاحظات الثاني ونتذكر ما نحتاجه لنشر Triton بنجاح.

أولاً ، نحتاج إلى القطع الأثرية النموذجية التي تتطلبها الخلفيات. تتضمن الملفات التي نحتاج إلى إنشائها لهذه المجموعة ما يلي:

  • القطع الأثرية المعالجة المسبقة (model.py, label_encoders.pkl)
  • تحف نموذج XGBoost (xgboost.json)

تتطلب واجهة Python الخلفية في Triton أن نستخدم بيئة Conda كعنصر تبعية. في هذه الحالة ، نستخدم الواجهة الخلفية لـ Python لمعالجة البيانات الأولية قبل إدخالها في نموذج XGBoost الذي يتم تشغيله في الواجهة الخلفية FIL. على الرغم من أننا استخدمنا في الأصل مكتبات RAPIDS cuDF و cuML للقيام بالمعالجة المسبقة للبيانات (كما هو مشار إليه سابقًا باستخدام GPU الخاص بنا) ، فإننا هنا نستخدم Pandas و Scikit-Learn كاعتمادات معالجة مسبقة لوقت الاستدلال (باستخدام وحدة المعالجة المركزية الخاصة بنا). نقوم بذلك لثلاثة أسباب:

  • لإظهار كيفية إنشاء بيئة Conda للاعتماديات الخاصة بك وكيفية حزمها بتنسيق الشكل المتوقع بواسطة خلفية بايثون لتريتون.
  • من خلال إظهار نموذج المعالجة المسبقة الذي يعمل في Python الخلفية على وحدة المعالجة المركزية بينما يعمل نموذج XGBoost على وحدة معالجة الرسومات في الواجهة الخلفية FIL ، نوضح كيف يمكن تشغيل كل نموذج في خط أنابيب مجموعة Triton على خلفية إطار عمل مختلفة ، وتشغيله على أجهزة مختلفة مع مختلف التكوينات.
  • يسلط الضوء على كيفية توافق مكتبات RAPIDS (cuDF و cuML) مع نظيراتها في وحدة المعالجة المركزية (Pandas و Scikit-Learn). بهذه الطريقة ، يمكننا أن نبين كيف LabelEncoders تم إنشاؤها في cuML يمكن استخدامها في Scikit-Learn والعكس صحيح. لاحظ أنه إذا كنت تتوقع معالجة كميات كبيرة من البيانات المجدولة مسبقًا أثناء وقت الاستدلال ، فلا يزال بإمكانك استخدام RAPIDS لتسريع وحدة معالجة الرسومات (GPU).

أذكر أننا أنشأنا ملف label_encoders.pkl ملف في دفتر الملاحظات الأول. لا يوجد شيء آخر يجب القيام به لتشفير الفئات بخلاف تضمينه في model.py ملف للمعالجة المسبقة.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

لإنشاء ملف model.py المطلوب بواسطة الواجهة الخلفية لـ Triton Python ، فإننا نلتزم بامتداد التنسيق المطلوب بواسطة الواجهة الخلفية وتضمين منطق Python الخاص بنا لمعالجة الموتر الوارد واستخدام أداة تشفير التسمية المشار إليها سابقًا. يمكنك مراجعة ملف ملف تستخدم للمعالجة المسبقة.

بالنسبة لطراز XGBoost ، لا يلزم فعل المزيد. لقد قمنا بتدريب النموذج في أول كمبيوتر دفتري ولا تتطلب الواجهة الخلفية FIL من Triton أي جهد إضافي لطرازات XGBoost.

بعد ذلك ، نحتاج إلى ملفات تكوين Triton. يتطلب كل نموذج في مجموعة Triton أ config.pbtxt ملف. بالإضافة إلى ذلك ، نقوم أيضًا بإنشاء ملف config.pbtxt ملف للمجموعة ككل. تسمح هذه الملفات لـ Triton بمعرفة البيانات الوصفية حول المجموعة بمعلومات مثل المدخلات والمخرجات التي نتوقعها بالإضافة إلى المساعدة في تحديد DAG المرتبط بالمجموعة.

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

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

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

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

يمكننا الآن إنشاء نموذج SageMaker من مستودع النماذج الذي قمنا بتحميله إلى Amazon S3 في الخطوة السابقة.

في هذه الخطوة ، نقدم أيضًا متغير البيئة الإضافي SAGEMAKER_TRITON_DEFAULT_MODEL_NAME، والذي يحدد اسم النموذج الذي سيتم تحميله بواسطة Triton. يجب أن تتطابق قيمة هذا المفتاح مع اسم المجلد في حزمة النموذج التي تم تحميلها إلى Amazon S3. هذا المتغير اختياري في حالة نموذج واحد. في حالة نماذج المجموعات ، يجب تحديد هذا المفتاح لكي يبدأ Triton في SageMaker.

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

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

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

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

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

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

هذا هو! أصبحت نقطة النهاية جاهزة الآن للاختبار والتحقق من الصحة. في هذه المرحلة ، قد ترغب في استخدام أدوات متنوعة للمساعدة في تحسين أنواع المثيلات وتكوينها للحصول على أفضل أداء ممكن. يقدم الشكل التالي مثالاً على المكاسب التي يمكن تحقيقها باستخدام الواجهة الخلفية FIL لنموذج XGBoost على Triton.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

نبذة عامة

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

يوفر SageMaker الأدوات اللازمة لإزالة الرفع الثقيل غير المتمايز من كل مرحلة من دورة حياة ML ، وبالتالي تسهيل التجريب السريع والاستكشاف اللازمين لتحسين عمليات نشر النموذج بشكل كامل. يتيح دعم استضافة SageMaker لخادم Triton Inference Server زمن انتقال منخفض ومعاملات عالية في الثانية (TPS).

يمكنك العثور على دفاتر الملاحظات المستخدمة في هذا المثال على GitHub جيثب:.


عن المؤلف

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.جيمس بارك مهندس حلول في Amazon Web Services. يعمل مع Amazon.com لتصميم وبناء ونشر الحلول التقنية على AWS ، ولديه اهتمام خاص بالذكاء الاصطناعي والتعلم الآلي. يستمتع في أوقات فراغه بالبحث عن ثقافات جديدة وخبرات جديدة ومواكبة أحدث اتجاهات التكنولوجيا.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي. جياهونغ ليو هو مهندس حلول في فريق مزود الخدمة السحابية في NVIDIA. يساعد العملاء في تبني حلول التعلم الآلي والذكاء الاصطناعي التي تستفيد من حوسبة NVIDIA المتسارعة لمواجهة تحديات التدريب والاستدلال. في أوقات فراغه ، يستمتع بالأوريغامي ومشاريع DIY ولعب كرة السلة.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.كشيتيز جوبتا مهندس حلول في NVIDIA. إنه يستمتع بتثقيف عملاء السحابة حول تقنيات GPU AI التي يجب أن تقدمها NVIDIA ومساعدتهم في تسريع التعلم الآلي وتطبيقات التعلم العميق. خارج العمل ، يستمتع بالركض والمشي لمسافات طويلة ومشاهدة الحياة البرية.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.برونو أغيار دي ميلو هو مهندس تطوير برمجيات في Amazon.com ، حيث يساعد فرق العلوم في بناء ونشر وإصدار أعباء عمل ML. إنه مهتم بالأجهزة والجوانب التي يمكن التحكم فيها في مرحلة تصميم / نمذجة ML التي يجب أخذها في الاعتبار وقياسها من خلال رؤية أن أداء تنفيذ النموذج لا يقل أهمية عن أداء جودة النموذج ، لا سيما في حالات الاستخدام المقيدة بزمن الانتقال. في أوقات فراغه ، يستمتع بالنبيذ وألعاب الطاولة والطهي.

حقق استضافة بزمن انتقال منخفض لنماذج ML المستندة إلى شجرة القرار على NVIDIA Triton Inference Server على Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. عاي.إليوث تريانا هو مدير علاقات المطورين في NVIDIA. يربط بين رواد منتجات Amazon و AWS والمطورين والعلماء مع تقنيي NVIDIA ورواد المنتجات لتسريع أعباء عمل Amazon ML / DL ومنتجات EC2 وخدمات AWS AI. بالإضافة إلى ذلك ، Eliuth هو راكب الدراجة النارية الجبلي والمتزلج ولاعب البوكر.

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

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