آموزشترنسفورمرها

درس ۵۴ از ۶۲، هوش مصنوعی، حدود ۳۶ دقیقه خواندن

ترنسفورمر در ساخت تصویر

جواب کوتاه

توی مدل‌های پخش، عکس از یه نویز کامل شروع می‌شه و یه شبکه، قدم به قدم، نویز رو پاک می‌کنه تا عکس بیرون بیاد. ترنسفورمر پخش، یا DiT، کوتاه‌شده‌ی Diffusion Transformer، یعنی این شبکه‌ی پاک‌کننده یه ترنسفورمره. عکس اول با یه خودرمزگذار به یه نسخه‌ی کوچیک فشرده، یعنی فضای نهفته، می‌ره؛ این نسخه مثل ترنسفورمر بینایی به تکه‌ها بریده می‌شه؛ شماره‌ی قدم و متن درخواست هم به مدل داده می‌شه؛ و مدل برای هر تکه می‌گه چقدر نویز داره. چون ترنسفورمر با بزرگ شدن مرتب بهتر می‌شه، امروز خیلی از مدل‌های ساخت عکس و ویدیو همین‌طوری ساخته شدن.

یعنی چی

فرض کنید یه عکس رو کم‌کم پر از برفک کنیم، مثل تلویزیون قدیمی بی آنتن، تا جایی که هیچی ازش معلوم نباشه. حالا یه مدل یاد می‌گیره این کار رو برعکس کنه؛ از یه برفک کامل شروع کنه و قدم به قدم پاکش کنه، تا یه عکس تازه بیرون بیاد. به این روش پخش یا Diffusion می‌گن.

اون شبکه‌ای که برفک رو پاک می‌کنه، سال‌ها یه شبکه‌ی پیچشی بود. سال ۲۰۲۲ یه پژوهش نشون داد می‌شه یه ترنسفورمر جاش گذاشت، و وقتی بزرگ‌ترش کنی، مرتب بهتر می‌شه. به این ترنسفورمر پخش یا DiT، کوتاه‌شده‌ی Diffusion Transformer، می‌گن. امروز خیلی از مدل‌های ساخت عکس و ویدیو همین ساختار رو دارن.

این درس اول خیلی کوتاه می‌گه پخش چیه؛ جزئیات کاملش توی درس مدل پخش هست. بعد دقیق می‌بینیم ترنسفورمر چطور جای پاک‌کننده رو گرفت، عکس چطور تکه می‌شه، متن درخواست چطور به مدل می‌رسه، و چرا مدل‌های تازه با قدم‌های خیلی کمتر عکس می‌سازن.

پخش در یه نگاه

آموزش این‌طوریه. یه عکس واقعی برمی‌داریم، یه مقدار نویز تصادفی بهش اضافه می‌کنیم، و از شبکه می‌خوایم حدس بزنه چه نویزی اضافه شده. مقدار نویز هر بار فرق می‌کنه؛ گاهی یه کم، گاهی اون‌قدر که عکس تقریبا گم شده. توی پژوهش ۲۰۲۰ که این روش رو جا انداخت، از عکس تمیز تا نویز کامل ۱۰۰۰ قدم بود:

ساختن برعکسه. از یه نویز کاملا تصادفی شروع می‌کنیم. شبکه حدس می‌زنه چه نویزی توشه؛ یه کم از اون نویز رو کم می‌کنیم. دوباره حدس، دوباره کم کردن. بعد از چند ده یا چند صد قدم، یه عکس تمیز داریم که قبلا هیچ‌جا نبوده. چون هر بار از یه نویز تصادفی متفاوت شروع می‌شه، هر بار یه عکس تازه ساخته می‌شه.

یه نکته‌ی مهم؛ شبکه برای هر قدم باید بدونه الان چقدر نویز هست، چون پاک کردن یه عکس کمی کثیف با پاک کردن یه برفک کامل خیلی فرق داره. پس شماره‌ی قدم هم همیشه به شبکه داده می‌شه.

پاک‌کننده‌ی قدیمی

تا ۲۰۲۲، تقریبا همه‌ی مدل‌های پخش یه شبکه‌ی U شکل داشتن. اسمش از شکلشه؛ عکس اول با لایه‌های پیچشی کم‌کم کوچیک‌تر و پرمعناتر می‌شه، بعد کم‌کم دوباره بزرگ می‌شه تا اندازه‌ی اول، و از هر طبقه‌ی پایین‌رو، یه میون‌بر به طبقه‌ی هم‌اندازه‌ش توی بالارو وصله. این میون‌برها جزئیات ریز رو نگه می‌دارن.

