حقق أداءً عاليًا على نطاق واسع لخدمة النموذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع وحدة معالجة الرسومات

حقق أداءً عاليًا على نطاق واسع لخدمة النموذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع وحدة معالجة الرسومات

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

في نوفمبر 2022، أضافت MMEs دعمًا لوحدة معالجة الرسوماتs ، والذي يسمح لك بتشغيل نماذج متعددة على جهاز GPU واحد وقياس مثيلات GPU خلف نقطة نهاية واحدة. وهذا يلبي طلب MME القوي على نماذج الشبكة العصبية العميقة (DNN) التي تستفيد من الحوسبة المتسارعة باستخدام وحدات معالجة الرسومات. وتشمل هذه الرؤية الحاسوبية (CV) ، ومعالجة اللغة الطبيعية (NLP) ، ونماذج الذكاء الاصطناعي التوليفية. تشمل أسباب الطلب ما يلي:

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

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

لهذه الأسباب ، قمنا بتجميع هذا المنشور لمساعدتك في إجراء اختبار الحمل المناسب على MMEs باستخدام GPU والعثور على أفضل تكوين لحالة استخدام ML الخاصة بك. نشارك نتائج اختبار الحمل الخاصة بنا لبعض نماذج DNN الأكثر شيوعًا في NLP والسيرة الذاتية المستضافة باستخدام MME على أنواع مثيلات مختلفة. نلخص الرؤى والاستنتاجات من نتائج الاختبارات الخاصة بنا لمساعدتك في اتخاذ قرار مستنير بشأن تكوين عمليات النشر الخاصة بك. على طول الطريق ، نشارك أيضًا نهجنا الموصى به لإجراء اختبار تحميل لـ MMEs على وحدة معالجة الرسومات. تحدد الأدوات والتقنية الموصى بها العدد الأمثل للنماذج التي يمكن تحميلها لكل نوع مثيل وتساعدك على تحقيق أفضل أداء للسعر.

حل نظرة عامة

للحصول على مقدمة حول MMEs و MME مع GPU ، يرجى الرجوع إلى قم بإنشاء نقطة نهاية متعددة النماذج و قم بتشغيل نماذج التعلم العميق المتعددة على وحدة معالجة الرسومات باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker. بالنسبة لسياق اختبار الحمل في هذا المنشور ، يمكنك تنزيل نموذج الكود الخاص بنا من ملف جيثب ريبو لإعادة إنتاج النتائج أو استخدامها كنموذج لقياس النماذج الخاصة بك. هناك نوعان من أجهزة الكمبيوتر المحمولة المتوفرة في الريبو: أحدهما لاختبار تحميل نماذج السيرة الذاتية والآخر لـ NLP. تم قياس عدة نماذج بأحجام وبنيات مختلفة على أنواع مختلفة من مثيلات GPU: ml.g4dn.2xlarge و ml.g5.2xlarge و ml.p3.2xlarge. يجب أن يوفر هذا مقطعًا عرضيًا معقولاً للأداء عبر المقاييس التالية لكل مثيل ونوع نموذج:

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

يسرد الجدول التالي النماذج التي تم اختبارها.

استخدام القضية نموذج الاسم الحجم على القرص عدد المعلمات
CV resnet50 100Mb 25M
CV convnext_base 352Mb 88M
CV vit_large_patch16_224 1.2Gb 304M
NLP bert-base-uncased 436Mb 109M
NLP roberta-large 1.3Gb 335M

يسرد الجدول التالي مثيلات GPU التي تم اختبارها.

نوع الطلب نوع GPU عدد وحدات معالجة الرسومات ذاكرة وحدة معالجة الرسومات (جيجابايت)
ml.g4dn.2xlarge وحدات معالجة الرسومات NVIDIA T4 1 16
ml.g5.2xlarge وحدة معالجة الرسوميات NVIDIA A10G Tensor Core 1 24
مل. 3.2xlarge وحدة معالجة الرسوميات NVIDIA® V100 Tensor Core 1 16

كما ذكرنا سابقًا ، فإن مثال رمز يمكن اعتمادها على نماذج وأنواع مثيلات أخرى.

لاحظ أن MMEs تدعم حاليًا مثيلات GPU الفردية فقط. للحصول على قائمة أنواع المثيل المدعومة ، ارجع إلى الخوارزميات والأطر والمثيلات المدعومة.

