أوبونتو/بيثون -2.7 | Ubuntu/Python-3.6 |
---|---|
يعد Multi Model Server (MMS) أداة مرنة وسهلة الاستخدام لخدمة نماذج التعلم العميق المدربة باستخدام أي إطار عمل ML/DL.
استخدم MMS Server CLI ، أو صور Docker التي تم تكوينها مسبقًا ، لبدء خدمة تقوم بإعداد نقاط نهاية HTTP للتعامل مع طلبات استنتاج النموذج.
وترد أدناه نظرة عامة سريعة وأمثلة لكل من التقديم والتعبئة. يتم توفير الوثائق والأمثلة التفصيلية في مجلد المستندات.
انضم إلى لدينا قناة Slack للتواصل مع فريق التطوير ، وطرح الأسئلة ، واكتشف ما هو الطبخ وأكثر!
قبل المتابعة مع هذا المستند ، تأكد من أن لديك المتطلبات الأساسية التالية.
Ubuntu ، centos ، أو macos. دعم Windows هو تجريبي. ستركز التعليمات التالية على Linux و MacOS فقط.
يتطلب Python - Multi Model Server Python لتشغيل العمال.
PIP - PIP هو نظام إدارة حزم Python.
Java 8 - يتطلب Multi Model Server Java 8 للبدء. لديك الخيارات التالية لتثبيت Java 8:
لأوبونتو:
sudo apt-get install openjdk-8-jre-headless
ل Centos:
sudo yum install java-1.8.0-openjdk
لماكوس:
brew tap homebrew/cask-versions
brew update
brew cask install adoptopenjdk8
الخطوة 1: إعداد بيئة افتراضية
نوصي بتثبيت وتشغيل خادم النماذج المتعددة في بيئة افتراضية. إنها ممارسة جيدة لتشغيل وتثبيت جميع تبعيات Python في البيئات الافتراضية. سيوفر ذلك عزل التبعيات ويخفف من إدارة التبعية.
خيار واحد هو استخدام VirtualEnv. يستخدم هذا لإنشاء بيئات بيثون الظاهرية. يمكنك تثبيت وتنشيط VirtualEnv لـ Python 2.7 على النحو التالي:
pip install virtualenv
ثم قم بإنشاء بيئة افتراضية:
# Assuming we want to run python2.7 in /usr/local/bin/python2.7
virtualenv -p /usr/local/bin/python2.7 /tmp/pyenv2
# Enter this virtual environment as follows
source /tmp/pyenv2/bin/activate
الرجوع إلى وثائق VirtualEnv لمزيد من المعلومات.
الخطوة 2: تثبيت MXNET MMS لن يقوم بتثبيت محرك MXNET افتراضيًا. إذا لم يتم تثبيته بالفعل في بيئتك الافتراضية ، فيجب عليك تثبيت إحدى حزم MXNET PIP.
لاستنتاج وحدة المعالجة المركزية ، يوصى mxnet-mkl
. تثبيته على النحو التالي:
# Recommended for running Multi Model Server on CPU hosts
pip install mxnet-mkl
لاستدلال GPU ، يوصى mxnet-cu92mkl
. تثبيته على النحو التالي:
# Recommended for running Multi Model Server on GPU hosts
pip install mxnet-cu92mkl
الخطوة 3: تثبيت أو ترقية MMS على النحو التالي:
# Install latest released version of multi-model-server
pip install multi-model-server
للترقية من إصدار سابق من multi-model-server
، يرجى إحالة المستند المرجعي للترحيل.
ملحوظات:
model-archiver
مع MMS كاعتماد. انظر نماذج Archiver لمزيد من الخيارات والتفاصيل. بمجرد التثبيت ، يمكنك رفع خادم MMS Model وتشغيله بسرعة كبيرة. جرب --help
لرؤية جميع خيارات CLI متاحة.
multi-model-server --help
في هذه البداية السريعة ، سنتخطى معظم الميزات ، ولكن تأكد من إلقاء نظرة على مستندات الخادم الكاملة عندما تكون جاهزًا.
فيما يلي مثال سهل لخدمة نموذج تصنيف الكائن:
multi-model-server --start --models squeezenet=https://s3.amazonaws.com/model-server/model_archive_1.0/squeezenet_v1.1.mar
مع تنفيذ الأمر أعلاه ، لديك MMS تعمل على مضيفك ، والاستماع لطلبات الاستدلال. يرجى ملاحظة أنه إذا قمت بتحديد طراز (طرازات) أثناء بدء تشغيل MMS - فسيقوم تلقائيًا بتوسيع نطاق العمال الخلفيين إلى الرقم المساواة في VCPUs المتاح (إذا قمت بتشغيل على مثيل وحدة المعالجة المركزية) أو إلى عدد وحدات معالجة الرسومات المتاحة (إذا قمت بتشغيل على مثيل GPU ). في حالة وجود مضيفين أقوياء مع الكثير من موارد الحساب (VCPUS أو GPU) قد تستغرق عملية البدء والتشغيل التلقائي وقتًا كبيرًا. إذا كنت ترغب في تقليل وقت بدء تشغيل MMS إلى الحد الأدنى ، فيمكنك محاولة تجنب تسجيل النموذج وتوسيع نطاقه خلال وقت البدء ونقل ذلك إلى نقطة لاحقة باستخدام مكالمات واجهة برمجة تطبيقات الإدارة المقابلة (هذا يسمح بالتحكم الدقيق في الحبوب إلى مقدار الموارد المخصصة لها أي نموذج معين).
لاختبارها ، يمكنك فتح نافذة طرفية جديدة بجوار MMS التي تعمل. بعد ذلك ، يمكنك استخدام curl
لتنزيل إحدى هذه الصور اللطيفة لعلم هريرة و Curl -o
سوف تسميته kitten.jpg
لك. بعد ذلك ، سوف curl
POST
إلى MMS نقطة النهاية مع صورة هريرة.
في المثال أدناه ، نقدم اختصار لهذه الخطوات.
curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
curl -X POST http://127.0.0.1:8080/predictions/squeezenet -T kitten.jpg
ستؤدي نقطة النهاية إلى إرجاع استجابة التنبؤ في JSON. سيبدو مثل النتيجة التالية:
[
{
"probability" : 0.8582232594490051 ,
"class" : " n02124075 Egyptian cat "
},
{
"probability" : 0.09159987419843674 ,
"class" : " n02123045 tabby, tabby cat "
},
{
"probability" : 0.0374876894056797 ,
"class" : " n02123159 tiger cat "
},
{
"probability" : 0.006165083032101393 ,
"class" : " n02128385 leopard, Panthera pardus "
},
{
"probability" : 0.0031716004014015198 ,
"class" : " n02127052 lynx, catamount "
}
]
سترى هذه النتيجة في الاستجابة لدعوة curl
إلى نقطة النهاية المتوقعة ، وفي سجلات الخادم في النافذة الطرفية التي تعمل على تشغيل MMS. كما يتم تسجيلها محليًا بمقاييس.
يمكن تنزيل الطرز الأخرى من حديقة حيوانات النموذج ، لذا جرب بعضًا من تلك أيضًا.
لقد رأيت الآن مدى سهولة خدمة نموذج التعلم العميق مع MMS! هل ترغب في معرفة المزيد؟
لإيقاف مثيل خادم الطراز الحالي ، قم بتشغيل الأمر التالي:
$ multi-model-server --stop
سترى الإخراج يحدد أن خادم النماذج المتعدد قد توقف.
يمكّنك MMS من حزم جميع القطع الأثرية النموذجية في أرشيف نموذج واحد. هذا يجعل من السهل مشاركة النماذج الخاصة بك ونشرها. لحزم نموذج ، تحقق من وثائق أرشيف النموذج
تصفح إلى مستندات ReadMe للفهرس الكامل للوثائق. يتضمن ذلك المزيد من الأمثلة ، وكيفية تخصيص خدمة API ، وتفاصيل نقطة نهاية API ، والمزيد.
فيما يلي بعض العروض التوضيحية لتطبيقات التعلم العميق ، مدعوم من MMS:
تصنيف مراجعة المنتج ![]() | البحث البصري ![]() |
الوجه التعرف على العاطفة ![]() | نقل النمط العصبي ![]() |
نرحب بجميع المساهمات!
لتقديم خطأ أو طلب ميزة ، يرجى تقديم مشكلة github. طلبات السحب موضع ترحيب.