این شبکه خوب کار می‌کرد، و حتی چند لایه‌ی توجه هم وسطش داشت. ولی پر از تصمیم‌های طراحی دستی بود؛ چند طبقه، هر طبقه چند لایه، توجه کجا. و وقتی می‌خواستن بزرگ‌ترش کنن، معلوم نبود کدوم بخش رو بزرگ کنن. ترنسفورمر، با ساختار ساده و یکنواختش، این سوال رو جواب داد؛ فقط لایه‌ها، پهنا یا تکه‌ها رو عوض کن.

فضای نهفته

قبل از ترنسفورمر، یه ترفند مهم دیگه هم لازمه. کار کردن مستقیم روی پیکسل‌ها گرونه؛ یه عکس ۵۱۲ در ۵۱۲ رنگی، حدود ۷۸۶ هزار عدده. یه پژوهش ۲۰۲۱ پیشنهاد داد اول یه خودرمزگذار آموزش بدیم که عکس رو به یه نسخه‌ی خیلی کوچیک‌تر فشرده کنه و دوباره باز کنه:

این خودرمزگذار طول و عرض رو ۸ برابر کوچیک می‌کنه، پس عکس ۵۱۲، می‌شه یه جدول ۶۴ در ۶۴، با ۴ عدد توی هر خونه؛ حدود ۱۶ هزار عدد، یعنی ۴۸ برابر کمتر. به این نسخه‌ی کوچیک فضای نهفته یا Latent می‌گن. همه‌ی کار پخش، یعنی نویز اضافه کردن و پاک کردن، توی همین فضای کوچیک انجام می‌شه، و فقط آخر کار، یه بار، رمزگشای خودرمزگذار نتیجه رو به عکس بزرگ برمی‌گردونه.

چرا این کار کیفیت رو خراب نمی‌کنه؟ چون بیشتر عددهای یه عکس، جزئیاتیه که چشم زیاد حسش نمی‌کنه، و خودرمزگذار یاد گرفته همون‌ها رو فشرده کنه و چیزهای مهم رو نگه داره. این‌طوری مدل پخش می‌تونه حساب خودش رو روی چیزهای مهم، مثل شکل و ترکیب‌بندی، بذاره.

تکه کردن

حالا ترنسفورمر میاد. دقیقا مثل ترنسفورمر بینایی، نهفته به تکه‌های مربعی بریده می‌شه. پژوهش ۲۰۲۲ روی عکس‌های ۲۵۶ کار کرد؛ نهفته ۳۲ در ۳۲ در ۴ بود. با تکه‌ی ۲ در ۲، می‌شه ۱۶ در ۱۶، یعنی ۲۵۶ تکه:

هر تکه، ۲ در ۲ در ۴، یعنی ۱۶ عدده، که با یه ضرب ماتریسی به یه بردار تبدیل می‌شه، و بردار جای ثابتش، از نوع سینوسی دوبعدی، بهش اضافه می‌شه. اون پژوهش تکه‌های ۲، ۴ و ۸ رو امتحان کرد. تکه‌ی ۴ یعنی ۶۴ تکه و تکه‌ی ۸ یعنی ۱۶ تکه؛ حساب خیلی کمتر، ولی کیفیت هم کمتر. تکه‌ی ۲ بهترین نتیجه رو داد، و با این‌که پارامترهای مدل تقریبا عوض نمی‌شن، حساب حدود چهار برابر تکه‌ی ۴ بود.

قدم و دسته رو چطور بگیم

مدل باید دو چیز رو بدونه؛ شماره‌ی قدم، یعنی چقدر نویز هست، و این‌که چی بسازه، که توی اون پژوهش یه دسته بود، مثلا «سگ» یا «گل». هر دو اول به یه بردار تبدیل می‌شن. ولی این بردارها رو کجا بدیم؟ پژوهش ۲۰۲۲ سه راه رو امتحان کرد:

