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

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

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

پست امروز درباره یک معماری ساده است که همین دو روز پیش مقاله‌اش منتشر شده. این معماری برای تسک دسته‌بندی تصاویر ارائه شده و بر خلاف شبکه‌های نامداری مثل ResNet و ViT هیچ گونه کانولوشن و اتنشی درون خودش نداره و تماما از MLP تشکیل شده. خیلی خلاصه بخوایم توضیح بدیم، ابتدا مثل ViT میاد و تصویر رو به تکه (patch) هایی تقسیم می‌کنه، سپس بعد از عبور دادن این پچ‌ها از لایه‌ی امبدینگ و به دست آوردن یک وکتور برای هر یک از تکه‌ها، اونها رو از N تا لایه به اسم MixerLayer می‌گذرونه. این MixerLayer درون خودش از دو تا شبکه MLP تشکیل شده که اولیش میاد یک فیدفوروارد روی یک جنبه از تماما تصویر‌ها میزنه (در واقع یک فیچر از روی یک فیچر تمامی تکه‌ها درست می‌کنه) و دومین MLP هم میاد یک فیدفوروارد از روی فیچر‌های یک تکه درست می‌کنه (شکل پیوست شده رو اگر ببینید درکش بسیار راحته، به اون T یا Transpose ها فقط باید دقت کنید) در نهایت هم به یک شبکه رسیدند و آزمایش‌های مختلف پیش‌آزمایش و فاین تیون رو روش انجام دادند.
شبکه اش از نظر دقتی خاص و برجسته نیست و البته پرت هم نیست. نقطه مثبتش رو میشه نرخ توان عملیاتی بالاش (throughput) دونست که خیلی از شبکه‌های مثل ViT بهتره (یک دلیلش میتونه این باشه که توی ViT به خاطر وجود اتنشن با افزایش رزولشن و در نتیجه افزایش تعداد تکه‌ها و طول ورودی، میزان نیاز به حافظه به صورت توان دویی زیاد میشه ولی اینجا این اتفاق به صورت خطی رخ میده).
کلا مقاله جالبیه و خب البته سوالاتی رو هم برمی‌انگیزه که چطوری بدون سوگیری القایی (inductive bias) خاصی به این نتیجه رسیده.

مثل همیشه یانیک کیلچر هم به سرعت یک ویدئو در توضیح این مقاله بیرون داده که می‌تونید تماشا کنید:
https://www.youtube.com/watch?v=7K4Z8RqjWIk

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

#read
#paper
#watch

@nlp_stuff
گلچین مقالات کنفرانس‌های EACL, ICLR, NAACL سال 2021

آقا سباستین رودر (اگر نمی‌شناسیدش توصیه می‌کنیم برید بشناسید) مقالات سه کنفرانس مذکور و معروف رو گلچین کرده و برای هر کدوم یک پاراگراف توضیح نوشته. توصیه می‌کنیم که حتما حداقل این خلاصه‌ها را بخونید که خیلی کمک می‌کنه از موضوعات داغ عقب نمونید.
برخی کلید واژه‌ها و موضوعات اصلی که در مقاله‌های این گلچین اومده:
Mutli-Task Learning
Self-Supervised Learning and Meta-Learning
Transfer Learning
Semantic Parsing
Representation Learning
Masked language Modelling
Question/Answering

هر چند مقاله‌های خوب دیگه‌ای هم هست که در این کنفرانس‌ها اومده و در این گلچین نیومده. انشاءالله کم‌کم معرفیشون می‌کنیم.

لینک پست:
https://newsletter.ruder.io/issues/eacl-iclr-naacl-papers-round-up-research-reality-checks-ml-on-code-592784

#read
#blog

@nlp_stuff
This media is not supported in your browser
VIEW IN TELEGRAM
اضافه شدن مدل‌های تصویری به هاگینگ فیس

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

لینک پیج مدل ViT:
https://huggingface.co/google/vit-base-patch16-224

لینک توییت اضافه شدن این مدل‌ها:
https://twitter.com/huggingface/status/1392503426978881536

#link

@nlp_stuff
شبکه‌های پیچشی یا ترنسفورمر؟

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