يتكون إجراء قياس الأداء من الخطوات التالية:

  1. استرجع نموذجًا تم تدريبه مسبقًا من محور نموذج.
  2. قم بإعداد الأداة النموذجية للخدمة في SageMaker MMEs (انظر قم بتشغيل نماذج التعلم العميق المتعددة على وحدة معالجة الرسومات باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker لمزيد من التفاصيل).
  3. انشر SageMaker MME على مثيل GPU.
  4. حدد الحد الأقصى لعدد النماذج التي يمكن تحميلها في ذاكرة وحدة معالجة الرسومات ضمن حد معين.
  5. استخدم Locust Load Testing Framework لمحاكاة حركة المرور التي تستدعي بشكل عشوائي النماذج المحملة على المثيل.
  6. جمع البيانات وتحليل النتائج.
  7. اختياريًا ، كرر الخطوات من 2 إلى 6 بعد تجميع النموذج إلى TensorRT.

تتطلب الخطوتان 4 و 5 نظرة أعمق. يتم تحميل النماذج الموجودة في وحدة معالجة الرسومات SageMaker GPU MME في الذاكرة بطريقة ديناميكية. لذلك ، في الخطوة 4 ، نقوم بتحميل نموذج أولي إلى خدمة تخزين أمازون البسيطة (Amazon S3) واستدعاء النموذج لتحميله في الذاكرة. بعد الاستدعاء الأولي ، نقيس مقدار ذاكرة وحدة معالجة الرسومات المستهلكة ، ونصنع نسخة من النموذج الأولي ، ونستدعى نسخة النموذج لتحميلها في الذاكرة ، ثم نقيس مرة أخرى المقدار الإجمالي لذاكرة وحدة معالجة الرسومات المستهلكة. تتكرر هذه العملية حتى يتم الوصول إلى عتبة النسبة المئوية المحددة لاستخدام ذاكرة وحدة معالجة الرسومات. بالنسبة للمعيار ، قمنا بتعيين الحد الأدنى على 90٪ لتوفير مخزن ذاكرة مؤقت معقول للاستدلال على دفعات أكبر أو ترك بعض المساحة لتحميل النماذج الأخرى الأقل استخدامًا.

محاكاة حركة مرور المستخدم

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

يدعم Locust أشكال اختبار الحمل المخصصة التي تتيح لك تحديد أنماط حركة المرور المخصصة. يظهر الشكل الذي تم استخدامه في هذا المعيار في الرسم البياني التالي. في أول 30 ثانية ، يتم تدفئة نقطة النهاية بـ 10 مستخدمين متزامنين. بعد 30 ثانية ، يتم إنتاج مستخدمين جدد بمعدل اثنين في الثانية ، ليصل إلى 20 مستخدمًا متزامنًا عند علامة 40 ثانية. ثم يتم قياس نقطة النهاية بثبات مع 20 مستخدمًا متزامنًا حتى علامة 60 ثانية ، وعند هذه النقطة يبدأ Locust مرة أخرى في زيادة عدد المستخدمين بمعدل اثنين في الثانية حتى 40 مستخدمًا متزامنًا. يتكرر هذا النمط من الاختبار التصاعدي والثابت حتى يتم زيادة نقطة النهاية إلى 200 مستخدم متزامن. اعتمادًا على حالة الاستخدام الخاصة بك ، قد ترغب في ضبط شكل اختبار الحمل في locust_benchmark_sm.py لتعكس أنماط حركة المرور المتوقعة بشكل أكثر دقة. على سبيل المثال ، إذا كنت تنوي استضافة نماذج لغة أكبر ، فقد لا يكون اختبار التحميل مع 200 مستخدم متزامن مجديًا لنموذج مستضاف في مثيل واحد ، وبالتالي قد ترغب في تقليل عدد المستخدمين أو زيادة عدد المثيلات. قد ترغب أيضًا في تمديد مدة اختبار الحمل لقياس ثبات نقطة النهاية بشكل أكثر دقة على مدى فترة زمنية أطول.

stages = [
{"duration": 30, "users": 10, "spawn_rate": 5},
{"duration": 60, "users": 20, "spawn_rate": 1},
{"duration": 90, "users": 40, "spawn_rate": 2},
…
]

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

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

النتائج المعيارية لنماذج السيرة الذاتية