راه اول، این بردارها رو مثل دو تکه‌ی اضافه به صف اضافه کنیم، تا بقیه بهشون توجه کنن. راه دوم، یه لایه‌ی توجه متقابل توی هر بلوک بذاریم که به این بردارها نگاه کنه. راه سوم، از این بردارها برای تنظیم نرمال‌سازی لایه استفاده کنیم؛ یعنی به‌جای این‌که مقیاس و جابه‌جایی نرمال‌سازی ثابت و یادگرفته باشه، از روی قدم و دسته حساب بشه. به این نرمال‌سازی تطبیقی می‌گن.

راه سوم بهترین بود و ارزون‌ترین. یه ترفند کوچیک هم داشت؛ هر بلوک یه ضریب داشت که اولش صفر بود، پس هر بلوک اول آموزش هیچ کاری نمی‌کرد و فقط میون‌بر رد می‌شد. این‌طوری مدل از یه حالت خیلی ساده و پایدار شروع می‌کرد و کم‌کم بلوک‌ها رو روشن می‌کرد. به این حالت شروع صفر می‌گن، و کیفیت رو به‌طور محسوسی بهتر کرد.

خروجی

بعد از آخرین بلوک، هر تکه دوباره به ۱۶ عدد، یعنی همون ۲ در ۲ در ۴، برمی‌گرده، و تکه‌ها سر جاشون چیده می‌شن تا دوباره یه نهفته‌ی ۳۲ در ۳۲ در ۴ بسازن. این خروجی، حدس مدل از نویزیه که توی ورودی بود؛ خونه به خونه. اون پژوهش، کنار نویز، یه چیز دیگه هم برای هر خونه پیش‌بینی می‌کرد؛ این‌که نویز اون خونه چقدر پراکنده‌ست، که به قدم‌های ساختن کمک می‌کرد.

یه نکته‌ی جالب؛ ترنسفورمر متن، برای هر جا یه کلمه‌ی بعدی پیش‌بینی می‌کنه. ترنسفورمر پخش، برای همه‌ی جاها با هم، یه عدد پیش‌بینی می‌کنه؛ پس ماسک نداره و هر تکه به همه‌ی تکه‌ها نگاه می‌کنه. مدل نشونه به نشونه نمی‌سازه؛ هر قدم کل عکس رو با هم یه ذره تمیزتر می‌کنه.

بزرگ‌تر، بهتر

مهم‌ترین یافته‌ی پژوهش ۲۰۲۲ این بود که کیفیت با حساب مدل رابطه‌ی خیلی منظمی داره. چهار اندازه‌ی مدل و سه اندازه‌ی تکه، روی هم دوازده مدل، ساختن، و دیدن هر چی حساب هر قدم بیشتر باشه، چه با مدل بزرگ‌تر چه با تکه‌ی ریزتر، کیفیت بهتره. بزرگ‌ترین مدلشون، با تکه‌ی ۲، از همه‌ی مدل‌های قبلی با شبکه‌ی U شکل روی همون آزمون بهتر شد.

این همون چیزیه که از قانون‌های مقیاس مدل‌های زبانی می‌شناسیم، و دلیل اصلی این‌که همه سراغ ترنسفورمر رفتن. وقتی بدونی بزرگ‌تر کردن مدل مرتب نتیجه رو بهتر می‌کنه، می‌تونی با اطمینان حساب بیشتری خرج کنی. یه چیز جالب دیگه هم دیدن؛ مدل کوچیک با قدم‌های زیاد، به مدل بزرگ با قدم‌های کم نمی‌رسید؛ یعنی حساب داخل مدل، با حساب بیشتر موقع ساختن جبران نمی‌شد.

اندازه‌ها با عدد

اون پژوهش چهار اندازه ساخت که فقط تعداد لایه‌ها و پهنای بردارها فرق داشت؛ حدود ۳۳ میلیون، ۱۳۰ میلیون، ۴۵۸ میلیون و ۶۷۵ میلیون پارامتر. برای مقایسه، همون اندازه‌هایی که توی ترنسفورمر بینایی دیدیم. هر کدوم با تکه‌های ۸، ۴ و ۲، یعنی دوازده مدل.