یک نظری که در مورد cnnها وجود داره اینه که اونها برای تشخیص یک تصویر (برای مثال دسته‌بندیش) به جای توجه به شکل (shape) اون به بافت (texture) توجه می‌کنند. این مقاله هم این فرض رو پایه خودش قرار داده و سعی کرده با این فرض جلو بره و ببینه که آیا میتونه نشانه‌ای از برتری ترنسفورمر‌ها و یا cnnها نسبت به هم دیگه پیدا کنه. علاوه بر این، سعی کرده تا معیارهای سازگاری خطا رو هم به بازی اضافه کنه و از اونها کمک بگیره (سازگاری خطا به این مفهومه که چه قدر رفتار اشتباه معقول و مورد انتظاره، فرض کنید مدل پایه‌ای دارید که دقتش ۹۰ درصده و یک درصد گربه‌ها رو به اشتباه سگ تشخیص می‌ده بعد میاید این رو روی یک دیتاست فاین تیون می‌کنید دقت مدل میشه ۹۸ درصد ولی حالا بیست درصد گربه‌ها رو سگ تشخیص می‌ده، این ناسازگاری خطا بین حالت اول و دوم نشون میده که رفتار این مدل معقول نیست و یک چیزی رو داره از دادگان یاد می‌گیره که احتمالا می‌لنگه!)

با توجه به نکات مذکور این مقاله اومده آزمایش‌های متنوعی رو برای بررسی تفاوت‌های ترنسفورمرها و cnnها طراحی کرده و نتایجشون رو به دست آورده. برای مثال در یک آزمایش (شکل ۵) اومده از دیتاست SIN استفاده کرده. این دیتاست حاوی تصاویریه که بافت و شکلشون با هم نمی‌خونه (یعنی فرض کنید شکل گربه‌ست ولی بافتش چوبه. به شکل ۱ دقت کنید) سپس مقاله میاد هر کدوم از این تصاویر عجیب غریب رو به مدل ورودی میده و از مدل می‌خواد پیش بینی کنه که این تصویر چیه؟ (فرض کنید تصویر شکل گربه با بافت چوب یا بالعکس رو میده به مدل، ممکنه مدل بگه این گربه است ممکنه بگه این چوبه یا اصلا ممکنه بگه این قالب صابونه)!
سپس میاد برای هر مدل تصویری، تعداد باری رو که مدل شکل یک تصویر رو درست تشخیص میده (به تصویری که شکلش گربه است میگه که گربه‌ست) تقسیم می‌کنه به تعداد باری که مدل شکل یا بافت تصویر رو تشخیص میده (به تصویری که شکل یا بافتش گربه است میگه گربه است) و همون طور که در شکل پیوست نگاه می‌کنید این میزان برای شبکه‌های ترنسفورمری به عملکرد انسانی روی دسته کلاس‌های مختلف نزدیکتر بوده. به معنای بهتر یک انسان در ۱۰۰ درصد مواقعی که یک موتور رو تشخیص میده شکل اون رو تشخیص میده و نه بافتش؛ ولی resnet هنگامی که یک تصویری رو موتور تشخیص میده، هفتاد درصد احتمال داره بافتش موتور بوده باشه و تنها سی درصد مواقع شکلش موتور بوده
در آزمایش دیگه‌ای (شکل ۴) اومده برای هر مدل میزان ناسازگاری خطا بین خطای روی دیتاست عادی و خطای روی دیتاست مریضی مثل SIN رو حساب کرده و نشون داده که مدل‌های ترنسفورمری از تناقض کمتری رنج می‌برند تا مدل‌های cnn ای! در کل در پایان این جوری نتیجه‌گیری کرده که مدل‌های ترنسفورمری نسبت به مدل‌های cnnای در ترید آف بین شکل/بافت بیشتر به شکل توجه می‌کنند (به خاطر سوگیری القایی که میتونند به هر جای تصویر اتنشن بزنند! مقایسه کنید با cnnای که مجبوره به ویژگی‌های مجاورتی تکیه کنه) و بیشتر به کار ما انسان‌ها میاد.

مقاله زیبایه، اگر فرصت کردید بخونید، ضرر نمی‌کنید.


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

#read
#paper

@nlp_stuff
اشتباه نکنید! مکانیزم توجه همه آن چیزی که لازم دارید نیست!