استخدم الكمبيوتر الدفتري cv-benchmark.ipynb لتشغيل اختبار الحمل لنماذج رؤية الكمبيوتر. يمكنك ضبط اسم النموذج المدرب مسبقًا ومعلمات نوع المثيل لاختبار تحميل الأداء على مجموعات مختلفة من النماذج ونوع المثيل. اختبرنا عمدًا ثلاثة نماذج للسيرة الذاتية بمقاسات مختلفة تتراوح من الأصغر إلى الأكبر: resnet50 (25 مليونًا) ، convnext_base (88 م) و vit_large_patch16_224 (304 م). قد تحتاج إلى التكيف مع التعليمات البرمجية إذا اخترت نموذجًا خارج هذه القائمة. بالإضافة إلى ذلك ، يقوم الكمبيوتر الدفتري بتعيين شكل صورة الإدخال افتراضيًا إلى موتر صورة 224 × 224 × 3. تذكر أن تقوم بضبط شكل الإدخال وفقًا لذلك إذا كنت بحاجة إلى قياس النماذج التي تأخذ صورة مختلفة الحجم.

بعد تشغيل الكمبيوتر الدفتري بالكامل ، ستحصل على العديد من تصورات تحليل الأداء. الأول والثاني بالتفصيل أداء النموذج فيما يتعلق بزيادة المستخدمين المتزامنين. الأشكال التالية هي أمثلة المرئيات التي تم إنشاؤها لـ ResNet50 نموذج يعمل على ml.g4dn.2xlarge ، مقارنة PyTorch (يسار) مقابل TensorRT (يمين). تُظهر الرسوم البيانية ذات الخط العلوي زمن انتقال النموذج والإنتاجية على المحور الصادي مع تزايد أعداد العاملين المتزامنين مع العملاء المنعكسين على المحور السيني. تعرض المخططات الشريطية السفلية عدد الطلبات الناجحة والفاشلة.

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

بالنظر إلى جميع نماذج الرؤية الحاسوبية التي اختبرناها ، لاحظنا ما يلي:

  • الكمون (بالمللي ثانية) أعلى ، والإنتاجية (الطلبات في الثانية) أقل للنماذج الأكبر (resnet50 > convnext_base > vit_large_patch16_224).
  • تتناسب زيادة وقت الاستجابة مع عدد المستخدمين حيث يتم وضع المزيد من الطلبات في قائمة الانتظار على خادم الاستدلال.
  • تستهلك النماذج الكبيرة المزيد من موارد الحوسبة ويمكن أن تصل إلى حدود الإنتاجية القصوى مع عدد أقل من المستخدمين مقارنة بالطراز الأصغر. لوحظ هذا مع vit_large_patch16_224 النموذج ، الذي سجل أول طلب فاشل عند 140 مستخدمًا متزامنًا. نظرًا لكونه أكبر بكثير من النموذجين الآخرين اللذين تم اختبارهما ، فقد كان بهما أكبر عدد من الطلبات الفاشلة بتزامن أعلى أيضًا. هذه إشارة واضحة إلى أن نقطة النهاية ستحتاج إلى توسيع نطاقها إلى ما بعد مثيل واحد إذا كان القصد هو دعم أكثر من 140 مستخدمًا متزامنًا.

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

في نهاية تشغيل الكمبيوتر الدفتري ، يمكنك أيضًا الحصول على مقارنة موجزة بين نماذج PyTorch مقابل نماذج TensorRT لكل من المقاييس الأربعة الرئيسية. من خلال اختبارنا المعياري ، شهدت جميع نماذج السيرة الذاتية زيادة في أداء النموذج بعد تجميع TensorRT. أخذنا ResNet50 نموذج كمثال مرة أخرى ، انخفض زمن الانتقال بنسبة 32٪ بينما زاد معدل النقل بنسبة 18٪. على الرغم من أن الحد الأقصى لعدد المستخدمين المتزامنين ظل كما هو لـ ResNet50، شهد كلا النموذجين الآخرين تحسنًا بنسبة 14٪ في عدد المستخدمين المتزامنين الذين يمكنهم دعمهم. ومع ذلك ، جاء تحسين أداء TensorRT على حساب زيادة استخدام الذاكرة ، مما أدى إلى تحميل عدد أقل من النماذج بواسطة MME. التأثير أكثر بالنسبة للنماذج التي تستخدم الشبكة العصبية التلافيفية (CNN). في الواقع ، استهلك نموذج ResNet50 الخاص بنا ما يقرب من ضعف ذاكرة GPU من PyTorch إلى TensorRT ، مما أدى إلى تحميل عدد أقل بنسبة 50٪ (46 مقابل 23). نقوم بتشخيص هذا السلوك بشكل أكبر في القسم التالي.

