یه ابزار برای دیدن توجه مدلهای زبانی به کلمات قبلی
خلاصهٔ کاملتر
تو مدلهای زبانیِ ترنسفورمری، موقع تولید هر توکن جدید، مدل میتونه از هر کدوم از توکنهای قبلی اطلاعات بگیره. اما این دسترسی باید انتخابی باشه؛ اگه همهی توکنهای قبلی به یه اندازه روی خروجی تاثیر بذارن، مدل عملاً کارایی نداره. مکانیزمی که تصمیم میگیره هر توکن چقدر روی تولید توکن بعدی اثر بذاره، «توجه» یا attention نام داره.
نویسنده یه ابزار وب ساخته که این توجه رو قابلمشاهده میکنه: کافیه روی هر کدوم از توکنهای تولیدشده هاور یا لمس کنی تا توکنهای قبلی که بیشترین اثر رو داشتن پررنگتر نشون داده بشن. این عدد از ترکیب وزن توجه و اندازهی بردار مقدار، جمعشده رو همهی هدها و لایههای مدل به دست میاد؛ یه سادهسازی زیاده که به گفتهی خود نویسنده اول فکر میکرد شاید قابل فهم نباشه، اما تو عمل الگوهای جالبی نشون داد.
مثلاً تو یه مثال «خلاصهی جابهجایی دفتر»، وقتی روی بخشهایی که عیناً از متن اصلی کپی شدن (مثل آدرس یا تاریخ) هاور میکنی، میبینی دادهی منبع خیلی پررنگ میشه. این نشون میده چرا مدلهای زبانی با اینکه احتمالاتی کار میکنن، خیلی کم تو کپی کردن اشتباه میکنن: چون به کل توکنهای قبلی دسترسی دارن و میتونن دقیقاً انتخاب کنن از کجا کپی کنن، نه اینکه کل جمله رو از یه حافظهی محدود بازسازی کنن.
این ابزار با یه اپ React و کتابخونهی Transformers.js ساخته شده و از یه مدل کوچیک ۶۰۰ میلیون پارامتری استفاده میکنه. چون مدلهای استاندارد ONNX این مقادیر داخلی رو خروجی نمیدن، نویسنده فایل ONNX رو با یه اسکریپت دستکاری کرده تا این مقادیر هم قابل دسترسی بشن، و نسخهی دستکاریشده رو تو Hugging Face خودش آپلود کرده. کد کامل پروژه هم رو گیتهاب در دسترسه.
نکات کلیدی:
- ابزار با React و Transformers.js ساخته شده و از یه مدل ۶۰۰ میلیون پارامتری استفاده میکنه
- چون خروجی استاندارد ONNX این مقادیر رو نداره، نویسنده مدل رو دستی تغییر داده و نسخهی سفارشی رو تو Hugging Face گذاشته
- هاور روی هر توکن، توکنهای قبلیِ موثر روی تولیدش رو پررنگ نشون میده
- کد پروژه و مدل دستکاریشده بهصورت عمومی رو گیتهاب و Hugging Face موجوده