با ظهور و بروز هر چه بیشتر انواع معماری‌های ترنسفورمری برای مودالیتی‌های مختلف مانند متن و تصویر، این تصور ایجاد شده که واقعا مکانیزم توجه یه تنه داره بازی رو در میاره. اما بچه‌های EPFL به همراه یک تن از خوبای گوگل ترمز رو کشیدند و با محاسبات ریاضیاتی که انجام دادند، اثبات کردند که چنانچه مکانیزم توجه بدون حضور اسکیپ‌کانکشن‌ها و شبکه MLP به کار گرفته بشه، باعث میشه که شبکه ترنسفورمری در طول لایه‌ها به سمت یک ماتریس با رنک ۱ همگرا بشه. در واقع اگر این دو مکانیزم نباشند هر چه به سمت لایه‌های بالاتر شبکه ترنسفورمر پیش بریم، شبکه با توکن‌های ورودی به طور یکسان برخورد می‌کنه‌. در واقع این دوستان اثبات کردند که وجود اسکیپ کانکشن باعث میشه که رنک نهایی ماتریسی که لایه‌های شبکه ترنسفورمر به آن همگرا می‌شه بیشتر از یک باشه و شبکه با توکن‌های ورودی به‌طور متفاوت برخورد کنه و وجود MLP، همگرایی لایه‌ها را به تعویق میندازه. همچنین این دوستان ثابت کردند که نرمال‌سازی لایه‌ها که در معماری ترنسفورمر وجود داره هیچ نقشی رو ایفا نمی‌کنه! یافته‌های این پژوهش بار دیگه اهمیت وجود اسکیپ‌کانکشن ‌ها رو اثبات می‌کنه و داره به‌ ما میگه که شبکه‌های MLP رو هم اصلا دست‌کم نگیریم. این دوستان در نهایت یافته‌های علمی‌شون رو بر روی سه معماری BERT و Albert و XLnet هم تست کردند که در تصویر زیر روند همگرایی این شبکه‌ها رو در طول لایه‌های مختلف می‌تونید ببینید. همون‌طور که مشخصه معماری‌ای که تنها مبتنی بر توجه به خود است با همگرایی سریع به سمت ماتریس با رنک یک مواجه میشه که باعث میشه که با همه توکن‌ها به یک صورت برخورد کنه که اصلا چیز مطلوبی نیست.

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

#paper
#read

@nlp_stuff
معرفی کتابخانه‌ی Accelerate

چند وقت پیش هاگینگ فیس کتابخونه‌ی Accelerate را بیرون داد.
با این زبون‌بسته شما می‌تونید راحت روی TPU (شما هم اگر مثل ما توی خونتون TPU ندارید، از مال کولب می‌تونید استفاده کنید) مدل ترین کنید.
این شکلی هم هست که شما یه تابع ترین با پایتورچ تعریف می‌کنید و به این کتابخونه می‌دید.
یه نوت‌بوک هم برای مثال درست کردند که برت رو روی دیتاست glue mrpc (هر سطر از این دیتاست یه جفت جمله‌ست و لیبلش اینه که از نظر معنایی با هم یکسان هستند یا خیر؟) ترین می‌کنه.


لینک کتابخانه:
https://github.com/huggingface/accelerate

لینک نوت‌بوک مثال:
https://colab.research.google.com/github/huggingface/notebooks/blob/master/examples/accelerate/simple_nlp_example.ipynb

#tool

@nlp_stuff
بخش Dataset Loaders از سایت paperswithcode!

سایت paperswithcode (قبلا این پست و این پست و این پست را درباره‌اش گذاشته بودیم) که بخش دیتاست‌ها را قبلا به سایتش اضافه کرده بود، حالا جدیدا بخشی رو اضافه کرده که برای هر دیتاست، کد لود کردنش رو با کتابخونه‌های مختلف مثل huggingface datasets, TensorFlow datasets, OpenMMLab, AllenNLP آورده؛ خیلی کاربردی و یک جا.

لینک یک دیتاست مثال:
https://paperswithcode.com/dataset/sst

#link

@nlp_stuff
پاداش کافی است؟

