فاز 12 · درس 8

معماری LLaVA-OneVision: تجمیع تصویر، چندتصویر و ویدیو در یک مدل

نوع
ساختنی
زمان
حدود 180 دقیقه
زبان‌ها
Python (stdlib, token budget solver + curriculum planner)
پیش‌نیاز
فاز 12 · درس 05 (LLaVA)، فاز 12 · درس 06 (AnyRes)
یک ترازو فلزی که در یک کفه آن تک‌تصویر با وضوح بالا و در کفه دیگر زنجیره‌ای از فریم‌های ویدیویی فشرده در تعادل قرار دارند
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفهوم
  4. بودجه‌بندی توکن در OneVision
  5. برنامه‌ی آموزشی سه‌مرحله‌ای
  6. چرا برنامه‌ی آموزشی اثربخش است؟
  7. مهارت‌های نوظهور میان‌سناریویی
  8. تجمیع توکن‌های بصری
  9. مدل LLaVA-OneVision-1.5
  10. مقایسه با Qwen2.5-VL
  11. پیاده‌سازی عملی
  12. تحویل پروژه
  13. تمرین‌ها
  14. اصطلاحات کلیدی
  15. برای مطالعه‌ی بیشتر

تا پیش از معرفی LLaVA-OneVision، توسعه‌دهندگان ناچار بودند برای پردازش تک‌تصویر، مجموعه‌تصاویر یا فایل‌های ویدیویی از مدل‌های بینایی-زبانی (VLM) متفاوتی استفاده کنند. هر یک از این مدل‌ها تنها در حوزه‌ی تخصصی خود عملکرد مناسبی داشتند و در سناریوهای دیگر شکست می‌خوردند؛ موضوعی که هزینه‌های نگهداری و پیچیدگی زیرساخت استنتاج را چند برابر می‌کرد.

این درس به شما نشان می‌دهد که چگونه می‌توان با یک بودجه‌بندی دقیق برای توکن‌های بصری و یک برنامه‌ی آموزشی (Curriculum) سه‌مرحله‌ای، مدلی یکپارچه ساخت که در هر سه حوزه‌ی تک‌تصویر، چندتصویر و ویدیو از مدل‌های تخصصی پیشی بگیرد. علاوه بر این، نحوه‌ی شکل‌گیری مهارت‌های نوظهور ناشی از ترکیب این سناریوها را تحلیل خواهیم کرد.

پیش از معرفی LLaVA-OneVision (توسط Li و همکاران، آگوست 2024)، دنیای مدل‌های بینایی-زبانی (VLM) متن‌باز به شاخه‌های جداگانه‌ای تقسیم شده بود: LLaVA-1.5 برای تک‌تصویر، مدل‌های چندتصویری مثل Mantis و VILA، و مدل‌های ویدیویی نظیر Video-LLaVA و Video-LLaMA. هر کدام از این مدل‌ها در بنچمارک حوزه‌ی تخصصی خود پیروز می‌شدند و در بقیه شکست می‌خوردند. LLaVA-OneVision نشان داد که با یک برنامه‌ی آموزشی (Curriculum) یکپارچه می‌توان مدلی آموزش داد که در هر سه سناریو دست برتر را داشته باشد؛ افزون بر این، اثرات نوظهور انتقال مهارت (مانند انتقال مهارت‌های تک‌تصویر به ویدیو، یا انتقال استدلال چندتصویری به تک‌تصویر) از مجموع عملکرد چند مدل متخصص فراتر می‌رود. فرمول کار به‌شکلی فریبنده ساده است: یک بودجه‌بندی متعادل برای توکن‌های بصری در تمام سناریوها، همراه با یک برنامه‌ی آموزشی صریح که از تک‌تصویر شروع می‌شود، به OneVision (چندتصویری) می‌رسد و در نهایت به ویدیو ختم می‌شود. در این درس بودجه‌بندی توکن‌ها، برنامه‌ی آموزشی و رفتارهای نوظهور این مدل را بررسی می‌کنیم.

