ما در زمانهای هیجانانگیزی زندگی میکنیم، با اطلاعیههایی درباره فناوریهای پیشرفته هر هفته. OpenAI به تازگی مدل پیشرفته متن به تصویر DALLE 2 را منتشر کرده است.
فقط تعداد کمی از افراد به سیستم هوش مصنوعی جدیدی دسترسی پیدا کردند که می تواند گرافیک های واقعی را از توضیحات زبان طبیعی تولید کند. همچنان به روی عموم بسته است.
سپس هوش مصنوعی پایداری آن را منتشر کرد انتشار پایدار مدل، یک نوع منبع باز از DALLE2. این پرتاب همه چیز را تغییر داده است. مردم در سراسر اینترنت نتایج سریع منتشر می کردند و از هنر واقع گرایانه شگفت زده می شدند.
انتشار پایدار چیست؟
انتشار پایدار یک مدل یادگیری ماشینی است که قادر به ایجاد تصاویر از متن، تغییر تصاویر بسته به متن و پر کردن جزئیات در تصاویر با وضوح پایین یا با جزئیات پایین است.
این بر روی میلیاردها عکس آموزش داده شده است و می تواند نتایجی معادل آن ارائه دهد DALL-E2 و میانه سفر. هوش مصنوعی پایداری آن را اختراع کرد و در 22 آگوست 2022 عمومی شد.
اما با منابع محاسباتی محلی محدود، مدل انتشار پایدار زمان زیادی برای ایجاد تصاویر با کیفیت بالا نیاز دارد. اجرای مدل به صورت آنلاین با استفاده از یک ارائه دهنده ابر، تقریباً بی نهایت منابع محاسباتی را در اختیار ما قرار می دهد و به ما امکان می دهد تا نتایج عالی را بسیار سریعتر به دست آوریم.
میزبانی مدل بهعنوان یک میکروسرویس همچنین به سایر برنامههای خلاق اجازه میدهد تا با سهولت بیشتری از پتانسیل مدل بدون نیاز به پرداختن به پیچیدگیهای اجرای آنلاین مدلهای ML استفاده کنند.
در این پست، ما سعی خواهیم کرد نحوه توسعه یک مدل انتشار پایدار و استقرار آن در AWS را نشان دهیم.
ایجاد و استقرار Stable Diffusion
BentoML و Amazon Web Services EC2 دو گزینه برای میزبانی آنلاین مدل Stable Diffusion هستند. BentoML یک چارچوب متن باز برای مقیاس بندی است فراگیری ماشین خدمات. با BentoML، ما یک سرویس پراکندگی قابل اعتماد ایجاد خواهیم کرد و آن را در AWS EC2 مستقر خواهیم کرد.
آماده سازی محیط و دانلود مدل انتشار پایدار
نیازمندی ها را نصب کنید و مخزن را شبیه سازی کنید.
می توانید مدل Stable Diffusion را انتخاب و دانلود کنید. Single Precision برای CPU یا GPUهایی با VRAM بیشتر از 10 گیگابایت مناسب است. نیم دقت برای پردازنده های گرافیکی با کمتر از 10 گیگابایت VRAM ایده آل است.
انتشار پایدار ساختمان
ما یک سرویس BentoML برای خدمت به مدل پشت a ایجاد خواهیم کرد API RESTful. مثال زیر از مدل دقیق تکی برای پیش بینی و ماژول service.py برای اتصال سرویس به منطق تجاری استفاده می کند. ما می توانیم توابع را به عنوان API با برچسب گذاری با @svc.api نمایش دهیم.
علاوه بر این، میتوانیم انواع ورودی و خروجی APIها را در پارامترها تعریف کنیم. به عنوان مثال، نقطه پایانی txt2img یک ورودی JSON دریافت می کند و یک خروجی Image تولید می کند، در حالی که نقطه پایانی img2img یک Image و یک ورودی JSON را می پذیرد و یک خروجی Image را برمی گرداند.
یک StableDiffusionRunnable منطق استنتاج ضروری را تعریف می کند. runnable وظیفه اجرای متدهای لوله txt2img مدل و ارسال ورودی های مربوطه را بر عهده دارد. برای اجرای منطق استنتاج مدل در APIها، یک Runner سفارشی از StableDiffusionRunnable ساخته شده است.
سپس از دستور زیر برای شروع یک سرویس BentoML برای آزمایش استفاده کنید. به صورت محلی اجرا می شود مدل انتشار پایدار استنتاج بر روی CPU ها نسبتاً کند است. پردازش هر درخواست حدود 5 دقیقه طول می کشد.
متن به تصویر
خروجی متن به تصویر
فایل bentofile.yaml فایل ها و وابستگی های مورد نیاز را تعریف می کند.
برای ساخت بنتو از دستور زیر استفاده کنید. Bento فرمت توزیع یک سرویس BentoML است. این یک آرشیو مستقل است که شامل تمام داده ها و تنظیمات مورد نیاز برای شروع سرویس است.
Stable Diffusion Bento تکمیل شده است. اگر نتوانستید بنتو را به درستی تولید کنید، نترسید. می توانید مدل از پیش ساخته شده را با استفاده از دستورات ذکر شده در بخش بعدی دانلود کنید.
مدل های پیش ساخته
مدل های پیش ساخته در زیر آمده است:
استقرار مدل انتشار پایدار در EC2
برای استقرار بنتو در EC2، از بنتوکتل استفاده می کنیم. bentoctl می تواند به شما اجازه دهد بنتوهای خود را در هر کدام مستقر کنید بستر ابر با استفاده از Terraform برای ساخت و اعمال فایل های Terraform، اپراتور AWS EC2 را نصب کنید.
در فایل deployment config.yaml، استقرار قبلاً پیکربندی شده است. لطفا برای ویرایش مطابق با نیاز خود احساس راحتی کنید. Bento به طور پیش فرض بر روی یک میزبان g4dn.xlarge با یادگیری عمیق AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI در منطقه us-west-1.
اکنون فایل های Terraform را ایجاد کنید. تصویر Docker را ایجاد کنید و آن را در AWS ECR آپلود کنید. بسته به پهنای باند شما، آپلود تصویر ممکن است زمان زیادی طول بکشد. هنگام استقرار بنتو در AWS EC2، از فایل های Terraform استفاده کنید.
برای دسترسی به رابط کاربری Swagger، به کنسول EC2 متصل شده و آدرس IP عمومی را در مرورگر باز کنید. در نهایت، اگر سرویس Stable Diffusion BentoML دیگر مورد نیاز نیست، Deployment را حذف کنید.
نتیجه
شما باید بتوانید ببینید که SD و مدل های همراه آن چقدر جذاب و قدرتمند هستند. زمان نشان خواهد داد که آیا این مفهوم را بیشتر تکرار خواهیم کرد یا به سمت رویکردهای پیچیده تر حرکت خواهیم کرد.
با این حال، در حال حاضر ابتکاراتی برای آموزش مدل های بزرگتر با تنظیماتی برای درک بهتر محیط و دستورالعمل ها در حال انجام است. ما سعی کردیم سرویس Stable Diffusion را با استفاده از BentoML توسعه دهیم و آن را در AWS EC2 مستقر کنیم.
ما توانستیم مدل Stable Diffusion را بر روی سختافزار قدرتمندتر اجرا کنیم، تصاویری با تأخیر کم ایجاد کنیم و با استقرار این سرویس در AWS EC2 از یک رایانه فراتر برویم.
پاسخ دهید