هفته پیش مقاله‌ای تحت عنوان Reward Is Enough منتشر شد که با توجه به نویسنده‌های بزرگ آن نظیر دیوید سیلور و ریچارد ساتن انتظار می‌رفت که حرف نویی برای گفتن داشته باشد (پیشاپیش برای دانلودکردنش زور نزنید، دسترسی رایگان ندارد). اما بر خلاف انتظار این مقاله حرفی برای گفتن نداشت و صرفا سعی داشت که بگوید داشتن Reward در یک محیط مساوی است با به دست آوردن هوش عمومی (General Intelligence) و تمامی جنبه‌های متنوع آن اعم از یادگیری، دانش، فهم، حافظه و غیره. به این نحو که مثلا یک سنجاب برای این که خوراکی بیشتری را جمع کند نیاز دارد که ببیند و تفاوت فصل‌ها را درک کند؛ پس اگر بتواند سیاستی را یاد بگیرد که تعداد بلوط‌های جمع‌‌آوری شده‌اش بیشتر شود نهایتا دیدن و فهمیدن گردش فصل‌ها را هم یاد می‌گیرد. به همین نحو، مقاله در پی این است که نشان دهد هوش چیزی نیست جز افزایش پاداش.
یانیک کیلچر نیز در آخرین ویدئو خود به بررسی این مقاله (البته به وسیله بولدوزر) پرداخته است و دمار از روزگار آن درآورده. کیلچر در مخالفت کامل با ایده این مقاله معتقد است که صرف داشتن پاداش و حتی یادگیری برای هوشمند شدن کافی نیست و مثال می‌آورد که یک باکتری و حتی یک میمون بدون واردشدن به چرخه تکامل هرگز به هوشمندی انسان نمی‌رسند و بخشی از هوشمندی انسان مدیون قابلیت‌های پیش‌ساخته (prebuilt functionality) یا حداقل سوگیری‌های القایی (inductive bias) است که سیم‌کشی‌های مغز او حتی در نسخه نوزاد او نیز (شاید به لطف تکامل و انتخاب طبیعی) وجود دارند. در کل در این ویدئو بحث بیشتر فلسفی است و از آن جایی که خود مقاله حرفی برای گفتن ندارد بیشتر زمان ویدئو نیز صرف حمله به آن شده است.

در ادامه کیلچر عصبی در ۲۴ ساعت گذشته (احتمالا تحت تاثیر این وقایع) در توییت‌های خود به هایپ‌کنندگان هوش مصنوعی حمله کرده و گفته که نیمچه دستاوردهای اسمی فعلی هوش چیزی جز آمار و احتمال دانستن نیست.

https://www.youtube.com/watch?v=dmH1ZpcROMk

#watch
#paper

@nlp_stuff
دادگان PersianQA

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

https://github.com/sajjjadayobi/PersianQA

با تشکر از آقای ایوبی بابت معرفی این دیتاست

#irani
#dataset

@nlp_stuff
یک هوشمند مسئول!

