در این مقاله از ای بازی به معرفی نسل جدیدی از تکنولوژی به نام هوش مصنوعی فلاکس (Flux) می پردازیم.
اجرای جدیدترین مدل فلاکس (Flux) با 8 گیگابایت RAM GPU با کمک روش Quantization! که توسط Black Forest Labs منتشر شده است، بهدلیل توانایی شگفتانگیز خود در تولید تصاویر، سر و صدای زیادی به پا کرده است. با این حال، این مدل قابل حمل نبوده و نمیتوان آن را بر روی ماشینهای کاربری عادی یا سیستمهای رایگان اجرا کرد.
این محدودیت باعث شده بود تا استفاده از این مدل بیشتر بر روی پلتفرمهایی صورت بگیرد که خدمات API ارائه میدادند، بهطوری که نیازی به بارگذاری مدل به صورت محلی نبود. در چنین شرایطی، کاربران تنها با استفاده از درخواستهای API میتوانستند از مدل بهره ببرند.

سازمانهایی که ترجیح میدهند مدلهای خود را بهصورت محلی میزبانی کنند، با هزینههای بالایی برای GPU مواجه میشوند. خوشبختانه، تیم Hugging Face با افزودن قابلیت quantization (کوچکسازی مدل) به کتابخانه Diffusers و استفاده از BitsAndBytes در مدل فلاکس (Flux) با 8 گیگابایت RAM GPU مشکل را تا حد زیادی حل کرده است. اکنون میتوانیم inference یا تولید تصویر با استفاده از مدل Flux را بر روی دستگاهی با 8 گیگابایت RAM در GPU اجرا کنیم.
مدل فلاکس (Flux) با 8 گیگابایت RAM GPU چیست؟
مدل فلاکس (Flux) با 8 گیگابایت RAM GPU یک سری مدلهای پیشرفته برای تبدیل متن به تصویر و یا تصویر به تصویر است که توسط Black Forest Labs توسعه داده شده است. این تیم همچنین مسئول توسعه Stable Diffusion بوده و میتوان مدل Flux را نسل بعدی توسعه این تکنولوژی دانست.
مدل فلاکس (Flux) با 8 گیگابایت RAM GPU با استفاده از تکنولوژیهای نوین، چندین بهبود در زمینه عملکرد و کیفیت خروجیها ارائه میدهد. همانطور که در معرفی اشاره شد، اجرای مدل فلاکس (Flux) با 8 گیگابایت RAM GPU بر روی سختافزارهای مصرفکننده ممکن است پرهزینه باشد. با این حال، کاربران میتوانند با انجام بهینهسازیهایی، مدل را به شکلی حافظهپسندتر اجرا کنند.
ساختار مدل فلاکس (Flux)
مدل فلاکس (Flux) با 8 گیگابایت RAM GPU دارای دو نسخه اصلی به نامهای Timestep-distilled و Guidance-distilled است که هر دو بر اساس چندین مؤلفه پیشرفته ساخته شدهاند:
- Encoder متنی پیشتربیتشده: Flux از دو text encoder با نامهای CLIP و T5 برای درک بهتر و تبدیل دستورهای متنی به تصویر استفاده میکند. این encoderها به بهبود درک مدل از درخواستهای متنی کمک میکنند.
- مدل DiT مبتنی بر Transformer: این مدل برای denoising یا حذف نویز از تصاویر استفاده میشود و عملکرد بسیار بالایی در تولید تصاویر باکیفیت دارد.
- VAE (Auto-Encoder Variational): این مؤلفه بهجای حذف نویز در سطح پیکسل، در یک فضای نهفته عمل میکند که باعث کاهش بار محاسباتی میشود، در حالی که کیفیت خروجی همچنان بالا میماند.
نسخههای مختلف فلاکس (Flux)
- Flux-Schnell: یک نسخه منبع باز با بهبودهای مختلف، موجود در Hugging Face.
- Flux-Dev: نسخهای با محدودیتهای بیشتر در مجوز.
- Flux-Pro: نسخهای بسته که از طریق APIهای مختلف قابل دسترسی است.
چرا quantization مهم است؟
Quantization تکنیکی است که به کاهش اندازه مدلها از طریق ذخیرهسازی پارامترهای آنها با تعداد بیتهای کمتر کمک میکند، بدون اینکه عملکرد مدل فلاکس (Flux) با 8 گیگابایت RAM GPU به طور محسوسی کاهش یابد. به طور معمول، پارامترهای شبکههای عصبی با دقت 32 بیت ذخیره میشوند، اما با استفاده از quantization میتوان این دقت را به 4 بیت کاهش داد.

استفاده از BitsAndBytes
یکی از نوآوریهایی که اجرای فلاکس (Flux) بر روی 8 گیگابایت RAM GPU را ممکن میسازد، quantization از طریق کتابخانه BitsAndBytes است. این کتابخانه امکان اجرای مدلهای بزرگ مانند Flux را با استفاده از quantization 4 بیتی و 8 بیتی فراهم میکند.
مزایای BitsAndBytes
- کاهش حافظه مصرفی: با استفاده از quantization، حجم مدل تا حد قابل توجهی کاهش پیدا میکند که این امر به کاربران اجازه میدهد تا مدلهای پیچیدهتری را بر روی سختافزارهای خانگی اجرا کنند.
- دقت بالا: با استفاده از ترکیب اعداد دقیق و تقریبی، این روش تأثیر ناچیزی بر روی کیفیت عملکرد مدل دارد.
- پشتیبانی از PyTorch: این کتابخانه به خوبی با PyTorch و Diffusers هماهنگ است و میتواند به راحتی در اجرای مدلهای تصویرسازی استفاده شود.
اهداف یادگیری
- آشنایی با تنظیمات و پیکربندی وابستگیها برای کار با Flux در محیط Colab.
- نمایش چگونگی رمزگذاری یک text prompt با استفاده از encoder 4 بیتی برای کاهش مصرف حافظه.
- پیادهسازی تکنیکهای کارآمد برای بارگذاری و اجرای مدلهای تولید تصویر بهصورت mixed precision بر روی GPUها.
- تولید تصویر از متن با استفاده از Flux pipeline در Colab.
کلام آخر
با استفاده از روشهای مختلف بهینهسازی مانند quantization، اکنون میتوانیم مدلهای پیچیدهای مانند مدل فلاکس (Flux) با 8 گیگابایت RAM GPU را که بهصورت طبیعی به GPUهای قدرتمند نیاز دارند، بر روی سختافزارهای خانگی اجرا کنیم. همچنین، کاربران میتوانند از پلتفرمهای رایگانی مانند Colab برای آزمایش و کار با این مدلها بهره ببرند.
مدل فلاکس (Flux) بهعنوان نسل پیشرفتهای از مدلهای تبدیل متن به تصویر، در دنیای هوش مصنوعی مطرح است و استفاده از روشهای بهینهسازی مانند Quantization میتواند عملکرد آنرا برای کاربران عمومی قابل دسترستر کند.
تاریخ آخرین آپدیت: 8 ماه قبل