سلام دوست عزیز😃👋
لینکهای مفید برای شرکت در مسابقه:
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.
در زمانهای زیر، پاسخگوی سؤالات شما هستیم:
فراموش نکنید فایل کد سؤالات «آزمایش احسان»، «فارسیبازی» و «جلالبرت!» رو در بخش «بارگذاری کدها» (سؤال آخر) بارگذاری کنید.
موفق باشید 😉✌
احسان تصمیم دارد به منظور اجرای مدل برت فارسی (HooshvareLab/bert-fa-zwnj-base) یکی از روشهای هرس کردن یا گسستهسازی را به کار بگیرد. او حدس میزند که برخی از لایهها یا هدهای مدل برت نقش زیادی در تولید خروجی ندارند.
احسان از درس یادگیری ماشین متوجه شده که ویژگیهایی که در نمونههایی با برچسبهای متفاوت، مقدار یکسانی دارند، احتمالا ویژگی مناسبی برای طراحی یک مدل طبقهبند (Classifier) نیستند. و با توجه به این موضوع تصمیم گرفته است، یک آزمایش طراحی و لایهها و هدها را براساس میزان اهمیتشان در تولید خروجی دستهبندی کند.
برای پیادهسازی این آزمایش به احسان کمک کنید:
به ازاء تک تک توکنهایی که در Tokenizer برت موجود است، بردار Embedding مربوط به همان یک توکن را در هر لایه رمزگذار (Encoder) محاسبه کنید و سپس مقدار IQR مربوط به پراکندگی ماکزیمم قدرمطلق (MaxAbs) درایههای آن بردار را برای کل توکنها بدست آورید.
تک تک توکنها را بعد از عبور دادن از لایه Embedding به اولین لایه رمزگذار بدهید و بردار Embedding مربوط به همان توکن را گرفته و ماکزیمم قدرمطلق درایههای آن را در نظر بگیرید، سپس برای این مقادیر بهدست آمده برای تک تک توکنها مقدار IQR
را محاسبه کنید و برای هر لایه در یک فایل CSV
در ستون اول شماره لایه از صفر تا ۱۱ و در ستون دوم مقدار IQR
مربوط به آن لایه را گزارش کنید.
برای خروجی این بخش شما باید یک فایل با نام result_1.csv
که شامل دو ستون با نامهای layer_num
و IQR
میباشد را مطابق خواسته مسئله بارگذاری کنید. جدول زیر چند سطر اولیه از نمونهی خروجی میباشد. (دقت داشته باشید که این اعداد برای نمونه هستند و الزامی به درستی آنها نیست)
layer_num | IQR |
---|---|
0 | 2.102 |
1 | 3.253 |
2 | 1.098 |
احسان پس از انجام مرحلهی اول آزمایش، یک مرحله جدیدی را طراحی کرده است، در این مرحله شما باید دقیقا مشابه کاری که در قسمت قبل انجام شده را برای هر کدام از هدها در هر لایه انجام دهید و در یک فایل CSV
در ستون اول شماره لایه از صفر تا ۱۱ و در ستون دوم شماره هد از صفر تا ۱۱ و در ستون سوم نیز مقدار IQR
مربوط به آن هد را گزارش کنید.
برای خروجی این بخش شما باید یک فایل با نام result_2.csv
که شامل سه ستون با نامهای layer_num
، head_num
و IQR
میباشد را مطابق خواسته مسئله بارگذاری کنید. جدول زیر چند سطر اولیه از نمونهی خروجی میباشد. (دقت داشته باشید که این اعداد برای نمونه هستند و الزامی به درستی آنها نیست)
ترتیب ردیفهای جدول ابتدا باید براساس ستون layer_num
و سپس براساس ستون head_num
(هردو) بهصورت صعودی، باشد.
layer_num | head_num | IQR |
---|---|---|
0 | 0 | 2.102 |
0 | 1 | 3.253 |
0 | 2 | 1.098 |
وزنهای لایه word_embedding
، هرکدام یک امبدینگ برای توکن های توکنایزر هستند. با توجه به این بردارهای امبدینگ، برای هر دو توکن داده شده، میانگین بردارهای امبدینگ را محاسبه کنید و سپس یکبار با استفاده از معیار فاصله اقلیدسی (Euclidean Distance) و بار دیگر با استفاده از معیار شباهت کسینوسی (Cosine Similiraty) توکنی که بردار مربوط به آن کمترین فاصله را از میانگین این دو توکن دارد بدست آورید:
خروجی این مرحله را به صورت یک فایل با نام result_3.csv
که در ستون اول شماره سوال و در ستون دوم نزدیکترین توکن از نظر فاصله اقلیدسی و در ستون سوم نزدیکترین توکن از نظر شباهت کسینوسی درج شده است، ارسال نمایید.
نمونه خروجی این بخش به این صورت خواهد بود: (دقت داشته باشید که این اعداد برای نمونه هستند و الزامی به درستی آنها نیست)
q_id | euclidean | cosine |
---|---|---|
1 | لندن | پاریس |
2 | پسر | مرد |
در نهایت برای ارسال پاسخ این سوال سه فایل result_1.csv
, result_2.csv
و result_3.csv
را فشرده (zip
) کنید و با نام result.zip
ارسال کنید.