اهداف یادگیری

  • طراحی یک بودجه‌بندی توکن بصری که تعادل خود را میان ورودی‌های تک‌تصویری، چندتصویری و ویدیویی حفظ کند.
  • تنظیم یک برنامه‌ی آموزشی که مهارت‌ها را بدون فراموشی فاجعه‌بار (Catastrophic Forgetting) از تک‌تصویر به ویدیو منتقل کند.
  • توضیح این موضوع که چرا یک مدل یکپارچه با برنامه‌ی آموزشی درست، رقبای متخصص خود را در تعداد پارامتر برابر شکست می‌دهد.
  • نام بردن از سه قابلیت نوظهور گزارش‌شده در LLaVA-OneVision: استدلال چنددوربینه، پرامپت‌نویسی مجموعه‌نشانه‌ها (Set-of-Mark Prompting) و ایجنت اسکرین‌شات آیفون.

صورت مسئله

تصویر، چندتصویر و ویدیو هر کدام بار متفاوتی بر دوش مدل می‌گذارند.

حالت تک‌تصویر خواهان توکن‌هایی با وضوح بالا است (مانند AnyRes، حدود 2880 توکن بصری) تا جزئیات دقیق و متن‌های درون تصویر (OCR) را به‌خوبی ثبت کند. بودجه‌ی هر نمونه: یک تصویر، 2880 توکن.

حالت چندتصویر نیازمند چندین تصویر با وضوح متوسط (هر کدام حدود 576 توکن) است تا امکان استدلال میان چند تصویر بدون سرریز بافت متن (Context) فراهم شود. بودجه‌ی هر نمونه: 4 تا 8 تصویر، هر کدام 576 توکن، در مجموع 2300 تا 4600 توکن.

ویدیو نیازمند فریم‌های پرتعداد با وضوح پایین است (حدود 196 توکن به‌ازای هر فریم پس از تجمیع) تا پویایی زمانی را ثبت کند. بودجه‌ی هر نمونه: 8 تا 32 فریم، هر کدام 196 توکن، در مجموع 1600 تا 6200 توکن.

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

پیش از OneVision، پاسخ پیش‌فرض این بود: «یک سناریو را آموزش بده و بقیه را نادیده بگیر.» مدلی مثل Video-LLaVA با افزودن مراحل آموزشی اضافه، ویدیو را به یک مدل تصویری الحاق کرد. LLaVA-NeXT نیز با کاشی‌کاری (Tiling) پشتیبانی از چندتصویر را اضافه کرد. با این حال، هیچ‌کدام نتوانستند هر سه سناریو را تر‌و‌تمیز مدیریت کنند.

مفهوم

بودجه‌بندی توکن در OneVision

مدل LLaVA-OneVision تعداد توکن‌ها را روی رقمی کاملاً ثابت قفل نمی‌کند؛ بلکه سقف تعداد توکن بصری در هر نمونه را طوری متعادل می‌سازد که هر سه سناریو در بازه‌ای مشابه، یعنی تقریباً 6000 تا 9000 توکن، قرار گیرند و این بودجه بسته به سناریو به شکل متفاوتی تخصیص یابد:

  • تک‌تصویر: از AnyRes-Max-9 استفاده می‌کند (تا سقف 9 کاشی به‌علاوه‌ی یک نمای پایه‌ای)؛ هر نمای 384x384 از طریق انکودر SigLIP SO400M معادل 729 توکن تولید می‌کند. حداکثر: 729 * (1 + 9) = 7290 توکن.
  • چندتصویر: هر تصویر با ابعاد 384 بدون کاشی‌کاری، 729 توکن بدون تجمیع (Pooling) تولید می‌کند. تا 12 تصویر → 8748 توکن.
  • ویدیو: تا 32 فریم با ابعاد 384 همراه با درون‌یابی دولایه‌ای (Bilinear interpolation) با ضریب 2x2 → 196 توکن به‌ازای هر فریم. مجموع: 32 * 196 = 6272 توکن.

