سلام دوست عزیز😃👋

لینک‌های مفید برای شرکت در مسابقه:

در طول مسابقه، می‌توانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.

در زمان‌های زیر، پاسخگوی سؤالات شما هستیم:

  • ۹:۰۰ تا ۱۰:۳۰
  • ۱۲:۳۰ تا ۱۴:۰۰

فراموش نکنید فایل کد سؤالات «آزمایش احسان»، «فارسی‌بازی» و «جلال‌برت!» رو در بخش «بارگذاری کدها» (سؤال آخر) بارگذاری کنید.

موفق باشید 😉✌

آزمایش احسان


احسان تصمیم دارد به منظور اجرای مدل برت فارسی (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) توکنی که بردار مربوط به آن کمترین فاصله را از میانگین این دو توکن دارد بدست آورید:

  1. شهر ، روستا
  2. تهران ، ایران
  3. مرد ، زن

خروجی این مرحله را به صورت یک فایل با نام result_3.csv که در ستون اول شماره سوال و در ستون دوم نزدیکترین توکن از نظر فاصله اقلیدسی و در ستون سوم نزدیک‌ترین توکن از نظر شباهت کسینوسی درج شده است، ارسال نمایید.

نمونه خروجی بخش سوم🔗

نمونه خروجی این بخش به این صورت خواهد بود: (دقت داشته باشید که این اعداد برای نمونه هستند و الزامی به درستی آن‌ها نیست)

q_id euclidean cosine
1 لندن پاریس
2 پسر مرد

خروجی نهایی🔗

در نهایت برای ارسال پاسخ این سوال سه فایل result_1.csv , result_2.csv و result_3.csv را فشرده (zip) کنید و با نام result.zip ارسال کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.