Dory انویدیا: مدلی که لایههاش رو چند بار اجرا میکنه
خلاصهٔ کاملتر
انویدیا مدل Dory رو منتشر کرده: یه مدل ۳.۹۷ میلیارد پارامتری از Nemotron Labs که بهش looped transformer میگن، یعنی بهجای اینکه هر لایه فقط یه بار اجرا بشه، یه بلوک از لایهها برای هر توکن چند بار تکرار میشه. لایههای Dory سه بخشن: یه بلوک ورودی ۱۶ لایهای، یه بلوک تکرارشوندهٔ ۴۰ لایهای و یه بلوک خروجی ۱۶ لایهای. فقط بلوک وسطی تکرار میشه و تعداد دورها رو خودت تعیین میکنی.
تو هر دور، نمایش اولیهٔ ورودی دوباره به بلوک اضافه میشه، شبیه residual connection تو معماریهای ResNet. یعنی مدل هر بار context اصلی توکن رو «یادش میاد» و از موضوع دور نمیشه. مقاله میگه یه دور حدود ۷۲ لایهٔ مؤثر عمق داره، دو دور ۱۱۲ و چهار دور حدود ۱۹۲. چهار دور از نظر محاسبه تقریباً معادل یه مدل dense نُه میلیاردیه، در حالی که فقط ۳.۹۷ میلیارد پارامتر تو GPU نگه داشته میشه. بلوک خروجی طوری آموزش دیده که بعد از هر تعداد دور خروجی درست بده، پس برای هر عمق لازم نیست fine-tune جدا داشته باشی. انویدیا اسم این قابلیت رو elastic inference compute گذاشته.
مشکل اصلی KV cacheـه (یعنی حافظهای که مدل برای توکنهای قبلی نگه میداره). تو حالت پیشفرض «per-loop»، هر دور cache خودش رو داره و با زیاد شدن دورها حافظه هم بیشتر میشه. انویدیا یه حالت «last loop» هم ساخته که هر لایهٔ attention فقط یه cache داره و مقدار دور قبلی رو بازنویسی میکنه. طبق مستندات، با context ۳۲ هزار توکنی و دو دور، per-loop حدود ۲ گیگابایت برای هر sequence میخواد و last-loop حدود ۱.۳ گیگابایت، با دقتی نزدیک به هم. برای سرویسدهی long-context به کاربرهای زیاد، اول باید همین حالت رو تست کرد.
Dory با لایسنس open model انویدیا (که استفادهٔ تجاری رو مجاز میکنه) تو فرمتهای BF16، MXFP8 و NVFP4 منتشر شده و نسخههای GGUF هم از طرف جامعه اومده. روی ۶ تریلیون توکن pretrain شده که ۴.۵ تریلیون اولش مستقیم با NVFP4 بوده. بعدش یه مرحلهٔ ۳۰۰ میلیارد توکنی برای گسترش context، و آخرش SFT و یادگیری تقویتی با GRPO اومده. context تا ۲۵۶ هزار توکن پشتیبانی میشه. یه محدودیت فعلی اینه که موتورهایی مثل vLLM تعداد دور رو موقع بالا اومدن سرور ثابت میکنن، پس برای اجرای همزمان عمقهای مختلف باید چند instance جدا بالا بیاری.
تو benchmark ترکیبی خود انویدیا در برابر Gemma 3 27B، Dory با یه دور ۱ از ۱۰ دسته رو میبره، با دو دور ۴ از ۱۰ و با چهار دور ۵ از ۱۰. پیشرفت تو کارهای agentic، پیروی از دستور، long-context و SWE-bench Verified دیده میشه، ولی تو تستهای دانشمحور مثل GPQA و Humanity's Last Exam با هر تعداد دور خیلی عقبتره. دلیلش سادهست: تکرار عمق محاسبه رو بیشتر میکنه، نه دانشی که تو وزنها ذخیره شده. پیشنهاد انویدیا اینه که دو دور رو پایه بذاری و کارهای سختتر رو به چهار دور یا بیشتر بفرستی.
نویسنده معتقده اهمیت Dory فراتر از خود مدله: یه محور تازه برای بهتر کردن کیفیته که نه با chain-of-thought طولانیتر و نه با پارامتر بیشتر، بلکه با محاسبهٔ بیشتر برای هر توکن کار میکنه و برای هر درخواست قابل تنظیمه. Dory یکی از اولین معماریهای looped هست که به شکل وزنهای قابل دانلود منتشر شده. خود انویدیا هم اونو بیشتر یه انتشار تحقیقاتی میدونه تا یه محصول آمادهٔ production.
نکات کلیدی:
- Dory با ۳.۹۷ میلیارد پارامتر، یه بلوک ۴۰ لایهای رو برای هر توکن چند بار اجرا میکنه.
- حافظهٔ وزنها با تعداد دور تغییر نمیکنه، ولی KV cache تو حالت per-loop بزرگتر میشه.
- حالت last-loop در context ۳۲K و دو دور، KV cache رو از حدود ۲ به ۱.۳ گیگابایت میرسونه.
- در برابر Gemma 3 27B از ۱ برد در ۱۰ با یه دور به ۵ برد با چهار دور رسیده.
- تو تستهای دانشمحور مثل GPQA با دور بیشتر بهتر نمیشه.
- vLLM فعلاً تعداد دور رو موقع شروع سرور ثابت میکنه.