بزرگ‌ترین مدل با تکه‌ی ۲، با راهنمایی، روی عکس‌های ۲۵۶ به FID حدود ۲٫۲۷ رسید، که اون موقع بهترین عدد روی اون آزمون بود. برای این‌که حس کنید یعنی چی؛ FID زیر ۵ معمولا یعنی عکس‌هایی که با یه نگاه سریع از عکس واقعی سخت تشخیص داده می‌شن. ۶۷۵ میلیون پارامتر، در برابر مدل‌های زبانی، کوچیکه؛ مدل‌های ساخت عکس و ویدیوی بعدی تا چند میلیارد پارامتر بزرگ شدن.

چی پیش‌بینی بشه

تا این‌جا گفتیم مدل نویز رو پیش‌بینی می‌کنه. ولی این تنها انتخاب نیست. می‌شه مستقیم عکس تمیز رو پیش‌بینی کرد، یا یه ترکیب از این دو که بهش سرعت می‌گن؛ یعنی جهت و اندازه‌ی حرکت از نقطه‌ی فعلی. هر سه از نظر ریاضی به هم تبدیل می‌شن، ولی آموزش با هر کدوم فرق داره.

پیش‌بینی نویز وقتی عکس تقریبا تمیزه سخته، چون نویز خیلی کمه، و پیش‌بینی عکس وقتی همه‌چیز نویزه سخته. پیش‌بینی سرعت، که سال ۲۰۲۲ برای تقطیر معرفی شد، توی هر دو سر متعادل‌تره، و توی روش مسیر صاف هم مدل همین جهت رو یاد می‌گیره. یه ترفند دیگه هم پژوهش ۲۰۲۴ داشت؛ موقع آموزش، قدم‌های وسط مسیر رو بیشتر از دو سر نمونه می‌گرفت، چون اون‌جا سخت‌ترین و مهم‌ترین تصمیم‌ها گرفته می‌شه، مثل ترکیب‌بندی کلی عکس.

سنجش

چطور می‌شه گفت یه مدل عکس‌های بهتری می‌سازه؟ پرسیدن از آدم‌ها کند و گرونه. معیار رایج FID، کوتاه‌شده‌ی Fréchet Inception Distance، یعنی «فاصله‌ی فرشه»، که سال ۲۰۱۷ معرفی شد. هزاران عکس ساخته‌شده و هزاران عکس واقعی به یه شبکه‌ی تشخیص عکس داده می‌شن، و ویژگی‌هایی که اون شبکه استخراج می‌کنه، برای هر گروه یه پخش آماری می‌سازه. FID فاصله‌ی این دو پخشه.

هر چی کمتر، بهتر؛ یعنی عکس‌های ساخته‌شده از نظر آماری شبیه‌تر به عکس‌های واقعی‌ان، هم از نظر کیفیت و هم از نظر تنوع. ولی FID همه‌چیز نیست؛ نمی‌گه عکس با متن درخواست جوره یا نه، و گاهی با سلیقه‌ی آدم‌ها فرق داره. برای همین کنارش معیارهای دیگه، مثل مقایسه‌ی متن و عکس با یه مدل پیوند متن و تصویر، و نظرسنجی از آدم‌ها هم به کار می‌ره.

متن به تصویر

برای ساختن عکس از روی یه جمله، مثل «یه گربه‌ی نارنجی روی یه صندلی چوبی»، به‌جای یه دسته، یه جمله‌ی کامل باید به مدل داده بشه. اول یه رمزگذار متن، جمله رو به یه صف بردار تبدیل می‌کنه. بعد دو راه رایج هست. یکی توجه متقابل؛ تکه‌های عکس، توی هر بلوک، به بردارهای متن نگاه می‌کنن. این راه توی مدل‌های قدیمی‌تر رایج بود.

راه دوم، که یه پژوهش ۲۰۲۴ جا انداخت، توجه مشترکه؛ تکه‌های عکس و نشونه‌های متن پشت سر هم توی یه صف می‌رن و همه به همه توجه می‌کنن. ولی چون متن و عکس خیلی فرق دارن، هر کدوم وزن‌های جدای خودشون رو برای ساختن پرسش و کلید و مقدار و پیش‌خور دارن، و فقط موقع توجه کنار هم میان:

این‌طوری نه فقط عکس به متن نگاه می‌کنه، بلکه متن هم توی هر لایه از عکس خبر می‌گیره و نمایشش به‌روز می‌شه. همون پژوهش گزارش داد این ساختار، به‌خصوص توی نوشتن درست متن روی عکس و رعایت جزئیات درخواست، بهتر از قبلی‌ها بود. قدم و برخی اطلاعات کلی متن هم هنوز از راه نرمال‌سازی تطبیقی وارد می‌شن.

