آموزش پردازش زبان طبیعی با اکوسیستم هاگینگ فیس ؛ آزمون پایان فصل (قسمت هفتم فصل دوم)
فصل دوم دوره آموزش پردازش زبان طبیعی هم به پایان رسید و به آزمون پایان فصل رسیدیم. در زیر 10 سوال وجود دارد که برای محک زدن خودتان میتوانید به آنها پاسخ دهید. توجه داشته باشید که بعضی از سوالات ممکن است بیش از یک گزینه درست داشته باشند. در پایان هر سوال توضیحی در جهت راهنمایی وجود دارد و پاسخها هم در انتهای مطلب موجود هستند.
1. ترتیب پایپلاین مدلسازی زبانی به چه نحوی است؟
الف) ابتدا، کار با مدل آغاز میشود؛ مدل مسئولیت مدیریت متون و انجام پیشبینیهای خام را بر عهده دارد. سپس، توکنکننده این پیشبینیها را به لحاظ منطقی بودن بررسی کرده و آنها را در صورت لزوم به متن تبدیل میکند.
ب) ابتدا، کار با توکنکننده آغاز میشود. توکنکننده متون را مدیریت کرده و شناسهها را به عنوان خروجی ارائه میکند. مدل این این شناسهها را بررسی و اقدام به پیشبینی میکند که میتواند در قالب متن باشد.
ج) توکنکننده متون را مدیریت کرده و شناسهها را به عنوان خروجی ارائه میکند. مدل این این شناسهها را بررسی و اقدام به پیشبینی میکند. مجدداً میتوان از توکنکننده برای تبدیل این پیشبینیها به متن استفاده کرد.
توضیح: توکنکننده هم برای توکنسازی و هم برای توکنزدایی استفاده میشود.
2. خروجی تنسور با مدل ترنسفورمر پایه چند بُعد دارد و این ابعاد کدامها هستند؟
الف) 2: طول توالی و اندازه دسته
ب) 2: طول توالی و اندازه پنهان
ج) 3: طول توالی، اندازه دسته و اندازه پنهان
توضیح: روال کلی خروجی ابعاد ترنسفورمر به این نحوه می باشد.
3. کدام یک از موارد زیر نمونهای از توکنسازی زیرواژه به حساب میآید؟
الف) WordPiece
ب) توکنسازی کاراکتر محور
ج) تجزیه بر اساس فاصله خالی و نشانهگذاری
د) BPE
ح) Unigram
خ) هیچکدام
توضیح: این سه مورد از نمونه های توکنسازی زیرواژه هستند.
4. هد مدل چیست؟
الف) جزئی از شبکه ترنسفورمر پایه که تنسورها را به سوی لایههای درست هدایت میکند.
ب) هد مدل که با عنوان سازوکار خودتوجهی نیز شناخته میشود، بازنمایی توکن را بر اساس سایر توکنهای توالی تطبیق میدهد.
ج) این جزء اضافی از یک یا چند لایه تشکیل یافته است و پیشبینیهای ترنسفورمر را به خروجی تبدیل میکند.
توضیح: هدها شکلهای مختلفی دارند: هدهای مدلسازی زبان، هدهای پاسخگویی به پرسش، هدهای طبقهبندی توالی و غیره.
5. TFAutoModel چیست؟
الف) مدلی که به طور خودکار با داده آموزش میدهد.
ب) شیءای که معماری صحیح را بر اساس چکپوینت عرضه میکند.
ج) مدلی که به طور خودکار زبان مورد استفادهیِ خروجی را به منظور بارگذاری وزنهای صحیح شناسایی میکند.
توضیح: TFAutoModel1 فقط باید از چکپوینتی خبر داشته باشد که بازگشت به معماری صحیح را میسر میکند.
6. چه روشهایی برای دستهبندی توالیهایی که طول مختلفی دارند، وجود دارد؟
الف) کوتاه کردن (Truncating)
ب) خروجی از تنسورها
ج) پدینگ (Padding)
د) ماسک توجه (Attention masking)
توضیح: عمل پدینگ راهکار درستی برای مرتبسازی توالیها است تا آنها در شکل مستطیلی جای گیرند. اما آیا فقط همین راهکار وجود دارد؟ خیر ماسکهای توجه نیز در مواجه با توالی های با طول مختلف بسیار مهم هستند. کوتاه کردن نیز یکی از روشهای برش توالی به یک اندازه ثابت می باشد.
7. هدف از بهکارگیری تابع سافتمکس در خروجیهای لوجیت (با مدل طبقهبندی توالی) چیست؟
الف) دستکاری لوجیتها به منظور افزایش قابلیت اطمینان آنها
ب) بهکارگیری کران بالا و پایین برای قابل فهمتر کردن آنها
ج) مجموع کل خروجی برابر با 1 است؛ بنابراین، تسفیر احتمالگرایانهای به دست میآید.
توضیح: مقادیر بدست آمده بین صفر و یک قرار دارند. البته این تنها دلیل ما برای استفاده از تابع سافتمکس نیست.
8. API توکنکننده عمدتاً روی چه روشی متمرکز است؟
الف) رمزگذاری؛ رمزگذاریِ متن به شناسه و شناسه به پیشبینی
ب) فراخوانی شیء توکنکننده به طور مستقیم
ج) pad
د) توکن کردن
توضیح: روش فراخوانی (__call__) توکنکننده از جمله روشهای موثری به شمار میرود که قادر است تقریباً از پسِ هر شرایطی برآید. از این روش برای بازیابیِ پیشبینیهای مدل نیز استفاده میشود.
9. متغیر نتیجه در این نمونه کد چه محتوایی دارد؟
from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") result = tokenizer.tokenize("Hello!")
الف) لیستی از استرینگها؛ هر استرینگ به مثابه یک توکن است.
ب) لیستی از شناسهها (IDs)
ج) یک استرینگ حاوی کلیه توکنها
توضیح: این را به شناسه تبدیل کرده و به مدل ارسال کنید.
10. آیا ایرادی در کد زیر مشاهده میکنید؟
from transformers import AutoTokenizer, TFAutoModel tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") model = TFAutoModel.from_pretrained("gpt2") encoded = tokenizer("Hey!", return_tensors="pt") result = model(**encoded)
الف) خیر، به نظر درست میرسد.
ب) توکنکننده و مدل باید همیشه از چکپوینت یکسانی به دست آمده باشند.
ج) چون هر ورودی یک دسته به شمار میرود، بهتر است عمل پدینگ و کوتاهسازی با توکنکننده صورت گیرد.
* توضیحی برای این مورد در نظر گرفته نشده
پاسخ سوالات آزمون پایان فصل دوم
1- ج
2- ج
3- الف – د – ح
4- ج
5- ب
6- الف – ج – د
7- ب – ج
8- ب
9- الف
10- ب
آزمون پایان فصل دوم از دوره آموزش پردازش زبان طبیعی به پایان رسید. شما میتوانید از طریق لینک زیر به دیگر قسمتهای این دوره آموزشی دسترسی داشته باشید.
[button href=”https://hooshio.com/%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D9%87%D8%A7/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C/” type=”btn-default” size=”btn-lg”]آموزش پردازش زبان طبیعی[/button]