اگه در یه جایی از این دنیا مشغول طراحی یه سیستم مبتنی بر AI هستید، باید توجه‌تون رو به این نکته جلب کنم که طراحی یه سیستم مبتنی بر AI مانند یه سیستم نرم‌افزاری در دنیای کامپیوتر نیازمند best practice است. ینی یه سری زوج مرتب از چالش‌ها و راه‌حل‌هایی که افراد قبل از شما با اون‌ها مواجه شدند و راه‌حل ارائه شده براش به مقدار خوبی تست شده است. به خاطر همین به عنوان طراح سیستم‌های مبتنی بر AI خوبه که با اون‌ها آشنا بشید. برای آگاهی از این practiceها هم چه جایی بهتر از گوگل! بچه‌های گوگل کلی زحمت کشیدند و یه مفهومی رو به نام Responsible AI توسعه دادند و براش یه بلاگ درست کردند که در این بلاگ به Best Practice های حوزه AI اشاره شده. همچنین ابزارها و راه‌حل‌هایی که گوگل برای غلبه بر این چالش‌ها ارائه داده نیز در این بلاگ معرفی شدند. مثلا مساله‌ای مانند fairness در حوزه AI کم‌کم داره داغ میشه. وقتی شما مثلا می‌خواید یه سیستم credit scoring تولید کنید قطعا نتایج این سیسیتم می‌تونه بر زندگی خیلی از آدم‌ها تاثیر بذاره؛ پس مهمه که اگه این سیستم خطایی هم داره این خطا بین همه اقشار مختلف جامعه به طور منصفانه‌ای پخش بشه. دنیای امروز پر از biasهای ذهنی است که بازتابش در دیتاهای موجود خودش رو نشون میده و عملکرد منصفانه سیستم‌های مبتنی بر AI رو تحت تاثیر قرار میده. مثلا ممکنه نسبت به سیاه‌پوستا خطای بیشتری در تخصیص امتیاز بالا برای سیستم بانکی داشته باشه یا مثلا تفسیرپذیری مدل‌های مبتنی بر یادگیری عمیق هم از مسایلی هست که یک سیستم هوشمند مسوول باید نسبت به اون پاسخگو باشه. اگه یه سیستمی دارید طراحی می‌کنید که دستیار پزشکان در تشخیص سرطان هست باید برای پزشک متخصص توجیه داشته باشه که چرا داره یه نمونه رو سرطان تشخیص میده و چرا دیگری رو سرطان تشخیص نمیده. گوگل برای رعایت هرچه بهتر و راحت‌تر این practiceها ابزارهای مختلفی توسعه داده که در همین بلاگ به اون اشاره شده و به عنوان یکی از پایه‌ای‌ترین و اساسی‌ترین ابزار‌ها روز‌به‌روز داره ابزار TFX گوگل (پست https://t.iss.one/nlp_stuff/157 رو ببینید) خودش رو بیشتر نشون میده. به خاطر همین توصیه می‌کنیم که در این دریایی که گوگل از practiceهاش فراهم کرده تنی به آب بزنید.

لینک بلاگ:
https://ai.google/responsibilities/responsible-ai-practices/

اگر هم خیلی دنبال مطلب‌های تیتروار می‌گردید و آب‌تنی دوست ندارید، سراغ این قسمت از این بلاگ برید که در قالب ۴۳ قانون، مسیر توسعه یک سیستم مبتنی بر AI رو براتون ترسیم کرده:
https://developers.google.com/machine-learning/guides/rules-of-ml

#read
#blog
#link

پ.ن.۱: در معرفی کانال به بقیه کوشا باشید :)
پ.ن.۲: لینک دوم رو با تحریم‌شکن باز کنید.

@nlp_stuff
TensorFlow Decision Forests (TF-DF)

یکی از مدل‌های معروف و کارا در یادگیری ماشین «جنگل تصمیم‌گیری» است. همون‌طور که می‌دونید، این مدل‌ها تفسیرپذیری بالایی دارند و می‌تونند روی دیتای عددی وcategorical بدون پیش‌پردازش کار کنند.
تنسرفلو حالا جنگل تصمیم‌گیری رو به کتابخونه‌ی خودش اضافه کرده تا بتونید این مدل را راحت آموزش بدید، سرو کنید و تفسیر کنید؛ البته این مدل در کتابخونه‌های دیگه مثل sklearn وجود داشتند اما حالا با استفاده از TF-DF می‌توان از ابزارهای دیگه‌ی تنسرفلو مثل TF-serving و TFX به صورت یکپارچه و راحت‌تر استفاده کرد و لذت برد. همچنین تنسرفلو کلی از انواع این مدل رو مثل random forests, gradient-boosted trees, CART, (Lambda)MART, DART, Extra Trees, greedy global growth, oblique trees, one-side-sampling, … اضافه کرده.
نمونه‌ی کد و تفسیر مدل رو در دو عکس بالا آوردیم.

لینک پست توضیح TF-DF:
https://blog.tensorflow.org/2021/05/introducing-tensorflow-decision-forests.html?m=1

#read
#blog
#tool

@nlp_stuff
مقاله‌ای برای مرور ترنسفورمر‌ها

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

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

#read
#paper

@nlp_stuff
کارگاه «راهکارهای پردازش متن برای زبان‌های کمتر توسعه‌یافته»

دومین دوره گارگاه «راهکارهای پردازش متن برای زبان‌های کمتر توسعه‌یافته» همزمان با ICNLSP-2021 با همکاری آزمایشگاه پردازش متن و زبان طبیعی دانشگاه تهران برگزار می‌شود. هدف این کارگاه معطوف کردن پژوهش ها به سمت چالش های زبان های low-resource و تشویق پژوهشگران به تولید دادگان و الگوریتم پردازشی برای این زبان ها است. در زبان فارسی یک مساله مشترک (shared task) با موضوع استخراج روابط معنایی از متن (Semantic Relation Extraction) تعریف شده است.

مقالات پذیرفته‌شده در مجموعه مقالات همایش ICNLSP به چاپ خواهد رسید و توسط ACL ایندکس می‌شود.