این تخصیص، سقف نهایی توکن‌ها را در یک محدوده‌ی همسان نگه می‌دارد؛ در نتیجه هیچ سناریویی بافت متن یا گرادیان را به نفع خود قبضه نمی‌کند. انکودر هندسه‌ی متفاوتی برای هر سناریو تولید می‌کند، اما مدل زبانی بزرگ (LLM) بودجه‌ای تقریباً مشابه مصرف می‌کند. برنامه‌ریز موجود در code/main.py از یک بودجه‌ی آموزشی و کوچک‌تر 4096 استفاده می‌کند تا همین منطق تعادلی را نشان دهد.

برنامه‌ی آموزشی سه‌مرحله‌ای

آموزش LLaVA-OneVision در سه مرحله پیش می‌رود:

  1. تنظیم دقیق نظارت‌شده‌ی تک‌تصویر (مرحله‌ی SI): تمام داده‌ها ترکیبی از یک تصویر به‌همراه متن هستند. آموزش روی ورودی AnyRes با وضوح بالا انجام می‌شود تا ادراک بصری، OCR و درک جزئیات دقیق شکل بگیرد. در این مرحله از داده‌های LLaVA-NeXT به‌همراه داده‌های تک‌تصویر اختصاصی OneVision استفاده می‌شود.
  2. تنظیم دقیق نظارت‌شده‌ی OneVision (مرحله‌ی OV): ترکیبی از تک‌تصویر + چندتصویر + ویدیو (با فریم‌های نمونه‌برداری‌شده به‌صورت یکنواخت). آموزش روی بودجه‌ی توکن یکپارچه انجام می‌شود تا مدل یاد بگیرد شکل‌های ناهمگن دسته‌ها (Batch) را مدیریت کند. در این مرحله وزن‌ها ریست نمی‌شوند و آموزش مستقیماً از ادامه‌ی مرحله‌ی SI پیش می‌رود.
  3. انتقال وظیفه (مرحله‌ی TT): آموزش با ترکیبی از داده‌های وظایف هدف ادامه می‌یابد؛ بسته به محصول نهایی، سهم چندتصویر یا ویدیو بیشتر در نظر گرفته می‌شود. این مرحله یک تنظیم دقیق اختیاری برای استقرار نهایی به شمار می‌رود.

نکته‌ی حیاتی: ترتیب مراحل برنامه‌ی آموزشی تفاوت عمده ایجاد می‌کند. اگر آموزش را از ویدیو یا چندتصویر شروع کنید، حتی با وجود داده‌های یکسان، عملکرد پردازش تصویر نسبت به حالت شروع با تک‌تصویر ضعیف‌تر خواهد شد. در مقاله‌ی اصلی، اثر این موضوع به‌روشنی در آزمایش‌های حذفی (Ablation) بررسی شده است.

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

آموزش تک‌تصویر شالوده‌ی ادراکی مدل را می‌سازد. توکن‌های وصله‌ای (Patch Tokens) ویژگی‌های بصری دقیقی دارند و مدل زبانی یاد می‌گیرد آن‌ها را با متن یکپارچه کند. در سوی دیگر، چندتصویر و ویدیو چالش‌های ساختاری جدیدی ایجاد می‌کنند (تشخیص این‌که کدام تصویر مربوط به کجاست، یا کدام رویداد اول رخ داده است) که بدون داشتن یک پایه‌ی ادراکی محکم، یادگیری آن‌ها دشوار خواهد بود.

اگر همه‌ی سناریوها را هم‌زمان از صفر آموزش دهید، مدل در ادراک ضعیف عمل می‌کند (داده‌های تک‌تصویر در هر دسته محدود خواهد بود) و روی ساختار بیش‌برازش (Overfit) می‌شود (به‌دلیل حجم بالای داده‌های چندتصویری و ویدیویی). حاصل کار مدلی است که الگوهای استدلال بین‌تصویری را رعایت می‌کند اما از نظر بصری سطحی است.

ترتیب این برنامه ابتدا توانایی ادراک را در مرحله‌ی SI تثبیت می‌کند و سپس استدلال ترکیبی و زمانی را در مرحله‌ی OV پرورش می‌دهد؛ بدون این‌که هیچ‌کدام از دست بروند.