رمزگذار متن مهم‌تر از چیزیه که فکر می‌کنید

یه پژوهش ۲۰۲۲ یه نتیجه‌ی غافلگیرکننده داشت؛ بزرگ کردن رمزگذار متن، از بزرگ کردن خود مدل تصویر، اثر بیشتری روی کیفیت و جور بودن عکس با متن داشت. اون‌ها به‌جای رمزگذاری که فقط برای پیوند متن و عکس آموزش دیده بود، از رمزگذار یه مدل زبانی بزرگ که فقط روی متن آموزش دیده بود استفاده کردن.

دلیلش منطقیه؛ یه درخواست مثل «سه تا سیب قرمز سمت چپ یه کاسه‌ی آبی» پر از جزئیات زبانیه، مثل عدد، رنگ و جا، و مدلی که زبان رو عمیق‌تر فهمیده، این‌ها رو بهتر نگه می‌داره. برای همین مدل‌های تازه معمولا یه رمزگذار متن بزرگ دارن، و گاهی دو یا سه تا با هم؛ یکی برای پیوند کلی متن و عکس، یکی برای فهم دقیق جمله.

راهنمایی

اگه فقط متن رو به مدل بدیم، عکس‌ها معمولا یه کم بی‌ربط یا بی‌حال درمیان. یه ترفند ساده، که سال ۲۰۲۲ معرفی شد، راهنمایی بی دسته‌بند یا CFG، کوتاه‌شده‌ی Classifier-Free Guidance، هست. موقع آموزش، گاهی، مثلا یه دهم وقت‌ها، متن رو از مدل می‌گیریم و خالی می‌دیم. پس مدل هم یاد می‌گیره با متن پاک کنه و هم بی متن.

موقع ساختن، هر قدم دو بار حساب می‌کنیم؛ یه بار با متن، یه بار بی متن. فرق این دو حدس، جهتیه که «متن» مدل رو به اون سمت می‌بره. حالا این فرق رو چند برابر می‌کنیم، مثلا ۵ یا ۷ برابر، و به حدس بی متن اضافه می‌کنیم. نتیجه عکس‌هایی‌ان که خیلی بیشتر به متن می‌چسبن. ولی اگه ضریب خیلی زیاد بشه، رنگ‌ها تند و عکس‌ها کم‌تنوع و مصنوعی می‌شن، و هر قدم هم دو برابر حساب داره.

مسیر صاف

مسیری که مدل پخش قدیمی از نویز به عکس طی می‌کنه، یه مسیر پیچ‌دار و غیرمستقیمه؛ برای همین قدم‌های زیادی لازمه، چون با قدم بزرگ از پیچ‌ها بیرون می‌زنی. سال ۲۰۲۲ دو پژوهش راه دیگه‌ای پیشنهاد دادن؛ مدل یاد بگیره مستقیم‌ترین مسیر، یعنی یه خط صاف، از نویز به عکس رو بره:

توی این روش، که بهش جریان مستقیم یا تطبیق جریان می‌گن، نقطه‌های وسط راه فقط یه ترکیب ساده‌ی عکس و نویزن؛ مثلا ۳۰ درصد عکس و ۷۰ درصد نویز. مدل یاد می‌گیره توی هر نقطه، جهت به سمت عکس چیه. چون مسیر تقریبا صافه، با قدم‌های کمتر و بزرگ‌تر هم می‌شه به عکس خوب رسید. پژوهش ۲۰۲۴ توجه مشترک رو با همین روش ترکیب کرد، و امروز خیلی از مدل‌های بزرگ همین‌طوری‌ان.

نمونه‌بردار

مدلی که با ۱۰۰۰ قدم آموزش دیده، لازم نیست موقع ساختن هم ۱۰۰۰ قدم بره. یه پژوهش ۲۰۲۰ نشون داد با یه حساب دیگه، که بهش نمونه‌بردار می‌گن، می‌شه از همون مدل، بی آموزش دوباره، با ۵۰ قدم یا حتی کمتر عکس خوب گرفت. نمونه‌بردار تعیین می‌کنه بعد از هر حدس مدل، چقدر نویز کم بشه و آیا یه کم نویز تازه اضافه بشه یا نه.