شرکت در کارگاه و چاپ مقالات مرتبط پذیرفته شده رایگان است.

لینک کارگاه:
nsurl.org
وب سایت مسابقات:
https://competitions.codalab.org/competitions/31979
تماس:
[email protected]

#other

@nlp_stuff
پردازش صوت با speechbrain

اگه دنبال یه ابزاری می‌گردید که بتونید باهاش راحت کارهای پردازش صوتی بکنید، باید برید سراغ speechbrain. این ابزار کارهای بازشناسی گفتار، بازشناسی گوینده، بهبود صوت، پردازش‌های میانی مانند استخراج فیچر و پردازش همزمان چندین میکروفون رو انجا میده. نکته اینه که مدل‌هایی که استفاده شده کاملا به‌روز و در برخی کاربرد‌ها حتی state of the art هستند و در برخی دیگه هم عملکرد کاملا رقابتی دارند. از ویژگی‌های مهم دیگه این ابزار اینه که مدل‌های استفاده شده در این ابزار بر روی هاگینگ‌فیس موجودند. شاید تنها ضعف این ابزار اینه که مدل‌ها کاملا پایتورچی هستند و خبری از تنسورفلو نیست اما با توجه به سادگی کاربرد و همچنین وجود مدل‌ها بر روی هاگینگ‌فیس نباید اصلا نگران استفاده ازش باشید. از دیگر ویژگی‌های مثبتش هم اینه که کاملا با GPU دوسته و اگه لازم دارید تا اون رو بر روی دیتاست خودتون آموزش بدید و از GPU استفاده کنید، قطعا مشکلی نخواهید داشت. پیشنهاد می‌کنیم بر و بچه‌های صوتی حتما یه نگاهی به این ابزار به‌روز بندازند.

لینک گیت‌هاب:
https://github.com/speechbrain/speechbrain

لینک صفحه رسمی در هاگینگ‌فیس :
https://huggingface.co/speechbrain

#tool

@nlp_stuff
خداحافظ توکنایزر برای همیشه و ممنون بابت اون‌همه ماهی؟