مهارت‌های نوظهور میان‌سناریویی

مقاله‌ی LLaVA-OneVision سه قابلیت نوظهور را گزارش می‌کند:

  1. استدلال چنددوربینه: مدل به‌طور جداگانه روی چندتصویر و ویدیو آموزش دیده است؛ اما در زمان استنتاج، هنگام تحلیل یک صحنه‌ی رانندگی با چند دوربین، نماها را با وجود ندیدن چنین قالبی در آموزش به‌درستی یکپارچه می‌کند.
  2. پرامپت‌نویسی مجموعه‌نشانه‌ها: کاربر اشیای تصویر را با نشانه‌های شماره‌گذاری‌شده مشخص می‌کند؛ مدل استدلال می‌کند که «نشانه‌ی شماره 3 در مقایسه با نشانه‌ی شماره 7 چه کاری انجام می‌دهد». مدل نه روی نشانه‌ها آموزش دیده و نه روی این سبک نشانه‌گذاری؛ این توانایی از ترکیب مکان‌یابی فضایی (Spatial Grounding) و ارجاع چندتصویری حاصل شده است.
  3. ایجنت اسکرین‌شات آیفون: کاربر اسکرین‌شاتی از صفحه‌ی آیفون ارائه می‌دهد و مسیر کلیک بعدی را جویا می‌شود. این مهارت با تکیه بر اسکرین‌شات‌های رابط کاربری، ویدیوی جریان‌های کاری کاربران و جفت‌تصاویر قبل/بعد به این کاربرد ایجنتی تعمیم یافته است.

این موارد وظایف آموزش‌داده‌شده نیستند؛ بلکه رفتارهای نوظهوری هستند که از ساختار ترکیبی برنامه‌ی آموزشی سرچشمه می‌گیرند.

تجمیع توکن‌های بصری

بودجه‌بندی توکن نیازمند تجمیع است. مدل OneVision از درون‌یابی دولایه‌ای روی شبکه‌ی دوبعدی وصله‌ها بهره می‌گیرد: شبکه‌ی 24x24 وصله‌ای (576 وصله) به 12x12 (144 وصله با ضریب 2x) یا 8x8 (64 وصله با ضریب 3x) کاهش پیدا می‌کند. عمل تجمیع در فضای شبکه‌ی وصله‌ها صورت می‌گیرد، نه در فضای توکن‌ها، تا موقعیت مکانی اجزا حفظ شود.

انتخاب ضریب تجمیع برای هر سناریو خود یک ابرپارامتر است. تجمیع کمتر = توکن بیشتر = بازنمایی غنی‌تر. تجمیع بیشتر = توکن کمتر = امکان گنجاندن فریم‌ها یا تصاویر بیشتر در بافت متن.

مدل LLaVA-OneVision-1.5

نسخه‌ی ادامه‌دهنده‌ی سال 2025 (LLaVA-OneVision-1.5، مقاله arXiv 2509.23661) در داده‌های آموزشی، وزن‌های مدل و کدها «کاملاً متن‌باز» است. این نسخه فاصله‌ی خود را با مدل‌های اختصاصی در برخی بنچمارک‌ها پر کرده و دسترسی به این دستورالعمل را همگانی کرده است. معماری دست‌نخورده مانده و فقط همان برنامه‌ی آموزشی با داده‌های بیشتر و مدل زبانی پایه‌ی قوی‌تر اجرا شده است.

مقایسه با Qwen2.5-VL

مدل Qwen2.5-VL (درس 12.09) انتخاب‌های متفاوتی دارد. این مدل به‌جای تجمیع ثابت، از M-RoPE و نرخ فریم پویا بهره می‌برد. بودجه‌ی این مدل با ورودی مقیاس می‌گیرد؛ یعنی یک ویدیوی 1 دقیقه‌ای نسبت به یک ویدیوی 5 ثانیه‌ای توکن‌های بیشتری مصرف می‌کند. در مقابل، LLaVA-OneVision بودجه را ثابت نگه می‌دارد و نرخ تجمیع را مقیاس‌بندی می‌کند. هر دو شیوه کارآمدند؛ یکی قابلیت پیکربندی را اولویت می‌دهد و دیگری پیش‌بینی‌پذیری مصرف منابع را.