نمونه‌بردارهای قطعی، که نویز تازه اضافه نمی‌کنن، یه خوبی جالب دارن؛ با یه نویز اولیه‌ی ثابت، همیشه همون عکس رو می‌سازن. برای همین اگه یه عکس رو دوست داشتید، با همون نویز اولیه، که با یه عدد به اسم بذر تعیین می‌شه، و یه درخواست کمی عوض‌شده، می‌تونید نسخه‌ی نزدیکش رو بسازید. بیشتر ابزارها همین بذر رو نشون می‌دن.

ویرایش و پر کردن

همین مدل‌ها برای ویرایش عکس هم به کار می‌رن، بی آموزش تازه. یه پژوهش ۲۰۲۱ نشون داد اگه به‌جای نویز کامل، از یه نسخه‌ی نیمه‌نویزی از یه عکس موجود شروع کنیم و با یه درخواست تازه پاکش کنیم، نتیجه شکل کلی عکس اول رو نگه می‌داره ولی جزئیاتش طبق درخواست عوض می‌شه. هر چی نویز اولیه بیشتر، آزادی مدل بیشتر و شباهت به عکس اول کمتر.

برای پر کردن یه بخش، مثلا پاک کردن یه آدم از پس‌زمینه یا عوض کردن رنگ لباس، یه ماسک تعیین می‌کنیم. توی هر قدم، بخش بیرون ماسک از نسخه‌ی نویزی خود عکس اصلی برداشته می‌شه و فقط بخش زیر ماسک رو مدل می‌سازه؛ پس مرزها با بقیه‌ی عکس جور درمیان. مدل‌هایی هم هستن که از اول با ماسک به‌عنوان ورودی اضافه آموزش دیدن و این کار رو تمیزتر می‌کنن.

کنترل و شخصی‌سازی

گاهی متن کافی نیست؛ می‌خوایم آدم توی عکس دقیقا یه ژست خاص داشته باشه، یا عکس دقیقا لبه‌های یه طرح دستی رو دنبال کنه. یه پژوهش ۲۰۲۳ راهی پیشنهاد داد؛ یه کپی قابل‌آموزش از بخش رمزگذار مدل ساخته می‌شه که این شرط اضافه، مثل نقشه‌ی لبه یا اسکلت ژست، رو می‌گیره، و خروجیش از راه لایه‌هایی با شروع صفر به مدل اصلی اضافه می‌شه. همون فکر شروع صفر که بالاتر دیدیم؛ اول هیچ اثری نداره، پس مدل اصلی خراب نمی‌شه.

شخصی‌سازی یعنی یاد دادن یه سوژه‌ی خاص، مثلا گربه‌ی خودتون، با چند عکس. یه پژوهش ۲۰۲۲ مدل رو با ۳ تا ۵ عکس از سوژه و یه کلمه‌ی خاص براش تنظیم کرد. برای این‌که لازم نباشه کل مدل عوض بشه، معمولا از LoRA، کوتاه‌شده‌ی Low-Rank Adaptation، یعنی «تطبیق کم‌رتبه»، استفاده می‌شه که فقط چند ماتریس کوچیک کنار وزن‌ها اضافه می‌کنه؛ فایل نتیجه چند مگابایته، نه چند گیگابایت. همین ابزار متاسفانه برای ساختن عکس جعلی از آدم‌های واقعی هم سوءاستفاده می‌شه.

چند قدم

حتی با مسیر صاف، معمولا ۲۰ تا ۵۰ قدم لازمه، و هر قدم یه بار کامل از ترنسفورمر رد شدنه، یا با راهنمایی، دو بار. برای ساختن تقریبا آنی، راه‌های تقطیر اومدن. یه مدل معلم، با قدم‌های زیاد، عکس می‌سازه، و یه مدل شاگرد یاد می‌گیره همون نتیجه رو با چند قدم، یا حتی یه قدم، بسازه.

یه پژوهش ۲۰۲۳ نوع دیگه‌ای از این رو به اسم مدل سازگاری پیشنهاد داد؛ مدل یاد می‌گیره از هر نقطه‌ی مسیر، مستقیم به آخرش، یعنی عکس تمیز، بپره. با یه قدم عکس قابل‌قبول، و با دو سه قدم بهتر. هزینه‌ش اینه که معمولا کمی از تنوع یا ریزه‌کاری از دست می‌ره. انتخاب بین قدم زیاد و کم، همون بده‌بستون کیفیت و سرعته.

