بیا یه مدل خیلی خفن و جدید رو بهت معرفی کنم که این روزا کلی سر و صدا کرده: «اومنیوک۲» (OmniVec2). این مدل رو با این هدف ساختن که بتونه همزمان کلی کار مختلف رو با دادههایی از جنسای کاملاً متفاوت انجام بده. میدونی چرا این انقدر خاصه؟ چون اکثر مدلهای هوش مصنوعی فقط با یه نوع داده (مثلاً فقط متن یا تصویر) راحتن. ولی OmniVec2 با ۱۲ نوع داده مختلف حال میکنه! 😎
بذار لیستشون رو بهت بگم: تصویر (یا همون Image)، ویدئو، صدا (Audio)، متن نوشتاری، عمق (Depth – مثلاً فاصله هر نقطه در یک تصویر تا دوربین)، ابرنقاط (Point Cloud که دادههای سه بعدی برای نمایش حجم اجسام هستن)، زمانبندی یا همون Time Series (یه سری داده که طبق زمان مرتب شدن، مثل دمای هوا در هر روز)، دادههای جدولی (Tabular– مثل اکسل خودمون)، گراف (Graph– یعنی اطلاعاتی که با ارتباط بین نقطهها سر و کار داره، مثل شبکههای اجتماعی)، عکس رادیولوژی (X-ray)، مادون قرمز (Infrared)، حسگر حرکت (IMU– سنسورهایی که حرکت رو تشخیص میدن، مثل موبایل موقع تغییر جهت)، و دادههای هایپراسپکترال (Hyperspectral– عکسهایی که چندتا طول موج نور رو با هم ثبت میکنن؛ تو صنایع و کشاورزی خیلی استفاده میشه!). شاخ نیست؟!
چی کار میکنه؟
کلاً این مدل یه جورایی یه مغز متفکر چندکارهست. یعنی OmniVec2 طوری طراحی شده که بتونه همزمان هم «چند-دادهای» (multimodal– یعنی چند جور داده مختلف) و هم «چند-وظیفهای» (multitask– یعنی چند نوع کار مختلف، مثلاً همزمان تشخیص عکس و تحلیل متن) کار کنه.
چطور جواب میده؟
حالا سؤال اینه که این همه نوع داده چطور وارد یک مدل میشه و قاطی پاطی نمیشن؟ OmniVec2 واسه هر نوع داده یه بخش ویژه داره که بهش میگن Tokenizer. این Tokenizerها انگار مترجمهای تخصصی هر نوع داده هستن که دادهها رو تبدیل میکنن به یه فرم قابل فهم برای مدل. بعدش یک شبکه اصلی مشترک به اسم Transformer وارد عمل میشه. Transformer همون مغز پیشرفتهایه که الان همه جا ازش حرف میزنن و مدلهای معروف مثل ChatGPT و Stable Diffusion هم از همین ایده استفاده میکنن.
کلک OmniVec2 اینه که با کمک مکانیزم «توجه متقاطع» یا همون Cross-Attention (یه مدل باهوش که میدونه کی باید به کدوم قسمت داده توجه کنه)، همه این دادهها رو میبره تو یه فضای مشترک که بهش میگن Embedding Space. این یعنی مدل میتونه بفهمه هر دادهای، بدون توجه به نوعش، تو این فضای شستهرفته چه معنیای میده.
اما این هنوز همه داستان نیست. واسه هر کار و هر نوع داده، یه قسمت پایانی (به اسم Task Head) اختصاصی وجود داره. فرض کن برای تشخیص تصویر یه Head خاص دارن، برای تحلیل داده جدولی هم Head مربوط به خودش.
پیشتمرین و روش نوشتن (Training Algorithm)
Team سازنده برای اینکه مدل نخواد از همون اول با همه این دادههای عجیب و غریب بجنگه، یه ترفند جدید زدن! بهش میگن Pretraining with Iterative Modality Switching. یعنی مدل اول با یه نوع داده تمرین میکنه، کمکم جابجا میشه، یه بار با تصویر، بعد با صوت، بعد با متن و … تا آخر، اینجوری مدل قلق هر داده رو جدا جدا در میاره و میفهمه صدای چه دادهای از کدوم ور میاد!
یه نکته دیگه هم اینه که موقع آموزش مدل، همیشه همزمان از همه دادهها استفاده نمیکنن. گاهی فقط با دو نوع داده مدل رو تمرین میدن (مثلاً فقط تصویر و متن)، بعد جابجا میشن. این باعث میشه مدل هم زودتر یاد بگیره، هم قاطی نکنه.
عملکرد واقعی؟
حالا همه اینا روی کاغذ قشنگه، اما مهم اینه چقد تو عمل جواب داده؟ OmniVec2 رو حسابی امتحان کردن: روی ۲۵ دیتاست مختلف و مربوط به اون ۱۲ نوع داده. نتیجهش هم عالی بوده و تونسته بهترین عملکردهای تا حال حاضر، یعنی state of the art رو ثبت کنه.
جمعبندی
اگر عاشق هوش مصنوعی و مدلای همهفنحریف هستی، به OmniVec2 یه نگاه جدی بنداز. هم ساختارش خلاقانهست، هم تو عمل کارشو عالی انجام داده. دیگه لازم نیست واسه هر کار یه مدل جدا بسازی؛ این مدل تقریباً همه فن حریفه!
اگه درباره مفاهیمی که تو مقاله اومد کنجکاوی: مثلا Transformer همون معماری معروف هوش مصنوعیه که به مدلها این قدرت رو میده با انواع داده شبیه مغز انسان ارتباط برقرار کنن. Cross-Attention هم روشیئه واسه اینکه قسمتهای مهم دادههای مختلف با هم جفت شن و مدل واقعا بفهمه چی به چیه!
در کل OmniVec2 داره مرزهای هوش مصنوعی رو جابجا میکنه. شاید تو آینده هرجا مدل چندکاره خواستی، فقط بری سراغ همین!
منبع: +