النتائج المعيارية لنماذج البرمجة اللغوية العصبية

بالنسبة لنماذج البرمجة اللغوية العصبية ، استخدم الكمبيوتر الدفتري nlp-benchmark.ipynb لإجراء اختبار التحميل. يجب أن يكون إعداد الكمبيوتر الدفتري متشابهًا جدًا. اختبرنا نموذجين من البرمجة اللغوية العصبية: bert-base-uncased (109M) و roberta-large (335M). يتم تنزيل كل من النموذج المدرب مسبقًا والمميزات المميزة من Hugging Face hub ، ويتم إنشاء حمولة الاختبار من الرمز المميز باستخدام سلسلة عينة. تم تحديد الحد الأقصى لطول التسلسل افتراضيًا عند 128. إذا كنت بحاجة إلى اختبار سلاسل أطول ، فتذكر ضبط هذا المعامل. يؤدي تشغيل دفتر البرمجة اللغوية العصبية NLP إلى إنشاء نفس مجموعة التصورات: Pytorch (يسار) مقابل TensorRT (يمين).

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.
حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

من هذه ، لاحظنا المزيد من فوائد الأداء لـ TensorRT لنماذج البرمجة اللغوية العصبية. أخذ roberta-large نموذج على مثيل ml.g4dn.2xlarge على سبيل المثال ، انخفض زمن انتقال الاستدلال بشكل كبير من 180 مللي ثانية إلى 56 مللي ثانية (تحسن بنسبة 70٪) ، بينما تحسنت الإنتاجية بنسبة 406٪ من 33 طلبًا في الثانية إلى 167. بالإضافة إلى ذلك ، فإن الحد الأقصى لعدد الطلبات المتزامنة زاد المستخدمون بنسبة 50٪ ؛ لم تتم ملاحظة الطلبات الفاشلة حتى وصلنا إلى 180 مستخدمًا متزامنًا ، مقارنة بـ 120 لنموذج PyTorch الأصلي. من حيث استخدام الذاكرة ، رأينا نموذجًا أقل تم تحميله لـ TensorRT (من تسعة نماذج إلى ثمانية). ومع ذلك ، فإن التأثير السلبي أقل بكثير مقارنة بما لاحظناه مع النماذج المستندة إلى CNN.

تحليل استخدام الذاكرة

يوضح الجدول التالي التحليل الكامل لتأثير استخدام الذاكرة من PyTorch إلى TensorRT. ذكرنا سابقًا أن النماذج المستندة إلى CNN تتأثر بشكل سلبي أكثر. ال ResNet50 حقق الطراز انخفاضًا بنسبة تزيد عن 50٪ في عدد الطرز التي تم تحميلها عبر جميع أنواع مثيلات وحدة معالجة الرسومات الثلاثة. Convnext_base حصل على تخفيض أكبر بنسبة 70٪ تقريبًا في جميع المجالات. من ناحية أخرى ، يكون التأثير على نماذج المحولات صغيرًا أو مختلطًا. vit_large_patch16_224 و roberta-large كان متوسط ​​التخفيض حوالي 20٪ و 3٪ على التوالي ، بينما bert-base-uncased تحسن بنسبة 40٪ تقريبًا.

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

حالة استخدام ML معمار نموذج الاسم نوع الطلب الإطار تحميل ماكس نماذج الفارق (٪) متوسط الفارق (٪)
CV سي ان ان Resnet50 ml.g4dn.2xlarge PyTorch 46 -50٪ -50٪
TensorRT 23
ml.g5.2xlarge PyTorch 70 -51٪
TensorRT 34
مل. 3.2xlarge PyTorch 49 -51٪
TensorRT 24
Convnext_base ml.g4dn.2xlarge PyTorch 33 -50٪ -70٪
TensorRT 10
ml.g5.2xlarge PyTorch 50 -70٪
TensorRT 16
مل. 3.2xlarge PyTorch 35 -69٪
TensorRT 11
محول vit_large_patch16_224 ml.g4dn.2xlarge PyTorch 10 -30٪ -20٪
TensorRT 7
ml.g5.2xlarge PyTorch 15 -13٪
TensorRT 13
مل. 3.2xlarge PyTorch 11 -18٪
TensorRT 9
NLP Roberta-large ml.g4dn.2xlarge PyTorch 9 -11٪ -3٪
TensorRT 8
ml.g5.2xlarge PyTorch 13 0%
TensorRT 13
مل. 3.2xlarge PyTorch 9 0%
TensorRT 9
Bert-base-uncased ml.g4dn.2xlarge PyTorch 26 62% 40%
TensorRT 42
ml.g5.2xlarge PyTorch 39 28%
TensorRT 50
مل. 3.2xlarge PyTorch 28 29%
TensorRT 36