داستان چگونگی ورودی دادن متن به شبکه‌های عمیق یکی از مهم‌ترین گلوگاه‌های کار با داده متنی است. شروع این داستان به این نحو بود که ابتدا یک دیکشنری از تمامی کلمات به صورت سخت ایجاد می‌کردند و طبعا هر کلمه‌‌ای که در این دیکشنری حاضر بود می‌توانست به عنوان ویژگی ورودی به شبکه مورد استفاده قرار بگیرد (سوال امتیازی: عیب این روش چه بود؟ پاسخ: طبیعتا اگر کلمه‌ای در این دیکشنری حاضر نبود مدل هنگام مواجهه با آن کلمه مجبور بود توکن پیشفرضی نظیر UNK را به جای آن کلمه نادیده بگذارد) پس از مدتی سر و کله زدن با ایده‌های مختلف نظیر این که به جای کلمه‌ها، کاراکترها را به شبکه ورودی بدهیم، سرانجام ایده‌های زیرکلمه‌ای (subword) ظهور پیدا کردند. این ایده‌ها مبتنی بر این بودند که کلمات به یک سری زیرکلمه شکسته شوند و مخلوطی از کلمات و زیرکلمات در دیکشنری اولیه ذخیره شوند. طبیعتا اگر مدل کلمه‌ای را ببیند که قبلا در دیکشنری خود نداشته است، میتواند با استفاده از این زیرکلمه‌ها آن کلمه نادیده را به کلمات حاضر در دیکشنری بشکند (به فرض مثال فرض کنید مدل کلمه یارانه در ورودی آمده و قبلا هم هیچ جا این کلمه را ندیده ولی دو کلمه «یار» و زیرکلمه «انه» را از قبل دارد بنابراین یارانه را به صورت یار + انه به خوردش می‌دهیم. اگر بیشتر علاقه‌مند شدید بفهمید این توکنایزرها اصلا چطوری ساخته می‌شوند می‌توانید این پست [https://t.iss.one/nlp_stuff/6] کهن کانال رو بخونید). با ظهور این مدل‌ها عملکرد مدل‌های عصبی در مسائل مختلف پردازش زبان بهبود قابل توجهی را تجربه کردند و همینک نیز شبکه‌های از پیش آموزش داده شده نظیر برت نیز از این توکنایزر‌های subword استفاده می‌کنند. اما از آن جا که گل بی عیب خداست این توکنایزرها هم در چند جا می‌لنگد: یکی وقتی که میخواهند عملکرد بین زبانی را امتحان کنند و دیگری نیز وقتی که با دیتای نویژی نواجه می‌شوند (شما متوجه شدید من نویز و مواجه را اشتباه نوشتم ولی توکنایزر‌ها و مدل‌های بناشده بر آن‌ها این را نمی‌فهمند)


بر این اساس دوستان گوگلی آمدند و ایده دادند که اصلا چه کاری است توکنایز کنیم بیایم به صورت بایت به بایت همان UTF-8ای که هست، رشته‌های متنی را به مدل ورودی بدهیم. بر این اساس این دوستان مدل MT5 (که یک مدل چندزبانه بسیار خفنی است و هر مساله‌ای را به شکل یک مساله text-2-text نگاه می‌کند) را به عنوان مدل اولیه در نظر گرفته اند و سعی کرده این ایده بایت به بایت ورودی دادن متن به آن را روی آن اعمال کرده و یک مدل به اصطلاح tokenizer free به نام ByT5 را ارائه دهند. شیوه پیش آموزش مدل نیز مانند MT5 است به این صورت که اسپن‌هایی از محدوده متن ورودی را خراب کرده و از مدل خواسته‌اند تا آن‌ها را بازسازی کند (برای فهم بهتر این مطلب بهتر است مقاله‌های T5 و MT5 را مطالعه بفرمایید). از دیگر ابتکار قابل توجه خالقان Byt5 نیز می‌توان به عمیق‌تر کردن قسمت رمزگذار و متقابلا سبک کردن قسمت رمزگشای ترنسفورمر Byt5 اشاره کرد. در نهایت محصول پنج مدل ByT5 در سایز‌های مختلف شده است که:
+ اولا در سایز‌های با کمتر از یک میلیارد پارامتر نسبت به مدل مشابه نسخه MT5 عملکرد بهتری دارند.
+ ثانیا در مسائل تولید متن نسبت به مدل‌های MT5 عملکرد بهتری دارند.
+ ثالثا در مسائل بین زبانی نسبت به مدل‌های MT5 درخشان‌تر هستند.
+ و رابعا که شاید مهم ترین نکته باشد این است که نسبت به دیتا‌های نویزی در ورودی خود ( همان داستان نویژی و نواجه و اینها ) محکم‌تر و کاراتر هستند.

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

در ضمن این مدل در انواع سایز‌ها بر روی هاگینگ فیس نیز قرار داده شده است و می‌توانید اگر حوصله دارید، یه تن بزنید:
https://huggingface.co/google/byt5-base

پ.ن.۱. حیف نیست کانال ما رو به بقیه معرفی نمی‌کنید؟

پ.ن.۲. عکس‌های ضمیمه شده چهارتاست. ورق بزنید و همه رو ببینید.

پ.ن.۳. تیتر هم سرچ کنید. چیز خوبیه.

#read
#paper

@nlp_stuff
کورس درجه یک هاگینگ‌فیس

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

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

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

لینک کورس:
https://huggingface.co/course/

#coach
#course

@nlp_stuff
مدل TextStyleBrush از فیس‌بوک!

فیس‌بوک یک مدل جدیدا به اسم TextStyleBrush داده که یک متن ورودی و یه تصویر حاوی متن دست‌خطی یا غیردست‌خطی (حتی فقط با یک کلمه) می‌گیره و استایل متن داخل تصویر رو (رنگ و فونت و…) به اون متن ورودی اعمال می‌کنه؛ یعنی متن داخل یه تصویر رو میتونه عوض کنه (گیف ضمیمه شده رو ببینید).
این مدل اولین مدل self-supervised است که این کار رو با فقط یک تصویر به صورت one-shot انجام میده. البته واضحه که کل مدل self-supervised نیست چون از مدل‌های از پیش آماده‌ی OCR و طبقه‌بندی فونت هم استفاده کردند. برای آموزشش به عنوان ورودی اینا رو به مدل دادند: اول. عکسی که حاوی استایل مورد نظره و دور اون تیکه از عکس که متن داره یه مستطیل کشیدند. دوم. متن واقعی که داخل اون عکس هست. سوم. متن ورودی. مدل در وهله‌ی اول از RESNET استفاده می‌کنه تا به صورت جدا جدا، استایل رو تبدیل به یک بردار کنه و از طرفی اون دو تا متن رو هم تبدیل به تنسور بکنه. بعد بردار استایل رو میده به یک مدل StyleGAN2 ادیت شده تا بتونه اینجوری این مدل رو به بردار استایل مشروط کنه و استایل مورد نظر رو تولید کنه. و بعد از طرفی خروجی این قسمت رو به یک شبکه دیگه میده که قراره متن ورودی رو به صورت دلخواه تبدیل کنه و اون هم از این استایل برای تولید یک ماسک روی این متن استفاده می‌کنه که استایل رو به این متن اعمال کنه و خروجی رو یک بار با این softmax mask و یکبار بدون اون تولید کنه و چون دو تا متن ورودی داشت در مجموع چهار تا خروجی میده. بعد این عکس‌ها را به سه تا شبکه دادند تا به عنوان توابع loss عمل کنند. دوتا از این سه تا شبکه از قبل آموزش دیدند: اول. شبکه‌ی VGG19 که روی دیتاست فونت خودشون (که طبیعتا کل فونت‌های دنیا نیست) آموزش دادند و اینجا به این دلیل استفاده شده که عکس ورودی و عکسی رو که از روی متن عکس تولید کردند از نظر استایل و فونت مقایسه کنه. دوم. یک مدل OCR آماده که دو متن ورودی و متن داخل این چهار عکس تولیدی رو مقایسه کنه. سوم. طبیعتا شبکه‌ی سوم هم قسمت discriminator از GAN باید باشه تا سعی کنه عکس تولیدی از متن داخل عکس ورودی رو از عکس اصلی تشخیص بده. اگر فکر می‌کنید خیلی پیچیده و گیج‌کننده‌ست، باید بگیم همینطوره! ویدیوی توضیح مقاله (لینکش رو اون پایین آوردیم) رو ببینید که اوضاع بهتر بشه.
البته فیس‌بوک مدلش رو به دلیل جلوگیری از سواستفاده (بنا بر ادعای خودشون) منتشر نمی‌کنه، ولی دیتاست و مقاله‌اش رو منتشر کردند (که در ادامه لینکشون رو آوردیم) که اونا که می‌خوان، مدل خودشونو بسازند.


با روش‌های کاملا supervised خیلی سخت میشه مدل‌های اینجوری با توانایی عمومی تولید کرد و کلی دیتای لیبل خورده لازم دارند و باز هم ممکنه کلی از انواع دیتا را ندیده باشند چون کلی مدل مختلف دست خط هست.
روش‌های self-supervised قسمت لیبل زدن داده رو به صورت خودکار انجام میده و نقش انسان رو از این وسط حذف می‌کنه؛ یعنی میاد از خود دیتا استفاده می‌کنه و سعی می‌کنه با بخشی از دیتا، بخشی دیگه رو پیش بینی کنه و با این حرکت مسئله unsupervised تبدیل به مسئله supervised میشه. مثالش در متن، همین برته. در تصویر هم مثلا یک جایی از تصویر رو حذف می‌کنه و سعی میکنه بازسازیش کنه. این موضوع تحقیقاتی داغ داغ یا بهتر بگیم توی اوج خودشه. یه لینک توضیح بیشتر ازش اون پایین هست.

لینک مقاله (طبیعتا فیسبوک فیلتره دیگه):
https://ai.facebook.com/research/publications/textstylebrush-transfer-of-text-aesthetics-from-a-single-example/

لینک ویدیوی توضیح مقاله (یوتیوب هم که فیلتره):
https://www.youtube.com/watch?v=OC0oe1EzQxo

لینک بلاگ توضیح (این یکی انگار تحریمه 😄! با تحریم‌شکن قدرتمند باید برید):
https://ai.facebook.com/blog/ai-can-now-emulate-text-style-in-images-in-one-shot-using-just-a-single-word

لینک دیتاست عکس‌های دست‌خط:
https://github.com/facebookresearch/IMGUR5K-Handwriting-Dataset

لینک توضیح یادگیری self-supervised:
https://research.aimultiple.com/self-supervised-learning/

پ.ن. لطفا کانال رو به بقیه هم معرفی کنید!

#read
#watch
#paper
#blog

@nlp_stuff