- موضوع درس: مدلهای زبان-بینایی (VLM) و راهکار جدید FastVLM برای افزایش سرعت و دقت
- زمان تقریبی مطالعه: حدود ۹ دقیقه
- پیشنیازها: فقط کمی کنجکاوی در مورد هوش مصنوعی و اینکه چطور عکسها و متنها رو میفهمه.
- اهداف درس: بعد از این درس، متوجه میشی که:
- مدلهای VLM چی هستن و چه کاربردهایی دارن.
- بزرگترین چالش این مدلها یعنی رابطه بین سرعت و دقت چیه.
- معماری جدیدی به اسم FastVLM چطور این چالش رو حل کرده.
فصل اول: مدلهای زبان-بینایی (VLM) چی هستن؟
بیا با یه مفهوم جالب شروع کنیم: مدلهای زبان-بینایی یا همون VLM که مخفف Vision Language Models هست. این مدلها به سیستمهای هوش مصنوعی اجازه میدن که همزمان با ورودیهای متنی، محتوای بصری یا همون عکسها رو هم درک کنن.
روش ساختشون معمولا به این صورته که یک سری توکنهای بصری (یعنی اطلاعاتی که از عکس استخراج شده) رو از یک «انکودر بینایی» (vision encoder) که از قبل آموزش دیده، میگیرن و از طریق یک «لایه پروجکشن» (projection layer) به یک مدل زبان بزرگ یا همون LLM که اون هم از قبل آموزش دیده، میدن.
با این روش، مدلهای VLM میتونن از قابلیتهای بالای انکودر بینایی در درک تصاویر و همینطور از دانش عمومی و توانایی استدلال مدلهای زبان بزرگ استفاده کنن. این ترکیب باعث میشه برای کارهای خیلی متنوعی مفید باشن. مثلا برای دستیارهای مخصوص افراد کمتوان، مسیریابی در رابطهای کاربری (UI)، رباتیک و حتی بازیهای ویدیویی.
فصل دوم: چالش بزرگ؛ دقت در برابر سرعت
یک نکته مهم در مورد VLMها اینه که دقتشون معمولا با بالا رفتن رزولوشن یا همون کیفیت عکس ورودی، بهتر میشه. همین موضوع یک بدهبستان بین دقت و کارایی به وجود میاره. برای خیلی از کاربردهای واقعی و تجاری، VLMها باید هم دقیق باشن و هم سریع تا بتونن جوابگوی نیاز برنامههایی باشن که در لحظه کار میکنن و به تاخیر کم احتیاج دارن. از طرفی، برای حفظ حریم خصوصی، بهتره که این مدلها روی خود دستگاه کاربر اجرا بشن.
توی مقالهای که در کنفرانس CVPR 2025 پذیرفته شده، محققهای هوش مصنوعی اپل یک تکنیک جدید برای حل این چالش معرفی کردن: FastVLM. این مدل یک نوع جدید از VLM هست که با یه طراحی ساده، تونسته به شکل قابل توجهی این بدهبستان بین دقت و تاخیر رو بهتر کنه. FastVLM با استفاده از یک انکودر بینایی با معماری هیبریدی که برای عکسهای با رزولوشن بالا طراحی شده، پردازش درخواستهای بصری رو دقیق، سریع و بهینه انجام میده. این ویژگیها باعث میشه برای اجرای برنامههای لحظهای روی خود دستگاه خیلی مناسب باشه. کدها، مدلها و حتی یک اپلیکیشن دمو برای iOS و macOS بر پایه MLX هم برای استفاده در دسترسه.
چرا رزولوشن بالاتر، سرعت رو کم میکنه؟
همونطور که گفتیم، دقت VLMها با بالا رفتن رزولوشن تصویر بهتر میشه، مخصوصا برای کارهایی که به درک جزئیات نیاز دارن. مثلا تحلیل اسناد، تشخیص عناصر رابط کاربری یا جواب دادن به سوالهای متنی در مورد عکسها. برای مثال، توی تصویر زیر (شکل ۱ در مقاله اصلی)، از VLM در مورد تابلوی راهنمایی و رانندگی سوال میشه. در حالت سمت چپ که عکس رزولوشن پایینی داره، مدل نمیتونه جواب درست بده. اما در حالت سمت راست که عکس با رزولوشن بالا بهش داده شده، مدل به درستی تابلو رو تشخیص میده که «ورود ممنوع» هست.
با اینکه رزولوشن بالا دقت رو زیاد میکنه، اما از دو جهت روی سرعت تاثیر منفی میذاره:
- پردازش عکسهای با رزولوشن بالا برای انکودر بینایی زمان بیشتری میبره.
- انکودر توکنهای بصری بیشتری تولید میکنه که این موضوع زمان آمادهسازی اولیه یا «pre-filling» رو برای LLM افزایش میده.
هر دوی این عوامل، زمان رسیدن به اولین توکن (TTFT) رو زیاد میکنن. TTFT در واقع مجموع زمان انکودینگ بصری و زمان آمادهسازی اولیه LLM هست. همونطور که در یک نمودار (شکل ۲ در مقاله اصلی) نشون داده شده، با افزایش رزولوشن تصویر، هم زمان انکودینگ و هم زمان آمادهسازی LLM زیاد میشن و در رزولوشنهای خیلی بالا، تاخیر انکودر بینایی به گلوگاه اصلی تبدیل میشه. برای حل همین مشکل، تحقیق مورد بحث ما مدل FastVLM رو معرفی میکنه که بدون فدا کردن دقت، کارایی رو به شکل چشمگیری بهتر میکنه.
فصل سوم: پیدا کردن بهترین معماری؛ انکودرهای هیبریدی
برای اینکه بفهمن کدوم معماری بهترین تعادل رو بین دقت و تاخیر ایجاد میکنه، محققها یک آزمایش سیستماتیک انجام دادن. توی این آزمایش، همه چیز (دیتای آموزشی، روش آموزش، مدل LLM و غیره) ثابت نگه داشته شد و فقط انکودر بینایی تغییر میکرد.
در نموداری که نتایج رو نشون میده (شکل ۳ در مقاله اصلی)، محور افقی TTFT (زمان تاخیر) و محور عمودی میانگین دقت در کارهای مختلف VLM هست. نتایج برای انکودرهای معروفی مثل ViT-L/14 و SigLIP-SO400 که بر پایه ترنسفورمر هستن، نشون داده شده. همینطور منحنیهایی برای ConvNeXT (یک انکودر کاملا کانولوشنی) و FastViT (یک انکودر هیبریدی که ترکیبی از بلوکهای کانولوشنی و ترنسفورمر هست) در رزولوشنهای مختلف وجود داره.
نتیجه این بود که FastViT، که بر اساس دو کار قبلی همین تیم (FastViT, ICCV 2023 و MobileCLIP, CVPR 2024) ساخته شده، بهترین تعادل بین دقت و تاخیر رو در مقایسه با بقیه انکودرها به دست میاره. این مدل حدود ۸ برابر کوچکتر و ۲۰ برابر سریعتر از ViT-L/14 هست.
فصل چهارم: معرفی FastViTHD؛ یک انکودر بهینه شده
با اینکه معماری هیبریدی FastViT یک انتخاب عالی برای VLMهای بهینه هست، اما برای کارهای سنگینتر و دقت بالاتر، به انکودرهای بینایی بزرگتری نیاز داریم. در ابتدا، محققها سعی کردن به سادگی اندازه هر لایه از FastViT رو بزرگتر کنن. اما این روش سادهانگارانه باعث شد FastViT در رزولوشنهای بالا حتی از انکودرهای کاملا کانولوشنی هم کندتر بشه.
برای حل این مشکل، اونها یک معماری پایه جدید به اسم FastViTHD طراحی کردن که به طور خاص برای عکسهای با رزولوشن بالا ساخته شده. FastViTHD در مقایسه با FastViT یک مرحله اضافی داره و با استفاده از روش آموزشی MobileCLIP پیشآموزش دیده تا توکنهای بصری کمتر اما با کیفیتتری تولید کنه.
FastViTHD در رزولوشنهای بالا تاخیر کمتری نسبت به FastViT داره. اما برای اینکه ببینن کدومشون در یک VLM بهتر عمل میکنه، عملکردشون رو وقتی با LLMهایی در اندازههای مختلف ترکیب میشن مقایسه کردن. اونها جفتهای مختلفی از «رزولوشن تصویر، اندازه LLM» رو آزمایش کردن. برای این کار از سه LLM با پارامترهای ۰.۵ میلیارد، ۱.۵ میلیارد و ۷ میلیارد استفاده شد.
نتایج (که در شکل ۴ مقاله اصلی نشون داده شده) میگه که استفاده از عکسهای با رزولوشن خیلی بالا با یک LLM کوچک همیشه بهترین انتخاب نیست؛ گاهی بهتره به جای افزایش رزولوشن، از یک LLM بزرگتر استفاده کنیم. منحنی بهینه نشون میده که FastVLM (که بر پایه FastViTHD ساخته شده) تعادل خیلی بهتری بین دقت و تاخیر نسبت به مدل مبتنی بر FastViT ارائه میده. این مدل میتونه برای رسیدن به یک سطح دقت مشخص، تا ۳ برابر سریعتر عمل کنه.
فصل پنجم: FastVLM چطور کار میکنه؟
معماری FastVLM بر پایه انکودر بینایی FastViTHD بنا شده. این انکودر یک معماری هیبریدی از نوع کانولوشنی-ترنسفورمری هست و از بخشهای زیر تشکیل شده:
- یک بخش اولیه کانولوشنی (convolutional stem)
- سه مرحله کانولوشنی
- دو مرحله بعدی که از بلوکهای ترنسفورمر تشکیل شدن
قبل از هر مرحله، یک لایه «جاسازی پچ» (patch embedding) وجود داره که ابعاد فضایی تانسور ورودی رو نصف میکنه. بعد از اینکه انکودر FastViTHD کارش رو انجام داد، یک ماژول ساده MLP (پرسپترون چندلایه) توکنهای بصری رو به فضای برداری مدل LLM منتقل میکنه (طرح کلی در شکل ۵ مقاله اصلی هست).
فصل ششم: مقایسه FastVLM با روشهای دیگه
در برابر روشهای هرس و ادغام توکن
تحقیقات قبلی برای سرعت بخشیدن به VLMها از تکنیکهای پیچیده «ادغام» یا «هرس» توکنهای بصری استفاده میکردن تا تعدادشون کم بشه و در نتیجه سرعت آمادهسازی LLM بالا بره. اما نمودارها (شکل ۶ مقاله اصلی) نشون میده که FastVLM در مقایسه با این روشها، در تعداد توکنهای مختلف (که به رزولوشنهای ورودی مختلف مربوط میشه) به دقت کلی بالاتری میرسه. دلیل این موفقیت، کیفیت بالای توکنهای بصری تولید شده توسط انکودر FastViTHD هست. همچنین چون FastVLM به هرس یا ادغام توکن نیازی نداره، پیادهسازی و استفاده ازش سادهتره.
FastVLM و کاشیکاری پویا (Dynamic Tiling)
همونطور که دیدیم، دقت VLMها با رزولوشن ورودی بیشتر میشه، مخصوصا برای کارهایی که به جزئیات ریز نیاز دارن. «کاشیکاری پویا» (مثل روشی که در AnyRes استفاده شده) یک راه معروف برای مدیریت عکسهای با رزولوشن خیلی بالاست. این روش یک عکس بزرگ رو به کاشیهای کوچکتر تقسیم میکنه، هر کاشی رو جداگانه از انکودر بینایی عبور میده و بعد همه توکنها رو به LLM میفرسته (شکل ۷ مقاله اصلی).
از اونجایی که FastVLM به طور طبیعی با رزولوشنهای بالا خوب کار میکنه، محققها بررسی کردن که آیا ترکیبش با کاشیکاری پویا میتونه تعادل دقت-تاخیر رو بهتر کنه یا نه. نتایج (شکل ۸ مقاله اصلی) نشون میده که FastVLM بدون کاشیکاری (منحنی آبی) تعادل بهتری نسبت به حالت با کاشیکاری پویا (نقاط صورتی) داره. البته این برتری تا یک حد مشخصی از رزولوشنهای بالا ادامه داره و بعد از اون، ترکیب FastVLM و AnyRes میتونه مفید باشه.
سریعتر و دقیقتر از رقبای هماندازه
در نهایت، FastVLM با بقیه VLMهای محبوب مقایسه شد. در نمودار نهایی (شکل ۹ مقاله اصلی)، FastVLM هم با روش AnyRes (برای رسیدن به بالاترین دقت) و هم بدون کاشیکاری (برای بهترین تعادل دقت-تاخیر) آزمایش شده. نتایج نشون میده که FastVLM به شکل قابل توجهی سریعتر و دقیقتر از مدلهای محبوب هماندازه خودشه:
- ۸۵ برابر سریعتر از LLava-OneVision (با LLM ۰.۵ میلیارد پارامتری)
- ۵.۲ برابر سریعتر از SmolVLM (با LLM حدود ۰.۵ میلیارد پارامتری)
- ۲۱ برابر سریعتر از Cambrian-1 (با LLM ۷ میلیارد پارامتری)
فصل هفتم: FastVLM در عمل
برای اینکه کارایی FastVLM روی دستگاههای واقعی بهتر نشون داده بشه، یک اپلیکیشن دمو برای iOS و macOS بر پایه کتابخانه MLX منتشر شده. نمونههایی از اجرای محلی FastVLM روی پردازنده گرافیکی آیفون (شکل ۱۰ مقاله اصلی) نشون میده که عملکرد تقریبا لحظهای اون میتونه قابلیتها و تجربههای جدیدی رو روی خود دستگاه کاربر ممکن کنه.
مدلهای VLM با ترکیب درک بصری و متنی، میتونن کاربردهای خیلی مفیدی داشته باشن. از اونجایی که دقت این مدلها معمولا به رزولوشن عکس ورودی بستگی داره، همیشه یک بدهبستان بین دقت و کارایی وجود داشته که ارزش VLMها رو برای برنامههایی که همزمان به دقت بالا و کارایی عالی نیاز دارن، محدود میکرد.
FastVLM با استفاده از یک انکودر بینایی با معماری هیبریدی به اسم FastViTHD که برای عکسهای با رزولوشن بالا ساخته شده، این مشکل رو حل میکنه. FastVLM با طراحی سادهای که داره، در هر دو زمینه دقت و کارایی از روشهای قبلی بهتر عمل میکنه و پردازش بصری روی خود دستگاه رو برای برنامههای لحظهای ممکن میکنه.
مطالعات و بروزرسانیهای مرتبط
- FastVLM: Efficient Vision encoding for Vision Language Models, April 18, 2025, research area Computer Vision, conference CVPR
- A Multi-Task Neural Architecture for On-Device Scene Analysis, June 7, 2022, research area Computer Vision, research area Methods and Algorithms
تحلیل صحنه یک تکنولوژی اصلی و جداییناپذیره که به خیلی از ویژگیها و تجربهها در اکوسیستم اپل قدرت میده. از جستجوی محتوای بصری گرفته تا خاطرات قدرتمندی که مناسبتهای خاصی رو در زندگی یک فرد ثبت میکنن، خروجیهای تولید شده توسط تحلیل صحنه برای نحوه تعامل کاربران با عکسهای روی دستگاههاشون حیاتی هستن. استفاده از مدلهای اختصاصی برای هر کدوم از این ویژگیها بهینه نیست، چون خیلی از این مدلها میتونن از اشتراک منابع سود ببرن. ما نشون میدیم که چطور Apple Neural Scene Analyzer (ANSA) رو توسعه دادیم که یک معماری پایه یکپارچه برای ساخت و نگهداری جریانهای کاری تحلیل صحنه در محصولات هست. این یک قدم مهم بود که به اپل اجازه داد تا در سال ۲۰۱۶ جزو اولینها در صنعت باشه که تحلیل صحنه رو به صورت کامل روی دستگاه کاربر پیادهسازی میکنه.
دیدگاهتان را بنویسید