تسرد الجداول التالية نتائجنا المعيارية الكاملة لجميع المقاييس عبر جميع أنواع مثيلات GPU الثلاثة.

ml.g4dn.2xlarge

استخدام القضية معمار نموذج الاسم عدد المعلمات الإطار تحميل ماكس نماذج الفارق (٪) زمن الانتقال (بالميلي ثانية) الفارق (٪) الإنتاجية (Qps) الفارق (٪) الحد الأقصى لعدد المستخدمين المتزامنين الفارق (٪)
CV سي ان ان resnet50 25M PyTorch 46 -50٪ 164 -32٪ 120 18% 180 NA
TensorRT 23 . 111 . 142 . 180 .
convnext_base 88M PyTorch 33 -70٪ 154 -22٪ 64 102% 140 14%
TensorRT 10 . 120 . 129 . 160 .
محول vit_large_patch16_224 304M PyTorch 10 -30٪ 425 -69٪ 26 304% 140 14%
TensorRT 7 . 131 . 105 . 160 .
NLP bert-base-uncased 109M PyTorch 26 62% 70 -39٪ 105 142% 140 29%
TensorRT 42 . 43 . 254 . 180 .
roberta-large 335M PyTorch 9 -11٪ 187 -70٪ 33 406% 120 50%
TensorRT 8 . 56 . 167 . 180 .

ml.g5.2xlarge

استخدام القضية معمار نموذج الاسم عدد المعلمات الإطار تحميل ماكس نماذج الفارق (٪) زمن الانتقال (بالميلي ثانية) الفارق (٪) الإنتاجية (Qps) الفارق (٪) الحد الأقصى لعدد المستخدمين المتزامنين الفارق (٪)
CV سي ان ان resnet50 25M PyTorch 70 -51٪ 159 -31٪ 146 14% 180 11%
TensorRT 34 . 110 . 166 . 200 .
convnext_base 88M PyTorch 50 -68٪ 149 -23٪ 134 13% 180 0%
TensorRT 16 . 115 . 152 . 180 .
محول vit_large_patch16_224 304M PyTorch 15 -13٪ 149 -22٪ 105 35% 160 25%
TensorRT 13 . 116 . 142 . 200 .
NLP bert-base-uncased 109M PyTorch 39 28% 65 -29٪ 183 38% 180 11%
TensorRT 50 . 46 . 253 . 200 .
roberta-large 335M PyTorch 13 0% 97 -38٪ 121 46% 140 14%
TensorRT 13 . 60 . 177 . 160 .

مل. 3.2xlarge

استخدام القضية معمار نموذج الاسم عدد المعلمات الإطار تحميل ماكس نماذج الفارق (٪) زمن الانتقال (بالميلي ثانية) الفارق (٪) الإنتاجية (Qps) الفارق (٪) الحد الأقصى لعدد المستخدمين المتزامنين الفارق (٪)
CV سي ان ان resnet50 25M PyTorch 49 -51٪ 197 -41٪ 94 18% 160 -12٪
TensorRT 24 . 117 . 111 . 140 .
convnext_base 88M PyTorch 35 -69٪ 178 -23٪ 89 11% 140 14%
TensorRT 11 . 137 137 . 99 . 160 .
محول vit_large_patch16_224 304M PyTorch 11 -18٪ 186 -28٪ 83 23% 140 29%
TensorRT 9 . 134 . 102 . 180 .
NLP bert-base-uncased 109M PyTorch 28 29% 77 -40٪ 133 59% 140 43%
TensorRT 36 . 46 . 212 . 200 .
roberta-large 335M PyTorch 9 0% 108 -44٪ 88 60% 160 0%
TensorRT 9 . 61 . 141 . 160 .

يلخص الجدول التالي النتائج عبر جميع أنواع المثيلات. يوفر مثيل ml.g5.2xlarge أفضل أداء ، في حين أن مثيل ml.p3.2xlarge يكون أداءً ضعيفًا بشكل عام على الرغم من كونه الأغلى من بين الثلاثة. تُظهر مثيلات g5 و g4dn أفضل قيمة لاستدلال أحمال العمل.

