🌀 ترنسفورمر بازگشتی حلقهای (RLT): معماری جدیدی از دانشگاه پرینستون
یک پژوهشگر دانشگاه پرینستون معماری جدیدی به نام Recurrent Looped Transformer (RLT) پیشنهاد کرده است. ایده اصلی این است: رمزگشا (decoder) وضعیت کامل خود را روی تمام توکنهای دستور (prompt) و پاسخ حمل میکند، بدون اینکه در مرز میان آنها بازنشانی شود. هر توکن ۹۶ بلوک منطقی پردازش دارد و هیچ ریست کردنی در نقطه جدایی دستور و پاسخ وجود ندارد.
خوب است بدانید مدلهای معمول امروزی چطور کار میکنند تا تفاوت را بهتر بفهمید. در حالت عادی، وقتی به مدل دستور میدهید، مدل یک «حافظه» از دستور میسازد و بعد شروع به تولید پاسخ میکند. مرز میان این دو مرحله یک نقطه قطع است. RLT میگوید این نقطه قطع را بردارید.
👇 حالا ببینیم دقیقاً چطور کار میکند.
۱. یک وضعیت واحد که هرگز بازنشانی نمیشود
دو بخش داریم که موازی کار میکنند:
الف) رمزگذار علّی (Causal Encoder): این بخش حافظه KV را بهصورت موازی برای همه توکنها میسازد. حافظه KV یعنی همان مکانیزمی که مدل با آن میفهمد هر توکن به کدام توکنهای قبلی باید توجه کند. چون موازی ساخته میشود، سرعتش بالاست.
ب) رمزگشای بازگشتی (Recurrent Decoder): این بخش قلب RLT است. برای هر توکن جدید، سه کار انجام میدهد:
· ویژگی رمزگذاریشده آن توکن را با آخرین وضعیت پنهان نهایی (previous final hidden state) ادغام میکند
· توجه پنجره لغزان (sliding-window attention) را اجرا میکند
· توجه متقابل (cross-attention) به حافظه رمزگذار و سپس یک شبکه پیشخور (FFN) را اجرا میکند
وضعیت کلی را با فرمول
نشان میدهند. نکته مهم: این وضعیت از «مرز سرویسدهی» (serving split) یعنی همان نقطه جدایی دستور از پاسخ، بدون هیچ تغییری عبور میکند.
← گزاره ۳.۱ (Proposition 3.1): اگر مرز میان دستور و پاسخ را جابهجا کنید، توزیع شرطی مدل تغییر نمیکند. یعنی مدل نسبت به اینکه کجا دستور تمام میشود و کجا پاسخ شروع میشود، بیتفاوت است. این یک ویژگی ریاضی مهم است: یعنی مدل یک تابع پیوسته از کل توالی است، نه دو تابع جداگانه.
۲. کار ثابت، عمق رشدیابنده
پیکربندی مرجع اینطور است: ۴۸ لایه رمزگذار و ۴۸ لایه رمزگشا، که وزنهای توجه و FFN آنها مشترک (tied) هستند. یعنی وزنها یکساناند و دوباره تکرار میشوند.
دو عدد کلیدی داریم:
🔹 تعداد ۹۶ بلوک منطقی به ازای هر توکن، ثابت. یعنی هر توکن در هر لحظه از ۹۶ بلوک عبور میکند.
🔹تعداد ۴۸t بلوک رمزگشا روی مسیر وضعیت پس از t توکن. یعنی اگر t توکن پردازش شده باشد، مسیر بازگشتی به اندازه ۴۸t بلوک عمق پیدا میکند.
این یعنی چی؟ یعنی با اینکه محاسبات هر توکن ثابت است، مسیر پردازش با گذشت زمان عمیقتر میشود. مثل این است که مدل با هر کلمهای که مینویسد، یک لایه جدید از فهم به دست میآورد، بدون اینکه محاسبات بیشتر شود. این همان مفهومی است که در ادبیات به آن "recurrent depth" یا "عمق بازگشتی" میگویند.
۳. بازپخش یادگیری تقویتی (RL Replay) تحت پارامترهای فعلی
اینجا یک چالش فنی مهم حل میشود. در یادگیری تقویتی، مدل باید مسیرهای قبلی خود را دوباره بازی کند تا یاد بگیرد. اما در RLT چون وضعیت بازگشتی به توکنهای قبلی وابسته است، نمیتوان بهسادگی از دادههای قدیمی استفاده کرد.
راهحل RLT:
· نمونهگیر (Sampler): احتمالات رفتار (behavior log-probs) را ثبت میکند.
· آموزشدهنده (Trainer): پیش از امتیازدهی به هر عمل، حافظه رمزگذار، خروجی بازگشتی و هر حافظه پنهان SWA را از H_0 (وضعیت اولیه) بازسازی میکند.
نتیجه: وضعیتهای قدیمی رولاوت هرگز دوباره استفاده نمیشوند. چون وقتی وزنها بهروز میشوند، همه حافظههای پنهان باطل میشوند و باید از صفر ساخته شوند. این یعنی RLT یک «گذار واحد» (one transition) دارد که پیشآموزش، تنظیم دقیق با نظارت (SFT)، نمونهگیری و بازپخش یادگیری تقویتی، همگی آن را به اشتراک میگذارند.
🎯 آخرش چی شد؟
در معماریهای فعلی، پیشآموزش یک چیز است، SFT چیز دیگری، نمونهگیری چیز دیگری و RL هم چیز دیگری. هرکدام قواعد خودشان را دارند و هماهنگ کردنشان سخت است. RLT میگوید: بیایید همه را روی یک گذار وضعیت بنا کنیم. این یعنی سادگی بیشتر، هماهنگی بیشتر و احتمالاً یادگیری بهتر.
📄 لینکها:
· تحلیل کامل: MarkTechPost
· مقاله: PDF
· مخزن گیتهاب: GitHub
· توضیح نویسنده در وبلاگ پژوهشی: وبلاگ
#AI #RLT #Princeton #Transformer
🆔 @asrgooyeshpardaz
یک پژوهشگر دانشگاه پرینستون معماری جدیدی به نام Recurrent Looped Transformer (RLT) پیشنهاد کرده است. ایده اصلی این است: رمزگشا (decoder) وضعیت کامل خود را روی تمام توکنهای دستور (prompt) و پاسخ حمل میکند، بدون اینکه در مرز میان آنها بازنشانی شود. هر توکن ۹۶ بلوک منطقی پردازش دارد و هیچ ریست کردنی در نقطه جدایی دستور و پاسخ وجود ندارد.
خوب است بدانید مدلهای معمول امروزی چطور کار میکنند تا تفاوت را بهتر بفهمید. در حالت عادی، وقتی به مدل دستور میدهید، مدل یک «حافظه» از دستور میسازد و بعد شروع به تولید پاسخ میکند. مرز میان این دو مرحله یک نقطه قطع است. RLT میگوید این نقطه قطع را بردارید.
👇 حالا ببینیم دقیقاً چطور کار میکند.
۱. یک وضعیت واحد که هرگز بازنشانی نمیشود
دو بخش داریم که موازی کار میکنند:
الف) رمزگذار علّی (Causal Encoder): این بخش حافظه KV را بهصورت موازی برای همه توکنها میسازد. حافظه KV یعنی همان مکانیزمی که مدل با آن میفهمد هر توکن به کدام توکنهای قبلی باید توجه کند. چون موازی ساخته میشود، سرعتش بالاست.
ب) رمزگشای بازگشتی (Recurrent Decoder): این بخش قلب RLT است. برای هر توکن جدید، سه کار انجام میدهد:
· ویژگی رمزگذاریشده آن توکن را با آخرین وضعیت پنهان نهایی (previous final hidden state) ادغام میکند
· توجه پنجره لغزان (sliding-window attention) را اجرا میکند
· توجه متقابل (cross-attention) به حافظه رمزگذار و سپس یک شبکه پیشخور (FFN) را اجرا میکند
وضعیت کلی را با فرمول
H_t = (s_t, C^D_t)نشان میدهند. نکته مهم: این وضعیت از «مرز سرویسدهی» (serving split) یعنی همان نقطه جدایی دستور از پاسخ، بدون هیچ تغییری عبور میکند.
← گزاره ۳.۱ (Proposition 3.1): اگر مرز میان دستور و پاسخ را جابهجا کنید، توزیع شرطی مدل تغییر نمیکند. یعنی مدل نسبت به اینکه کجا دستور تمام میشود و کجا پاسخ شروع میشود، بیتفاوت است. این یک ویژگی ریاضی مهم است: یعنی مدل یک تابع پیوسته از کل توالی است، نه دو تابع جداگانه.
۲. کار ثابت، عمق رشدیابنده
پیکربندی مرجع اینطور است: ۴۸ لایه رمزگذار و ۴۸ لایه رمزگشا، که وزنهای توجه و FFN آنها مشترک (tied) هستند. یعنی وزنها یکساناند و دوباره تکرار میشوند.
دو عدد کلیدی داریم:
🔹 تعداد ۹۶ بلوک منطقی به ازای هر توکن، ثابت. یعنی هر توکن در هر لحظه از ۹۶ بلوک عبور میکند.
🔹تعداد ۴۸t بلوک رمزگشا روی مسیر وضعیت پس از t توکن. یعنی اگر t توکن پردازش شده باشد، مسیر بازگشتی به اندازه ۴۸t بلوک عمق پیدا میکند.
این یعنی چی؟ یعنی با اینکه محاسبات هر توکن ثابت است، مسیر پردازش با گذشت زمان عمیقتر میشود. مثل این است که مدل با هر کلمهای که مینویسد، یک لایه جدید از فهم به دست میآورد، بدون اینکه محاسبات بیشتر شود. این همان مفهومی است که در ادبیات به آن "recurrent depth" یا "عمق بازگشتی" میگویند.
۳. بازپخش یادگیری تقویتی (RL Replay) تحت پارامترهای فعلی
اینجا یک چالش فنی مهم حل میشود. در یادگیری تقویتی، مدل باید مسیرهای قبلی خود را دوباره بازی کند تا یاد بگیرد. اما در RLT چون وضعیت بازگشتی به توکنهای قبلی وابسته است، نمیتوان بهسادگی از دادههای قدیمی استفاده کرد.
راهحل RLT:
· نمونهگیر (Sampler): احتمالات رفتار (behavior log-probs) را ثبت میکند.
· آموزشدهنده (Trainer): پیش از امتیازدهی به هر عمل، حافظه رمزگذار، خروجی بازگشتی و هر حافظه پنهان SWA را از H_0 (وضعیت اولیه) بازسازی میکند.
نتیجه: وضعیتهای قدیمی رولاوت هرگز دوباره استفاده نمیشوند. چون وقتی وزنها بهروز میشوند، همه حافظههای پنهان باطل میشوند و باید از صفر ساخته شوند. این یعنی RLT یک «گذار واحد» (one transition) دارد که پیشآموزش، تنظیم دقیق با نظارت (SFT)، نمونهگیری و بازپخش یادگیری تقویتی، همگی آن را به اشتراک میگذارند.
🎯 آخرش چی شد؟
در معماریهای فعلی، پیشآموزش یک چیز است، SFT چیز دیگری، نمونهگیری چیز دیگری و RL هم چیز دیگری. هرکدام قواعد خودشان را دارند و هماهنگ کردنشان سخت است. RLT میگوید: بیایید همه را روی یک گذار وضعیت بنا کنیم. این یعنی سادگی بیشتر، هماهنگی بیشتر و احتمالاً یادگیری بهتر.
📄 لینکها:
· تحلیل کامل: MarkTechPost
· مقاله: PDF
· مخزن گیتهاب: GitHub
· توضیح نویسنده در وبلاگ پژوهشی: وبلاگ
#AI #RLT #Princeton #Transformer
🆔 @asrgooyeshpardaz
MarkTechPost
A Princeton Researcher Proposes Recurrent Looped Transformer (RLT) that Carries Decoder State across Every Token, Fixing 96 Blocks…
Recurrent Looped Transformer carries decoder state across every token, fixing 96 blocks per token with unbounded temporal depth.
❤3🔥2