يعد XGBoost أحد أشهر الموديلات المتوفرة اليوم. مع القدرة على حل المشكلات المختلفة مثل التصنيف والانحدار ، أصبح XGBoost خيارًا شائعًا يقع أيضًا في فئة النماذج المستندة إلى الأشجار. في هذا المنشور ، نتعمق لنرى كيف الأمازون SageMaker يمكن أن تخدم هذه النماذج باستخدام خادم الاستدلال NVIDIA Triton. يمكن أن يكون لأحمال عمل الاستدلال في الوقت الفعلي مستويات مختلفة من المتطلبات واتفاقيات مستوى الخدمة (SLA) من حيث زمن الانتقال والإنتاجية ، ويمكن تحقيقها باستخدام نقاط نهاية الوقت الحقيقي من SageMaker.
يوفر SageMaker نقاط نهاية نموذج واحد، والذي يسمح لك بنشر نموذج واحد للتعلم الآلي (ML) مقابل نقطة نهاية منطقية. بالنسبة لحالات الاستخدام الأخرى ، يمكنك اختيار إدارة التكلفة والأداء باستخدام نقاط نهاية متعددة النماذج، والتي تسمح لك بتحديد عدة نماذج لاستضافتها خلف نقطة نهاية منطقية. بغض النظر عن الخيار الذي تختاره ، تسمح نقاط نهاية SageMaker بآلية قابلة للتطوير حتى لعملاء المؤسسات الأكثر تطلبًا مع توفير قيمة في عدد كبير من الميزات ، بما في ذلك متغيرات الظل, التحجيم التلقائي، والتكامل المحلي مع الأمازون CloudWatch (لمزيد من المعلومات ، يرجى الرجوع إلى مقاييس CloudWatch لعمليات النشر متعددة النماذج نقطة النهاية).
يدعم Triton العديد من الخلفيات الخلفية كمحركات لدعم تشغيل وتقديم نماذج ML المختلفة للاستدلال. بالنسبة لأي عملية نشر لـ Triton ، من الضروري معرفة كيف يؤثر سلوك الواجهة الخلفية على أعباء العمل لديك وما يمكن توقعه حتى تكون ناجحًا. في هذا المنشور ، نساعدك على فهم مكتبة استدلال الغابة (FIL) الخلفية، المدعوم من Triton على SageMaker ، بحيث يمكنك اتخاذ قرار مستنير لأعباء عملك والحصول على أفضل أداء ممكن وتحسين التكلفة.
الغوص العميق في الخلفية FIL
يدعم Triton الخلفية FIL لخدمة نماذج الأشجار ، مثل XGBoost، LightGBM ، تعلم الحروف غابة عشوائية, RAPIDS cuML غابة عشوائية، وأي نموذج آخر يدعمه التريلايت. لطالما استخدمت هذه النماذج لحل مشكلات مثل التصنيف أو الانحدار. على الرغم من أن هذه الأنواع من النماذج تعمل بشكل تقليدي على وحدات المعالجة المركزية ، إلا أن شعبية هذه النماذج ومتطلبات الاستدلال أدت إلى تقنيات مختلفة لزيادة أداء الاستدلال. تستخدم الواجهة الخلفية FIL العديد من هذه التقنيات باستخدام تركيبات cuML وهي مبنية على C ++ ومكتبة CUDA الأساسية لتحسين أداء الاستدلال على مسرعات GPU.
تستخدم الواجهة الخلفية FIL مكتبات cuML لاستخدام نوى CPU أو GPU لتسريع التعلم. من أجل استخدام هذه المعالجات ، تتم الإشارة إلى البيانات من ذاكرة المضيف (على سبيل المثال ، مصفوفات NumPy) أو مصفوفات GPU (uDF أو Numba أو cuPY أو أي مكتبة تدعم __cuda_array_interface__
) API. بعد تجميع البيانات في الذاكرة ، يمكن لواجهة FIL الخلفية تشغيل المعالجة عبر جميع أنوية وحدة المعالجة المركزية أو وحدة معالجة الرسومات المتاحة.
يمكن أن تتواصل خيوط الواجهة الخلفية FIL مع بعضها البعض دون استخدام الذاكرة المشتركة للمضيف ، ولكن في أحمال عمل المجموعة ، يجب مراعاة ذاكرة المضيف. يُظهر الرسم التخطيطي التالي بنية وقت تشغيل لجدولة مجموعة حيث لديك القدرة على ضبط مناطق الذاكرة ، بما في ذلك الذاكرة المشتركة التي يمكن معالجتها باستخدام وحدة المعالجة المركزية المستخدمة للتواصل بين العمليات بين Triton (C ++) وعملية Python (Python الخلفية) للتبادل الموترات (الإدخال / الإخراج) مع الواجهة الخلفية FIL.
يوفر خادم الاستدلال Triton خيارات قابلة للتكوين للمطورين لضبط أحمال العمل وتحسين أداء النموذج. التكوين dynamic_batching
يسمح لـ Triton بالاحتفاظ بالطلبات من جانب العميل وتجميعها على جانب الخادم من أجل استخدام حساب FIL المتوازي بكفاءة لاستدلال الدفعة بأكملها معًا. الخيار max_queue_delay_microseconds
يوفر تحكمًا آمنًا من الفشل في المدة التي ينتظرها Triton لتكوين دفعة.
هناك عدد من الملفات الأخرى الخاصة بـ FIL خيارات متاحه التي تؤثر على الأداء والسلوك. نقترح البدء بـ storage_type
. عند تشغيل الواجهة الخلفية على وحدة معالجة الرسومات ، ينشئ FIL بنية ذاكرة / بيانات جديدة تمثل الشجرة التي يمكن أن يؤثر FIL على الأداء والبصمة لها. هذا قابل للتكوين عبر معلمة البيئة storage_type
، الذي يحتوي على خيارات كثيفة ومتفرقة وتلقائية. سيؤدي اختيار الخيار الكثيف إلى استهلاك المزيد من ذاكرة وحدة معالجة الرسومات ولا يؤدي دائمًا إلى أداء أفضل ، لذلك من الأفضل التحقق. في المقابل ، فإن الخيار المتناثر سيستهلك ذاكرة GPU أقل ويمكن أن يعمل بشكل جيد أو أفضل من الكثافة. سيؤدي اختيار تلقائي إلى جعل النموذج افتراضيًا كثيفًا ما لم يستهلك ذلك بشكل ملحوظ ذاكرة GPU أكثر من قليلة.
عندما يتعلق الأمر بأداء النموذج ، قد تفكر في التأكيد على threads_per_tree
خيار. الشيء الوحيد الذي قد تشرف عليه في سيناريوهات العالم الحقيقي هو ذلك threads_per_tree
يمكن أن يكون لها تأثير أكبر على الإنتاجية من أي معلمة أخرى. ضبطه على أي قوة 2 من 1–32 أمر شرعي. يصعب التنبؤ بالقيمة المثلى لهذه المعلمة ، ولكن عندما يُتوقع أن يتعامل الخادم مع تحميل أعلى أو معالجة أحجام دُفعات أكبر ، فإنه يميل إلى الاستفادة من قيمة أكبر مما كانت عليه عند معالجة بضعة صفوف في المرة الواحدة.
معلمة أخرى يجب أن تكون على دراية بها هي algo
، وهو متاح أيضًا إذا كنت تستخدم وحدة معالجة الرسومات. تحدد هذه المعلمة الخوارزمية المستخدمة لمعالجة طلبات الاستدلال. الخيارات المدعومة لهذا هي ALGO_AUTO
, NAIVE
, TREE_REORG
و BATCH_TREE_REORG
. تحدد هذه الخيارات كيفية تنظيم العقد داخل الشجرة ويمكن أن تؤدي أيضًا إلى مكاسب في الأداء. ال ALGO_AUTO
الخيار الافتراضي إلى NAIVE
للتخزين المتناثر و BATCH_TREE_REORG
للتخزين الكثيف.
أخيرًا ، يأتي FIL مع شرح Shapley ، والذي يمكن تنشيطه باستخدام ملف treeshap_output
معامل. ومع ذلك ، يجب أن تضع في اعتبارك أن مخرجات Shapley تضر بالأداء نظرًا لحجمها الناتج.
تنسيق النموذج
لا يوجد حاليًا تنسيق ملف قياسي لتخزين النماذج القائمة على الغابات ؛ يميل كل إطار إلى تحديد تنسيقه الخاص. من أجل دعم تنسيقات ملفات الإدخال المتعددة ، يستورد FIL البيانات باستخدام المصدر المفتوح التريلايت مكتبة. يمكّن هذا FIL من دعم النماذج المدربة في أطر شائعة ، مثل XGBoost و LightGBM. لاحظ أنه يجب تعيين تنسيق النموذج الذي تقدمه في ملف model_type
قيمة التكوين المحددة في config.pbtxt
ملف.
التكوين.pbtxt
كل نموذج في مستودع نموذج يجب أن يتضمن تكوين نموذج يوفر المعلومات المطلوبة والاختيارية حول النموذج. عادة ، يتم توفير هذا التكوين في ملف config.pbtxt
الملف المحدد كملف نموذج التكوين بروتوبوف. لمعرفة المزيد حول إعدادات التكوين ، ارجع إلى تكوين النموذج. فيما يلي بعض معلمات تكوين النموذج:
- max_batch_size - يحدد هذا الحد الأقصى لحجم الدُفعة التي يمكن تمريرها إلى هذا النموذج. بشكل عام ، فإن الحد الوحيد لحجم الدُفعات التي تم تمريرها إلى الواجهة الخلفية FIL هو الذاكرة المتاحة لمعالجتها. بالنسبة لعمليات تشغيل GPU ، يتم تحديد الذاكرة المتاحة من خلال حجم تجمع ذاكرة Triton CUDA ، والذي يمكن تعيينه عبر وسيطة سطر الأوامر عند بدء تشغيل الخادم.
- إدخال - تخبر الخيارات الموجودة في هذا القسم Triton بعدد الميزات المتوقعة لكل عينة إدخال.
- الناتج - تخبر الخيارات في هذا القسم Triton عن عدد قيم المخرجات لكل عينة. إذا كان
predict_proba
يتم تعيين الخيار على صحيح ، ثم يتم إرجاع قيمة الاحتمالية لكل فئة. خلاف ذلك ، سيتم إرجاع قيمة واحدة ، للإشارة إلى الفئة المتوقعة للعينة المحددة. - مجموعة المثيل - يحدد هذا عدد مثيلات هذا النموذج التي سيتم إنشاؤها وما إذا كانت ستستخدم وحدة معالجة الرسومات أو وحدة المعالجة المركزية.
- نوع النموذج - تشير هذه السلسلة إلى التنسيق الذي يوجد به النموذج (
xgboost_json
في هذا المثال ، ولكنxgboost
,lightgbm
وtl_checkpoint
هي تنسيقات صالحة أيضًا). - توقع_بروبا - في حالة الضبط على "صحيح" ، سيتم إرجاع قيم الاحتمالات لكل فئة بدلاً من مجرد توقع الفئة.
- input_class - تم ضبط هذا على صواب لنماذج التصنيف وخطأ لنماذج الانحدار.
- عتبة - هذا هو حد الدرجة لتحديد التصنيف. متى
output_class
تم تعيينه على "صحيح" ، يجب تقديم ذلك ، على الرغم من أنه لن يتم استخدامه إذا كانpredict_proba
تم ضبطه أيضًا على "صواب". - قوي - بشكل عام ، يجب أن يلبي استخدام AUTO لهذا الإعداد معظم حالات الاستخدام. إذا تم تحديد التخزين التلقائي ، فسيقوم FIL بتحميل النموذج باستخدام تمثيل متناثر أو كثيف بناءً على الحجم التقريبي للنموذج. في بعض الحالات ، قد ترغب في ضبط هذا بشكل صريح على SPARSE لتقليل تأثير الذاكرة في الطرز الكبيرة.
خادم الاستدلال Triton على SageMaker
SageMaker يسمح يمكنك نشر نقاط النهاية ذات النموذج الفردي والنماذج المتعددة باستخدام خادم الاستدلال NVIDIA Triton. يوضح الشكل التالي البنية عالية المستوى لخادم الاستدلال Triton. ال مستودع نموذج هو مستودع قائم على نظام الملفات للنماذج التي سيوفرها Triton للاستنتاج. تصل طلبات الاستدلال إلى الخادم ويتم توجيهها إلى برنامج الجدولة المناسب لكل نموذج. تنفذ تريتون خوارزميات متعددة للجدولة والتجميع التي يمكن تهيئتها على أساس نموذج بنموذج. يقوم برنامج جدولة كل نموذج اختياريًا بتجميع طلبات الاستدلال ثم تمرير الطلبات إلى ملف الخلفية المطابق لنوع النموذج. تقوم الواجهة الخلفية بالاستنتاج باستخدام المدخلات المقدمة في الطلبات المجمعة لإنتاج المخرجات المطلوبة. ثم يتم إرجاع النواتج.
عند تكوين مجموعات القياس التلقائي الخاصة بك لنقاط نهاية SageMaker ، قد ترغب في التفكير SageMakerVariantInvocationsPerInstance
كمعايير أساسية لتحديد خصائص القياس لمجموعة القياس التلقائي الخاصة بك. بالإضافة إلى ذلك ، بناءً على ما إذا كانت النماذج الخاصة بك تعمل على GPU أو CPU ، يمكنك أيضًا التفكير في استخدام CPUUtilization أو GPUUtilization كمعايير إضافية. لاحظ أنه بالنسبة لنقاط نهاية النموذج الفردي ، نظرًا لأن النماذج المنشورة جميعها متشابهة ، فمن السهل جدًا تعيين السياسات المناسبة لتلبية اتفاقيات مستوى الخدمة الخاصة بك. بالنسبة لنقاط النهاية متعددة النماذج ، نوصي بنشر نماذج مماثلة خلف نقطة نهاية معينة للحصول على أداء أكثر ثباتًا يمكن التنبؤ به. في حالات الاستخدام التي يتم فيها استخدام نماذج ذات أحجام ومتطلبات مختلفة ، قد ترغب في فصل أحمال العمل هذه عبر نقاط نهاية متعددة النماذج أو قضاء بعض الوقت في ضبط سياسة مجموعة القياس التلقائي للحصول على أفضل توازن في التكلفة والأداء.
للحصول على قائمة بحاويات NVIDIA Triton Deep Learning (DLC) المدعومة باستدلال SageMaker ، يرجى الرجوع إلى صور حاويات التعلم العميق المتاحة.
تجول دفتر SageMaker
تطبيقات ML معقدة ويمكن أن تتطلب معالجة البيانات مسبقًا. في هذا الكمبيوتر الدفتري ، نتعمق في كيفية نشر نموذج ML المستند إلى الشجرة مثل XGBoost باستخدام الواجهة الخلفية FIL في Triton على نقطة نهاية متعددة النماذج من SageMaker. نغطي أيضًا كيفية تنفيذ خط أنابيب معالجة البيانات المسبقة المستندة إلى Python لنموذجك باستخدام ميزة المجموعة في Triton. سيسمح لنا ذلك بإرسال البيانات الأولية من جانب العميل وإجراء معالجة مسبقة للبيانات واستدلال النموذج في نقطة نهاية Triton SageMaker للحصول على أداء الاستدلال الأمثل.
ميزة مجموعة نموذج تريتون
يبسط Triton Inference Server بشكل كبير نشر نماذج الذكاء الاصطناعي على نطاق واسع في الإنتاج. يأتي Triton Inference Server مع حل مناسب يبسط بناء خطوط أنابيب المعالجة المسبقة والمعالجة اللاحقة. توفر منصة خادم الاستدلال Triton برنامج جدولة المجموعات ، وهو المسؤول عن نماذج خطوط الأنابيب المشاركة في عملية الاستدلال مع ضمان الكفاءة وتحسين الإنتاجية. يمكن أن يؤدي استخدام نماذج المجموعات إلى تجنب الحمل الزائد لنقل موترات وسيطة وتقليل عدد الطلبات التي يجب إرسالها إلى Triton.
في هذا الكمبيوتر الدفتري ، نعرض كيفية استخدام ميزة المجموعة لبناء خط أنابيب للمعالجة المسبقة للبيانات باستخدام استدلال نموذج XGBoost ، ويمكنك الاستقراء منه لإضافة معالجة لاحقة مخصصة إلى خط الأنابيب.
هيئ البيئة
نبدأ بتهيئة البيئة المطلوبة. نقوم بتثبيت التبعيات المطلوبة لحزم خط الأنابيب الخاص بنا وتشغيل الاستنتاجات باستخدام خادم الاستدلال Triton. نحدد أيضًا ال إدارة الهوية والوصول AWS (IAM) الذي سيمنح SageMaker الوصول إلى القطع الأثرية للنموذج و NVIDIA Triton سجل الأمازون المرنة للحاويات (Amazon ECR) صورة. انظر الكود التالي:
قم بإنشاء بيئة Conda للمعالجة المسبقة للاعتمادات
تتطلب واجهة Python الخلفية في Triton استخدام ملف كوندا بيئة لأي تبعيات إضافية. في هذه الحالة ، نستخدم الواجهة الخلفية لـ Python لمعالجة البيانات الأولية قبل إدخالها في نموذج XGBoost الذي يعمل في الواجهة الخلفية FIL. على الرغم من أننا استخدمنا في الأصل RAPIDS cuDF و cuML للقيام بالمعالجة المسبقة للبيانات ، فإننا هنا نستخدم Pandas و scikit-Learn كاعتمادات معالجة مسبقة أثناء الاستدلال. نقوم بذلك لثلاثة أسباب:
- نعرض كيفية إنشاء بيئة Conda للاعتماديات الخاصة بك وكيفية حزمها بتنسيق الشكل المتوقع بواسطة خلفية بايثون لتريتون.
- من خلال إظهار نموذج المعالجة المسبقة الذي يعمل في Python الخلفية على وحدة المعالجة المركزية أثناء تشغيل XGBoost على وحدة معالجة الرسومات في الواجهة الخلفية FIL ، نوضح كيف يمكن تشغيل كل نموذج في خط أنابيب مجموعة Triton على خلفية إطار عمل مختلفة بالإضافة إلى تكوينات مختلفة للأجهزة.
- يسلط الضوء على كيفية توافق مكتبات RAPIDS (cuDF و cuML) مع نظيراتها في وحدة المعالجة المركزية (Pandas و scikit-Learn). على سبيل المثال ، يمكننا أن نبين كيف
LabelEncoders
تم إنشاؤها في cuML يمكن استخدامها في scikit-Learn والعكس صحيح.
نحن نتبع التعليمات من وثائق تريتون لتعبئة تبعيات المعالجة المسبقة (scikit-Learn و Pandas) لاستخدامها في خلفية Python كملف TAR لبيئة Conda. نص باش create_prep_env.sh ينشئ ملف TAR بيئة Conda ، ثم ننقله إلى دليل نموذج المعالجة المسبقة. انظر الكود التالي:
بعد أن قمنا بتشغيل البرنامج النصي السابق ، فإنه يولد preprocessing_env.tar.gz
، والتي نقوم بنسخها إلى دليل المعالجة المسبقة:
قم بإعداد المعالجة المسبقة مع الواجهة الخلفية Triton Python
للمعالجة المسبقة ، نستخدم Triton الخلفية بايثون لإجراء معالجة مسبقة للبيانات المجدولة (الترميز الفئوي) أثناء الاستدلال على طلبات البيانات الأولية الواردة إلى الخادم. لمزيد من المعلومات حول المعالجة المسبقة التي تم إجراؤها أثناء التدريب ، يرجى الرجوع إلى دفتر تدريب.
تتيح الواجهة الخلفية لـ Python المعالجة المسبقة والمعالجة اللاحقة وأي منطق مخصص آخر ليتم تنفيذه في Python وتقديمه مع Triton. يتطلب استخدام Triton على SageMaker أن نقوم أولاً بإعداد مجلد مستودع نموذج يحتوي على النماذج التي نريد تقديمها. لقد أعددنا بالفعل نموذجًا للمعالجة المسبقة لبيانات Python يسمى المعالجة المسبقة في cpu_model_repository
و gpu_model_repository
.
لدى Triton متطلبات محددة لتخطيط مستودع النموذج. ضمن دليل مستودع نموذج المستوى الأعلى ، يحتوي كل نموذج على دليل فرعي خاص به يحتوي على المعلومات الخاصة بالنموذج المقابل. يجب أن يحتوي كل دليل نموذج في Triton على دليل فرعي رقمي واحد على الأقل يمثل إصدارًا من النموذج. تمثل القيمة 1 الإصدار 1 من نموذج معالجة Python الخاص بنا. يتم تشغيل كل نموذج من خلال واجهة خلفية محددة ، لذلك يجب أن يكون هناك داخل كل دليل فرعي للإصدار الأداة النموذجية المطلوبة من قبل تلك الواجهة الخلفية. في هذا المثال ، نستخدم Python backend ، والذي يتطلب أن يُطلق على ملف Python الذي تقدمه اسم model.py ، ويحتاج الملف إلى التنفيذ وظائف معينة. إذا كنا نستخدم خلفية PyTorch ، فسيلزم ملف model.pt ، وهكذا. لمزيد من التفاصيل حول اصطلاحات التسمية لملفات الطراز ، راجع ملفات النماذج.
• model.py ينفذ ملف Python الذي نستخدمه هنا جميع منطق المعالجة المسبقة للبيانات الجدولية لتحويل البيانات الأولية إلى ميزات يمكن إدخالها في نموذج XGBoost الخاص بنا.
يجب أن يوفر كل نموذج Triton أيضًا ملف config.pbtxt
ملف يصف تكوين النموذج. لمعرفة المزيد حول إعدادات التكوين ، ارجع إلى تكوين النموذج. لنا التكوين.pbtxt يحدد الملف الواجهة الخلفية كـ python وجميع أعمدة الإدخال للبيانات الأولية جنبًا إلى جنب مع الإخراج المعالج مسبقًا ، والذي يتكون من 15 ميزة. نحدد أيضًا أننا نريد تشغيل نموذج معالجة Python هذا على وحدة المعالجة المركزية. انظر الكود التالي:
قم بإعداد نموذج ML المستند إلى الشجرة لواجهة FIL الخلفية
بعد ذلك ، قمنا بإعداد دليل النموذج لنموذج ML المستند إلى الشجرة مثل XGBoost ، والذي سيستخدم الواجهة الخلفية FIL.
التخطيط المتوقع لـ cpu_memory_repository
و gpu_memory_repository
تشبه تلك التي أظهرناها سابقًا.
هنا، FIL
هو اسم النموذج. يمكننا إعطائها اسمًا مختلفًا مثل xgboost
إذا كنا نريد أن. 1
هو دليل فرعي للإصدار ، والذي يحتوي على الأداة النموذجية. في هذه الحالة ، يكون ملف xgboost.json
النموذج الذي حفظناه. لنقم بإنشاء هذا التخطيط المتوقع:
نحن بحاجة إلى ملف التكوين config.pbtxt
وصف تكوين النموذج لنموذج ML المستند إلى الشجرة ، بحيث يمكن لواجهة FIL الخلفية في Triton فهم كيفية خدمتها. لمزيد من المعلومات ، راجع أحدث عام خيارات تكوين Triton وخيارات التكوين الخاصة بـ الخلفية FIL. نحن نركز فقط على عدد قليل من الخيارات الأكثر شيوعًا وذات الصلة في هذا المثال.
إنشاء config.pbtxt
For model_cpu_repository
:
وبالمثل ، قم بإعداد config.pbtxt
For model_gpu_repository
(لاحظ أن الفرق هو USE_GPU = True
):
قم بإعداد خط أنابيب الاستدلال للمعالجة المسبقة للبيانات لواجهة Python الخلفية والخلفية FIL باستخدام المجموعات
نحن الآن جاهزون لإعداد خط أنابيب الاستدلال للمعالجة المسبقة للبيانات والاستدلال بالنموذج القائم على الشجرة باستخدام ملف نموذج الفرقة. يمثل نموذج المجموعة خط أنابيب لواحد أو أكثر من النماذج وتوصيل موترات الإدخال والإخراج بين تلك النماذج. هنا نستخدم نموذج المجموعة لبناء خط أنابيب للمعالجة المسبقة للبيانات في الواجهة الخلفية لـ Python متبوعًا بـ XGBoost في الواجهة الخلفية FIL.
التخطيط المتوقع لـ ensemble
دليل النموذج مشابه لتلك التي أظهرناها سابقًا:
أنشأنا نموذج المجموعة التكوين.pbtxt باتباع الإرشادات في نماذج الفرق. الأهم من ذلك ، نحن بحاجة إلى إعداد جدولة المجموعة في config.pbtxt
، والتي تحدد تدفق البيانات بين النماذج داخل المجموعة. يقوم برنامج جدولة المجموعة بجمع موترات الإخراج في كل خطوة ، ويقدمها كموترات إدخال لخطوات أخرى وفقًا للمواصفات.
قم بتعبئة مستودع النموذج وتحميله إلى Amazon S3
أخيرًا ، ننتهي ببنية دليل مستودع النموذج التالي ، التي تحتوي على نموذج معالجة Python وتبعياتها جنبًا إلى جنب مع نموذج XGBoost FIL ومجموعة النموذج.
نقوم بحزم الدليل ومحتوياته بتنسيق model.tar.gz
للتحميل إلى خدمة تخزين أمازون البسيطة (أمازون S3). لدينا خياران في هذا المثال: استخدام مثيل قائم على وحدة المعالجة المركزية أو مثيل مستند إلى وحدة معالجة الرسومات. يكون المثيل المستند إلى GPU أكثر ملاءمة عندما تحتاج إلى طاقة معالجة أعلى وترغب في استخدام نوى CUDA.
قم بإنشاء وتحميل حزمة النموذج لمثيل قائم على وحدة المعالجة المركزية (محسّن لوحدة المعالجة المركزية) باستخدام الكود التالي:
قم بإنشاء وتحميل حزمة النموذج لمثيل قائم على GPU (محسّن لـ GPU) بالشفرة التالية:
قم بإنشاء نقطة نهاية SageMaker
لدينا الآن القطع الأثرية للنموذج مخزنة في دلو S3. في هذه الخطوة ، يمكننا أيضًا توفير متغير البيئة الإضافي SAGEMAKER_TRITON_DEFAULT_MODEL_NAME
، والذي يحدد اسم النموذج الذي سيتم تحميله بواسطة Triton. يجب أن تتطابق قيمة هذا المفتاح مع اسم المجلد في حزمة النموذج التي تم تحميلها إلى Amazon S3. هذا المتغير اختياري في حالة نموذج واحد. في حالة نماذج المجموعات ، يجب تحديد هذا المفتاح لكي يبدأ Triton في SageMaker.
بالإضافة إلى ذلك ، يمكنك تعيين SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT
و SAGEMAKER_TRITON_THREAD_COUNT
لتحسين عدد الخيوط.
نستخدم النموذج السابق لإنشاء تكوين نقطة النهاية حيث يمكننا تحديد نوع وعدد المثيلات التي نريدها في نقطة النهاية
نستخدم تكوين نقطة النهاية هذا لإنشاء نقطة نهاية SageMaker وانتظر انتهاء النشر. مع SageMaker MMEs ، لدينا خيار استضافة نماذج مجموعات متعددة من خلال تكرار هذه العملية ، لكننا نتمسك بنشر واحد لهذا المثال:
ستتغير الحالة إلى InService
عندما يكون النشر ناجحًا.
قم باستدعاء نموذجك المستضاف على نقطة نهاية SageMaker
بعد تشغيل نقطة النهاية ، يمكننا استخدام بعض عينات البيانات الأولية لإجراء الاستدلال باستخدام JSON كتنسيق الحمولة. بالنسبة إلى تنسيق طلب الاستدلال ، يستخدم Triton تنسيق KFServing
معيار المجتمع بروتوكولات الاستدلال. انظر الكود التالي:
يمكن العثور على دفتر الملاحظات المشار إليه في المدونة في مستودع جيثب.
أفضل الممارسات
بالإضافة إلى خيارات ضبط إعدادات الواجهة الخلفية FIL التي ذكرناها سابقًا ، يمكن لعلماء البيانات أيضًا التأكد من تحسين بيانات الإدخال للواجهة الخلفية للمعالجة بواسطة المحرك. كلما أمكن ، أدخل البيانات بتنسيق الصف الرئيسي في مصفوفة GPU. ستتطلب التنسيقات الأخرى تحويلًا داخليًا وتستغرق دورات ، مما يؤدي إلى انخفاض الأداء.
نظرًا للطريقة التي يتم بها الحفاظ على هياكل بيانات FIL في ذاكرة وحدة معالجة الرسومات ، ضع في اعتبارك عمق الشجرة. كلما كان عمق الشجرة أعمق ، زادت مساحة ذاكرة وحدة معالجة الرسومات لديك.
استخدم instance_group_count
معلمة لإضافة العمليات العاملة وزيادة إنتاجية الواجهة الخلفية FIL ، مما سيؤدي إلى زيادة استهلاك ذاكرة وحدة المعالجة المركزية ووحدة معالجة الرسومات. بالإضافة إلى ذلك ، ضع في اعتبارك المتغيرات الخاصة بـ SageMaker والمتاحة لزيادة الإنتاجية ، مثل سلاسل عمليات HTTP وحجم المخزن المؤقت لـ HTTP وحجم الدُفعة والحد الأقصى للتأخير.
وفي الختام
في هذا المنشور ، نتعمق في الخلفية FIL التي يدعمها Triton Inference Server على SageMaker. توفر هذه الواجهة الخلفية تسريع وحدة المعالجة المركزية ووحدة معالجة الرسومات للنماذج القائمة على الأشجار مثل خوارزمية XGBoost الشائعة. هناك العديد من الخيارات التي يجب مراعاتها للحصول على أفضل أداء للاستدلال ، مثل أحجام الدُفعات وتنسيقات إدخال البيانات وعوامل أخرى يمكن ضبطها لتلبية احتياجاتك. يتيح لك SageMaker استخدام هذه الإمكانية مع نقاط نهاية أحادية ومتعددة النماذج لتحقيق التوازن بين الأداء وتوفير التكاليف.
نحن نشجعك على أخذ المعلومات الواردة في هذا المنشور ومعرفة ما إذا كان بإمكان SageMaker تلبية احتياجات الاستضافة الخاصة بك لخدمة النماذج المستندة إلى الشجرة ، وتلبية متطلباتك لخفض التكلفة وأداء عبء العمل.
يمكن العثور على دفتر الملاحظات المشار إليه في هذا المنشور في أمثلة SageMaker مستودع جيثب. علاوة على ذلك ، يمكنك العثور على أحدث الوثائق على الواجهة الخلفية FIL GitHub جيثب:.
حول المؤلف
راغو راميشا مهندس حلول ML مع فريق Amazon SageMaker Service. إنه يركز على مساعدة العملاء في بناء ونشر وترحيل أعباء عمل إنتاج ML إلى SageMaker على نطاق واسع. وهو متخصص في مجالات التعلم الآلي والذكاء الاصطناعي ورؤية الكمبيوتر ، وهو حاصل على درجة الماجستير في علوم الكمبيوتر من جامعة UT Dallas. في أوقات فراغه يستمتع بالسفر والتصوير.
جيمس بارك مهندس حلول في Amazon Web Services. يعمل مع Amazon.com لتصميم وبناء ونشر الحلول التقنية على AWS ، ولديه اهتمام خاص بالذكاء الاصطناعي والتعلم الآلي. يستمتع في أوقات فراغه بالبحث عن ثقافات جديدة وخبرات جديدة ومواكبة أحدث اتجاهات التكنولوجيا.
ضوال باتل هو مهندس رئيسي لتعلم الآلة في AWS. لقد عمل مع مؤسسات تتراوح من الشركات الكبيرة إلى الشركات الناشئة متوسطة الحجم في المشكلات المتعلقة بالحوسبة الموزعة والذكاء الاصطناعي. يركز على التعلم العميق ، بما في ذلك مجالات البرمجة اللغوية العصبية ورؤية الكمبيوتر. يساعد العملاء على تحقيق استدلال نموذج عالي الأداء على Amazon SageMaker.
جياهونغ ليو هو مهندس حلول في فريق مزود الخدمة السحابية في NVIDIA. يساعد العملاء في تبني حلول التعلم الآلي والذكاء الاصطناعي التي تستفيد من حوسبة NVIDIA المتسارعة لمواجهة تحديات التدريب والاستدلال. في أوقات فراغه ، يستمتع بالأوريغامي ومشاريع DIY ولعب كرة السلة.
كشيتيز جوبتا مهندس حلول في NVIDIA. إنه يستمتع بتثقيف عملاء السحابة حول تقنيات GPU AI التي يجب أن تقدمها NVIDIA ومساعدتهم في تسريع التعلم الآلي وتطبيقات التعلم العميق. خارج العمل ، يستمتع بالركض والمشي لمسافات طويلة ومشاهدة الحياة البرية.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- أفلاطونايستريم. ذكاء بيانات Web3. تضخيم المعرفة. الوصول هنا.
- سك المستقبل مع أدرين أشلي. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/hosting-ml-models-on-amazon-sagemaker-using-triton-xgboost-lightgbm-and-treelite-models/
- :لديها
- :يكون
- :ليس
- :أين
- $ UP
- 1
- 100
- 11
- 13
- 200
- 23
- 24
- 7
- 8
- 9
- a
- القدرة
- من نحن
- تسريع
- معجل
- تسريع
- المعجلات
- الوصول
- وفقا
- وفقا لذلك
- حسابي
- التأهيل
- في
- تضيف
- إضافة
- إضافي
- العنوان
- عنونة
- اعتماد
- بعد
- ضد
- اتفاقيات
- AI
- خوارزمية
- الكل
- المخصصات
- السماح
- يسمح
- على طول
- سابقا
- أيضا
- بالرغم ان
- دائما
- أمازون
- الأمازون SageMaker
- أمازون ويب سيرفيسز
- Amazon.com
- كمية
- an
- و
- أي وقت
- API
- التطبيقات
- مناسب
- هندسة معمارية
- هي
- المناطق
- حجة
- مجموعة
- مصطنع
- الذكاء الاصطناعي
- AS
- يساعد
- At
- السيارات
- متاح
- تجنب
- AWS
- الخلفية
- الرصيد
- على أساس
- سحق
- أساس
- كره السلة
- BE
- لان
- أصبح
- كان
- قبل
- بدأ
- وراء
- أقل من
- تستفيد
- أفضل
- أفضل
- ما بين
- أكبر
- المدونة
- الجسدي
- على حد سواء
- العازلة
- نساعدك في بناء
- ابني
- بنيت
- لكن
- by
- C + +
- تسمى
- CAN
- فيزا وماستركارد
- حقيبة
- الحالات
- الفئة
- سبب
- التحديات
- تغيير
- الخصائص
- التحقق
- رقاقة
- اختار
- اختيار
- المدينة
- فئة
- تصنيف
- زبون
- عميل
- سحابة
- الكود
- الأعمدة
- COM
- يأتي
- آت
- مشترك
- التواصل
- Communication
- مجتمع
- متوافق
- مجمع
- حساب
- الكمبيوتر
- علوم الكمبيوتر
- رؤية الكمبيوتر
- الحوسبة
- الاعداد
- صلة
- نظر
- نظرت
- تستهلك
- استهلاك
- وعاء
- حاويات
- يحتوي
- محتويات
- تباين
- مراقبة
- مناسب
- تحويل
- تحول
- جوهر
- المقابلة
- التكلفة
- تقليل التكاليف
- وفورات في التكاليف
- بهيكل
- خلق
- خلق
- يخلق
- المعايير
- حاسم
- حاليا
- على
- العملاء
- دورات
- دالاس
- البيانات
- التاريخ
- يوم
- صفقة
- القرار
- عميق
- التعلم العميق
- أعمق
- الترتيب
- الافتراضات
- الدرجة العلمية
- تأخير
- يطالب
- مطالب
- اعتمادا
- نشر
- نشر
- نشر
- نشر
- عمق
- تصميم
- تفاصيل
- حدد
- مصمم
- يحدد
- تحديد
- المطورين
- فرق
- مختلف
- وزعت
- الحوسبة الموزعة
- اليدويه
- do
- توثيق
- لا
- فعل
- المجالات
- فعل
- حمامة
- اثنان
- أثناء
- كل
- في وقت سابق
- تعليم
- كفاءة
- بكفاءة
- إما
- مؤكدا
- تمكن
- شجع
- النهاية
- نقطة النهاية
- محرك
- محركات
- ضمان
- ضمان
- مشروع
- الشركات
- كامل
- البيئة
- أخطاء
- حتى
- كل
- مثال
- أمثلة
- التبادل
- توقع
- متوقع
- خبرة
- تصدير
- العوامل
- بإنصاف
- شلالات
- زائف
- الميزات
- المميزات
- بنك الاحتياطي الفيدرالي
- تغذية
- قليل
- الشكل
- قم بتقديم
- ملفات
- نهاية
- الاسم الأول
- تدفق
- تركز
- ويركز
- اتباع
- يتبع
- متابعيك
- البصمة
- في حالة
- النموذج المرفق
- شكل
- وجدت
- الإطار
- الأطر
- احتيال
- مجانًا
- تبدأ من
- علاوة على ذلك
- الرأس مالية
- العلاجات العامة
- يولد
- دولار فقط واحصل على خصم XNUMX% على جميع
- منح
- معطى
- وحدة معالجة الرسوميات:
- جدا
- تجمع
- مجموعات
- توجيه
- يحدث
- الثابت
- أجهزة التبخير
- يملك
- he
- مساعدة
- مساعدة
- يساعد
- هنا
- رفيع المستوى
- أداء عالي
- أعلى
- ويبرز
- له
- عقد
- يحمل
- مضيف
- استضافت
- استضافة
- كيفية
- كيفية
- لكن
- HTML
- HTTP
- HTTPS
- جرح
- هوية
- IDS
- IDX
- if
- صورة
- التأثير
- الآثار
- تنفيذ
- نفذت
- الأدوات
- واردات
- in
- تتضمن
- بما فيه
- القيمة الاسمية
- يشير
- معلومات
- وأبلغ
- إدخال
- تثبيت
- مثل
- تعليمات
- التكامل
- رؤيتنا
- مصلحة
- داخلي
- إلى
- IT
- انها
- JPG
- جسون
- م
- احتفظ
- القفل
- نوع
- علم
- كبير
- الشركات الكبيرة
- أكبر
- كمون
- آخر
- تصميم
- تعلم
- تعلم
- الأقل
- ليد
- شرعي
- أقل
- مستوى
- ومستوياتها
- الرافعة المالية
- المكتبات
- المكتبة
- مثل
- مما سيحدث
- خط
- قائمة
- تحميل
- منطق
- منطقي
- طويل
- آلة
- آلة التعلم
- جعل
- إدارة
- كثير
- سادة
- مباراة
- ماكس
- أقصى
- مايو..
- آلية
- تعرف علي
- الاجتماع
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- المذكورة
- تاجر
- المقاييس
- ربما
- الهجرة
- مانع
- ML
- موضة
- نموذج
- عارضات ازياء
- شهر
- الأكثر من ذلك
- أكثر
- الاكثر شهره
- خطوة
- نقطة نهاية متعددة النماذج
- متعدد
- يجب
- الاسم
- تسمية
- محلي
- حاجة
- إحتياجات
- جديد
- البرمجة اللغوية العصبية
- لا
- العقد
- مفكرة
- الآن
- عدد
- نمباي
- NVIDIA
- تحصل
- of
- عرض
- عروض
- غالبا
- on
- ONE
- منها
- فقط
- المصدر المفتوح
- الأمثل
- التحسين
- الأمثل
- الأمثل
- تحسين
- خيار
- مزيد من الخيارات
- or
- طلب
- المنظمات
- منظم
- في الأصل
- OS
- أخرى
- وإلا
- لنا
- خارج
- الناتج
- في الخارج
- الخاصة
- صفقة
- التعبئة والتغليف
- الباندا
- موازية
- المعلمة
- المعلمات
- المشاركة
- خاص
- مرت
- يمر
- مسار
- نفذ
- أداء
- ينفذ
- إذن
- تصوير
- خط أنابيب
- المنصة
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- لعب
- من فضلك
- وفرة أو فرط
- سياسات الخصوصية والبيع
- سياسة
- تجمع
- الرائج
- شعبية
- ممكن
- ربما
- منشور
- قوة
- تنبأ
- قابل للتنبؤ
- وتوقع
- تنبؤ
- تنبؤات
- سابقا
- ابتدائي
- رئيسي
- مشاكل
- عملية المعالجة
- العمليات
- معالجة
- قوة المعالجة
- المعالجات
- إنتاج
- الإنتــاج
- مشروع ناجح
- لائق
- بروتو
- تزود
- المقدمة
- مزود
- ويوفر
- توفير
- بايثون
- pytorch
- عشوائية
- تتراوح
- بدلا
- الخام
- استعداد
- العالم الحقيقي
- في الوقت الحقيقي
- الأسباب
- نوصي
- تخفيض
- يشار
- بغض النظر
- منطقة
- ذات صلة
- ذات الصلة
- يحل محل
- مستودع
- التمثيل
- تمثل
- يمثل
- طلب
- طلبات
- تطلب
- مطلوب
- المتطلبات الأساسية
- يتطلب
- استجابة
- مسؤول
- نتيجة
- النتائج
- النوع
- يجري
- تشغيل
- s
- sagemaker
- الاستدلال SageMaker
- نفسه
- مدخرات
- تحجيم
- حجم
- التحجيم
- سيناريوهات
- جدولة
- علوم
- العلماء
- تعلم الحروف
- أحرز هدفاً
- القسم
- انظر تعريف
- تسعى
- مختار
- إرسال
- كبير
- مستقل
- خدمة
- الخدمة
- مقدم الخدمة
- خدماتنا
- خدمة
- طقم
- ضبط
- إعدادات
- الشكل
- شاركت
- ينبغي
- إظهار
- يظهر
- جانب
- بشكل ملحوظ
- مماثل
- الاشارات
- عزباء
- المقاس
- الأحجام
- So
- حل
- الحلول
- حل
- حل
- بعض
- مصدر
- تتخصص
- محدد
- مواصفة
- محدد
- أنفق
- معيار
- بداية
- ابتداء
- البدء
- الولايه او المحافظه
- الحالة
- ثابت
- خطوة
- خطوات
- تخزين
- متجر
- تخزين
- صريح
- خيط
- بناء
- ناجح
- هذه
- اقترح
- مناسب
- الدعم
- مدعومة
- الدعم
- أخذ
- فريق
- تقنيات
- التكنولوجيا
- تكنولوجيا
- اقول
- سياسة الحجب وتقييد الوصول
- من
- أن
- •
- المعلومات
- من مشاركة
- منهم
- then
- هناك.
- تشبه
- هم
- شيء
- هؤلاء
- على الرغم من؟
- ثلاثة
- عتبة
- الإنتاجية
- الوقت
- إلى
- اليوم
- سويا
- افضل مستوى
- تقليديا
- متدرب
- قادة الإيمان
- نقل
- السفر
- شجرة
- جديد الموضة
- تريتون نصف إله عند الإغريق
- صحيح
- اثنان
- نوع
- أنواع
- عادة
- فهم
- تم التحميل
- تحميل
- us
- تستخدم
- مستعمل
- مستخدم
- استخدام
- يستخدم
- استخدام
- قيمنا
- القيم
- مختلف
- الإصدار
- بواسطة
- رؤيتنا
- W
- انتظر
- تريد
- وكان
- مراقبة
- طريق..
- we
- الويب
- خدمات ويب
- حسن
- كان
- ابحث عن
- متى
- كلما
- سواء
- التي
- في حين
- سوف
- مع
- في غضون
- بدون
- للعمل
- عمل
- عامل
- أعمال
- سوف
- XGBoost
- عام
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت
- الرمز البريدي