بودجه توکن ONEVISIONیک ظرف، سه حالت بسته‌بندی
ONEVISION TOKEN BUDGETLLaVA-OneVision keeps the maximum visual-token count per sample in the same band, roughly 6K to 9K, and just repacks it: one image at high AnyRes resolution, up to 12 images at moderate resolution, or 32 video frames pooled down to 196 tokens each. Because every scenario costs about the same, one model trains on all three without any of them dominating.0حداکثر حدود 6 تا 9 هزار توکن بصریتک‌تصویر: AnyRes-Max-9، تا 7290 توکنچندتصویر: 6 تصویر × 729 توکن (سقف 12)ویدیو: 32 فریم × 196 توکن، تجمیع‌شده
مدل LLaVA-OneVision حداکثر تعداد توکن‌های بصری برای هر نمونه را در همان بازه تقریبی 6 هزار تا 9 هزار نگه می‌دارد و فقط چینش آن را تغییر می‌دهد: یک تصویر در وضوح بالا با AnyRes، تا 12 تصویر با وضوح متوسط، یا 32 فریم ویدیو که با تجمیع (pooling) به 196 توکن برای هر کدام کاهش یافته‌اند. چون هزینه پردازش هر حالت تقریباً یکسان است، یک مدل واحد بدون اینکه حالتی بر بقیه غالب شود، روی هر سه حالت آموزش می‌بیند.

پیاده‌سازی عملی

فایل code/main.py یک برنامه‌ریز آموزشی و بودجه‌بندی توکن برای مدل‌های VLM سبک OneVision است. با دریافت سقف بودجه‌ی توکن به‌ازای هر نمونه و نسبت سناریوهای هدف (مثلاً 40% تک‌تصویر، 30% چندتصویر و 30% ویدیو)، این ابزار:

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

از این ابزار برای برنامه‌ریزی یک تنظیم دقیق OneVision یا ارزیابی اولیه‌ی هزینه‌ی پردازش هر درخواست در استقرار یک VLM استفاده کنید.

تحویل پروژه

خروجی این درس فایلی با نام outputs/skill-onevision-budget-planner.md است. این فایل بر اساس توزیع وظایف هدف و بودجه‌ی اختصاصی هر نمونه، ضریب AnyRes، میزان تجمیع هر فریم، تعداد فریم‌های ویدیو و وزن مراحل برنامه‌ی آموزشی را خروجی می‌دهد. هنگام آموزش یا تنظیم دقیق مدل‌های VLM چندسناریویی از این برنامه استفاده کنید.

تمرین‌ها

  1. محصول شما از 80% تک‌تصویر، 10% چندتصویر (2 تا 4 تصویر) و 10% ویدیو (8 تا 16 فریم) پشتیبانی می‌کند. بودجه‌ی توکن آن را طراحی کنید. بودجه‌ی اضافه‌ای را که به‌دلیل سنگین نبودن بخش چندتصویر صرفه‌جویی کرده‌اید، به کدام بخش اختصاص می‌دهید؟

  2. بخش 4.3 مقاله‌ی LLaVA-OneVision (قابلیت‌های نوظهور) را مطالعه کنید. چهارمین مهارت نوظهوری را که احتمالاً با این برنامه‌ی آموزشی فعال می‌شود اما در مقاله گزارش نشده است، پیشنهاد دهید.

  3. ترتیب مراحل آموزش را تغییر دهید؛ ابتدا چندتصویر، سپس تک‌تصویر و در نهایت ویدیو را آموزش دهید. پیش‌بینی کنید کدام بنچمارک‌ها افت خواهند کرد و علت آن چیست؟

  4. در این مقاله بنچمارک‌های ویدیویی با مدلی سنجیده شده‌اند که تنها با 8 فریم در هر نمونه آموزش دیده است. آیا این موضوع در زمان استنتاج برای ویدیوهای 30 ثانیه‌ای هم تعمیم می‌یابد؟ در این سناریو کدام مورد اول دچار اختلال می‌شود: بودجه‌ی توکن یا استدلال زمانی؟

  5. درون‌یابی دولایه‌ای شبکه‌ی 24x24 وصله‌ای به ابعاد 12x12 نشان‌دهنده‌ی کاهش 2 برابری در هر بُعد (یعنی 4 برابر توکن کمتر) است. این لایه‌ی تجمیع را با کتابخانه‌ی استاندارد Python پیاده‌سازی کنید و بررسی نمایید که آیا میانگین هر بلوک 2x2 با خروجی درون‌یابی دولایه‌ای همخوانی دارد یا خیر.

