يتم إنشاء كل يوم 2.5 بايت من البيانات ، بناءً على دراسة IBM. الكثير من هذه البيانات هي بيانات غير منظمة ، مثل النصوص الكبيرة والتسجيلات الصوتية والصور. من أجل القيام بشيء مفيد مع البيانات ، يجب أولاً تحويله إلى بيانات منظمة.
في نمط الرمز هذا ، سوف نستخدم أحد النماذج من Exchange Asset Exchange (MAX) ، وهو تبادل يمكن للمطورين العثور عليه وتجربة نماذج التعلم العميق مفتوحة المصدر. على وجه التحديد ، سوف نستخدم مولد تسميات Caption Image لإنشاء تطبيق ويب سيصدر صورًا ويسمح للمستخدم بالتصفية من خلال محتوى الصورة القائم على الصور. يوفر تطبيق الويب واجهة مستخدم تفاعلية مدعومة بخادم بيثون خفيف الوزن باستخدام Tornado. يلتقط الخادم الصور عبر واجهة المستخدم ويرسلها إلى نقطة نهاية الراحة للنموذج ويعرض التسميات التوضيحية التي تم إنشاؤها على واجهة المستخدم. يتم إعداد نقطة نهاية الراحة في النموذج باستخدام صورة Docker المتوفرة على Max. يعرض واجهة المستخدم على الويب التسميات التوضيحية التي تم إنشاؤها لكل صورة بالإضافة إلى سحابة Word التفاعلية لتصفية الصور بناءً على التسمية التوضيحية الخاصة بها.
عندما يكمل القارئ نمط الرمز هذا ، سوف يفهمون كيفية:

فيما يلي حديث في Spark+AI Summit 2018 حول Max يتضمن عرضًا قصيرًا لتطبيق الويب.
طرق تشغيل نمط الكود:
اتبع نشر مستند النموذج لنشر نموذج مولد Caption Image إلى IBM Cloud. إذا كان لديك بالفعل نقطة نهاية طراز API متاحة ، فيمكنك تخطي هذه العملية.
ملاحظة: قد يستغرق نشر النموذج بعض الوقت ، للذهاب بشكل أسرع ، يمكنك محاولة التشغيل محليًا.
اضغط على زر Deploy to IBM Cloud . إذا لم يكن لديك حساب IBM Cloud حتى الآن ، فستحتاج إلى إنشاء حساب.
انقر فوق Delivery Pipeline وانقر فوق الزر Create + في النموذج لإنشاء IBM Cloud API Key لتطبيق الويب.

بمجرد إنشاء مفتاح API ، سيتم ملء أقسام Region Organization Space . املأ قسم Image Caption Generator Model API Endpoint مع نقطة النهاية التي تم نشرها أعلاه ، ثم انقر فوق Create .
يجب أن يكون تنسيق هذا الإدخال
http://170.0.0.1:5000

في سلاسل الأدوات ، انقر فوق Delivery Pipeline لمشاهدته أثناء نشر التطبيق. بمجرد نشرها ، يمكن عرض التطبيق من خلال النقر فوق View app .

