NLP stuff
4.06K subscribers
147 photos
1 video
2 files
277 links
مطالب خوب و به‌دردبخور در حوزه‌ی هوش مصنوعی و پردازش زبان طبیعی!

شکرشکن شوند همه طوطیان هند
زین قند پارسی که به بنگاله می‌رود

اگر انتقاد، پیشنهاد و یا مطلب مفیدی (لینک، پست و ...) داشتید:
@AliAkbarBadri
@mmsamiei
@MmahdiAghajani
Download Telegram
معجون فصل؛ ترکیب pre-training و self-training برای بازشناسی گفتار

قبلا در این پست [https://t.iss.one/nlp_stuff/240] درباره conformer توضیح دادیم و قبل‌تر هم درباره wav2vec در این پست [https://t.iss.one/nlp_stuff/135] صحبت کرده بودیم.
حال یه مینی‌بوس از گوگلی‌ها و اپلی‌ها فیت دادند و در مقاله‌ای جدید مدلی به نام BigSSL را معرفی کردند که در آن برای کاهش نیاز به دادگان برچسب‌خورده در تسک بازشناسی گفتار، از تکنیک‌های pre-training و self-training استفاده شده است.
معماری اصلی، استفاده از بلوک‌های conformer به‌جهت انکود کردن سیگنال گفتار است و برای pre-training هم از wav2vec2.0 استفاده شده. همچنین برای self-training از تکنیک noisy student training استفاده شده است؛ به این صورت که ابتدا یک مدل ساده اقدام به برچسب‌زنی دادگان بدون لیبل می‌کنه و بعد از اون، دسته از کلماتی رو که با احتمال بالا تونسته بازشناسی کنه به عنوان دادگان آموزشی مرحله بعد درنظر می‌گیره.
همچنین سایز مدل رو هم به اندازه زیادی بزرگ کردند و در سه سایز ۶۰۰ میلیون، ۱ میلیارد و ۸ میلیارد پارامتر آزمایش انجام دادند. در حالتی که سایز مدل ۸ میلیارد بوده و از wav2vec به عنوان pre-training استفاده کردند و همچنین self-training هم انجام دادند، تنها با ۳ درصد از دادگان آموزشی مدل تونسته نتیجه‌ای نزدیک به SoTA رو به‌دست بیاره. ینی چیزی حدود خطای ۵ درصد بر اساس معیار WER. برای جزییات بیشتر می‌تونید به مقاله مراجعه کنید.

لینک مقاله:
https://arxiv.org/abs/2109.13226

پ.ن. تصاویر نتایج و معماری به پیوست ضمیمه شده است.

#read
#paper

@nlp_stuff
Measuring_Intelligence_@nlp_stuff.pdf
1.8 MB
ویدیو و اسلاید ارائه‌ی «معیار هوشمندی»

فایل اسلاید ارائه مهدی‌مون [https://t.iss.one/nlp_stuff/246] ضمیمه این پست شده. ویدیوی ارائه به همراه پرسش و پاسخ هم در آپارات در لینک زیر موجوده.

لینک ویدیو:
https://www.aparat.com/v/hlkre

پ.ن. لطفا این پست رو تا حد امکان دست‌به‌دست کنید.

#overfit
#watch

@nlp_stuff
کارآگاه DeepLog؛ آماده برای شخم زدن لاگ‌های سیستم شما به جهت استخراج ناهنجاری

یه مقاله می‌خوایم امروز معرفی کنیم که شاید یه مقداری قدیمی باشه (مال سال ۲۰۱۷ عه) ولی چون تازه یه پیاده‌سازی شیک و مجلسی ازش بیرون اومده و اینکه نحوه کارش هم قشنگه ارزش شنیدن داره! بله؛ deeplog. این ابزار قراره بر روی لاگ‌های سیستم، آموزش ببینه تا بتونه ناهنجاری رو در رفتار سیستم تشخیص بده. با استفاده از این ابزار اگه سیستمی داشته باشید که لاگ‌های verbose تولید می‌کنه و فرمتش هم به شکل OpenStack و یا HDFS هست، می‌تونید به‌راحتی یه سیستم تشخیص ناهنجاری بالا بیارید. شیوه کارش به این صورت است که می‌گه هر لاگ در سیستم یه آیدی داره و یه timestamp و یه message (کل فرمت OpenStack و HDFS همینه و همون‌طور که می‌بینید می‌تونید لاگ‌هاتون رو به‌راحتی به این فرمت تبدیل کنید). هر message یه کلیدی داره و اون کلید حاصل از حذف کردن پارامتر‌های اون لاگه.

مثلا اگه یه message از یه لاگ اینطوری باشه:
[send data to host 192.168.1.1 was completed in 0.61 seconds]
اون وقت کلید اون پیام میشه:
[send data to host * was completed in * seconds]
و پارامتر وکتورش هم میشه:
[t2-t1, 192.168.1.1, 0.61]

به عبارت دیگه کلید لاگ‌ها همیشه محدود هستند. به خاطر همین برای هر log entry یه کلید درمیاره و یه وکتوری از پارامترهاش. یکی از درایه‌های این وکتور هم اختلاف timestamp اون لاگ با لاگ قبلی هست. حالا برای هر کدوم از کلیدها و وکتور‌های پارامتری یه مدل جداگانه train میشه اون هم از روی صرفا دادگان نرمال. مدل‌ها هم همه LSTM هستند (از همین‌جا می‌تونم حس کنم که ذهن‌تون داره قلقک میاد که برید transformer رو با LSTM جایگزین کنید). مثلا مدل مربوط به کلید‌ها اینطوری هست که یه پنجره از کلید‌های اخیر رو میگیره و باید کلید بعدی رو حدس بزنه. برای اینکار یه احتمالی از کلید‌های بعدی رو خروجی میده (دقت کنید که در یه سیستم همون‌طور که گفتیم تعداد کلید‌ها محدوده) و اگه کلید جدید در بین g کلید با بیشترین احتمال بود که جواب normal میده و در غیراینصورت خروجی شبکه برابر با anomaly میشه. پیاده‌سازی مبتنی بر PyTorch هم از این سیستم موجوده که در قالب یه پکیج پایتونه و می‌تونید بر روی دیتای خودتون ترین‌ش کنید. برای جزییات بیشتر به خود مقاله مراجعه کنید. مقاله خوش‌فهمیه!

لینک مقاله:
https://dl.acm.org/doi/10.1145/3133956.3134015

لینک پکیج پایتونی:
https://github.com/Thijsvanede/DeepLog

پ.ن: نتایج عملکرد در تصاویر اومده. مقدار F-score بر روی ۰.۹۷ قرار گرفته. باحاله نه؟!

#read
#paper

@nlp_stuff
خون اول. ParsTwiNER؛ دادگان عمومی توییتر فارسی برای NER از تیم اورفیت

خوشبختانه مقاله ما در ورکشاپ WNUT کنفرانس EMNLP 2021 پذیرفته شد و ارائه شفاهی هم دادیم. این مقاله درباره named entity recognition در فضای فارسی غیررسمیه. در این مقاله یه دادگان خوب هم از توییتر فارسی جمع‌آوری کردیم و تگ زدیم و حالا اون رو به‌صورت عمومی عرضه می‌کنیم تا اندکی از دین خودمون رو به جامعه فنی ادا کرده باشیم.

کیفیت عملکرد مدل ParsBert رو بر روی دادگان‌مون بررسی کردیم که افت شدید داشت و به f-score حدود ۶۹ درصد رسیده بود. پس در این مقاله یه راهکاری هم با استفاده از یادگیری موازی و data anealing ارائه دادیم تا عملکرد مدل رو به f-score حدودا ۸۲ درصدی برسونیم. اگر مدل شما نتایج بهتری روی این دیتاست گرفت، پول ریکوئست بدید که به ریپو اضافه کنیم.

قضیه از این قراره که دیتاست‌های مشهور فارسی در NER مثل پیما و آرمان، همه برروی فارسی رسمی جمع‌آوری شده‌اند. فضای زبان‌های غیررسمی یه محیط نویزیه و به همین دلیل مدل‌هایی که در فضای رسمی آموزش دیدند، اینجا رو خراب می‌کنند. در این مقاله یه انکودر برت رو به اشتراک گذاشتیم و برای دو تسک NER در فضای رسمی و غیررسمی دوتا دسته‌بند جدا بر روی انکودر به‌اشتراک‌گذاشته درنظرگرفتیم. حالا در هر دور یادگیری با احتمال لامدا از دیتاست خودمون به مدل میدیم. در ابتدای یادگیری این نسبت خیلی کوچیکه و بیشتر دادگان از فضای رسمی به مدل داده می‌شه (مثلا دیتاست پیما) اما رفته‌رفته این نسبت بزرگ می‌شه. علت این کار اینه که ساختار زبان غیررسمی درهم‌ریختگی داره و ممکنه مدل رو در ابتدای یادگیری گیج کنه. به خاطر همین باید ساختارهای اولیه رو از دیتای رسمی یاد بگیره و کم‌کم وارد فضای غیررسمی بشه. مدل‌های آموزش‌داده‌شده هم بر روی هاگینگ‌فیس دردسترس هستند.

پ.ن.۱: خداوکیلی هر پستی رو دست‌به‌دست نمی‌کنید این رو بکنید که به‌دست عاشقان و دلدادگان پردازش زبان طبیعی در فارسی برسه!

پ.ن.۲: و لطفا استار به ریپوی گیت‌هاب یادتون نره!

لینک مقاله:
https://aclanthology.org/2021.wnut-1.16/

لینک دادگان در گیت‌هاب:
https://github.com/overfit-ir/parstwiner

لینک مدل‌ها:
https://huggingface.co/overfit/twiner-bert-base-mtl

#dataset
#read
#paper

@nlp_stuff
داستان برت

اگر در کار پردازش زبان هستید قطعا اسم برت به گوشتون خورده. در چهارمین پست از رشته‌‌پست‌ «داستان ترنسفورمرها»، رفتیم سراغ bert و سعی کردیم به شیوه نیکو، روان و جامعی این مدل رو شرح بدیم. اگر تا به حال از برت استفاده نکرده‌اید یا اگر استفاده کرده‌اید ولی دقیقا نمی‌دونید تو برت چه خبره، خوندن این پست رو به شما پیشنهاد می‌کنیم.

لطفا کم‌کاری نکنید. نظر بدید و با بقیه به اشتراک بگذارید. :)
اگر پست خوبی داشتید خبر بدید که در انتشارات بگذاریم.


https://virgool.io/overfit/transformers4-bert-c6ah7xv69vjj

#read
#blog
#overfit

@nlp_stuff
This media is not supported in your browser
VIEW IN TELEGRAM
کوهستان RL؛ هدف بعدی هاگینگ فیس

هاگینگ فیس اعلام کرد که اولین محیط (environment) یادگیری تقویتی عمیق خودشون به نامSnowball Fight را منتشر کردند و هم‌آورد طلبیدند که کی می‌تونه ایجنتشون رو شکست بده (لینک آخر پست). الان هم دارند محیط‌های بعدی رو تولید می‌کنند. این محیط‌ها با Unity ML-Agents تولید شدند. این زبون‌بسته یه ابزار اوپن‌سورسه که باهاش شما می‌تونید محیطی برای آموزش ایجنت‌تون بسازید.

هاگینگ‌فیس طبق معمول برای این زمینه هم سه تا هدف برای اکوسیستمی که داره میسازه گذاشته:
- ملت بتونند محیط خودشون رو بسازند و با بقیه شیر کنند
- ملت مدل‌ها و محیط‌هاشونو روی هاگینگ فیس host کنند مثل همین بازی که لینکشو پایین گذاشتیم.
- دمویی از مدلشون بتونند راحت بالا بیارند که نتایج رو بتونند به بقیه نشون بدهند.

لینک پست توضیح:
https://huggingface.co/blog/snowball-fight

لینک بازی:
https://huggingface.co/spaces/ThomasSimonini/SnowballFight

#tool
#link

@nlp_stuff
کورس CS 11-711 برای آپگرید‌شدن در پردازش زبان

اگر مفاهیم پایه nlp رو بلد هستید میتونید با آموختن این کورس با مفاهیم جدیدتر پردازش زبان نظیر prompting و نحوه مدل‌کردن متن‌های خیلی بلند و fairness در زبان و حتی نحوه تفسیر و دیباگ مدل‌های پردازش زبانی آشنا بشید. این کورس از cmu و همین پاییز ۲۰۲۱ هست. اگر مفاهیم پایه پردازش زبان رو بلد هستید ولی در مسائل جدید کمیتتون لنگ میزنه و خواهان خفن شدن هستید، این کورس رو از دست ندید.

لینک کورس و اسلایدها:
https://phontron.com/class/anlp2021/schedule.html

لینک یوتیوب:
https://t.co/NlRKZ4RJQv

#course
#watch
#coach
تقاطع Information Retreival و Contrastive Learning

بازیابی اطلاعات و اسناد یکی از تسک‌های مهم در حوزه پردازش زبانه. مخصوصا وقتی که پای تسک‌هایی مثل QA در میون باشه داشتن یک سیستم IR خوب نیاز قطعیه. در سال‌های اخیر با توجه به ترکوندن شبکه‌های عصبی، طبیعتا انگیزه‌هایی پیش اومد تا برای IR هم از راه شبکه‌های عصبی راه حلی پیدا بشه که منجر به ظهور dense retrieval‌ ها شد. اینها در واقع شبکه‌های عصبی هستند که با گرفتن یک داکیومنت و یک کوئری، میزان امتیاز ارتباط این زوج رو خروجی می‌دهند. این شبکه‌های عصبی با این که در بنچمارک‌های IR که براشون دیتاست آموزش وجود داره پرچمدار هستند اما در موقعیتی که بایستی بر روی دامین جدیدی که از اون دیتای آموزشی ندارند (Zero-Shot) تنظیم شوند دچار مشکلند. از اونجایی هم که درست کردن دیتاست برای تسک IR کار بسیار هزینه‌بر و وقت‌گیریه عملا راهی برای بانظارت کردن وجود نداره. این مشکل به حدیه که به لحاظ عملکرد پشت‌ سر روش‌هایی لفظ محوری همچون TF-IDF و BM25 که غیرنظارتی هستند، قرار می‌گیرند. سوال حالا اینه که آیا ما میتونیم dense retrieveal ای آموزش بدهیم که بدون نیاز به داده آموزشی و نظارت حین آموزش بتونه روش‌هایی مثل BM25 رو پشت سر بگذاره؟ حالا پیپری اومده جواب داده بله! این پیپر اومده بررسی کرده آیا contrastive learning روی مجموعه داکیومنت‌های مورد نظر میتونه پاسخ خوبی باشه یا نه؟ این پیپر تقریبا کار نویی نکرده ولی بررسی جالبی رو انجام داده. برای ساختن زوج‌های مثبت موردنیاز contrastive learning اومدند و استراتژی‌های ساده‌ای مثل تقسیم متن سند به دو متن یا نمونه‌برداری مستقل از متن سند رو انجام دادند. با این تکنیک‌ها تونستن در بنچمارک‌های IR و در تنظیمات Zero-Shot تنه به تنه روش‌هایی مثل BM25 بزنند. سپس اومدند تنظیمات Few-Shot ای رو بررسی کردند که توش چند نمونه کوئری برای اسناد وجود دارند. با فاین تیون کردن روی این نمونه‌های هرچند اندک تونستند حتی از BM25 جلو بزنند. این پیپر شاید مقدمه‌ای بر استراتژی و ایده‌های بیشتری در حوزه تقاطع IR و Contrastive Learning در آینده باشه.


لینک مقاله:
https://arxiv.org/abs/2112.09118

#paper
#read

@nlp_stuff
مدل بازشناسی گفتار wav2vec2 فارسی

دوستان اومدند مدل wav2vec2 چند زبانه رو برای فارسی روی یه بخشی از دیتاست شخصی که در اختیار داشتند فاین تیون کردند و مدل نهایی رو با سخاوت روی هاگینگ فیس گذاشتند. نتایجش از مدل‌هایی که قبلاً بوده بهتر شده.
می‌تونید روی هاگینگ فیس با هر صوتی که میخواید تستش کنید.

لینک گیت‌هاب:
https://github.com/Hamtech-ai/wav2vec2-fa

لینک هاگینگ فیس:
https://huggingface.co/masoudmzb/wav2vec2-xlsr-multilingual-53-fa

پ.ن. با تشکر از آقایان مسعود پرپنچی و سجاد ایوبی که این پست رو فرستادند که در کانال قرار بدیم. دوست داشتید بهشون استار بدید که لذتشو ببرند.

#irani
#link

@nlp_stuff
داستان ترنسفورمرها (۵): سریع و سبک، گلاب‌گیری از برت با دیستیل‌برت

مدل برت با وجود تمام قدرتی که داره اما به خاطر سنگین‌بودنش در عمل سخت میشه ازش استفاده کرد و هم حافظه و هم زمان قابل توجهی رو می‌طلبه. در پنجمین پست از رشته‌‌پست‌ «داستان ترنسفورمرها»، سعی کردیم تکنیک distillation رو که یک راه حل ارائه شده برای فشرده‌سازی مدل‌های بزرگ است بررسی کنیم و بعد هم مدل distilbert رو که حاصل از انجام این تکنیک بر روی مدل برت هست معرفی کنیم.

اگر پست خوبی داشتید خبر بدید که در انتشارات بگذاریم.

https://virgool.io/overfit/transformers5-distilbert-smwuod8mlb9p

#read
#blog
#overfit

@nlp_stuff
دیتاست OCR ارشاسب

دیتاست ocr فارسی با نام اَرشاسب منتشر شد. این دیتاست (همچون نمونه در تصویر) شامل متن‌های پیوسته‌ای است که در آن، کلمات به همراه مختصات در تصویر برچسب زده شده‌اند. ۷۰۰۰ صفحه از این دیتاست به صورت عمومی منتشر شده و همچنین نسخه کامل‌تر این دیتاست که شامل ۳۳ هزار صفحه است، توسط سازندگان آن برای اعضای کانال به صورت رایگان در دسترس قرار گرفته است.

لینک گیت‌هاب دیتاست (۷ هزار صفحه):
https://github.com/persiandataset/Arshasb

لینک کل دیتا (۳۳ هزار صفحه):
https://drive.google.com/file/d/1Ahw_y-ugnu6FFz_SRBm2VUxnaqmXfsvp

پ.ن. با تشکر از سازنده‌ی این دیتاست که به کانال این پست را ارسال کردند. شما هم می‌تونید با استار دادن در گیت‌هاب از این پروژه حمایت کنید.

#dataset
#irani

@nlp_stuff
NLP stuff
خون اول. ParsTwiNER؛ دادگان عمومی توییتر فارسی برای NER از تیم اورفیت خوشبختانه مقاله ما در ورکشاپ WNUT کنفرانس EMNLP 2021 پذیرفته شد و ارائه شفاهی هم دادیم. این مقاله درباره named entity recognition در فضای فارسی غیررسمیه. در این مقاله یه دادگان خوب هم از…
خب خداروشکر کنفرانس EMNLP2021 هم به خوبی و خوشی تموم شد و مفتخریم بگیم که در کارگاه WNUT مقاله تیم اورفیت به عنوان runner-up (نایب قهرمان) انتخاب شد. امیدواریم از دیتاست تولید شده در این پژوهش حداکثر حظ و بهره رو ببرید و با یه استار زیبا ما رو هم حمایت کنید.

لینک مقاله:
https://aclanthology.org/2021.wnut-1.16/

لینک دادگان:
https://github.com/overfit-ir/parstwiner

@nlp_stuff
مروری بر هوش در ۲۰۲۱ و پیش‌بینی روند سال آینده

سال ۲۰۲۱ هم تمام شد و کلی مقاله و مدل و اتفاقات جدید در حوزه هوش مصنوعی رو شاهد بودیم. به همین مناسبت بررسی گزارش StateofAI که از ۲۰۱۸ به اینور در انتهای هر سال راجع به وضعیت و رخداد‌های هوش خلاصه‌ای رو ارائه میده، بسیار جذاب و سودمند میتونه باشه. در گزارش امسالشون هم چهار حوزه پیشرفت‌های علمی، وضعیت عرضه و تقاضا و تمرکز استعدادهای انسانی، زمینه‌های کاربرد تجاری هوش مصنوعی و تاثیراتش بر کسب و کار‌ها، رابطه هوش مصنوعی و مسائل سیاسی و ژئوپلتیک هوش مصنوعی رو بررسی کردند و در نهایت هم پیش‌بینی از رخداد‌های سال آینده ارائه دادند. این گزارش شامل ۱۸۳ اسلاید بسیار غنی است. در زیر سعی شده تا خلاصه‌ای از این خلاصه ارائه بشه:

- در حوزه پیشرفت علمی مهمترین مطالب این گزارش رو میشه رشد یادگیری‌های کمتر نظارتی (مثل خودنظارتی‌ها)، تصرف حوزه‌های مختلف هوش به دست معماری ترنسفورمری (تصویر و صوت)، ظهور معماری های نوین CNN و MLP برای به چالش کشیدن ترنسفورمر‌ها (مثل MLP-Mixer)، پیشرفت قابل توجه دیپ مایند در حوزه بیولوژی و یادگیری تقویتی و به وجود اومدن مساله مهندسی prompt در مدل‌های زبانی دانست. مدل‌هایی مثل DALL-E و CLIP و Codex هم که مدل‌های پر سر و صدای امسال بودند.
- نکته جالب این گزارش در حوزه منابع انسانی حوزه هوش رو هم میشه در رشد سریع هند و به خصوص چین در تولید مقالات و تربیت نیروی انسانی دید. همچنین مطلب دیگه محدودتر شدن ارائه کارهای برجسته به تعداد اندکی دانشگاه‌ و شرکت‌های پولدار و مهاجرت وسیع اساتید از دانشگاه‌ها به شرکت‌هاست.
- در حوزه تاثیرات تجاری هوش هم این گزارش به پیشرفت هوش در صنعت کشف دارو، گسترده‌شدن کاربردهای هوش (از تخمین مصرف برق در شبکه توزیع گرفته تا زمان مناسب لقاح مصنوعی گاو) و البته در نهایت مساله مهم MLOps و به‌راه‌اندازی و استقرار و استفاده از مدل‌های یادگیری ماشین اشاره کرده. مشکلات اخیر بر سر مساله خطیر تولید و تامین نیمه‌هادی‌ها از دیگر نکات مذکور این بخشه.
- در حوزه سیاست هم گزارش راجع به داغ شدن مباحث اخلاقی در کاربرد هوش و نیاز به تفسیرپذیری و قانونمند‌کردن هوش اشاره کرده. همچنین مواردی از رشد هوش در صنایع نظامی هم بحث شده.
- اما در بخش پیش‌بینی، این گزارش هشت پیش‌بینی داشته که از موارد فنی‌تر اونها میشه به جایگزین‌شدن RNN‌ها با ترنسفورمر‌ها در یادگیری تقویتی، پرچمداری مدل‌های هیبریدی ترنسفورمری و CNN کوچک با تعداد پارامتر خیلی کمتر روی مساله دسته‌بندی تصویر، افزایش استفاده از JAX و کد‌های منتشرشده و تولد یک شرکت تحقیقاتی با تمرکز روی AGI (هوش جامع مصنوعی) اشاره کرد.

این گزارش بسیار خوب و مختصر و موجز و مفید مقالات یکسال گذشته رو مرور کرده، از دست ندید.

لینک گزارش و اسلاید‌ها:
https://www.stateof.ai/

#read

@nlp_stuff
مدل WebGPT؛ به GPT-3 اینترنت و مرورگر دادند!

چند وقت قبل شرکت OpenAI از مدل WebGPT رونمایی کرد که باعث شگفتی خیلی‌ها شد و خیلی ترکوند.

شرکت OpenAI با یه تیم متشکل از یه نیسان آدم اومده GPT-3 رو فاین‌تیون کرده تا بتونه سوال‌های دامنه‌باز رو با استفاده از یک مرورگر (browser) پاسخ بلند (در حد پاراگراف) بده! یعنی واقعا یه مرورگر تکستی درست کردند و دادند دست مدل GPT-3 که با بینگ (موتور جستجوی مایکروسافت) سرچ کنه و جواب سوال رو «تولید» کنه.

در این پست خلاصه‌ای از نحوه‌ی کار و نتایج این مدل رو بررسی کردیم. اگر به نظرتون خوب بود، لایک کنید و دست به دست کنید.

https://virgool.io/overfit/papers-webgpt-a0xvwzafrj2q

#overfit
#read
#blog

پ.ن. رسیدیم به دو کا. مبارکا. ممنون که به بقیه، اندک کانال خودتون رو معرفی می‌کنید. تشکرات!

@nlp_stuff
خط‌کشی برای سنجش کیفیت document understanding

در این پست می‌خوایم به معرفی benchmark برای تسک document undestanding بپردازیم. این benchmark تسک document undestaning رو تبدیل به سه مساله اصلی کرده:

- تسک اول Document QA است که از روی layout داکیومنت می‌تونه سوال بپرسه و مدل باید جواب بده. در این حالت سوال‌ها به صورت زبان طبیعی پرسیده میشه اما کانتکست درواقع یه داکیومنته که layout داره (متنی که استایل داره یعنی فونت یا سایزهای متفاوتی داره). مثلا از مدل می‌پرسند که دو نوع تاریخی که در این داکیومنت وجود داره چه چیزهایی هستند؟ و مدل هم باید مثلا بگه تاریخ فاکتور و تاریخ پرداخت.

- تسک دوم key information extraction است که شبیه تسک اوله با این تفاوت که دیگه query با زبان طبیعی مطرح نمیشه بلکه مدل اطلاعات کلیدی این داکیومنت رو باید بیرون بکشه. مثلا مجموع فاکتور برابر با ۲۰۰۰ دلاره.

- تسک سوم هم Table QA/NLI هست که کار QA و یا NLI رو بر روی جداول انجام می‌ده. این تسک مشخصا بر روی جداول تمرکز داره و سعی می‌کنه برخی از عبارات رو با استفاده از جدول موجود در داکیومنت verify کنه. مثلا یه جمله ورودی می‌گیره که آیتم شماره ۱ به مقدار ۲۰۰ قلم فروخته شده و مدل باید بگه که این جمله درسته یا نه. البته میشه از روی جدول، سوال هم پرسید و مدل باید بتونه جواب بده.

یه صفحه هم در نظر گرفته شده که leaderboard است و امتیاز مدل‌های مختلف رو گذاشته و حالت overall روی این سه تا تسک داره. اگه در این زمینه کار می‌کنید خوبه به این بنچ‌مارک توجه کنید و نتایج‌تون رو با leaderboard مقایسه کنید. در تصویر مثال‌های بهتری از هر یک از این سه تسک آورده شده که می‌تونید مشاهده کنید.

لینک benchmark:
https://duebenchmark.com/leaderboard

لینک github:
https://github.com/due-benchmark

لینک مقاله:
https://datasets-benchmarks-proceedings.neurips.cc/paper/2021/file/069059b7ef840f0c74a814ec9237b6ec-Paper-round2.pdf

#read
#paper

@nlp_stuff
مینی‌پستی برای استخراج patch

با رونق‌گرفتن معماری ترنسفورمر (که یک معماری به اصطلاح set2set است) در حوزه پردازش تصویر، برای ورودی دادن یک تصویر به ترنسفورمر، اول بایستی این تصویر رو به یکسری پچ‌ و تکه تقسیم کنیم و بعد این مجموعه پچ‌ها رو به شبکه بدیم. راه حل ساده و البته ابلهانه اینه که از چند تا for برای این کار استفاده کنیم که قاعدتاً اسراف وقته. در این رشته توییت اما نشون داده و به صورت کامل توضیح داده که چطوری بدون هیچ حلقه ای و صرفا با استفاده از مکانیزم‌های نامپای‌طور میشه عملیات استخراج پچ رو با کمترین زمان مصرفی و پیچیدگی کد، پیاده کرد.
از اونجایی که این جنس نیازمندی بسیار پرکاربرده و قطعا در آینده حداقل یکبار ممکنه گیرش بیافتید مطلب مفیدی می‌تونه باشه.

لینک رشته توییت:
https://mobile.twitter.com/MishaLaskin/status/1478500251376009220

#read
#tweet
#code

@nlp_stuff
گنج قارون! مجموعه مساله‌های یادگیری عمیق برای مصاحبه‌های آکادمیک و یا شغلی

امروز کتابی رو براتون معرفی می‌کنیم که شامل مساله‌های متنوعی در حوزه یادگیری ماشین و یادگیری عمیقه. این مساله‌ها عموما سوالاتی هستند که در مصاحبه‌های آکادمیک و یا شغلی پرسیده می‌شوند. حالا این کتاب به طرز نکویی این مساله‌ها رو به همراه جواب‌هاشون گردآوری کرده که می‌تونید برای افزایش توانمندی‌هاتون ازش استفاده کنید. سوالات این کتاب عموما یا سوالات مفهومی و پایه‌ای حول اون حوزه هستند و یا سوالات کاربردی که هر کدوم چالش‌های خاص خودش رو داره. مثلا در سوالاتی کاربردی ممکنه یه تیکه کد به PyTorch داده باشه و بخواد که شما بگید چی کار می‌کنه. فصل‌های این کتاب به ترتیب از مباحث پایه‌ای مثل logistic regression شروع میشه و به مفاهیم پیچیده‌تر در حوزه شبکه‌های عمیق مثل CNNها و مساله‌های مربوطه می‌رسه. توصیه می‌کنیم اول سوال‌ها رو نگاه بندازید و بعد سعی کنید اون‌ها رو حل کنید. اگه جوابی به ذهن‌تون نمیرسه به جای اینکه مستقیم سراغ بخش solutions برید سعی کنید در کتاب‌های دیگه در حوزه یادگیری ماشین و یادگیری عمیق جواب اون سوال رو پیدا کنید. مثلا یکی از سوال‌هاش اینه:
کدوم توزیع آماری بیشترین آنتروپی رو در یه بازه بسته داره؟ اول کمی فکر کنید و بعد جوابش رو در تصویر می‌تونید ببینید.

لینک کتاب:
https://arxiv.org/abs/2201.00650

#book
#read

@nlp_stuff
در انتقال یادگیری از لایه‌های میانی غافل نشوید

در سناریو انتقال یادگیری و هنگامی که بخواهیم شبکه پیش آموزش دیده روی تسک مبدا را برای تسک مقصد استفاده کنیم، دو راه پیش‌روی خود داریم. راه اول این است که شبکه را به اصطلاح فریز کنیم و یک لایه خطی روی فیچر‌های لایه آخر شبکه برای تسک مقصد استفاده کنیم. راه دوم هم این است که کل شبکه را مورد فاین تیون قرار بدهیم. حالا مقاله‌ای اومده که نشون داده راه سومی هم جز این دو هست و این راه فریزکردن شبکه و در عین حال سوارکردن یک لایه خطی بر روی فیچرهای تمام لایه‌های میانی شبکه است (نه فقط فیچرهای لایه آخر). در واقع سوالی که منجر به این ایده شده این بوده که Fine-tuning با این که پیچیدگی و تعداد پارامتر بیشتری نسبت به حالت فریزکردن مدل داره چرا بهتر عمل میکنه؟ نکنه در سناریو Fine-tuning صرفا فیچرهای میانی شبکه دارند به آخر شبکه پاس داده می‌شوند؟؟)

این مقاله ابتدا اومده imagenet رو به عنوان تسک مبدا در نظر گرفته و ۱۹ دیتاست دیگه مثل Cifar100 و Clevr و Pets و ... رو به عنوان تسک مقصد در نظر گرفته. سپس یک مقداری تحت عنوان domain affinity محاسبه کرده که نشون میده هر کدوم از این ۱۹ تسک مقصد چه قدر به imagenet نزدیک هستند. حالا اومدند و برای هر کدوم از این دیتاست‌ها سه سناریو دسته‌بند خطی روی شبکه مبدا فریزشده (Linear)، فاین تیون‌کردن شبکه مبدا (Fine-tuning) و اموزش دادن از اول (Scratch) و نتایج این روشها رو تو عکس figure2 ای که مشاهده میکنید گذاشتند. در این نمودار دیتاست های سمت چپ دارای affinity کمتر و دیتاست‌های سمت راست دارای affinity بیشتری هستند. نمودار نشون میده که برای دیتاست‌های چپ سناریو Scratch جواب‌بهتری از بقیه میده و برای دیتاست‌های راست هم سناریو Linear جواب خوبی میده ( که منطقی هم هست).

در گام بعدی مقاله اومده و مدل خودش یعنی Head2Toe رو مطرح کرده. در این مدل ابتدا شبکه مبدا (همون پیش آموزش دیدهه روی imagent) فریز میشه و سپس تمامی فیچر‌های میانی شبکه انتخاب می‌شوند. از اونجایی که سایز اینها خب زیاده فیچرهای هر لایه توسط یک مکانیزم pooling ابعادشون کاهش پیدا میکنه. در نهایت تمامی این فیچرهای کاهش بعد داده شده تمامی لایه‌ها با هم کانکت می‌شوند و یک بردار ویژگی بزرگ به دست میاد (اسمش رو h_all بذارید). از اونجایی که این h_all هم بزرگه و آموزش دادن کلاسیفایر خطی روش ممکنه منجر به اورفیت بشه، مقاله اومده از رگولاریزیشن Group lasso برای آموزش یک دسته‌بند خطی روی این بردار بزرگ استفاده کرده تا وزن‌هایی که به دست میان اسپارس باشن و هم به نوعی عمل فیچر سلکشن رو روی h_all انجام داده. در نهایت هم اومدن head2Toe رو روی اون ۱۹ دیتاست مختلف اجرا کردند و نشون دادند که در میانگین روششون بهتر از سناریو‌های دیگه نظیر Linear و حتی Fine-tune داره عمل میکنه!

لینک مقاله:
https://arxiv.org/abs/2201.03529

#read
#paper

@nlp_stuff
مدل رترو؛ ترکیب مدل زبانی و دیتابیس!

شرکت دیپ‌مایند مدلی به نام رترو داده که با ۷.۵ میلیارد پارامتر با مدل‌هایی مثل GPT-3 با ۲۵ برابر پارامتر در تسک‌های بر پایه‌ی اطلاعات (مثل پرسش و پاسخ) برابری می‌کند.
همونطور که می‌دونید مدل‌های زبانی برای پیش‌بینی احتمال یک کلمه با توجه به کلمات قبل و بعد ساخته شده‌اند. این پیش‌بینی گاهی نیاز به دانش زبانی مانند گرامر و درک معنا داره و گاهی نیز نیاز به اطلاعات دانش عمومی داره. مثلا در جمله‌ی «علی کاپوت ماشین را … زد.» مدل باید با دانش زبانی بگه: «بالا» و مثلا در جمله‌ی «کارگردان فیلم یک تکه نان … است» باید مدل با اطلاعات و دانش، جای خالی رو با «کمال تبریزی» پر کنه (البته طبیعتا نباید این موضوع را قبلا در داده‌ی آموزش دیده باشه).

مدل‌های زبانی غول‌آسا مثل جی‌پی‌تی تمام اطلاعات را در پارامترهای مدلشون ذخیره می‌کنند. برای دانش زبانی شاید این روش جواب بده اما برای دانش عمومی قطعا کارا نیست چون شونصد تا فکت وجود داره. حالا تیم دیپ مایند مدلی به نام RETRO (Retrieval Enhanced TRansfOrmers) ارائه کرده که از یک مدل زبانی خیلی کوچکتر از جی‌پی‌تی برای دانش‌های زبانی و یه دیتابیس بزرگ از اطلاعات عمومی داره استفاده می‌کنه. حالا این روش چند تا فایده بزرگ داره: اول اینکه مدل زبانی میتونه خیلی کوچیکتر باشه و فقط روی بحث‌های زبانی تمرکز کنه که این یعنی سریعتره و استفاده و دیپلویش هم راحت‌تر میشه. دوم. واسه اینکه سوال‌ها و داده‌های جدید (مثلا سوال: «ماتریکس (۴) در چه سالی ساخته شد؟») را هم مدل پاسخ بده لازم نیست دیگه دوباره آموزش داده بشه و کافیه که دیتابیس به‌روز بشه. در پست webgpt شرکت OpenAI قسمت بازیابی رو روی دوش اینترنت انداخته بود و توصیه می‌کنیم حتما اون پست را هم بخونید.

حالا مدل retro مثل مدل T5 در حقیقت یک انکودر-دیکودره و از یک دیتابیس استفاده می‌کنه. دیتابیس به صورت key-value داده‌ها رو ذخیره کرده. مقدار دو بخش داره: neighbor که یک متنه و امبدینگ برتش میشه کلید و بخش دوم به نام completion که ادامه‌ی متن neighbor است. این دیتابیس ۲ تریلیون توکن داره!!
نحوه آموزش بدین شکله که ورودی اول میره داخل برت و با استفاده از میانگین‌گیری از امبدینگ‌های کلمات، امبدینگ جمله ساخته میشه. با این بردار، به دیتابیس کوئری زده میشه و نزدیکترین همسایه‌ها با الگوریتم scann پیدا میشه. حالا این متن‌ها (همسایه‌ها و ادامه‌شون) با متن ورودی اصلی، میشن ورودی به رترو تا آموزش ببینه که پاسخ رو تولید بکنه. یعنی اینجوری مدل یاد میگیره با دیتابیس و نه فقط با پارامترهاش جواب رو تولید کنه. معماری کلی مدل در مقاله توضیح داده شده و مفصلش رو نگاهش کنید؛ دو استک انکودر و دیکودر داره که استک انکودر ۳۲ تا بلوک انکودر ترنسفورمری عادی داره و استک دیکودر از بلوک‌های دیکودر ترنسفورمری و یک سری بلوک بلوک دیکودر رترو ساخته شده. این معماری دیکودر رترو هم یه بخش اضافه به نام chunked cross-attention داره. مدل را در تسک‌هایی مثل تسک مدل زبانی و تسک پرسش و پاسخ و … هم امتحان کردند و نتایجش را در مقاله ببینید.

تصاویری از خلاصه معماری و نحوه عملکرد مدل رو هم می‌تونید در ضمیمه مشاهده کنید.

لینک مقاله:
https://arxiv.org/abs/2112.04426

لینک رشته توئیت خلاصه مقاله:
https://threadreaderapp.com/thread/1474702607444815873.html

#read
#paper

@nlp_stuff
کورس CS224U: فهم مدل زبانی

کورس Natural Language Understanding دانشگاه استنفورد حالا روی یوتیوبه. یه نگاهی به لیست ویدیوهاش بندازید متوجه میشید چه کورس خوف و خفنیه. از مباحث پایه ترنسفورمرها مثل برت و رابرتا تا بازیابی اطلاعات برپایه شبکه عصبی را توی لیستش می‌تونید پیدا کنید. ویدیوها رو هم با زمان کم درست کرده که راحت ببینید کدها رو ههم روی صفحه کورس به اشتراک گذاشته.

لینک صفحه کورس:
https://web.stanford.edu/class/cs224u/

لینک یوتیوب کورس:
https://www.youtube.com/playlist?list=PLoROMvodv4rPt5D0zs3YhbWSZA8Q_DyiJ


پ.ن. با تشکر از آقای صدرا صبوری که این کورس رو بهمون فرستادند که در کانال قرار بدیم. شما هم مطلب مفیدی بود بفرستید.

#coach
#course


@nlp_stuff