اصطلاحات کلیدی

اصطلاح باور رایج تعریف دقیق فنی
سناریوی OneVision «تک‌تصویر، چندتصویر یا ویدیو» یکی از سه شکل ورودی که مدل VLM یکپارچه دریافت می‌کند؛ بودجه‌ی توکن میان آن‌ها در تعادل نگه داشته می‌شود
بودجه‌ی توکن (Token budget) «تعداد توکن‌های هر نمونه» مجموع توکن‌های بصری که مدل زبانی در هر نمونه‌ی آموزشی یا استنتاج می‌بیند، حداکثر حدود 6 هزار تا 9 هزار توکن در LLaVA-OneVision
برنامه‌ی آموزشی (Curriculum) «ترتیب آموزش» ترتیب مراحل آموزشی (تک‌تصویر ← چندتصویر ← ویدیو) که با هدف انتقال مهارت نوظهور انتخاب شده است
تجمیع دولایه‌ای (Bilinear pooling) «آب رفتن توکن‌ها» اعمال درون‌یابی دولایه‌ای روی شبکه‌ی دوبعدی وصله‌ها به‌منظور کاهش تعداد توکن‌ها هم‌زمان با حفظ موقعیت مکانی
مهارت نوظهور (Emergent skill) «آموزش ندیده اما کار می‌کند» قابلیتی که بدون وجود داده‌های متناظر در مرحله‌ی آموزش، صرفاً به‌دلیل ترکیب مراحل برنامه‌ی آموزشی در زمان استنتاج ظاهر می‌شود
AnyRes-k «ساختار k کاشی» k زیرکاشی با وضوح ثابت به‌همراه یک تصویر بندانگشتی، معمولاً به‌صورت k∈{4,9}k \in \lbrace 4, 9 \rbrace
انتقال وظیفه (Task transfer) «تعمیم میان‌سناریویی» مهارت‌های کسب‌شده در پردازش تک‌تصویر که از طریق بک‌بون (Backbone) مشترک روی ویدیو پیاده می‌شوند (و برعکس)

برای مطالعه‌ی بیشتر

سؤالات متداول

مدل LLaVA-OneVision چگونه مصرف توکن را در سه سناریوی مختلف متعادل می‌کند؟

با تخصیص سقف 6000 تا 9000 توکن در هر نمونه؛ به این صورت که برای تک‌تصویر از وضوح بالا و AnyRes، برای چندتصویر از ابعاد متوسط بدون کاشی‌کاری و برای ویدیو از فریم‌های متعدد همراه با تجمیع دولایه‌ای (Bilinear Pooling) استفاده می‌کند.

چرا ترتیب مراحل آموزش در LLaVA-OneVision اهمیت حیاتی دارد؟

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

تفاوت استراتژی مصرف توکن در LLaVA-OneVision و Qwen2.5-VL چیست؟

مدل LLaVA-OneVision بودجه‌ی نهایی توکن‌ها را تقریباً ثابت نگه می‌دارد و نرخ تجمیع را تغییر می‌دهد، در حالی که Qwen2.5-VL بودجه‌ی توکن را متناسب با ورودی و طول ویدیو به‌صورت پویا تنظیم می‌کند.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.