WorldTUI: یه مدل زبانی کوچیک که ادای ترمینال درمیاره
خلاصهٔ کاملتر
نویسنده بعد از دیدن Genie 3 دنبال ساختن یه world model بود، یعنی مدلی که بهجای اجرای واقعی برنامه، فریم بعدی رو از روی ورودی کاربر پیشبینی کنه. چون GPU و داده ویدئویی زیادی نداشت، سراغ ترمینال رفت. ترمینال فقط یه جدول کاراکتره و میشه با اجرای shell واقعی تا دلت بخواد داده دقیق ساخت. نتیجه WorldTUI هست که روی Qwen2.5-Coder-0.5B ساخته شده و با هر کلید، تغییرات صفحه رو حدس میزنه.
مدل متن پشتسرهم تولید نمیکنه، بلکه میگه کدوم ردیفها از کدوم ستون باید بازنویسی بشن و مکاننما کجا بره. برای اسکرول یه عملیات COPY اضافه شده که ردیف قبلی رو کپی میکنه، پس هر ردیف بهجای حدود ۹۶ توکن فقط سه توکن خرج داره. کل واژگان مدل ۳۳۳ توکنه: ۲۵۶ توکن بایت، ۶۴ توکن ردیف و چند عملیات خاص. داده آموزشی هم از اجرای جلسههای واقعی تو Docker ساخته شده: ۳۳۶ هزار جلسه، حدود ۲ میلیارد توکن.
بزرگترین بهبود از یه روش شبیه DAgger اومد، یعنی مدل از حالتهایی که خودش اشتباهی بهشون رسیده یاد بگیره. مدل چند قدم پیشبینی میکنه، اگه صفحهاش کمی با صفحه واقعی فرق داشت، یه اصلاحیه ساخته میشه که تو کلید بعدی درستش کنه. شرط مهمش اینه که اصلاحیه فقط چیزهایی رو بیاره که قبلاً واقعاً رو صفحه دیده شده، وگرنه مدل به توهم زدن تشویق میشه. این کار PresetBench رو از ۲۴ به ۳۸ از ۴۷ رسوند. کل آموزش حدود ۷۵ ساعت روی یه RTX 4090 طول کشید.
مشکل بعدی سرعت بود: بازکردن vim یا man که کل صفحه رو عوض میکنه، تا ۱۲ ثانیه وقت میگرفت. راهحل این بود که ردیفها موازی تولید بشن، چون اغلب به هم وابسته نیستن. این کار p95 فریمهای بزرگ رو از ۶.۷ به ۰.۸۷ ثانیه رسوند. ولی ردیفهای مستقل با هم هماهنگ نبودن، مثلاً vim از ردیف ۳ باز میشد. برای همین از speculative decoding استفاده شد، یعنی خروجی موازی پیشنویس میشه و همون مدل ترتیبی تأییدش میکنه. روی M4 تو مرورگر، man test از ۲.۵ به ۰.۹ ثانیه رسید.
برای اجرا تو مرورگر، جدول embedding واژگان ۱۵۱ هزار توکنی Qwen حذف شد و مدل از ۴۹۴ به ۳۶۰ میلیون پارامتر رسید، بعد با int4 به ۲۰۸ مگابایت. اجرا با یه پیادهسازی JavaScript و شیدرهای WGSL روی WebGPU هست. نویسنده موقع distill کردن فهمید حافظه به چند لایه خاص وابستهست: فقط حذف لایه ۷ دقت توکن بعدی رو از ۹۹.۳ به ۹۸.۹ درصد آورد، ولی یادآوری فایلها رو از ۶۴ به صفر رسوند.
به گفته نویسنده، مدل هنوز فایلسیستم قابلاعتمادی نیست. مثلاً بعد از اضافه کردن یه خط با echo به یه فایل، cat اغلب اون خط رو نشون نمیده. تو پوشههای تودرتو گم میشه و تو Firefox حدود ۲۰ برابر کندتر از Chrome اجرا میشه. با این حال تو ShellBench از ۱۰۶ دستور ۸۰ تا رو درست زد، در حالی که مدلهای پرامپتشده ۵۲ و ۶۰ گرفتن.
نکات کلیدی:
- WorldTUI روی Qwen2.5-Coder-0.5B ساخته شده و نسخه مرورگرش ۳۶۰ میلیون پارامتر و ۲۰۸ مگابایته.
- واژگان مدل فقط ۳۳۳ توکنه و عملیات COPY هزینه اسکرول رو به سه توکن برای هر ردیف میرسونه.
- آموزش با اصلاح اشتباهات خود مدل، PresetBench رو از ۲۴ به ۳۸ از ۴۷ رسوند.
- تولید موازی ردیفها p95 فریمهای بزرگ رو از ۶.۷ به ۰.۸۷ ثانیه کم کرد.
- تو ShellBench نتیجه ۸۰ از ۱۰۶ بود، در برابر ۵۲ و ۶۰ برای مدلهای پرامپتشده.
- حذف فقط لایه ۷ حافظه مدل رو کامل از بین برد.