ویدیو

ویدیو همون عکسه با یه بعد زمان اضافه. یه گزارش فنی ۲۰۲۴ درباره‌ی یه مدل ساخت ویدیو گفت ویدیو رو اول با یه خودرمزگذار هم در مکان و هم در زمان فشرده کردن، و بعد این نهفته‌ی سه‌بعدی رو به تکه‌های فضا-زمانی بریدن؛ هر تکه، یه مربع کوچیک توی چند قاب پشت هم. بعد همون ترنسفورمر پخش، روی این صف تکه‌ها کار کرد.

خوبی تکه‌ها اینه که صف می‌تونه هر طولی داشته باشه؛ پس یه مدل، ویدیوهای کوتاه و بلند، افقی و عمودی، و با وضوح‌های مختلف رو با هم یاد می‌گیره و می‌سازه، بی این‌که همه رو به یه اندازه بریم. همون فکر بسته‌بندی عکس‌ها که توی ترنسفورمر بینایی دیدیم. ولی تعداد تکه‌ها خیلی زیاد می‌شه، پس همه‌ی ترفندهای توجه سریع و متن بلند این‌جا هم لازمه.

هزینه‌ی ساختن

بیاید یه حساب سرانگشتی کنیم. یه عکس ۱۰۲۴ در ۱۰۲۴، با فشردن ۸ برابر، نهفته‌ی ۱۲۸ در ۱۲۸ داره، و با تکه‌ی ۲، می‌شه ۶۴ در ۶۴، یعنی ۴۰۹۶ تکه. با ۳۰ قدم و راهنمایی، یعنی ۶۰ بار رد شدن از ترنسفورمر، هر بار با ۴۰۹۶ تکه به‌علاوه‌ی نشونه‌های متن. برای همین ساختن یه عکس بزرگ، از جواب دادن یه مدل زبانی به یه سوال کوتاه، حساب بیشتری می‌خواد.

دو برابر کردن طول و عرض عکس، تکه‌ها رو چهار برابر و توجه رو حدود شونزده برابر می‌کنه. برای همین خیلی از مدل‌ها اول عکس رو کوچیک‌تر می‌سازن و بعد یه مرحله‌ی جدا بزرگش می‌کنه، یا قدم‌ها رو با تقطیر کم می‌کنن. و برای ویدیو، که صدها قاب داره، این هزینه چند ده برابر می‌شه.

راه‌های دیگه

پخش تنها راه ساختن عکس با ترنسفورمر نیست. یه راه دیگه، مثل ساختن متن، نشونه به نشونه‌ست. یه پژوهش ۲۰۲۰ عکس رو با یه خودرمزگذار به یه جدول نشونه‌های گسسته، مثل نشونه‌های صوتی، تبدیل کرد و یه ترنسفورمر فقط‌رمزگشا یاد گرفت این نشونه‌ها رو یکی‌یکی، ردیف به ردیف، بسازه.

مشکلش اینه که برای یه عکس، صدها یا هزاران نشونه یکی‌یکی ساخته می‌شه، که کنده. یه پژوهش ۲۰۲۲ به‌جاش از پوشوندن استفاده کرد؛ از یه عکس کاملا پوشونده شروع می‌کنه، و هر قدم، چند نشونه که مدل بیشتر از همه مطمئنه رو باز می‌کنه، تا بعد از چند قدم همه باز بشن. خوبی راه‌های نشونه‌ای اینه که با مدل‌های زبانی راحت‌تر یکی می‌شن؛ یه مدل می‌تونه هم متن بسازه هم عکس.

امنیت

عکس و ویدیوی ساختگی که از واقعی قابل تشخیص نیست، خطرهای واقعی داره؛ عکس جعلی از یه آدم واقعی، خبر ساختگی با تصویر، یا کلاهبرداری. چند کار برای کم کردن خطر انجام می‌شه. یکی نشانه‌گذاری نامرئی توی عکس‌های ساخته‌شده؛ یکی برچسب و اطلاعات همراه فایل که می‌گه با چه ابزاری ساخته شده؛ و یکی فیلتر کردن درخواست‌ها و داده‌ی آموزش.