استخدام القضية معمار نموذج الاسم عدد المعلمات الإطار نوع الطلب تحميل ماكس نماذج الفارق (٪) زمن الانتقال (بالميلي ثانية) الفارق (٪) الإنتاجية (Qps) الفارق (٪) الحد الأقصى لعدد المستخدمين المتزامنين
CV سي ان ان resnet50 25M PyTorch ml.g5.2xlarge 70 . 159 . 146 . 180
. . . . . مل. 3.2xlarge 49 . 197 . 94 . 160
. . . . . ml.g4dn.2xlarge 46 . 164 . 120 . 180
CV CN resnet50 25M TensorRT ml.g5.2xlarge 34 -51٪ 110 -31٪ 166 14% 200
. . . . . مل. 3.2xlarge 24 -51٪ 117 -41٪ 111 18% 200
. . . . . ml.g4dn.2xlarge 23 -50٪ 111 -32٪ 142 18% 180
NLP محول bert-base-uncased 109M بيتورتش ml.g5.2xlarge 39 . 65 . 183 . 180
. . . . . مل. 3.2xlarge 28 . 77 . 133 . 140
. . . . . ml.g4dn.2xlarge 26 . 70 . 105 . 140
NLP محول bert-base-uncased 109M TensorRT ml.g5.2xlarge 50 28% 46 -29٪ 253 38% 200
. . . . . مل. 3.2xlarge 36 29% 46 -40٪ 212 59% 200
. . . . . ml.g4dn.2xlarge 42 62% 43 -39٪ 254 142% 180

تنظيف

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

delete_endpoint(sm_client, sm_model_name, endpoint_config_name, endpoint_name) ! aws s3 rm --recursive {trt_mme_path}

وفي الختام

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


عن المؤلفين

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.جيمس وو هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي في AWS. مساعدة العملاء على تصميم وبناء حلول الذكاء الاصطناعي / التعلم الآلي. يغطي عمل James مجموعة واسعة من حالات استخدام ML ، مع اهتمام أساسي برؤية الكمبيوتر والتعلم العميق وتوسيع ML عبر المؤسسة. قبل انضمامه إلى AWS ، كان جيمس مهندسًا معماريًا ومطورًا وقائدًا في مجال التكنولوجيا لأكثر من 10 سنوات ، بما في ذلك 6 سنوات في الهندسة و 4 سنوات في صناعات التسويق والإعلان.

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.فيكرام إيلانجو هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي في أمازون ويب سيرفيسز ، ومقرها فرجينيا بالولايات المتحدة الأمريكية. يساعد Vikram عملاء الصناعة المالية والتأمينية في التصميم والقيادة الفكرية لبناء ونشر تطبيقات التعلم الآلي على نطاق واسع. يركز حاليًا على معالجة اللغة الطبيعية ، والذكاء الاصطناعي المسؤول ، وتحسين الاستدلال وتوسيع ML عبر المؤسسة. في أوقات فراغه ، يستمتع بالسفر والتنزه والطهي والتخييم مع عائلته.

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.سيمون زامارين هو مهندس حلول AI / ML الذي ينصب تركيزه الرئيسي على مساعدة العملاء على استخراج القيمة من أصول البيانات الخاصة بهم. في أوقات فراغه ، يستمتع Simon بقضاء الوقت مع العائلة ، وقراءة الخيال العلمي ، والعمل على العديد من مشاريع DIY المنزلية.

حقق أداءً عاليًا على نطاق واسع لخدمة النماذج باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع ذكاء بيانات GPU PlatoBlockchain. البحث العمودي. منظمة العفو الدولية. سوراب تريكاندي هو مدير أول للمنتجات في Amazon SageMaker Inference. إنه متحمس للعمل مع العملاء وتحفزه هدف إضفاء الطابع الديمقراطي على التعلم الآلي. يركز على التحديات الأساسية المتعلقة بنشر تطبيقات ML المعقدة ، ونماذج ML متعددة المستأجرين ، وتحسين التكلفة ، وجعل نشر نماذج التعلم العميق أكثر سهولة. في أوقات فراغه ، يستمتع سوراب بالمشي لمسافات طويلة والتعرف على التقنيات المبتكرة واتباع TechCrunch وقضاء الوقت مع عائلته.

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

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