يمكنك أيضًا نشر الطراز وتطبيق الويب على Kubernetes باستخدام أحدث صور Docker على Quay.
على مجموعة Kubernetes الخاصة بك ، قم بتشغيل الأوامر التالية:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Caption-Generator/master/max-image-caption-generator.yaml
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Image-Caption-Generator-Web-App/master/max-image-caption-generator-web-app.yaml سيكون تطبيق الويب متاحًا في المنفذ 8088 من المجموعة الخاصة بك. سيكون النموذج متاحًا داخليًا فقط ، ولكن يمكن الوصول إليه خارجيًا من خلال NodePort .
ملاحظة: لنشر تطبيق الويب على IBM Cloud ، يوصى باتباع Exploy to IBM Cloud Ergansions أعلاه بدلاً من النشر مع خدمة IBM Cloud Kubernetes.
ملاحظة: هناك حاجة إلى هذه الخطوات فقط عند التشغيل محليًا بدلاً من استخدام زر
Deploy to IBM Cloud.
ملاحظة: مجموعة الإرشادات في هذا القسم هي نسخة معدلة من الإصدار الموجود في صفحة مشروع مولد Caption Image
لتشغيل صورة Docker ، التي تبدأ تلقائيًا في واجهة برمجة تطبيقات التقديم النموذجية:
docker run -it -p 5000:5000 quay.io/codait/max-image-caption-generator
سيؤدي ذلك إلى سحب صورة تم تصميمها مسبقًا من Quay (أو استخدام صورة موجودة إذا تم تخزينها محليًا بالفعل) وقم بتشغيلها. إذا كنت تفضل إنشاء النموذج محليًا ، فيمكنك اتباع الخطوات في README النموذجية.
لاحظ أن صورة Docker هذه هي وحدة المعالجة المركزية هذه فقط (سنضيف دعمًا لصور GPU لاحقًا).
يقوم خادم API تلقائيًا بإنشاء صفحة وثائق اختيارية تفاعلية. انتقل إلى http://localhost:5000 لتحميله. من هناك يمكنك استكشاف API وأيضًا إنشاء طلبات اختبار.
استخدم model/predict نقطة النهاية لتحميل ملف اختبار واحصل على تسميات توضيحية للصورة من API.
يحتوي مجلد عينات النموذج على بعض الصور التي يمكنك استخدامها لاختبار واجهة برمجة التطبيقات ، أو يمكنك استخدامها.
يمكنك أيضًا اختباره على سطر الأوامر ، على سبيل المثال:
curl -F " image=@path/to/image.jpg " -X POST http://localhost:5000/model/predict{
"status" : " ok " ,
"predictions" : [
{
"index" : " 0 " ,
"caption" : " a man riding a wave on top of a surfboard . " ,
"probability" : 0.038827644239537
},
{
"index" : " 1 " ,
"caption" : " a person riding a surf board on a wave " ,
"probability" : 0.017933410519265
},
{
"index" : " 2 " ,
"caption" : " a man riding a wave on a surfboard in the ocean . " ,
"probability" : 0.0056628732021868
}
]
}استنساخ مستودع تطبيق الويب لمولد توضيحي الصورة محليًا عن طريق تشغيل الأمر التالي:
git clone https://github.com/IBM/MAX-Image-Caption-Generator-Web-App
ملاحظة: قد تحتاج إلى
cd ..
ثم قم بتغيير الدليل إلى المستودع المحلي
cd MAX-Image-Caption-Generator-Web-App
قبل تشغيل تطبيق الويب هذا ، يجب عليك تثبيت تبعياته:
pip install -r requirements.txt
يمكنك بعد ذلك بدء تشغيل تطبيق الويب عن طريق التشغيل:
python app.py
بمجرد الانتهاء من معالجة الصور الافتراضية (<1 دقيقة) ، يمكنك الوصول إلى تطبيق الويب على: http://localhost:8088
يجب أن تتوفر نقطة نهاية مولد Caption Caption على http://localhost:5000 لتطبيق الويب لبدء تشغيله بنجاح.
إذا كنت ترغب في استخدام منفذ مختلف أو تقوم بتشغيل نقطة نهاية ML في موقع مختلف ، فيمكنك تغييره بخيارات سطر الأوامر:
python app.py --port=[new port] --ml-endpoint=[endpoint url including protocol and port]
لتشغيل تطبيق الويب مع Docker ، تحتاج الحاويات التي تعمل على تشغيل خادم الويب وتحتاج نقطة النهاية إلى مشاركة مكدس الشبكة نفسها. يتم ذلك في الخطوات التالية:
قم بتعديل الأمر الذي يقوم بتشغيل نقطة نهاية الراحة في توضيح صورة الصورة لرسم خريطة منفذ إضافي في الحاوية إلى منفذ على جهاز المضيف. في المثال أدناه ، يتم تعيينه إلى المنفذ 8088 على المضيف ولكن يمكن أيضًا استخدام المنافذ الأخرى.
docker run -it -p 5000:5000 -p 8088:8088 --name max-image-caption-generator quay.io/codait/max-image-caption-generator
قم ببناء صورة تطبيق الويب عن طريق التشغيل:
docker build -t max-image-caption-generator-web-app .
قم بتشغيل حاوية تطبيق الويب باستخدام:
docker run --net='container:max-image-caption-generator' -it max-image-caption-generator-web-app
يمكنك أيضًا نشر تطبيق الويب مع أحدث صورة Docker المتاحة على quay.io عن طريق التشغيل:
docker run --net='container:max-image-caption-generator' -it quay.io/codait/max-image-caption-generator-web-app
سيستخدم هذا حاوية Docker النموذجية أعلاه ويمكن تشغيلها دون استنساخ تطبيق الويب repo محليًا.

هناك كمية كبيرة من الصور التي تم تحميلها في تطبيق ويب طويل المدى
عند تشغيل تطبيق الويب على
http://localhost:8088تتوفر صفحة المسؤول علىhttp://localhost:8088/cleanupالتي تتيح للمستخدم حذف جميع الملفات التي تم تحميلها من المستخدمين من الخادم.[ملاحظة: هذا يحذف جميع الصور التي تم تحميلها من قبل المستخدم]

تم ترخيص نمط الرمز هذا بموجب ترخيص برنامج Apache ، الإصدار 2. يتم ترخيص كائنات رمز الطرف الثالث المنفصل ضمن نمط الرمز هذا من قبل مقدمي الخدمات المعنيين وفقًا لتراخيصهم المنفصلة. تخضع المساهمات لشهادة المنشأ للمطور ، الإصدار 1.1 (DCO) وترخيص برنامج Apache ، الإصدار 2.
أسئلة وأجوبة ترخيص برنامج Apache (ASL)