نحن نعيش في أوقات مثيرة ، مع إعلانات عن أحدث التقنيات كل أسبوع. أصدرت شركة OpenAI للتو نموذج تحويل النص إلى صورة المتطور DALLE 2.
تمكن عدد قليل فقط من الأشخاص من الوصول المبكر إلى نظام ذكاء اصطناعي جديد يمكنه إنشاء رسومات واقعية من أوصاف اللغة الطبيعية. لا يزال مغلقًا للجمهور.
ثم أصدرت منظمة العفو الدولية الاستقرار انتشار مستقر نموذج ، متغير مفتوح المصدر لـ DALLE2. لقد غير هذا الإطلاق كل شيء. كان الناس في جميع أنحاء الإنترنت ينشرون نتائج سريعة ويفاجئون بالفن الواقعي.
ما هو الانتشار المستقر؟
انتشار مستقر هو نموذج للتعلم الآلي قادر على إنشاء صور من النص ، وتغيير الصور اعتمادًا على النص ، وملء التفاصيل على الصور منخفضة الدقة أو منخفضة التفاصيل.
تم تدريبه على مليارات الصور ويمكنه تقديم نتائج تعادل DALL-E2 و ميدجورني. الاستقرار AI اخترعه ، وتم نشره في 22 أغسطس 2022.
ولكن مع الموارد الحسابية المحلية المحدودة ، يستغرق نموذج Stable Diffusion وقتًا طويلاً لإنشاء صور عالية الجودة. يوفر لنا تشغيل النموذج عبر الإنترنت باستخدام مزود خدمة سحابية موارد حسابية لا نهائية تقريبًا ويسمح لنا بالحصول على نتائج ممتازة بشكل أسرع.
تسمح استضافة النموذج كخدمة مصغرة أيضًا للتطبيقات الإبداعية الأخرى باستغلال إمكانات النموذج بسهولة أكبر دون الاضطرار إلى التعامل مع تعقيدات تشغيل نماذج ML عبر الإنترنت.
في هذا المنشور ، سنحاول توضيح كيفية تطوير نموذج انتشار مستقر ونشره في AWS.
بناء ونشر مستقر الانتشار
بنتوم و Amazon Web Services EC2 هما خياران لاستضافة نموذج Stable Diffusion عبر الإنترنت. BentoML هو إطار عمل مفتوح المصدر للقياس آلة التعلم خدمات. مع BentoML ، سنبني خدمة تشتت موثوقة وننشرها في AWS EC2.
تحضير البيئة وتنزيل نموذج الانتشار المستقر
تثبيت المتطلبات واستنساخ المستودع.
يمكنك تحديد وتنزيل نموذج Stable Diffusion. الدقة الفردية مناسبة لوحدات المعالجة المركزية أو وحدات معالجة الرسومات التي تزيد عن 10 جيجابايت من VRAM. تعتبر نصف الدقة مثالية لوحدات معالجة الرسومات التي تحتوي على ذاكرة فيديو VRAM أقل من 10 جيجابايت.
بناء انتشار مستقر
سنقوم ببناء خدمة BentoML لخدمة النموذج الذي يقف وراء a RESTful API. يستخدم المثال التالي نموذج الدقة الفردي للتنبؤ والوحدة النمطية service.py لتوصيل الخدمة بمنطق الأعمال. يمكننا الكشف عن الوظائف مثل واجهات برمجة التطبيقات عن طريق وضع علامة عليها بـ @ svc.api.
علاوة على ذلك ، يمكننا تحديد أنواع المدخلات والمخرجات لواجهات برمجة التطبيقات في المعلمات. على سبيل المثال ، تستقبل نقطة النهاية txt2img إدخال JSON وتنتج إخراج صورة ، بينما تقبل نقطة النهاية img2img صورة ومدخلات JSON وتعيد إخراج صورة.
يحدد StableDiffusionRunnable منطق الاستدلال الأساسي. يكون runnable مسؤولاً عن تشغيل أساليب أنابيب txt2img للنموذج وإرسال المدخلات ذات الصلة. لتشغيل منطق الاستدلال النموذجي في واجهات برمجة التطبيقات ، يتم إنشاء عداء مخصص من StableDiffusionRunnable.
بعد ذلك ، استخدم الأمر التالي لبدء خدمة BentoML للاختبار. يتم تشغيل ملف نموذج الانتشار المستقر الاستدلال على وحدات المعالجة المركزية بطيء نوعًا ما. سيستغرق كل طلب حوالي 5 دقائق للمعالجة.
نص إلى صورة
إخراج النص إلى الصورة
يحدد ملف bentofile.yaml الملفات والتبعيات المطلوبة.
استخدم الأمر أدناه لبناء بنتو. إن Bento هو تنسيق التوزيع لخدمة BentoML. إنه أرشيف قائم بذاته يحتوي على جميع البيانات والتكوينات اللازمة لبدء الخدمة.
تم الانتهاء من بينتو الانتشار المستقر. إذا كنت غير قادر على توليد بنتو بشكل صحيح ، فلا داعي للذعر ؛ يمكنك تنزيل النموذج المبني مسبقًا باستخدام الأوامر المدرجة في القسم التالي.
نماذج ما قبل البناء
فيما يلي نماذج ما قبل البناء:
انشر نموذج الانتشار المستقر على EC2
لنشر bento إلى EC2 ، سنستخدم bentoctl. يمكن أن يتيح لك bentoctl نشر أسطواناتك في أي مكان منصة سحابية باستخدام Terraform. لإنشاء ملفات Terraform وتطبيقها ، قم بتثبيت مشغل AWS EC2.
في ملف config.yaml للنشر ، تم تكوين النشر بالفعل. لا تتردد في التعديل لمتطلباتك. يتم نشر Bento بشكل افتراضي على مضيف g4dn.xlarge بامتداد تعلم عميق AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI على منطقة us-west-1.
قم بإنشاء ملفات Terraform الآن. قم بإنشاء صورة Docker وتحميلها إلى AWS ECR. اعتمادًا على النطاق الترددي الخاص بك ، قد يستغرق تحميل الصور وقتًا طويلاً. عند نشر bento في AWS EC2 ، استخدم ملفات Terraform.
للوصول إلى Swagger UI ، قم بالاتصال بوحدة التحكم EC2 وافتح عنوان IP العام في المستعرض. أخيرًا ، إذا لم تعد خدمة النشر المستقر BentoML مطلوبة ، فقم بإزالة النشر.
وفي الختام
يجب أن تكون قادرًا على رؤية مدى روعة وقوة SD والنماذج المصاحبة لها. سيحدد الوقت ما إذا كنا سنكرر المفهوم أكثر أو ننتقل إلى مناهج أكثر تعقيدًا.
ومع ذلك ، هناك مبادرات جارية حاليًا لتدريب نماذج أكبر مع تعديلات لفهم البيئة المحيطة والتعليمات بشكل أفضل. حاولنا تطوير خدمة الانتشار المستقر باستخدام BentoML ونشرها في AWS EC2.
تمكنا من تشغيل نموذج Stable Diffusion على أجهزة أكثر قوة ، وإنشاء صور بزمن انتقال منخفض ، والتوسع إلى ما هو أبعد من جهاز كمبيوتر واحد من خلال نشر الخدمة على AWS EC2.
اترك تعليق