الأمازون 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 الفردية فقط. للحصول على قائمة أنواع المثيل المدعومة ، ارجع إلى الخوارزميات والأطر والمثيلات المدعومة.
يتكون إجراء قياس الأداء من الخطوات التالية:
- استرجع نموذجًا تم تدريبه مسبقًا من محور نموذج.
- قم بإعداد الأداة النموذجية للخدمة في SageMaker MMEs (انظر قم بتشغيل نماذج التعلم العميق المتعددة على وحدة معالجة الرسومات باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker لمزيد من التفاصيل).
- انشر SageMaker MME على مثيل GPU.
- حدد الحد الأقصى لعدد النماذج التي يمكن تحميلها في ذاكرة وحدة معالجة الرسومات ضمن حد معين.
- استخدم Locust Load Testing Framework لمحاكاة حركة المرور التي تستدعي بشكل عشوائي النماذج المحملة على المثيل.
- جمع البيانات وتحليل النتائج.
- اختياريًا ، كرر الخطوات من 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},
…
]
لاحظ أننا قمنا فقط بقياس نقطة النهاية بنماذج متجانسة تعمل جميعها على قواعد تقديم متسقة باستخدام 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 (يمين). تُظهر الرسوم البيانية ذات الخط العلوي زمن انتقال النموذج والإنتاجية على المحور الصادي مع تزايد أعداد العاملين المتزامنين مع العملاء المنعكسين على المحور السيني. تعرض المخططات الشريطية السفلية عدد الطلبات الناجحة والفاشلة.
بالنظر إلى جميع نماذج الرؤية الحاسوبية التي اختبرناها ، لاحظنا ما يلي:
- الكمون (بالمللي ثانية) أعلى ، والإنتاجية (الطلبات في الثانية) أقل للنماذج الأكبر (
resnet50 > convnext_base > vit_large_patch16_224
). - تتناسب زيادة وقت الاستجابة مع عدد المستخدمين حيث يتم وضع المزيد من الطلبات في قائمة الانتظار على خادم الاستدلال.
- تستهلك النماذج الكبيرة المزيد من موارد الحوسبة ويمكن أن تصل إلى حدود الإنتاجية القصوى مع عدد أقل من المستخدمين مقارنة بالطراز الأصغر. لوحظ هذا مع
vit_large_patch16_224
النموذج ، الذي سجل أول طلب فاشل عند 140 مستخدمًا متزامنًا. نظرًا لكونه أكبر بكثير من النموذجين الآخرين اللذين تم اختبارهما ، فقد كان بهما أكبر عدد من الطلبات الفاشلة بتزامن أعلى أيضًا. هذه إشارة واضحة إلى أن نقطة النهاية ستحتاج إلى توسيع نطاقها إلى ما بعد مثيل واحد إذا كان القصد هو دعم أكثر من 140 مستخدمًا متزامنًا.
في نهاية تشغيل الكمبيوتر الدفتري ، يمكنك أيضًا الحصول على مقارنة موجزة بين نماذج 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 (يمين).
من هذه ، لاحظنا المزيد من فوائد الأداء لـ 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. لتسهيل الأمر عليك ، تحتوي ملفات دفتر الملاحظات على رمز التنظيف التالي لمساعدتك في حذفها:
وفي الختام
في هذا المنشور ، شاركنا نتائج الاختبار والتحليل للعديد من نماذج الشبكات العصبية العميقة التي تعمل على نقاط النهاية متعددة النماذج SageMaker باستخدام وحدة معالجة الرسومات. يجب أن توفر النتائج والرؤى التي شاركناها مقطعًا عرضيًا معقولًا للأداء عبر مقاييس وأنواع مثيلات مختلفة. في هذه العملية ، قدمنا أيضًا نهجنا الموصى به لإجراء اختبار معياري لـ SageMaker MMEs باستخدام وحدة معالجة الرسومات. يمكن أن تساعدك الأدوات وعينة التعليمات البرمجية التي قدمناها في بدء اختبار قياس الأداء واتخاذ قرار أكثر استنارة بشأن كيفية استضافة مئات من نماذج DNN بطريقة فعالة من حيث التكلفة على أجهزة الحوسبة السريعة. لبدء قياس النماذج الخاصة بك مع دعم MME لوحدة معالجة الرسومات ، يرجى الرجوع إلى الخوارزميات والأطر والمثيلات المدعومة و جيثب ريبو للحصول على أمثلة وتوثيق إضافي.
عن المؤلفين
جيمس وو هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي في AWS. مساعدة العملاء على تصميم وبناء حلول الذكاء الاصطناعي / التعلم الآلي. يغطي عمل James مجموعة واسعة من حالات استخدام ML ، مع اهتمام أساسي برؤية الكمبيوتر والتعلم العميق وتوسيع ML عبر المؤسسة. قبل انضمامه إلى AWS ، كان جيمس مهندسًا معماريًا ومطورًا وقائدًا في مجال التكنولوجيا لأكثر من 10 سنوات ، بما في ذلك 6 سنوات في الهندسة و 4 سنوات في صناعات التسويق والإعلان.
فيكرام إيلانجو هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي في أمازون ويب سيرفيسز ، ومقرها فرجينيا بالولايات المتحدة الأمريكية. يساعد Vikram عملاء الصناعة المالية والتأمينية في التصميم والقيادة الفكرية لبناء ونشر تطبيقات التعلم الآلي على نطاق واسع. يركز حاليًا على معالجة اللغة الطبيعية ، والذكاء الاصطناعي المسؤول ، وتحسين الاستدلال وتوسيع ML عبر المؤسسة. في أوقات فراغه ، يستمتع بالسفر والتنزه والطهي والتخييم مع عائلته.
سيمون زامارين هو مهندس حلول AI / ML الذي ينصب تركيزه الرئيسي على مساعدة العملاء على استخراج القيمة من أصول البيانات الخاصة بهم. في أوقات فراغه ، يستمتع Simon بقضاء الوقت مع العائلة ، وقراءة الخيال العلمي ، والعمل على العديد من مشاريع DIY المنزلية.
سوراب تريكاندي هو مدير أول للمنتجات في Amazon SageMaker Inference. إنه متحمس للعمل مع العملاء وتحفزه هدف إضفاء الطابع الديمقراطي على التعلم الآلي. يركز على التحديات الأساسية المتعلقة بنشر تطبيقات ML المعقدة ، ونماذج ML متعددة المستأجرين ، وتحسين التكلفة ، وجعل نشر نماذج التعلم العميق أكثر سهولة. في أوقات فراغه ، يستمتع سوراب بالمشي لمسافات طويلة والتعرف على التقنيات المبتكرة واتباع TechCrunch وقضاء الوقت مع عائلته.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/achieve-high-performance-at-scale-for-model-serving-using-amazon-sagemaker-multi-model-endpoints-with-gpu/
- 10
- 100
- 11
- 2022
- 7
- a
- القدرة
- من نحن
- معجل
- يمكن الوصول
- وفقا لذلك
- بدقة
- التأهيل
- في
- وأضاف
- إضافة
- إضافي
- وبالإضافة إلى ذلك
- اعتمد
- دعاية
- بعد
- AI
- AI / ML
- خوارزميات
- الكل
- يسمح
- بالرغم ان
- أمازون
- الأمازون SageMaker
- أمازون ويب سيرفيسز
- كمية
- تحليل
- تحليل
- و
- آخر
- التطبيقات
- نهج
- ما يقرب من
- هندسة معمارية
- ممتلكات
- السيارات
- تلقائيا
- المتوسط
- AWS
- شريط
- على أساس
- لان
- قبل
- وراء
- يجري
- اعتقد
- مؤشر
- وقيم
- المقارنة
- تستفيد
- أفضل
- Beyond
- أكبر
- المليارات
- مجلس
- زيادة
- الملابس السفلية
- العازلة
- نساعدك في بناء
- عبء
- حقيبة
- الحالات
- التحديات
- الخصائص
- اسعارنا محددة من قبل وزارة العمل
- رسم
- الرسوم البيانية
- واضح
- زبون
- سي ان ان
- الكود
- تركيبات
- مقارنة
- مقارنة
- مقارنة
- إكمال
- مجمع
- تعقيد
- تتألف
- إحصاء
- الكمبيوتر
- رؤية الكمبيوتر
- اختتام
- منافس
- الاعداد
- ثابتة
- تستهلك
- مستهلك
- استهلاك
- وعاء
- سياق الكلام
- استمر
- جوهر
- التكلفة
- فعاله من حيث التكلفه
- يغطي
- عبر
- حالياًّ
- حاليا
- على
- العملاء
- البيانات
- نقاط البيانات
- القرار
- عميق
- التعلم العميق
- أعمق
- الافتراضات
- نقل
- الطلب
- الديمقراطية
- شرح
- اعتمادا
- نشر
- نشر
- نشر
- نشر
- تصميم
- مطلوب
- على الرغم من
- التفاصيل
- تفاصيل
- حدد
- مصمم
- المطور
- جهاز
- مختلف
- اليدويه
- توثيق
- بإمكانك تحميله
- بشكل كبير
- ديناميكي
- كل
- في وقت سابق
- أسهل
- إما
- نقطة النهاية
- الهندسة
- مشروع
- كامل
- خطأ
- حتى
- مثال
- أمثلة
- تجاوز
- متوقع
- ذو تكلفة باهظة
- خبرة
- مد
- استخراج
- الوجه
- العوامل
- فشل
- للعائلات
- الأزياء
- قابليه
- الأرقام
- ملفات
- مالي
- الاسم الأول
- تركز
- ركز
- ويركز
- متابعيك
- الإطار
- الأطر
- تبدأ من
- بالإضافة إلى
- إضافي
- على العموم
- ولدت
- يولد
- توليدي
- الذكاء الاصطناعي التوليدي
- دولار فقط واحصل على خصم XNUMX% على جميع
- يعطي
- هدف
- الذهاب
- وحدة معالجة الرسوميات:
- وحدات معالجة الرسومات
- الرسوم البيانية
- متزايد
- توجيه
- يد
- أجهزة التبخير
- مساعدة
- مساعدة
- يساعد
- مرتفع
- أعلى
- مضيف
- استضافت
- استضافة
- منـزل
- كيفية
- كيفية
- لكن
- HTML
- HTTPS
- محور
- مئات
- المثالي
- صورة
- التأثير
- أثر
- تحسن
- تحسين
- in
- تتضمن
- بما فيه
- القيمة الاسمية
- زيادة
- الزيادات
- في ازدياد
- فرد
- الصناعات
- العالمية
- تأثير
- وأبلغ
- البنية التحتية
- في البداية
- مبتكرة
- تقنيات مبتكرة
- إدخال
- رؤى
- مثل
- التأمين
- نية
- مصلحة
- أدخلت
- المُقدّمة
- يتضرع
- IT
- انضمام
- القفل
- لغة
- كبير
- أكبر
- أكبر
- كمون
- زعيم
- القيادة
- تعلم
- مغادرة
- الطول
- حدود
- خط
- قائمة
- قوائم
- تحميل
- جار التحميل
- يعد
- بحث
- منخفض
- آلة
- آلة التعلم
- الرئيسية
- جعل
- القيام ب
- مدير
- يدير
- إدارة
- كثير
- علامة
- التسويق
- اعلان و تسويق
- ماكس
- تعظيم
- أقصى
- قياس
- الإجراءات
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- المذكورة
- طرق
- المقاييس
- قاصر
- مختلط
- ML
- نموذج
- عارضات ازياء
- الأكثر من ذلك
- أكثر
- الاكثر شهره
- الدافع
- MS
- متعدد
- الاسم
- طبيعي
- معالجة اللغات الطبيعية
- حاجة
- سلبي
- سلبا
- شبكة
- الشبكة العصبية
- جديد
- البرمجة اللغوية العصبية
- مفكرة
- نوفمبر
- عدد
- أرقام
- ONE
- تعمل
- تشغيل
- التحسين
- الأمثل
- خيار
- أصلي
- أخرى
- في الخارج
- الكلي
- الخاصة
- سلام
- المعلمة
- المعلمات
- عاطفي
- نمط
- أنماط
- فى المائة
- نفذ
- أداء
- أداء
- فترة
- اختيار
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- البوينت
- نقاط
- الرائج
- ممكن
- منشور
- سابقا
- ابتدائي
- قبل
- عملية المعالجة
- معالجة
- المنتج
- مدير المنتج
- مشروع ناجح
- لائق
- تزود
- المقدمة
- ويوفر
- وضع
- pytorch
- كمية
- المنحدر
- منحدر
- عشوائية
- نطاق
- سريع
- معدل
- الوصول
- التي تم الوصول إليها
- الوصول إلى
- نادي القراءة
- معقول
- الأسباب
- نوصي
- موصى به
- مسجل
- تخفيض
- عقار مخفض
- تعكس
- عكست
- التحيات
- ذات صلة
- الموثوقية
- تذكر
- كرر
- متكرر
- طلب
- طلبات
- المتطلبات الأساسية
- يتطلب
- الموارد
- استجابة
- مسؤول
- مما أدى
- النتائج
- يجري
- تشغيل
- sagemaker
- الاستدلال SageMaker
- نفسه
- تحجيم
- حجم
- التحجيم
- الخيال العلمي
- الثاني
- ثواني
- القسم
- كبير
- تسلسل
- خدماتنا
- خدمة
- طقم
- الإعداد
- عدة
- الشكل
- الأشكال
- مشاركة
- شاركت
- مشاركة
- ينبغي
- إظهار
- أظهرت
- يظهر
- جانب
- سيجنل
- بشكل ملحوظ
- مماثل
- سيمون
- الاشارات
- عزباء
- المقاس
- الأحجام
- صغير
- الأصغر
- حل
- الحلول
- بعض
- الفضاء
- متخصص
- محدد
- الإنفاق
- استقرار
- بدأت
- بقي
- ثابت
- خطوة
- خطوات
- لا يزال
- تخزين
- استراتيجيات
- قوي
- ناجح
- هذه
- تلخيص
- ملخص
- أعلى
- الدعم
- مدعومة
- الدعم
- جدول
- أخذ
- مع الأخذ
- تشكرونش
- التكنولوجيا
- تكنولوجيا
- قالب
- النماذج
- سياسة الحجب وتقييد الوصول
- تجربه بالعربي
- الاختبار
- •
- من مشاركة
- وبالتالي
- فكر
- قيادة الفكر
- ثلاثة
- عتبة
- عبر
- الإنتاجية
- الوقت
- إلى
- سويا
- أدوات
- تيشرت
- الإجمالي
- حركة المرور
- السفر
- محاكمة
- مرتين
- أنواع
- عادة
- الولايات المتحدة الأميركية
- تستخدم
- حالة الاستخدام
- مستخدم
- المستخدمين
- قيمنا
- مختلف
- فرجينيا
- رؤيتنا
- مذكرة
- الويب
- خدمات ويب
- ابحث عن
- سواء
- التي
- في حين
- كامل
- واسع
- مدى واسع
- سوف
- في غضون
- بدون
- للعمل
- العمال
- عامل
- سوف
- سنوات
- التوزيعات للسهم الواحد
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت