ورکشاپ یادگیری گراف استنفورد
ورکشاپ گراف دانشگاه استنفورد (آزمایشگاه آقای لسکوکاینا) دو هفته پیش برگزار شد و افراد خوف و خفن زیادی در این زمینهها اومدند و راجع به مسائل مختلف گرافی در صنعت و آکادمیک صحبت کردند.
اسلایدها و ویدیوهاشون هم طبق معمول با سخاوت به اشتراک گذاشتند.
بحثهای ترکیبی خیلی جذابی مثل کاربردهای گراف در پردازش زبان طبیعی، ویژن و تشخیص fraud و نفوذ شبکه و … ارائه شده.
کتابخونههایی مثل PyG و GraphGym هم توش معرفی شدند.
خلاصه یه روزتون رو کامل میسازه و کلی چیز یاد میگیرید.
پ.ن. اگر کلا نمیدونید داستان یادگیری گراف چیه، این پست [https://t.iss.one/nlp_stuff/163] و این پست [https://t.iss.one/nlp_stuff/223] رو ببینید.
لینک صفحهی ورکشاپ:
https://snap.stanford.edu/graphlearning-workshop/
لینک یوتیوب ورکشاپ:
https://youtu.be/NKZdqCi5fVE
#link
#conf
@nlp_stuff
ورکشاپ گراف دانشگاه استنفورد (آزمایشگاه آقای لسکوکاینا) دو هفته پیش برگزار شد و افراد خوف و خفن زیادی در این زمینهها اومدند و راجع به مسائل مختلف گرافی در صنعت و آکادمیک صحبت کردند.
اسلایدها و ویدیوهاشون هم طبق معمول با سخاوت به اشتراک گذاشتند.
بحثهای ترکیبی خیلی جذابی مثل کاربردهای گراف در پردازش زبان طبیعی، ویژن و تشخیص fraud و نفوذ شبکه و … ارائه شده.
کتابخونههایی مثل PyG و GraphGym هم توش معرفی شدند.
خلاصه یه روزتون رو کامل میسازه و کلی چیز یاد میگیرید.
پ.ن. اگر کلا نمیدونید داستان یادگیری گراف چیه، این پست [https://t.iss.one/nlp_stuff/163] و این پست [https://t.iss.one/nlp_stuff/223] رو ببینید.
لینک صفحهی ورکشاپ:
https://snap.stanford.edu/graphlearning-workshop/
لینک یوتیوب ورکشاپ:
https://youtu.be/NKZdqCi5fVE
#link
#conf
@nlp_stuff
راه جنرالیزیشن از اورفیت میگذرد
معمولا رسم بر این بوده که هر وقت مدل به حالت overfit میرسه آموزشدادنش متوقف بشه و دیگه امیدی به اصلاح مدل نمیره. اما مقالهای اومده و نشون داده که در صورت ادامه به آموزش مدل، خیلی خیلی گام بعدتر از اورفیت هم همچنان میتونه اتفاق جالبی که به عنوان grokking نامگذاری شده، بیافته. توضیح این مقاله رو میشه در دو بخش تسک تعریف شده و پدیدهی رخداده در فرآیند آموزش پی گرفت.
در قسمت تعریف تسک، این مقاله یک تسک تقریبا نمادی (symbolic) رو درست کردهاند. به این صورت که تابعی دلخواه از دو سیمبل ورودی که هر کدوم میتونن مقادیر نمادی a و b و .. را بپذیرند را در نظر گرفته اند. مقدار این تابع برای تمامی مقادیر ممکن ورودی محاسبه میشه (جدول پیوست شده رو میتونید نگاه کنید) و تعدادی از خانههای این جدول خالی میشوند و باقی به عنوان داده آموزشی به مدل داده میشود. حال مدل بایستی با آموزش روی دادههای داده شده، جاهای خالی جدول را پر کند.
اما نکته اصلی مقاله، در فرآیند آموزش آن قرار دارد. پس از تعدادی گام آموزش، مدل بر روی دادگان آموزشی اورفیت میکند در حالی که دقت آن بر روی دادههای validation تقریبا صفر است. اما با ادامه دادن آموزش حتی پس از اورفیت، پس از تعداد خیلی خیلی زیادی گام آموزشی، در نهایت مدل به یکباره و سرعت از اورفیت خارج میشود و دقت آن بر روی دادههای validation به ۹۹ درصد میرسد که این پدیده grokking نامگذاری شده است.
نکته جالب این ماجرا در این جاست که داشتن داده کم ولی ادامه دادن آموزش پس از اورفیت میتواند منجر به مدلی بهتر از مدلی با تعداد داده بیشتر شود. البته که مقیاس تعداد گامهای لازم بسیار زیاد است و مساله از نظر عملی قابل اشکال است.
در صورت علاقهمندی بیشتر میتواند یوتیوب توضیحات کیلچر درباره این مقاله را ببینید:
https://youtu.be/dND-7llwrpw
لینک مقاله:
https://mathai-iclr.github.io/papers/papers/MATHAI_29_paper.pdf
#read
#paper
#watch
@nlp_stuff
معمولا رسم بر این بوده که هر وقت مدل به حالت overfit میرسه آموزشدادنش متوقف بشه و دیگه امیدی به اصلاح مدل نمیره. اما مقالهای اومده و نشون داده که در صورت ادامه به آموزش مدل، خیلی خیلی گام بعدتر از اورفیت هم همچنان میتونه اتفاق جالبی که به عنوان grokking نامگذاری شده، بیافته. توضیح این مقاله رو میشه در دو بخش تسک تعریف شده و پدیدهی رخداده در فرآیند آموزش پی گرفت.
در قسمت تعریف تسک، این مقاله یک تسک تقریبا نمادی (symbolic) رو درست کردهاند. به این صورت که تابعی دلخواه از دو سیمبل ورودی که هر کدوم میتونن مقادیر نمادی a و b و .. را بپذیرند را در نظر گرفته اند. مقدار این تابع برای تمامی مقادیر ممکن ورودی محاسبه میشه (جدول پیوست شده رو میتونید نگاه کنید) و تعدادی از خانههای این جدول خالی میشوند و باقی به عنوان داده آموزشی به مدل داده میشود. حال مدل بایستی با آموزش روی دادههای داده شده، جاهای خالی جدول را پر کند.
اما نکته اصلی مقاله، در فرآیند آموزش آن قرار دارد. پس از تعدادی گام آموزش، مدل بر روی دادگان آموزشی اورفیت میکند در حالی که دقت آن بر روی دادههای validation تقریبا صفر است. اما با ادامه دادن آموزش حتی پس از اورفیت، پس از تعداد خیلی خیلی زیادی گام آموزشی، در نهایت مدل به یکباره و سرعت از اورفیت خارج میشود و دقت آن بر روی دادههای validation به ۹۹ درصد میرسد که این پدیده grokking نامگذاری شده است.
نکته جالب این ماجرا در این جاست که داشتن داده کم ولی ادامه دادن آموزش پس از اورفیت میتواند منجر به مدلی بهتر از مدلی با تعداد داده بیشتر شود. البته که مقیاس تعداد گامهای لازم بسیار زیاد است و مساله از نظر عملی قابل اشکال است.
در صورت علاقهمندی بیشتر میتواند یوتیوب توضیحات کیلچر درباره این مقاله را ببینید:
https://youtu.be/dND-7llwrpw
لینک مقاله:
https://mathai-iclr.github.io/papers/papers/MATHAI_29_paper.pdf
#read
#paper
#watch
@nlp_stuff
Telegram
stuff
Transfer_learning_in_nlp_by_Huggingface_Mahdi_Samiei_WSS_2020.mp4
296.8 MB
ویدئوی ورکشاپ انتقال یادگیری با هاگینگفیس
این فایل ویدئوی ورکشاپ مهدیمون در کنفرانس WSS2020 با موضوع «یادگیری انتقالی در پردازش زبان طبیعی با استفاده از کتابخانهی هاگینگ فیس» است. ابتدا مباحث تئوری رو توضیح میده و بعد هم با استفاده از کتابخونههای پایتورچ و هاگینگفیس کد میزنه.
متاسفانه علی رغم قولهایی که داده بودند، با ۷ ماه فاصله ویدیو رو منتشر کردند و این باکیفیتترین ویدیوئیه که به دستمون رسیده.
پ.ن. این پست رو دست به دست کنید که افراد بیشتری ببینند. انشاءالله به زودی از این ورکشاپها خودمون بیشتر و بهتر برگزار میکنیم.
لینک آپارات ویدئو:
https://aparat.com/v/4Jivq
لینک اسلایدها و نوتبوکها (استار فراموش نشه):
https://github.com/mmsamiei/huggingface-workshop
#coach
#watch
#overfit
@nlp_stuff
این فایل ویدئوی ورکشاپ مهدیمون در کنفرانس WSS2020 با موضوع «یادگیری انتقالی در پردازش زبان طبیعی با استفاده از کتابخانهی هاگینگ فیس» است. ابتدا مباحث تئوری رو توضیح میده و بعد هم با استفاده از کتابخونههای پایتورچ و هاگینگفیس کد میزنه.
متاسفانه علی رغم قولهایی که داده بودند، با ۷ ماه فاصله ویدیو رو منتشر کردند و این باکیفیتترین ویدیوئیه که به دستمون رسیده.
پ.ن. این پست رو دست به دست کنید که افراد بیشتری ببینند. انشاءالله به زودی از این ورکشاپها خودمون بیشتر و بهتر برگزار میکنیم.
لینک آپارات ویدئو:
https://aparat.com/v/4Jivq
لینک اسلایدها و نوتبوکها (استار فراموش نشه):
https://github.com/mmsamiei/huggingface-workshop
#coach
#watch
#overfit
@nlp_stuff
مقاله جامع data augmentation در پردازش زبان طبیعی
این مقالهی survey در سیواندیصفحه، دل و رودهی مبحث data augmentation رو ریخته روی داریه.
اول اومده روشهای data augmentation در پردازش زبان رو به سه دستهی مدلهای برپایهی Paraphrasing و Noising و Sampling تقسیمبندی کرده و روشهای ارائهشده در هر دسته رو خیلی زیبا و نیکو آورده و با شکل و مثال توضیح داده و از جهات مختلف اونا رو مقایسه کرده. بعد هم اومده اینا رو از منظرهای مختلف شکافته؛ مثلا گفته هر روشی چه هایپرپاارامترهای موثری داره یا هر یک از روشها چه کاربردهایی داره.
و یه حرکت تمیز دیگهای زده و تایملاین مقالات این زمینه رو درست کرده تا بدونید به چه ترتیبی باید بخونید.
خلاصه که زبونبستهها هر چه در توان داشتند مایه گذاشتند و یه مقاله خیلی کامل درست کردند؛ پس بخونید و لذت ببرید.
لینک مقاله:
https://arxiv.org/abs/2110.01852
پ.ن.۱. پنج تا تصاویر ضمیمه شده. ورق بزنید. اگر همه رو نمیبینید، اینجا قرار داده شدند.
پ.ن.۲. اگر کلا نمیدونید داستان چیه، این پست [https://t.iss.one/nlp_stuff/71] رو بخونید.
#read
#paper
@nlp_stuff
این مقالهی survey در سیواندیصفحه، دل و رودهی مبحث data augmentation رو ریخته روی داریه.
اول اومده روشهای data augmentation در پردازش زبان رو به سه دستهی مدلهای برپایهی Paraphrasing و Noising و Sampling تقسیمبندی کرده و روشهای ارائهشده در هر دسته رو خیلی زیبا و نیکو آورده و با شکل و مثال توضیح داده و از جهات مختلف اونا رو مقایسه کرده. بعد هم اومده اینا رو از منظرهای مختلف شکافته؛ مثلا گفته هر روشی چه هایپرپاارامترهای موثری داره یا هر یک از روشها چه کاربردهایی داره.
و یه حرکت تمیز دیگهای زده و تایملاین مقالات این زمینه رو درست کرده تا بدونید به چه ترتیبی باید بخونید.
خلاصه که زبونبستهها هر چه در توان داشتند مایه گذاشتند و یه مقاله خیلی کامل درست کردند؛ پس بخونید و لذت ببرید.
لینک مقاله:
https://arxiv.org/abs/2110.01852
پ.ن.۱. پنج تا تصاویر ضمیمه شده. ورق بزنید. اگر همه رو نمیبینید، اینجا قرار داده شدند.
پ.ن.۲. اگر کلا نمیدونید داستان چیه، این پست [https://t.iss.one/nlp_stuff/71] رو بخونید.
#read
#paper
@nlp_stuff
سرو مدلهای تورچی با TorchServe
پایتورچ هم مثل تنسرفلو بالاخره کتابخونه سروینگش رو ارائه کرده. معادلش tfserve برای تنسرفلو میشه.
کاری که TorchServe انجام میده اینه که مدل شما رو به صورت یه http api تحویل میده. یعنی شما مدلتون رو آماده کنید و این براتون بالا میاره که راحت مثلا backendتون بهش درخواست بده و اینا از هم جدا باشند.
یه ویدیوی آموزشی هم دادند که مراحلش را توضیح میده. برای چند تا تسک مثل image classification کارهای سرو مدل رو خودش انجام میده و برای بقیه مدلها هم کافیه چهار تابع از یه کلاس رو پیاده کنید تا مثلا برای مدلهای هاگینگفیس هم بتونید راحت سرو کنید.
برای استفاده در kubeflow و mlflow یکپارچهاش کردند و مثالهای متنوعی واسه کتابخونه ترنسفورمرز هاگینگفیس و MMF و .. هم درست کردند که بهره ببرید.
لینک ویدیوی توضیح و دمو (حتما لینکهای توضیحات زیرش رو هم ببیینید):
https://www.youtube.com/watch?v=XlO7iQMV3Ik
پ.ن. پیش از این راجع به tfx در این پست [https://t.iss.one/nlp_stuff/157] صحبت کرده بودیم.
#tool
#watch
@nlp_stuff
پایتورچ هم مثل تنسرفلو بالاخره کتابخونه سروینگش رو ارائه کرده. معادلش tfserve برای تنسرفلو میشه.
کاری که TorchServe انجام میده اینه که مدل شما رو به صورت یه http api تحویل میده. یعنی شما مدلتون رو آماده کنید و این براتون بالا میاره که راحت مثلا backendتون بهش درخواست بده و اینا از هم جدا باشند.
یه ویدیوی آموزشی هم دادند که مراحلش را توضیح میده. برای چند تا تسک مثل image classification کارهای سرو مدل رو خودش انجام میده و برای بقیه مدلها هم کافیه چهار تابع از یه کلاس رو پیاده کنید تا مثلا برای مدلهای هاگینگفیس هم بتونید راحت سرو کنید.
برای استفاده در kubeflow و mlflow یکپارچهاش کردند و مثالهای متنوعی واسه کتابخونه ترنسفورمرز هاگینگفیس و MMF و .. هم درست کردند که بهره ببرید.
لینک ویدیوی توضیح و دمو (حتما لینکهای توضیحات زیرش رو هم ببیینید):
https://www.youtube.com/watch?v=XlO7iQMV3Ik
پ.ن. پیش از این راجع به tfx در این پست [https://t.iss.one/nlp_stuff/157] صحبت کرده بودیم.
#tool
#watch
@nlp_stuff
YouTube
How to Serve PyTorch Models with TorchServe
Hamid Shojanazeri is a Partner Engineer at PyTorch, here to demonstrate the basics of using TorchServe. As the preferred model serving solution for PyTorch, TorchServe allows you to expose a web API for your model that may be accessed directly or via your…
اتحاد کانولووشن و ترنسفورمر برای بازشناسی گفتار
اگه اهل بازشناسی گفتار باشید باید حتما اسم conformer به گوشتون خورده باشه. این معماری که توسط گوگل و حدود یک سال پیش معرفی شد در زمان خودش پرچمدار بود و مرزهای دانش رو جابهجا کرد. ایدهاش هم خیلی ساده و زیبا بود. لایههای کانولووشنی خیلی خوب فیچرهای لوکال رو استخراج میکنند و از طرفی بلوکهای ترنسفورمر هم خیلی خوب کانتکست و فیچرها رو به صورت گلوبال استخراج میکنند. خب عقل سلیم چی میگه؟ آقای Gulati و یه مینیبوس از همکاراش سریعا به این نتیجه رسیدند که چرا توی کاربرد صوت که هم به فیچرهای لوکال و هم به کانتکست گلوبال نیاز داریم نیایم و این دوتا رو بریزیم روی هم؟ خلاصه که باز یه خارش جدید در حوزه دانش منجر به ایجاد یه معماری خوب و بهینه برای بازشناسی گفتار شد.
در واقع conformer یه بلوک انکودر هست که میتونه خیلی خوب اصوات رو برای مقاصد بازشناسی گفتار انکود کنه. هر بلاکش شامل چهار ماژول اصلی هست که به ترتیب عبارتند از: یه لایه feed forward، یه لایه multi-head self attention، یه لایه کانوولوشن و دوباره یه لایه feed forward. وجود لایه multi-head self-attention و لایه کانولووشنی باعث میشه که مدل همزمان بتونه هم فیچرهای لوکال رو خوب استخراج کنه (همونطور که میدونید وقتی شما حرف میزنید دهانتون پیوسته تکون میخوره و فرکانس تولیدی حروف به نرمی درون همدیگه ادغام میشند و تغییرات فرکانس به نرمی صورت میگیره. درست مثل تصاویر که در یک قسمت عکس با احتمال بالا، مقادیر RGB به هم نزدیک هستند مگر اینکه یه آبجکت جدید وجود داشته باشه و همین افزونگی میتونه فیچرهای خوبی به ما بده) و هم اینکه با استفاده از لایه attention کانتکست و فیچرهای گلوبال رو هم خوب بفهمه. نتیجه اینکه این مدل در سه سایز عرضه شده و در سایز متوسطش که تنها ۳۰ میلیون پارامتر داره تونسته مدل SOTA قبلی رو که ۱۱۸ میلیون پارامتر داره شکست بده و در حالتی که ۱۱۸ میلیون پارامتر داشته به WER بینظیر ۱.۹ درصد بر روی دادگان LibriSpeech رسیده. حتما شاید براتون سوال شده باشه که آیا همه این ماژولهای conformer لازم هست؟ برای این کار هم مطالعه Ablation انجام شده (در این مطالعه هر قسمت رو از مدل حذف میکنند تا ببینند آیا نتایج ثابت میمونه یا بدتر میشه درصورتی که بدتر بشه تاثیرگذار بودن اون قسمت اثبات میشه. توصیه میشه در کارهاتون همیشه ablation study داشته باشید تا جایی نخوابید که آب زیرتون بره و مثلا کلی پارامتر اضافی تولید کرده باشید!). معماری این مدل رو در تصاویر میتونید ببینید. توصیه میکنیم این مقاله کوتاه رو حتما مطالعه کنید. همچنین این معماری در ابزار OpenSpeech هم وجود داره که میتونید به راحتی ازش استفاده کنید.
لینک مقاله:
https://arxiv.org/abs/2005.08100
لینک OpenSpeech:
https://github.com/openspeech-team/openspeech
#read
#paper
@nlp_stuff
اگه اهل بازشناسی گفتار باشید باید حتما اسم conformer به گوشتون خورده باشه. این معماری که توسط گوگل و حدود یک سال پیش معرفی شد در زمان خودش پرچمدار بود و مرزهای دانش رو جابهجا کرد. ایدهاش هم خیلی ساده و زیبا بود. لایههای کانولووشنی خیلی خوب فیچرهای لوکال رو استخراج میکنند و از طرفی بلوکهای ترنسفورمر هم خیلی خوب کانتکست و فیچرها رو به صورت گلوبال استخراج میکنند. خب عقل سلیم چی میگه؟ آقای Gulati و یه مینیبوس از همکاراش سریعا به این نتیجه رسیدند که چرا توی کاربرد صوت که هم به فیچرهای لوکال و هم به کانتکست گلوبال نیاز داریم نیایم و این دوتا رو بریزیم روی هم؟ خلاصه که باز یه خارش جدید در حوزه دانش منجر به ایجاد یه معماری خوب و بهینه برای بازشناسی گفتار شد.
در واقع conformer یه بلوک انکودر هست که میتونه خیلی خوب اصوات رو برای مقاصد بازشناسی گفتار انکود کنه. هر بلاکش شامل چهار ماژول اصلی هست که به ترتیب عبارتند از: یه لایه feed forward، یه لایه multi-head self attention، یه لایه کانوولوشن و دوباره یه لایه feed forward. وجود لایه multi-head self-attention و لایه کانولووشنی باعث میشه که مدل همزمان بتونه هم فیچرهای لوکال رو خوب استخراج کنه (همونطور که میدونید وقتی شما حرف میزنید دهانتون پیوسته تکون میخوره و فرکانس تولیدی حروف به نرمی درون همدیگه ادغام میشند و تغییرات فرکانس به نرمی صورت میگیره. درست مثل تصاویر که در یک قسمت عکس با احتمال بالا، مقادیر RGB به هم نزدیک هستند مگر اینکه یه آبجکت جدید وجود داشته باشه و همین افزونگی میتونه فیچرهای خوبی به ما بده) و هم اینکه با استفاده از لایه attention کانتکست و فیچرهای گلوبال رو هم خوب بفهمه. نتیجه اینکه این مدل در سه سایز عرضه شده و در سایز متوسطش که تنها ۳۰ میلیون پارامتر داره تونسته مدل SOTA قبلی رو که ۱۱۸ میلیون پارامتر داره شکست بده و در حالتی که ۱۱۸ میلیون پارامتر داشته به WER بینظیر ۱.۹ درصد بر روی دادگان LibriSpeech رسیده. حتما شاید براتون سوال شده باشه که آیا همه این ماژولهای conformer لازم هست؟ برای این کار هم مطالعه Ablation انجام شده (در این مطالعه هر قسمت رو از مدل حذف میکنند تا ببینند آیا نتایج ثابت میمونه یا بدتر میشه درصورتی که بدتر بشه تاثیرگذار بودن اون قسمت اثبات میشه. توصیه میشه در کارهاتون همیشه ablation study داشته باشید تا جایی نخوابید که آب زیرتون بره و مثلا کلی پارامتر اضافی تولید کرده باشید!). معماری این مدل رو در تصاویر میتونید ببینید. توصیه میکنیم این مقاله کوتاه رو حتما مطالعه کنید. همچنین این معماری در ابزار OpenSpeech هم وجود داره که میتونید به راحتی ازش استفاده کنید.
لینک مقاله:
https://arxiv.org/abs/2005.08100
لینک OpenSpeech:
https://github.com/openspeech-team/openspeech
#read
#paper
@nlp_stuff
Telegram
stuff
مدل MEND؛ ادیت سریع، فوری و انقلابی مدلهای زبانی
همانطور که مستحضرید، امروزه فرمان هوش مصنوعی در دست مدلهای از پیش آموزش دیده بزرگ نظیر GPTهاست و این مدلها تختهگاز در هر حوزهای مشغول تاختنند و تقریبا پرچمدار تمامی وظایفند. این مدلها دانش غنی گستردهای رو در خودشون دارند و حتی با عملکرد فوق انسانی خودشون باعث شگفتی میشوند. اما این مدلها هم در برابر گذر زمان بی عیب نیستند. GPT3 رو در نظر بگیرید. این مدل به هنگامی بر روی دادگان آموزشیاش تعلیم دیده که ترامپ هنوز رییس جمهور بوده. حال اگر همین الان از این مدل بپرسید که چه کسی رییس جمهور آمریکاست با پاسخ ترامپ ناامیدتون میکنه. چاره چیه؟
بدیهیترین چاره که به ذهن میرسه میتونه این باشه که این مدلها رو هر از گاهی روی دادگان جدید فاین تیون کنیم. اما در عمل نشون داده شده که این کار باعث اورفیت مدل بر روی این اندک (در قیاس با دادههای اولیه) دادههای جدید میشه و عملکرد کلی مدل هم آسیب میبینه. از طرفی اگر بخوایم این دادهها رو هم به دادههای قدیمی الحاق کنیم و مدل رو هر بار از اول روی همه این دادهها آموزش بدیم بایستی دارای عمر نوح باشیم که نشدنیه. برای این درد ادیت کردن مدل، تعدادی روش در سالهای گذشته پیشنهاد شدهاند. گیر اصلی این روشها عدم مقیاس پذیریشون به مدلهای بزرگی نظیر GPT است. حالا خانم چلسی فین که از کله گندههای متالرنینگ هستند اومدند و روشی تحت عنوان mend رو پیشنهاد دادند که حتی در مقیاس GPT هم قابل انجامه. به علاوه ایشون گفتند که این مدل بایستی سه خاصیت reliability و locality و generality رو ارضا کنه، به بیان سادهتر در مورد سوالهای جدید درست جواب بده، در مورد سوالهایی که ربطی به این سوالات جدید ندارند پاسخش عوض نشه و همچنین روی سوالات جدید بتونه خاصیت generalization داشته باشه.
خانم فین برای حل این مساله پیشنهاد دادن که یک مدل عصبی به نام ادیتور داشته باشیم که وظیفه آموزش و تغییر دادن مدل پایه (همون GPTعه) رو داشته باشه. بر این اساس برای هر لایه L ام از وزنهای شبکه پایه یک مدل ادیتور g_l داریم. فرض کنید حالا متنهای جدید مربوط به این که بایدن رییس جمهور آمریکاست رو به مدل پایه میدهیم و عمل forward و backward را روی مدل انجام میدهیم. در حالت عادی بهینهسازی این گونه عمل میکردیم که در خلاف جهت گرادیان خام برای بهینهسازی شبکه پایه حرکت کنیم ولی خب این کار موجب همان اشکالاتی میشه که تو قسمت قبل صحبت کردیم. وظیفه مدل g_l این هست که با ورودی گرفتن گرادیانهای خام نسبت به وزنهای لایه Lام مدل پایه، یک جهتی رو برای بهینهسازی این وزنهای لایه Lام خروجی بده که سه خواسته ما در قسمت قبل رو برآورده کنه. در طی فرآیند آموزش این پکیج هم هر دور گرادیان تابع loss مدل پایه به ادیتور انتقال داده میشه و این شکلی ادیتور آموزش میبینه. (شهودش مثل اینه که چشمای دوستتون رو ببندید و ازش بخواید به سمت هدف تیراندازی کنه و در طول مسابقه با نتایج تیراندازیش یاد بگیرید چطوری به دوستتون راهنمایی برسونید و بهش بگید چه قدر مثلا به چه سمتی مایل بشه). حالا از طرفی چون که ماتریس وزنهای هر لایه L از مدل پایه به قدر کافی بزرگ هست، فین اینجا هم طرحی زده و این ماتریس با ابعاد d*d رو با تجزیه به فرم ضرب خارجی به رنک ۱ و نهایتا یک بردار با سایز d تبدیل کرده که همین باعث شده کلی از بار محاسباتی و زمانی قضیه خلاصی پیدا کنه (این تکه ریزجزییات زیادی داره اگه مشتاق هستید میتونید به مقاله مراجعه کنید)
اما بعد از توضیح معماری نوبت به ریزهکاریهای آموزش مدله. هر نمونه آموزشی که برای آموزش ادیتور بکار میره رو میشه به شکل یک تاپل ۵ تایی دید. چهار تا از این پنجتا، دو جفت x,y هستند که مربوط به سوالات جدید (نظیر رییس جمهور آمریکا کیه: بایدن) و (نظیر پرزیدنت ایالات متحده؟: بایدن) هستند که برای ارضای reliability و generality هستند. اسم این دو تا رو edit example و equivalance example میگذاریم. پنجمین عنصر هم یک سوال رندوم از مجموعه سوالاتیه که مدل پایه روی اونها پیش آموزش دیده (نظیر رییس جمهور روسیه؟: پوتین) که با توجه به این که حجم این سوالات خیلی بیشتر از سوالات جدیده احتمال بی ربط بودن این سوال رندوم با سوالات جدید تقریبا یکه. حالا در فرآیند آموزش، اول edit example به مدل پایه داده میشه و گرادیان خام تولید میشه. در گام بعدی ادیتور گرادیان خام رو میگیره و روی مدل پایه یک آپدیت انجام میده و بعد equivalance example به مدل پایه داده میشه و بر حسب loss روی این نمونه ادیتور آپدیت میشه! یک لاس هم برای یکی بودن پیشبینی مدل قبل و بعد از ادیت برای دادههای رندوم اضافه میشه.
تصویرهایی برای فهم مدل و دیدن نتایج هم پیوست شدهاند.
لینک مقاله:
https://arxiv.org/abs/2110.11309
#paper
#read
@nlp_stuff
همانطور که مستحضرید، امروزه فرمان هوش مصنوعی در دست مدلهای از پیش آموزش دیده بزرگ نظیر GPTهاست و این مدلها تختهگاز در هر حوزهای مشغول تاختنند و تقریبا پرچمدار تمامی وظایفند. این مدلها دانش غنی گستردهای رو در خودشون دارند و حتی با عملکرد فوق انسانی خودشون باعث شگفتی میشوند. اما این مدلها هم در برابر گذر زمان بی عیب نیستند. GPT3 رو در نظر بگیرید. این مدل به هنگامی بر روی دادگان آموزشیاش تعلیم دیده که ترامپ هنوز رییس جمهور بوده. حال اگر همین الان از این مدل بپرسید که چه کسی رییس جمهور آمریکاست با پاسخ ترامپ ناامیدتون میکنه. چاره چیه؟
بدیهیترین چاره که به ذهن میرسه میتونه این باشه که این مدلها رو هر از گاهی روی دادگان جدید فاین تیون کنیم. اما در عمل نشون داده شده که این کار باعث اورفیت مدل بر روی این اندک (در قیاس با دادههای اولیه) دادههای جدید میشه و عملکرد کلی مدل هم آسیب میبینه. از طرفی اگر بخوایم این دادهها رو هم به دادههای قدیمی الحاق کنیم و مدل رو هر بار از اول روی همه این دادهها آموزش بدیم بایستی دارای عمر نوح باشیم که نشدنیه. برای این درد ادیت کردن مدل، تعدادی روش در سالهای گذشته پیشنهاد شدهاند. گیر اصلی این روشها عدم مقیاس پذیریشون به مدلهای بزرگی نظیر GPT است. حالا خانم چلسی فین که از کله گندههای متالرنینگ هستند اومدند و روشی تحت عنوان mend رو پیشنهاد دادند که حتی در مقیاس GPT هم قابل انجامه. به علاوه ایشون گفتند که این مدل بایستی سه خاصیت reliability و locality و generality رو ارضا کنه، به بیان سادهتر در مورد سوالهای جدید درست جواب بده، در مورد سوالهایی که ربطی به این سوالات جدید ندارند پاسخش عوض نشه و همچنین روی سوالات جدید بتونه خاصیت generalization داشته باشه.
خانم فین برای حل این مساله پیشنهاد دادن که یک مدل عصبی به نام ادیتور داشته باشیم که وظیفه آموزش و تغییر دادن مدل پایه (همون GPTعه) رو داشته باشه. بر این اساس برای هر لایه L ام از وزنهای شبکه پایه یک مدل ادیتور g_l داریم. فرض کنید حالا متنهای جدید مربوط به این که بایدن رییس جمهور آمریکاست رو به مدل پایه میدهیم و عمل forward و backward را روی مدل انجام میدهیم. در حالت عادی بهینهسازی این گونه عمل میکردیم که در خلاف جهت گرادیان خام برای بهینهسازی شبکه پایه حرکت کنیم ولی خب این کار موجب همان اشکالاتی میشه که تو قسمت قبل صحبت کردیم. وظیفه مدل g_l این هست که با ورودی گرفتن گرادیانهای خام نسبت به وزنهای لایه Lام مدل پایه، یک جهتی رو برای بهینهسازی این وزنهای لایه Lام خروجی بده که سه خواسته ما در قسمت قبل رو برآورده کنه. در طی فرآیند آموزش این پکیج هم هر دور گرادیان تابع loss مدل پایه به ادیتور انتقال داده میشه و این شکلی ادیتور آموزش میبینه. (شهودش مثل اینه که چشمای دوستتون رو ببندید و ازش بخواید به سمت هدف تیراندازی کنه و در طول مسابقه با نتایج تیراندازیش یاد بگیرید چطوری به دوستتون راهنمایی برسونید و بهش بگید چه قدر مثلا به چه سمتی مایل بشه). حالا از طرفی چون که ماتریس وزنهای هر لایه L از مدل پایه به قدر کافی بزرگ هست، فین اینجا هم طرحی زده و این ماتریس با ابعاد d*d رو با تجزیه به فرم ضرب خارجی به رنک ۱ و نهایتا یک بردار با سایز d تبدیل کرده که همین باعث شده کلی از بار محاسباتی و زمانی قضیه خلاصی پیدا کنه (این تکه ریزجزییات زیادی داره اگه مشتاق هستید میتونید به مقاله مراجعه کنید)
اما بعد از توضیح معماری نوبت به ریزهکاریهای آموزش مدله. هر نمونه آموزشی که برای آموزش ادیتور بکار میره رو میشه به شکل یک تاپل ۵ تایی دید. چهار تا از این پنجتا، دو جفت x,y هستند که مربوط به سوالات جدید (نظیر رییس جمهور آمریکا کیه: بایدن) و (نظیر پرزیدنت ایالات متحده؟: بایدن) هستند که برای ارضای reliability و generality هستند. اسم این دو تا رو edit example و equivalance example میگذاریم. پنجمین عنصر هم یک سوال رندوم از مجموعه سوالاتیه که مدل پایه روی اونها پیش آموزش دیده (نظیر رییس جمهور روسیه؟: پوتین) که با توجه به این که حجم این سوالات خیلی بیشتر از سوالات جدیده احتمال بی ربط بودن این سوال رندوم با سوالات جدید تقریبا یکه. حالا در فرآیند آموزش، اول edit example به مدل پایه داده میشه و گرادیان خام تولید میشه. در گام بعدی ادیتور گرادیان خام رو میگیره و روی مدل پایه یک آپدیت انجام میده و بعد equivalance example به مدل پایه داده میشه و بر حسب loss روی این نمونه ادیتور آپدیت میشه! یک لاس هم برای یکی بودن پیشبینی مدل قبل و بعد از ادیت برای دادههای رندوم اضافه میشه.
تصویرهایی برای فهم مدل و دیدن نتایج هم پیوست شدهاند.
لینک مقاله:
https://arxiv.org/abs/2110.11309
#paper
#read
@nlp_stuff
Telegram
stuff
مدل big bird برای زبان فارسی
معماری برت با تمامی خوبیهایی که دارد اما یک نقطه ضعف بزرگ دارد که حداکثر رشتههایی با طول ۵۱۲ توکن را میتواند پردازش کند. این محدودیت در واقع ناشی از مرتبه محاسباتی درجه دو مکانیزم توجه بین توکنهای دنباله است (اگر دنباله به طول d باشه، d^2 عمل اتنشن بایستی در داخل آن رخ دهد که خب سنگین است). برای همین بار محاسباتی، چه آموزش و چه تست کردن مدل بر روی دنبالههای بلند عملا ناممکن میشود. این در حالی است که بسیاری از تسکهای پردازش زبان نظیر خلاصهسازی، نیازمند پردازش دنبالههای بسیار طولانیتر از ۵۱۲ توکن هستند. در طی این چند سال اخیر چندین معماری و راهکار جهت حل نیازمندی پردازش دنبالههای بلند خلق و پیشنهاد شدهاند. یکی از این معماریهای پیشنهادی، معماری bigbird است که در آن هر توکن به جای توجه بر تمام توکنها، صرفا به سه مجموعه توکن توجه میکند: توکنهای در همسایگی خود، تعداد اندکی توکن گلوبال و تعدادی توکن رندوم. معماری bigbird با همین ابتکار میتواند دنبالههایی با طول حداکثر ۴۰۹۶ توکن را به خوبی پردازش کند و جزو طلایهداران بعضی وظایف نظیر خلاصه سازی و حتی بعضی مسائل bioای باشد.
حالا آقای ایوبی آمدهاند و اولین مدل فارسی بر پایه bigbird را آموزش دادهاند و در اختیار عموم قرار دادهاند تا راهکاری برای پردازش متون طولانی فارسی باشد. این مدل طبق اذعان ایشان بینقص نیست اما گام اول خوبی جهت تحلیل متنهای بلند در زبان فارسی میتواند باشد. طرز استفاده از این مدل در ریپوی آن آمده است.
لینک ریپو:
https://github.com/sajjjadayobi/ParsBigBird
پ.ن. ۱: میتوانید با استار دادن هم خستگی را از تن توسعهدهنده مدل خارج کنید و هم از تمرکز بر روی پردازش زبان فارسی حمایت کنید. دریغ نفرمایید.
پ.ن. ۲: ریپو یا کد یا مدل یا دیتاست بهدردبخوری داشتید، ندا بدید که بعد از بررسی در کانال قرار بدیم.
#irani
#tool
@nlp_stuff
معماری برت با تمامی خوبیهایی که دارد اما یک نقطه ضعف بزرگ دارد که حداکثر رشتههایی با طول ۵۱۲ توکن را میتواند پردازش کند. این محدودیت در واقع ناشی از مرتبه محاسباتی درجه دو مکانیزم توجه بین توکنهای دنباله است (اگر دنباله به طول d باشه، d^2 عمل اتنشن بایستی در داخل آن رخ دهد که خب سنگین است). برای همین بار محاسباتی، چه آموزش و چه تست کردن مدل بر روی دنبالههای بلند عملا ناممکن میشود. این در حالی است که بسیاری از تسکهای پردازش زبان نظیر خلاصهسازی، نیازمند پردازش دنبالههای بسیار طولانیتر از ۵۱۲ توکن هستند. در طی این چند سال اخیر چندین معماری و راهکار جهت حل نیازمندی پردازش دنبالههای بلند خلق و پیشنهاد شدهاند. یکی از این معماریهای پیشنهادی، معماری bigbird است که در آن هر توکن به جای توجه بر تمام توکنها، صرفا به سه مجموعه توکن توجه میکند: توکنهای در همسایگی خود، تعداد اندکی توکن گلوبال و تعدادی توکن رندوم. معماری bigbird با همین ابتکار میتواند دنبالههایی با طول حداکثر ۴۰۹۶ توکن را به خوبی پردازش کند و جزو طلایهداران بعضی وظایف نظیر خلاصه سازی و حتی بعضی مسائل bioای باشد.
حالا آقای ایوبی آمدهاند و اولین مدل فارسی بر پایه bigbird را آموزش دادهاند و در اختیار عموم قرار دادهاند تا راهکاری برای پردازش متون طولانی فارسی باشد. این مدل طبق اذعان ایشان بینقص نیست اما گام اول خوبی جهت تحلیل متنهای بلند در زبان فارسی میتواند باشد. طرز استفاده از این مدل در ریپوی آن آمده است.
لینک ریپو:
https://github.com/sajjjadayobi/ParsBigBird
پ.ن. ۱: میتوانید با استار دادن هم خستگی را از تن توسعهدهنده مدل خارج کنید و هم از تمرکز بر روی پردازش زبان فارسی حمایت کنید. دریغ نفرمایید.
پ.ن. ۲: ریپو یا کد یا مدل یا دیتاست بهدردبخوری داشتید، ندا بدید که بعد از بررسی در کانال قرار بدیم.
#irani
#tool
@nlp_stuff
GitHub
GitHub - sajjjadayobi/ParsBigBird: Persian Bert For Long-Range Sequences
Persian Bert For Long-Range Sequences. Contribute to sajjjadayobi/ParsBigBird development by creating an account on GitHub.
بهترینهای کنفرانس EMNLP2021
بهترین مقالههای (کوتاه، بلند و برجسته) کنفرانس EMNLP2021 انتخاب شدند. اینجا لینک مربوط به هر مقاله و خلاصهی سرپایی چندخطیشون رو آوردیم. ما کمکم سراغشون میریم ولی اگر شما هم هر کدوم رو خوندید و خلاصهی کاملتری نوشتید، بفرستید تا به اسم خودتون منتشرش میکنیم.
لینک اسامی و نویسندههای مقالات منتخب:
https://2021.emnlp.org/blog/2021-10-29-best-paper-awards
۱. بهترین مقالهی بلند
- نام مقاله: Visually Grounded Reasoning across Languages and Cultures
- خلاصه: یک روشی ارائه کردند تا دیتاست ترکیبی عکس و متن استایل ImageNet بشه ساخت اما برای زبانها و فرهنگهای مختلف و نه فقط طبق زبان و فرهنگ آمریکای شمالی و اروپای غربی. و یه دیتاست چندزبانه تصویر و متن به نام Multicultural Reasoning over Vision and Language (MaRVL) درست کردند که هر دونه از اعضای این دیتاست به شکل دو تصویر + یک متن توصیفی به زبانهای متنوع و مختلفی مثل اندونزیایی، چینی، ترکی و… است و برچسبش True/False است. نمونهای ازش در ضمیمه اومده. یه سری مدل هم به عنوان مدلهای پایه برای این تسک ارائه کردند.
- لینک مقاله:
https://arxiv.org/abs/2109.13238
۲. بهترین مقالهی کوتاه
- نام مقاله: CHoRa: Collecting Humor Reaction Labels from Millions of Social Media Users
- خلاصه: همونجوری که از اسمش مشخصه، یه روشی و چهارچوبی ارائه کردند تا شوخیهای ملت رو بتونند در ابعاد بزرگ از شبکههای اجتماعی بدون برچسبزنی دستی و با استفاده از عکسالعمل بقیهی کاربران (ایموجی و اینا) جمعآوری کنند. چون هر زبون و فرهنگی مدل شوخیهای خودشو داره، جمعآوری دیتا در ابعاد بزرگ سخته، پس تبعا و طبعا؛ تسکش هم سخت میشه. این مقاله یک دیتاست عظیم ۷۸۵هزارتایی حول موضوع کرونا ارائه کردند و تحلیلهایی هم از ساختار گرامری و معنایی و احساسی این پستها انجام دادند. تصویری از نمونه دادگان ضمیمه شده است.
- لینک ارائه مقاله:
https://underline.io/lecture/37879-choral-collecting-humor-reaction-labels-from-millions-of-social-media-users
۳. مقالههای برجسته
- نام مقاله: MindCraft: Theory of Mind Modeling for Situated Dialogue in Collaborative Tasks
- لینک مقاله:
https://arxiv.org/abs/2109.06275
- نام مقاله: SituatedQA: Incorporating Extra-Linguistic Contexts into QA
- خلاصه: سوالها ممکنه جوابشون در مکانها و زمانهای (context) مختلف متفاوت باشه. مثلا سوال چه واکسنهای کرونایی برای بزرگسالان تایید شده است؟ برای زمانها و و مکانهای مختلف متفاوت میشه. این مقاله همونطور که از اسمش پیداست، یه دیتاست به اسم SITUATEDQA تقدیم جامعه کردند که کنار سوال، یه کانتست زمان یا مکان هم چاشنی کار کردند که مدل باید در نظر بگیره. یه عکس از نمونهاش در ضمیمه گذاشتیم. مسیر جمعآوری و برچسبزنی داده رو هم آوردند.
- لینک مقاله:
https://arxiv.org/abs/2109.06157
- نام مقاله: When Attention Meets Fast Recurrence: Training Language Models with Reduced Compute
- خلاصه: در جریان هزینههای بالای محاسباتی آموزش مدلهای زبانی بزرگ هستید دیگه؟ این مقاله اومده مدل زبانی رو با یه سری یونیت بازگشتی ترکیب کرده و با ترنسفورمرهایی مثل Trans-XL و Longformer و Shortformer مقایسه کردند و در حالی که هزینهها را یک سوم تا یک دهم کرده، تونسته در بعضی تسکها بر مدلهای زبانی مذکور فائق بیاد.
- لینک مقاله:
https://arxiv.org/abs/2102.12459
- نام مقاله: Shortcutted Commonsense: Data Spuriousness in Deep Learning of Commonsense Reasoning
- لینک کد مقاله:
https://github.com/nlx-group/Shortcutted-Commonsense-Reasoning
۴. کتابخونهی dataset هاگینگفیس هم جایزهی بهترین مقالهی demo رو برده.
پ.ن. لطفا کانال را به بقیه هم معرفی کنید.
#read
#paper
#conf
@nlp_stuff
بهترین مقالههای (کوتاه، بلند و برجسته) کنفرانس EMNLP2021 انتخاب شدند. اینجا لینک مربوط به هر مقاله و خلاصهی سرپایی چندخطیشون رو آوردیم. ما کمکم سراغشون میریم ولی اگر شما هم هر کدوم رو خوندید و خلاصهی کاملتری نوشتید، بفرستید تا به اسم خودتون منتشرش میکنیم.
لینک اسامی و نویسندههای مقالات منتخب:
https://2021.emnlp.org/blog/2021-10-29-best-paper-awards
۱. بهترین مقالهی بلند
- نام مقاله: Visually Grounded Reasoning across Languages and Cultures
- خلاصه: یک روشی ارائه کردند تا دیتاست ترکیبی عکس و متن استایل ImageNet بشه ساخت اما برای زبانها و فرهنگهای مختلف و نه فقط طبق زبان و فرهنگ آمریکای شمالی و اروپای غربی. و یه دیتاست چندزبانه تصویر و متن به نام Multicultural Reasoning over Vision and Language (MaRVL) درست کردند که هر دونه از اعضای این دیتاست به شکل دو تصویر + یک متن توصیفی به زبانهای متنوع و مختلفی مثل اندونزیایی، چینی، ترکی و… است و برچسبش True/False است. نمونهای ازش در ضمیمه اومده. یه سری مدل هم به عنوان مدلهای پایه برای این تسک ارائه کردند.
- لینک مقاله:
https://arxiv.org/abs/2109.13238
۲. بهترین مقالهی کوتاه
- نام مقاله: CHoRa: Collecting Humor Reaction Labels from Millions of Social Media Users
- خلاصه: همونجوری که از اسمش مشخصه، یه روشی و چهارچوبی ارائه کردند تا شوخیهای ملت رو بتونند در ابعاد بزرگ از شبکههای اجتماعی بدون برچسبزنی دستی و با استفاده از عکسالعمل بقیهی کاربران (ایموجی و اینا) جمعآوری کنند. چون هر زبون و فرهنگی مدل شوخیهای خودشو داره، جمعآوری دیتا در ابعاد بزرگ سخته، پس تبعا و طبعا؛ تسکش هم سخت میشه. این مقاله یک دیتاست عظیم ۷۸۵هزارتایی حول موضوع کرونا ارائه کردند و تحلیلهایی هم از ساختار گرامری و معنایی و احساسی این پستها انجام دادند. تصویری از نمونه دادگان ضمیمه شده است.
- لینک ارائه مقاله:
https://underline.io/lecture/37879-choral-collecting-humor-reaction-labels-from-millions-of-social-media-users
۳. مقالههای برجسته
- نام مقاله: MindCraft: Theory of Mind Modeling for Situated Dialogue in Collaborative Tasks
- لینک مقاله:
https://arxiv.org/abs/2109.06275
- نام مقاله: SituatedQA: Incorporating Extra-Linguistic Contexts into QA
- خلاصه: سوالها ممکنه جوابشون در مکانها و زمانهای (context) مختلف متفاوت باشه. مثلا سوال چه واکسنهای کرونایی برای بزرگسالان تایید شده است؟ برای زمانها و و مکانهای مختلف متفاوت میشه. این مقاله همونطور که از اسمش پیداست، یه دیتاست به اسم SITUATEDQA تقدیم جامعه کردند که کنار سوال، یه کانتست زمان یا مکان هم چاشنی کار کردند که مدل باید در نظر بگیره. یه عکس از نمونهاش در ضمیمه گذاشتیم. مسیر جمعآوری و برچسبزنی داده رو هم آوردند.
- لینک مقاله:
https://arxiv.org/abs/2109.06157
- نام مقاله: When Attention Meets Fast Recurrence: Training Language Models with Reduced Compute
- خلاصه: در جریان هزینههای بالای محاسباتی آموزش مدلهای زبانی بزرگ هستید دیگه؟ این مقاله اومده مدل زبانی رو با یه سری یونیت بازگشتی ترکیب کرده و با ترنسفورمرهایی مثل Trans-XL و Longformer و Shortformer مقایسه کردند و در حالی که هزینهها را یک سوم تا یک دهم کرده، تونسته در بعضی تسکها بر مدلهای زبانی مذکور فائق بیاد.
- لینک مقاله:
https://arxiv.org/abs/2102.12459
- نام مقاله: Shortcutted Commonsense: Data Spuriousness in Deep Learning of Commonsense Reasoning
- لینک کد مقاله:
https://github.com/nlx-group/Shortcutted-Commonsense-Reasoning
۴. کتابخونهی dataset هاگینگفیس هم جایزهی بهترین مقالهی demo رو برده.
پ.ن. لطفا کانال را به بقیه هم معرفی کنید.
#read
#paper
#conf
@nlp_stuff
Telegram
stuff
کورس جدید CS224N استنفورد
ویدیوهای کورس NLP زمستون 2021 استنفورد روی یوتیوب آپلود شد. امسال خیلی بیشتر (تقریبا یک سوم کورس) روی اتنشن، ترنسفورمرها و تفسیر مدل تمرکز کردند. اگر میخواهید دیپ لرنینگ و پردازش زبان طبیعی یاد بگیرید، این کورس با یک تیر دو نشون برای شما میزنه. همین و بس!
لینک یوتیوب:
https://www.youtube.com/playlist?list=PLoROMvodv4rOSH4v6133s9LFPRHjEmbmJ
لینک درس:
https://web.stanford.edu/class/cs224n/
پ.ن. با این هشتگ coach که در پایین میبینید، میتونید کورسها، کتابها و توتوریالهای معرفیشده در کانال رو دریابید. البته اصولا نقش هشتگ همینه دیگه!
#coach
#course
#watch
@nlp_stuff
ویدیوهای کورس NLP زمستون 2021 استنفورد روی یوتیوب آپلود شد. امسال خیلی بیشتر (تقریبا یک سوم کورس) روی اتنشن، ترنسفورمرها و تفسیر مدل تمرکز کردند. اگر میخواهید دیپ لرنینگ و پردازش زبان طبیعی یاد بگیرید، این کورس با یک تیر دو نشون برای شما میزنه. همین و بس!
لینک یوتیوب:
https://www.youtube.com/playlist?list=PLoROMvodv4rOSH4v6133s9LFPRHjEmbmJ
لینک درس:
https://web.stanford.edu/class/cs224n/
پ.ن. با این هشتگ coach که در پایین میبینید، میتونید کورسها، کتابها و توتوریالهای معرفیشده در کانال رو دریابید. البته اصولا نقش هشتگ همینه دیگه!
#coach
#course
#watch
@nlp_stuff
ارائهای با موضوع «معیار هوشمندی»
مهدیمون فردا (چهارشنبه ۱۲ آبان) ساعت ۱۰ قراره راجع به معیار هوشمندی صحبت کنه. دید خیلی خوبی از وضعیت واقعگرایانهی حال و آینده هوش بهتون میده. از دست ندید و لطفا دستبهدست کنید.
خلاصه: به لطف یادگیری عمیق، امروز ما در بهار هوش مصنوعی هستیم. مدلهای از پیش آموزش دیده بزرگ عملکرد خیرهکننده را در مسائل در حوزههای پردازش تصویر، پردازش زبان و پردازش صوت به دست آوردهاند و حتی در بعضی از موارد از عملکرد انسانی نیز پیشی گرفتهاند.
نکته ناامیدکننده اما این است که مدلهای عصبی امروزی در برابر حملات خصمانه شکنندهاند، بسیار به داده گرسنهاند و از همه مهمتر قادر به انتقال یادگیری خود به محیطهای نو نیستند. این نقاط تاریک این سوال را به وجود میآورد که آیا واقعا این شبکهها هوشمند هستند؟ برای فهمیدن این مطلب ابتدا بایستی هوش را تعریف کنیم. ما برای بررسی این بحث از نظرات «فرانسوا شله» کمک میگیریم. در این ارائه ما پس از بررسی ویژگیهای موردنیاز برای تعریف هوش، تعریف صوری «شله» از هوش را بحث خواهیم کرد. سپس با محک ARC که توسط «شله» برای سنجیدن هوش خلق شده است آشنا میشویم و به گمانهپردازی میپردازیم که چاره و راه حل این چالش به چه شکل خواهد بود. در انتهای بحث در مورد تعریف هوش احتمالا با سوالات چالش برانگیزتری مواجه خواهیم شد. آیا دیپ لرنینگ همه آن چیزی است که برای رسیدن به مقصد هوش مصنوعی نیاز داریم یا این که قربانی زمستان بعدی هوش مصنوعی خواهد بود؟
لینک اتاق برگزاری:
https://vc.sharif.edu/ch/rohban
#overfit
@nlp_stuff
مهدیمون فردا (چهارشنبه ۱۲ آبان) ساعت ۱۰ قراره راجع به معیار هوشمندی صحبت کنه. دید خیلی خوبی از وضعیت واقعگرایانهی حال و آینده هوش بهتون میده. از دست ندید و لطفا دستبهدست کنید.
خلاصه: به لطف یادگیری عمیق، امروز ما در بهار هوش مصنوعی هستیم. مدلهای از پیش آموزش دیده بزرگ عملکرد خیرهکننده را در مسائل در حوزههای پردازش تصویر، پردازش زبان و پردازش صوت به دست آوردهاند و حتی در بعضی از موارد از عملکرد انسانی نیز پیشی گرفتهاند.
نکته ناامیدکننده اما این است که مدلهای عصبی امروزی در برابر حملات خصمانه شکنندهاند، بسیار به داده گرسنهاند و از همه مهمتر قادر به انتقال یادگیری خود به محیطهای نو نیستند. این نقاط تاریک این سوال را به وجود میآورد که آیا واقعا این شبکهها هوشمند هستند؟ برای فهمیدن این مطلب ابتدا بایستی هوش را تعریف کنیم. ما برای بررسی این بحث از نظرات «فرانسوا شله» کمک میگیریم. در این ارائه ما پس از بررسی ویژگیهای موردنیاز برای تعریف هوش، تعریف صوری «شله» از هوش را بحث خواهیم کرد. سپس با محک ARC که توسط «شله» برای سنجیدن هوش خلق شده است آشنا میشویم و به گمانهپردازی میپردازیم که چاره و راه حل این چالش به چه شکل خواهد بود. در انتهای بحث در مورد تعریف هوش احتمالا با سوالات چالش برانگیزتری مواجه خواهیم شد. آیا دیپ لرنینگ همه آن چیزی است که برای رسیدن به مقصد هوش مصنوعی نیاز داریم یا این که قربانی زمستان بعدی هوش مصنوعی خواهد بود؟
لینک اتاق برگزاری:
https://vc.sharif.edu/ch/rohban
#overfit
@nlp_stuff
Telegram
stuff
معجون فصل؛ ترکیب 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
قبلا در این پست [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
Telegram
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
فایل اسلاید ارائه مهدیمون [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
یه مقاله میخوایم امروز معرفی کنیم که شاید یه مقداری قدیمی باشه (مال سال ۲۰۱۷ عه) ولی چون تازه یه پیادهسازی شیک و مجلسی ازش بیرون اومده و اینکه نحوه کارش هم قشنگه ارزش شنیدن داره! بله؛ 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
Telegram
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
خوشبختانه مقاله ما در ورکشاپ 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
Telegram
stuff
داستان برت
اگر در کار پردازش زبان هستید قطعا اسم برت به گوشتون خورده. در چهارمین پست از رشتهپست «داستان ترنسفورمرها»، رفتیم سراغ bert و سعی کردیم به شیوه نیکو، روان و جامعی این مدل رو شرح بدیم. اگر تا به حال از برت استفاده نکردهاید یا اگر استفاده کردهاید ولی دقیقا نمیدونید تو برت چه خبره، خوندن این پست رو به شما پیشنهاد میکنیم.
لطفا کمکاری نکنید. نظر بدید و با بقیه به اشتراک بگذارید. :)
اگر پست خوبی داشتید خبر بدید که در انتشارات بگذاریم.
https://virgool.io/overfit/transformers4-bert-c6ah7xv69vjj
#read
#blog
#overfit
@nlp_stuff
اگر در کار پردازش زبان هستید قطعا اسم برت به گوشتون خورده. در چهارمین پست از رشتهپست «داستان ترنسفورمرها»، رفتیم سراغ bert و سعی کردیم به شیوه نیکو، روان و جامعی این مدل رو شرح بدیم. اگر تا به حال از برت استفاده نکردهاید یا اگر استفاده کردهاید ولی دقیقا نمیدونید تو برت چه خبره، خوندن این پست رو به شما پیشنهاد میکنیم.
لطفا کمکاری نکنید. نظر بدید و با بقیه به اشتراک بگذارید. :)
اگر پست خوبی داشتید خبر بدید که در انتشارات بگذاریم.
https://virgool.io/overfit/transformers4-bert-c6ah7xv69vjj
#read
#blog
#overfit
@nlp_stuff
ویرگول
داستان ترنسفورمرها (۴): داستان برت
اگر در کار پردازش زبان هستید قطعا اسم برت به گوشتون خورده در این پست قصد داریم تا با شیوه نیکو و روان و جامعی داستان برت رو توضیح بدیم