برای خودمون هم یه عادت ساده کمک می‌کنه؛ وقتی یه عکس یا ویدیوی خیلی عجیب یا هیجان‌انگیز می‌بینیم، قبل از باور کردن یا پخش کردن، دنبال منبع اصلیش بگردیم. جزئیاتی مثل دست‌ها، نوشته‌های پس‌زمینه، یا سایه‌هایی که با نور جور نیستن، گاهی لوش می‌دن، ولی مدل‌های تازه این‌ها رو هم بهتر و بهتر می‌سازن، پس به چشم تنها نمی‌شه اعتماد کرد.

از کجا اومد

ایده‌ی پخش از سال ۲۰۱۵ بود، ولی ۲۰۲۰ با پژوهشی که پیش‌بینی نویز رو ساده کرد، کیفیتش بالا رفت. ۲۰۲۱ کار توی فضای نهفته، ساختن رو ارزون و عمومی کرد، و ۲۰۲۲ راهنمایی بی دسته‌بند، رمزگذار متن بزرگ، مسیر صاف، و ترنسفورمر پخش اومدن.

۲۰۲۳ مدل‌های سازگاری قدم‌ها رو کم کردن و ترنسفورمر پخش توی مدل‌های بزرگ‌تر به کار رفت. ۲۰۲۴ توجه مشترک متن و عکس با مسیر صاف، و ویدیو با تکه‌های فضا-زمانی اومدن، و بیشتر مدل‌های بزرگ ساخت عکس و ویدیو از شبکه‌ی U شکل به ترنسفورمر رفتن. دلیل اصلی همونه که توی متن و عکس دیدیم؛ ساختار ساده‌ای که با بزرگ شدن، قابل پیش‌بینی بهتر می‌شه.

اشتباه‌های رایج

خیلی‌ها فکر می‌کنن ترنسفورمر پخش، مثل مدل زبانی، عکس رو تکه به تکه می‌سازه؛ نه، هر قدم کل عکس رو با هم یه ذره تمیزتر می‌کنه. یکی دیگه اینه که فکر کنن مدل روی پیکسل‌ها کار می‌کنه؛ بیشتر مدل‌های امروز روی یه نهفته‌ی خیلی کوچیک‌تر کار می‌کنن و فقط آخر کار به پیکسل برمی‌گردن.

سومی اینه که فکر کنن ضریب راهنمایی بیشتر یعنی عکس بهتر؛ از یه جایی به بعد، عکس‌ها تند و مصنوعی و شبیه هم می‌شن. و آخری اینه که فکر کنن مدل عکس‌ها رو از جایی کپی می‌کنه؛ معمولا نه، از نویز تازه ساخته می‌شه، ولی پژوهش‌ها نشون دادن مدل‌ها گاهی، به‌خصوص برای عکس‌هایی که توی داده‌ی آموزش خیلی تکرار شدن، چیزی خیلی نزدیک به یه عکس آموزش می‌سازن.

تمرین

این چهار تا رو اول خودتون حساب کنید. یک، عکس ۵۱۲ با فشردن ۸ برابر، نهفته‌ش چند در چنده؟ دو، همون نهفته با تکه‌ی ۲، چند تکه داره؟ سه، اگه تکه رو از ۲ به ۴ ببریم، تعداد تکه‌ها چی می‌شه و جفت‌های توجه چند برابر کمتر؟ چهار، با ۲۵ قدم و راهنمایی، چند بار از ترنسفورمر رد می‌شیم؟

جواب‌ها. اولی، ۶۴ در ۶۴. دومی، ۳۲ در ۳۲، یعنی ۱۰۲۴ تکه. سومی، ۱۶ در ۱۶، یعنی ۲۵۶ تکه؛ چهار برابر تکه‌ی کمتر، پس ۱۶ برابر جفت کمتر. چهارمی، ۵۰ بار؛ هر قدم یه بار با متن و یه بار بی متن.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • پخش: از نویز شروع، قدم به قدم پاک کن.
  • پاک‌کننده امروز اغلب یه ترنسفورمره.
  • کار توی فضای نهفته‌ی کوچیک انجام می‌شه.
  • نهفته به تکه‌ها بریده می‌شه، مثل عکس.
  • قدم و متن با نرمال‌سازی یا توجه وارد می‌شن.
  • مسیر صاف و تقطیر، قدم‌ها رو کم می‌کنن.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس