در طول چند سال گذشته، ما در حال مطالعه چگونگی به دست آوردن عملکرد خوب در مدل سازی دنباله ای بوده ایم، و هم تکنیک های جدید سیستم ها و هم معماری های یادگیری عمیق جدید را برای رسیدن به آن توسعه می دهیم. امروز، می خواهیم به یک خط پایه ساده نگاهی بیندازیم که می تواند به طرز شگفت آوری خوب عمل کند: فقط از یک پیچش طولانی به اندازه دنباله ورودی استفاده کنید! به نظر می رسد که ما فقط به یک منظم سازی ساده نیاز داریم و سپس کانولوشن ها می توانند با مدل های دنباله پیچیده تری مانند S4 در معیارهایی مانند Long Range Arena و مدل سازی متن مطابقت داشته باشند.
GitHub کاغذی

یک سوال اساسی تحقیقاتی این است - ساده ترین معماری که می تواند در کارهایی که به آنها اهمیت می دهیم کیفیت خوبی داشته باشد چیست؟طی چند سال گذشته، آزمایشگاه ما زمان زیادی را صرف مطالعه مدل سازی توالی کرده است. و ما دیده ایم که مدل های فضای حالت عمیق (SSM) مانند S4 یک معماری خوب برای مدل سازی دنباله ای هستند - با عملکرد بسیار قوی در معیار عرصه های دوربرد، مدل سازی متن و موارد دیگر.
اما SSM ها کمی پیچیده هستند - برای آموزش در یک پشته یادگیری عمیق مدرن، آنها بر ساختارهای ریاضی پیچیده برای تولید یک هسته کانولوشن به اندازه دنباله ورودی تکیه می کنند. این فرآیند می تواند ناپایدار باشد و برای کیفیت خوب نیاز به مقداردهی اولیه دقیق دارد.
بنابراین این پیچیدگی به طور طبیعی یک سوال را برای ما ایجاد کرد - آیا رویکرد ساده تری وجود دارد که بتواند کیفیت خوبی در مدل سازی دنباله داشته باشد؟یک نامزد طبیعی برای بررسی وجود دارد: از آنجایی که SSM ها باید یک هسته کانولوشن تولید کنند، چرا به طور مستقیم هسته کانولوشن را پارامتر نمی کنیم؟
در مقاله جدیدمان، نشان می دهیم که پارامترسازی مستقیم هسته کانولوشن به طرز شگفت آوری خوب کار می کند - با یک پیچش! ما باید یک منظم سازی ساده اضافه کنیم، و سپس پیچیدگی های طولانی می توانند از نظر کیفیت با SSM ها مطابقت داشته باشند. ما همچنین در مقاله نشان می دهیم که ارتباط عمیقی بین این روش ها و GEMM های پراکنده ساختاریافته با استفاده از نظریه ماتریس های Monarch وجود دارد - برای جزئیات بیشتر آن را بررسی کنید!
منظم کردن پیچش های طولانی
اولین سوالی که پرسیدیم این بود که اگر SSM ها را با پیچیدگی های طولانی جایگزین کنید چه اتفاقی می افتد؟کد بسیار ساده است، و ما می توانیم از انحراف FFT برای محاسبه یک پیچش طولانی در زمان O (N log u2061 N ) O(N log N) O (N log N) استفاده کنیم (به جای O (N 2) O(N^2) O (N 2) همانطور که ممکن است در PyTorch Conv1D پیدا کنید:
دف init(L):خود.هسته=.پارامتر(L) دف رو به جلو(x): # پیچیدگی را با FFT محاسبه کنید برگشتمشعل.fft.irfft(مشعل.fft.rfft(x) *مشعل.fft.rfft(خود.هسته))
اما اگر این کار را بر روی معیار مانند LRA امتحان کنید ، به سرعت متوجه می شوید که عملکرد از S4 عقب مانده است:
| مدل | LRA متوسط ACC |
| S4 | 86. 1 |
| پیچشهای طولانی | 69. 5 |
چرا باید اینجوری باشه؟اگر هسته هایی را که یاد می گیرید تجسم می کنید ، چیزی به عنوان یک پاسخ بالقوه شروع می شود-هسته های طولانی حلقوی بسیار غیر صاف و پر سر و صدا هستند!

ما دریافتیم که استفاده از یک تنظیم ساده - یک اپراتور کدو - بر روی وزن هسته می تواند این مسئله را حل کند. این کد بسیار ساده است ، و فقط یک hyperparameter λ lambda λ را معرفی می کند:
دف init(L, لامبدا):خود.هسته=.پارامتر(L)خود.لامبدا = لامبدا دف رو به جلو(x): # هسته را اسکواش کنیدk=مشعل.امضا کردن(k) *مشعل.رگ(مشعل.غضب(خود.هسته) -خود.لامبدا) # پیچیدگی را با FFT محاسبه کنید برگشتمشعل.fft.irfft(مشعل.fft.rfft(x) *مشعل.fft.rfft(k))
اگر این اپراتور را در حین آموزش اعمال کنید ، هسته هایی را دریافت می کنید که در دامنه زمان بسیار پراکنده هستند و در حوزه فرکانس نرم تر هستند:

و اگر این را در LRA معیار می کنید ، می بینید که این تغییر کوچک تمام چیزی است که شما برای مطابقت با عملکرد S4 نیاز دارید:
| مدل | LRA متوسط ACC |
| S4 | 86. 1 |
| پیچشهای طولانی | 69. 5 |
| پیچش های طولانی + کدو تنبل | 86. 1 |
این برای ما بسیار هیجان انگیز بود ، بنابراین سؤال بعدی ما این بود که این نتایج به خوبی در سایر تنظیمات تعمیم می یابد. ما طبقه بندی تصویر ، مدل سازی متن و تجزیه و تحلیل FMRI مغز را در مقاله خود ارزیابی کردیم و دریافتیم که پیچیدگی های طولانی در تمام آن تنظیمات بسیار خوب عمل می کند. از آنجا که ما در این پست وبلاگ کمی در مورد H3 صحبت کرده ایم ، ما فقط شما را با یک نتیجه هیجان انگیز در مدل سازی متن رها خواهیم کرد.
ما لایه H3 را گرفتیم - که دو SSM را جمع می کند و تعامل چندگانه بین آنها را اجرا می کند - و SSM ها را با پیچش جایگزین کردیم. وقتی این مدل جدید H3-CONV را روی شمع آموزش دادیم ، فهمیدیم که با عملکرد H3 مطابقت دارد و از ترانسفورماتورهای بهتر-چیزهای هیجان انگیز!
| توکن ها را آموزش دهید | 5B | 10b | 15b |
| تبدیل کننده | 12. 7 | 11. 3 | 10. 7 |
| H3 | 11. 8 | 10. 7 | 10. 2 |
| H3-conv | 11. 9 | 10. 7 | 10. 3 |
چه بعدی است
این فقط یک پیش نمایش از آنچه در مقاله ما پیدا خواهید کرد - حتماً آن را برای اطلاعات بیشتر بررسی کنید:
- ارزیابی پیچیدگی های طولانی در تنظیمات بیشتر - برنامه های سرگرم کننده مانند طبقه بندی تصویر و تجزیه و تحلیل مغز FMRI!
- بهینه سازی سیستم های جدید برای بهبود عملکرد زمان اجرا از پیچش های طولانی - ما می توانیم زمان اجرا 1. 8 برابر را سریعتر از بهینه ترین پیاده سازی های SSM در طول توالی 128K نشان دهیم ، زیرا ما مجبور نیستیم هسته Convolution را از پارامترهای SSM تولید کنیم.
- ارتباط جالبی با تئوری ماتریس سلطنت! معلوم است که می توانیم قسمت هایی از پیچش ها را با سنگهای پراکنده ساختاری جایگزین کنیم. این به ما بیان بیشتری می دهد - می توانیم بدون هزینه محاسبات بیشتر ، پارامترهای اضافی را به GEMM بچسبانیم و تقریباً به صورت رایگان از کیفیت کمی بهتر برخورداریم.
همچنین برخی از خصوصیات خوب SSM ها وجود دارد که ما وقتی به یک فرمول ساده تر می رویم ، نمی گیریم ، که دوست داریم در آینده بیشتر کشف کنیم.
- به عنوان مثال ، SSM ها استنتاج تولیدی بسیار سریع دارند ، زیرا می توانید حالت پنهان را ذخیره کنید.
- و SSM ها می توانند دارای تعداد پارامتر مستقل از طول دنباله باشند (در فرمولاسیون ساده ما ، پارامترها به صورت خطی با طول دنباله رشد می کنند).
- SSMS همچنین به طور طبیعی از طریق نمونه گیری مجدد ماتریس حالت ، به چندین وضوح گسترش می یابد.
ما بسیار علاقه مندیم که ببینیم چگونه می توان از پیچیدگی های طولانی ساده برای داشتن خواص مشابه استفاده کرد!
ما از این جهت ها بسیار هیجان زده هستیم و از توسعه آنها در فضای باز بسیار هیجان زده هستیم. اگر از این ایده ها نیز هیجان زده هستید ، لطفاً به این نتیجه برسید!
سیگنال های تجاری...
ما را در سایت سیگنال های تجاری دنبال می کنید
برچسب :
نویسنده : عبدالله بوتیمار
بازدید : <-PostHit->
تاريخ : پنجشنبه
26 مرداد
1402 ساعت: 11:55