مقدمه

\n

در دنیای امروز مدل‌های مولد تصویر مانند FLUX.1‑dev، توان تولید تصاویر با کیفیت بالاست. اما معماری پیشرفته این مدل‌ها، حجم حافظهٔ بی‌سزایی را به همراه دارد. در این مطلب به‌ویژه قصد داریم نشان دهیم چگونه تعبیه تکنیک LoRA و QLoRA، به‌اشتراک‌گذاری داده‌های تکمیلی و استفاده از حافظهٔ کم، امکان Fine‑Tuning این مدل بر روی سخت‌افزارهای خانگی را ممکن می‌سازد.

\n

تنظیمات و مراحل Fine‑Tuning

\n

ابتدا باید فریم‌ورک Diffusers و کتابخانه‌های لازم را نصب کنیم. سپس با استفاده از qlora مدل را در قالب نگهدارندهٔ پارامترها (LoRA adapters) بارگذاری می‌کنیم و در مرحله‎ی بعد، فرآیند fine‑tuning را اجرا می‌کنیم. برای صرفه‌جویی در مصرف حافظه، پیش‌محاسبهٔ embeddingهای متن با CLIP/T5 یا استفاده از torchao را پیشنهاد می‌کنیم. در انتها نوشتن کد با مدیریت حافظه و 16 بیتی، GPU را در حدود 10 جیبه نگه می‌دارد.

\n
    \n
  • استفاده از QLoRA برای کاهش پارامترهای قابل آموزش به صورت 4 بیتی.
  • \n
  • پیش‌محاسبهٔ embeddingهای متن (CLIP/T5) در حافظهٔ ثابت.
  • \n
  • استفاده از torchao برای کاهش حافظهٔ دینامیکی مدل.
  • \n
  • بارگذاری LoRA Adapters به‌جای تداخل کامل مدل پایه.
  • \n
  • اجرای در محیط گوگل کولاب برای دسترسی آسان به GPU 12 جیبه.
  • \n
\n

نتایج: مقایسه بین مدل پایه و مدل فاین‑تیوِن QLoRA (fp16)

\n

پس از پردازش، فایل مدل QLoRA در حافظهٔ 1.5 جیبه قرار گرفته و توان تولید تصویر با رزولوشن 512x512 را به‌صورت نزدیک به مدل پایه حفظ نموده است. مطالعات نشان می‌دهد کاهش حافظهٔ 70% و زمان آموزش 30%، هنوز کیفیت قابل قبولی را ارائه می‌دهد.

\n

اجرای مدل و راهکارهای بهره‌برداری

\n

برای inference، دو گزینه وجود دارد: (۱) بارگذاری مستقیم LoRA adapters روی مدل پایه، یا (۲) ادغام LoRA با مدل پایه و ذخیره نهایی. در نمونهٔ گوگل کولاب، با اعمال روشون ۲، سرعت تولید تصویر حدود 2.5 ثانیه برای هر نمونه می‌باشد.

\n

نتیجه‌گیری

\n

این پروژه نشان می‌دهد که با بهره‌گیری از LoRA و QLoRA می‌توان مدل‌های مولد تصویر پیشرفته را بر روی سخت‌افزارهای کم‌هزینه به‌کار گرفت و از قدرت ایجاد محتوا بهره برد. ما از جامعهٔ Hugging Face دعوت می‌کنیم که دستاوردهای خود را به هاب مربوطه اضافه کنند تا سرویس‌گسترش این مدل‌ها به رسانه‌های دیگر هم گسترش یابد.

پرسش‌های پرتکرار

چه سخت‌افزاری برای اجرای این آموزش لازم است؟

ابتدا می‌توانید از یک کارت گرافیک با حافظه حداقل 8 جیبه یا بهتر از آن، ولی در حالت گوگل کولاب شما فقط به 12 جیبه حافظه GPU نیاز دارید.

تصاویر خروجی تا چه کیفیتی تولید می‌شود؟

تصاویر تولید شده با QLoRA و پیش‌محاسبه embedding، کیفیت نزدیک به خروجی مدل پایه را حفظ می‌کنند؛ برای رزولوشن 512×512 بین 90٪ تا 95٪ از وضعیت همان مدل بدون فاین‑توینگ باقی می‌ماند.