Telegram Web Link
دیتاست MASSIVE آمازون

خلاصه‌ی کلام اینه که تیم الکسای شرکت آمازون یک دیتاست عظیم یک میلیونی چندزبانه برای درک زبانی (بخش intent prediction and slot annotation) بیرون داده که فارسی هم توش هست. این دیتاست مخصوص دو زیرتسک مهم چت‌بات‌های وظیفه‌محور که intent prediction و slot annotation باشند ارائه شده. توضیح مختصر این که وقتی میخواید یک چت‌بات وظیفه محور بزنید یک تسک اینه که اول تشخیص بدید که مقصود کاربر از یک پیام که میده چیه (مثلا میخواد بلیت قطار رزرو کنه، آهنگ خاصی براش پخش بشه، هتل‌ای رزرو کنه و ...) و در گام بعد حالا که مقصود کاربر رو فهمیدیم بیایم آرگومان‌ها یا به اصطلاح slot‌های اون مقصود خاص رو در متن پیام تشخیص بدیم (مثلا اگر مقصود کاربر رزرو بلیت قطار باشه آرگومان‌هاش میشه مبدا و مقصد و تاریخ و ساعت)
این دیتاست به ۵۱ زبان (از جمله فارسی) اومده به صورت موازی یک سری عبارات رو لبیل زده. هر سطرش یک جمله‌ست که مثلا گفته:
What is the temperature in New York?
بعد این رو باید در دسته‌ی weather_query (یعنی intentاش میشه سوال آب‌وهوایی) قرار بگیره و موجودیت‌های مرتبط (این slot است که آرگومان‌های مرتبط با همون intent میشه) باهاش باید باشه:
weather_descriptor: temperature, place_name: new york
حالا متناظر با این در دیتای فارسی مثلا داریم:
دمای نیویورک چنده و موجودیت‌های مرتبط مشخص شدند دما و نیویورک.
واسه هر زبون هم حدودا ۱۷ هزارتاست.
همون جملات رو واسه زبون‌های مختلف گذاشتند که از مدل‌های چندزبانه واسه یادگیری بشه استفاده کرد یعنی از representation جملات فارغ از زبان استفاده بشه. مثال خوبی از این مدل‌ها LASER فیسبوکه.
بعد حالا دیتاست به این عظمت رو منتشر کردند و گفتند بیاید روش مدل ترین کنید و مسابقه برگزار کردند! این دیتاست با این هدف تولید شده که دستیار صوتی آمازون (الکسا) بتونه زبان‌های بیشتری رو بفهمه و کلا همونطور که گفتیم ازش برای چت‌بات‌های وظیفه‌محور میشه استفاد کرد.

بلاگ توضیح دیتاست:
https://www.amazon.science/blog/amazon-releases-51-language-dataset-for-language-understanding

ریپو دیتاست در گیت:
https://github.com/alexa/massive

#dataset

@nlp_stuff
کورس RL هاگینگ فیس

برادران هاگینگ فیس به تازگی طی اقدامی خداجویانه یک کورس برای deep reinforcement learning به راه انداخته اند. این کورس با این که نگاهش بیشتر عملیاتی هست ولی توش قراره به تئوریجات Deep RL هم پرداخته بشه. نکته خوب دیگه اش هم اینه که شما در طی این کورس انشالله قراره با کتابخانه‌های جدی RL مثل Stable-Baselines3 آشنا بشید و یادشون بگیرید. این کورس به تازگی شروع شده و محتواش آروم آروم داره منتشر میشه. اگر علاقه‌مند به RL هستید به نظر می‌رسه که می‌تونه مسیر خوبی رو برای یادگیریش براتون رسم کنه.

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

لینک کورس:
https://github.com/huggingface/deep-rl-class

#course
#coach

@nlp_stuff
پیوستن timm به HF

با کتابخونه هاگینگ‌فیس (که فلسفه اش ابتدا اشتراک گذاشتن مدل‌های آموزش دیده و معماری‌های مدل‌های متنی و سپس به صورت کلی‌تر مدل‌های ترنسفورمری در حوزه‌های مختلف متن و صوت و تصویر بوده)، که آشنا هستید. در کنار هاگینگ فیس کتابخونه پرطرفداری به اسم timm وجود داره (https://github.com/rwightman/pytorch-image-models) که وظیفه‌اش انجام همین وظیفه هاگینگ فیس منتهی در حوزه تصویر نظیر resnet و اینها بوده. حالا هاگینگ‌فیس و timm در خبری اعلام کردند که به توافق رسیده‌اند که timm هم به عنوان پرطرفدارترین کتابخونه حوزه cv ml به مجموعه هاگینگ‌فیس بپیونده. این اتفاق بسیار مبارکی می‌تونه باشه چرا که امکان دسترسی به انواع مدل‌های اوپن سورس رو در حوزه‌ تصویر تسهیل می‌کنه.

#news
آموزش بازی Minecraft با پیش آموزش ویدیویی

شرکت خرپول OpenAI در آخرین دستاورد خودش از مدلی که میتونه ماینکرافت بازی کنه رونمایی کرده. فرض کنید میخوایم به یک مدل یاد بدیم چطور ماینکرفت بازی کنه. اولین راهی که به ذهن میرسه اینه که یک سیمولاتور ماینکرفت درست کنیم و مدل رو به صورت RL طور روی این محیط بازی آموزش بدیم. مشکلی که اینجا به وجود میاد یکی سایز فضای حالت بالای بازی و نیاز بالای مدل به اکتشاف ( exploration ) و دیگری هم سختی تعریف تابع پاداش (ریوارد) در این فضا است. راه دوم اینه که بیایم یک تعداد عامل انسانی بذاریم و از بازی کردن اونها و اکشن‌هایی که انتخاب می‌کنند یک دیتاست درست کنیم و مدل رو به اصطلاح به صورت آفلاین آموزش بدیم. مشکل این راه اینه که برای این که یک مدل کارا داشته باشیم نیازه تا عامل‌های انسانی‌مون خیلی خیلی خیلی دیتا جمع آوری کنند که حتی برای openAI هم قفله. با این اوصاف به نظرتون OpenAI چه راهی در پیش گرفته؟
از اونجایی که OpenAI خیلی به داده‌های وسیع حاضر در اینترنت علاقه‌منده (این رو در طرز آموزش GPT و Clip و DallE هم قبلا دیده بودیم) اومده اولا "هفتاد هزار ساعت" فیلم ویدئو ماینکرافت بازی کردن ملت رو از اینترنت دانلود کرده. خب این دیتای ارزشمندیه ولی مشکل اینه که فقط فیلمه و معلوم نیست که گیمر در هر لحظه چه اکشنی رو انتخاب کرده که. پس OpenAI اومده و با استفاده از عامل‌های انسانی که داره حدود دوهزار ساعت ویدئو بازی کردنشون رو به صورت لیبل دار جمع آوری کرده (یعنی اون عامل انسانی ماینکرافت بازی کرده و مشاهداتی که داشته و اکشن هایی که در لحظه انجام داده به صورت دنباله ذخیره شده) حالا اومدن و یک مدل دیگه ای به نام IDM با استفاده از همین دیتا‌ها آموزش دادن که وظیفه اش اینه که با مشاهده یک دنباله از فریم‌های ویدئو تشخیص بده که گیمر در اون لحظه چه اکشنی رو انتخاب کرده (نکته خوب ماجرا اینه که این مدل Non-Autoregressive هست یعنی برای تشخیص اکشن انجام شده در یک فریم میتونه هم به فریم‌های قبلی و هم به فریم‌های بعدی نگاه و توجه کنه). حالا احتمالا اگر نخ ماجرا دستتون اومده باشه میتونید حدس بزنید که در گام بعدی اومدن به کمک همین مدل IDM به دست اومده اون داده‌های ویدئو بی لیبل هفتا هزار ساعتی رو لیبل زده اند. حالا در واقع یک دیتاست لیبل خورده هفتادهزار ساعتی حاضر و آماده است و میشه مدل اصلی و نهایی رو روی این دیتاست بزرگ آموزش داد. OpenAIای‌ها اسم این تکنیک رو گذاشتند Video PreTraining یا به اختصار VPT.

بعد از به دست اومدن این دیتاست هفتادهزار ساعته لیبلدار، حالا یک مدل رو به صورت Autoregressive رو دنباله فریم‌ها و اکشن‌ها به صورت imitation learningای (این تکنیک به این معناست که عوض این که مدل رو در پارادایم RL در یک محیط قرار بدیم و با دادن ریوارد بهش آموزشش بدیم بیایم اون تسک رو توسط عامل انسانی انجام بدیم و مدل رو روی داده‌ها و حرکات اون عامل انسانی آموزش بدیم به این امید که بتونه سیاست اون عامل انسانی رو تقلید کنه) آموزش دادند. روی نحوه بازی‌کردن این مدل هم یک‌سری مشاهدات و آزمایشات انجام دادند که حیرت آوره. مثلا مدل تونسته تسک‌هایی رو که گیمر‌های حرفه‌ای ماینکرفت ظرف ۲۰ دقیقه (۲۴ هزار اکشن) انجام میدند رو به خوبی یاد بگیره!!! یا مثلا همین مدل به دست اومده رو به عنوان یک نقطه شروع قرار دادند و با RL دوباره روی یک سری تسک‌های خاص فاین تیونش دادند و نتیجه‌های خوبی به دست گرفتند. فیلم بازی‌های این مدل خفن در لینک توسط OpenAI قرار داده شده. همچینن OpenAI ناپرهیزی کرده و این مدل رو بر خلاف مدل‌های دیگه اش اوپن سورس صلواتی منتشر کرده! با موفقیت این مدل انتظار می‌ره که OpenAI با توجه به روحیه‌ای که داره در گام‌های بعدی این متد رو به مسائل مشابه دیگر اعمال کند. این داستان ادامه دارد؟

لینک بلاگ OpenAI برای این مدل:
https://openai.com/blog/vpt/
لینک کد و وزن‌های این مدل:
https://github.com/openai/Video-Pre-Training
لینک مقاله:
https://cdn.openai.com/vpt/Paper.pdf

#read
#paper

@nlp_stuff
آیا از نفهمیدن positional encoding خسته شده‌اید؟ به این پست توجه کنید!

امروزه به هر تسکی از زمینه هایی مثل تصویر، متن، صوت و ... نگاه کنید پرچمدارانش یک تعداد مدل با معماری ترنسفورمر هستند. همون‌طور که می‌دونید مکانیزم positional encoding یکی از بخش‌های مهم معماری ترنسفورمره که روی نحوه ارتباط توکن‌ها در جایگاه‌های مختلف تاثیر گذاره. در واقع از اون‌جایی که ترنسفورمرها ذات بازگشتی و ترتیبی RNNها رو حذف کردند عملا به کل جمله با یک ترتیب یکسان می‌تونند نگاه بکنند که این بده! برای حل این مشکل سعی می‌کنند اطلاعات مکانی هر کلمه رو یه‌جوری در امبدینگ‌ش امبد بکنند! این بلاگ که نوشته یکی از خوبای این حوزه است (امیرحسین کاظم‌نژاد)، اومده و یه توضیح شیک مفهومی درباره این مکانیزم داده که شیرفهمتون می‌کنه. به‌طور خلاصه اگه مثلا اعداد ۱ تا ۸ رو به صورت باینری و پشت سرهم بنویسید متوجه میشید که کم‌ارزش‌ترین بیت داره مدام تغییر می‌کنه درحالیکه دومین کم‌ارزش‌ترین بیت داره هر دوتا عدد یه بار تغییر می‌کنه و پرارزش‌ترین بیت هم هر ۴ عدد یکبار تغییر می‌کنه. خب حالا می‌خوایم اطلاعات مکانی هر کلمه رو با یه بردار dبعدی نشون بدیم که طبیعتا استفاده از مقادیر باینری در دنیای اعشاری به‌نوعی هدر دادن حافظه ست. شهودی که به ذهن می‌رسه اینه که هر چیزی که بتونه شبیه همین اعداد باینری تغییر بکنه مفهوم پوزیشن رو تداعی می‌کنه. ینی دنبال تابعی می‌گردیم که اولا خروجی‌ش اعشاری باشه و دوما مثلا اولین درایه از بردار با فرکانس بیشتری نسبت به آخرین درایه بردار تغییر بکنه. اینجاست که توابع sin و cos معرفی میشه و با بازی با فرکانس ورودی این توابع دقیقا همین خاصیت ایجاد میشه. مثلا در تصویر زیر یک بردار ۱۲۸بعدی positional encoding می‌بینید که حداکثر طول ۵۰ رو مدل می‌کنه. همون‌طور که در تصویر مشخصه درایه‌های اول این بردار از پایین به بالا با نرخ بیشتری نسبت به آخرین درایه‌های این بردار تغییر می‌کنند. برای اینکه به‌طرز نکویی این مکانیزم رو متوجه بشید حتما این بلاگ کوتاه رو بخونید. آخرش هم چند سوال پرتکرار رو آورده که دیگه نعمت رو بر شما تکمیل می‌کنه.

لینک بلاگ:
kazemnejad.com/blog/transformer_architecture_positional_encoding/

#blog

@nlp_stuff
گام اول آمار؛ کورس دکتر شریفی زارچی

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

برای اولین گام آمار یکی از بهترین منابع، کورس رایگان «آمار و احتمالات مهندسی» دکتر شریفی زارچی در مکتب‌خونه‌ست. ایشون خیلی خوب مباحث رو با لهجه‌ی شیرین یزدی توضیح دادند، به صورت عملی با زبان R یاد میدن چجوری اون مباحث رو پیاده کنید، ویدیوها با کیفیت بالایی ضبط شدند و جزوه‌ها، تمرین‌ها و امتحان‌های درس هم در گیت در دسترسه. دیگه بهونه چیه؟

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

لینک کورس:
https://maktabkhooneh.org/course/آمار-احتمال-مهندسی-mk627/

لینک گیت‌هاب کورس:
https://github.com/asharifiz/Probability_Statistics

#coach
#course

@nlp_stuff
داستان آلفاگو

بازی گو یک بازی تخته ای دو نفره است که در شرق آسیا از قدیم الایام خیلی طرفدار داشته و قوانینش از شطرنج هم ساده‌ترند. اما علی رغم این سادگی قوانین، استراتژی‌های خیلی پیچیده‌ای رو می‌طلبه. به همین علت با این که کامپیوتر‌ها تونستند سال ۱۹۹۶ برای اولین بار قهرمان انسان‌ها رو در شطرنج شکست بدن ولی برای تکرار این موفقیت در گو، قریب به دو دهه انتظار کشیدند تا بالاخره دیپ مایند با مدل آلفاگو تونست این کار رو به سرانجام برسونه.
در این پست در ویرگول سعی‌ کردیم معماری و نحوه آموزش مدل آلفاگو رو به توضیح بدیم. آلفاگو در سال ۲۰۱۵ برای خودش انقلابی در زمینه هوش مصنوعی محسوب می‌شده و باعث شد که موجی از توجهات به RL و یادگیری تقویتی جلب بشه. انشالله اگر عمری باقی باشه به باقی مقالات و مدل‌های مهم جریان‌ساز هوش مصنوعی نیز می‌پردازیم.

لینک پست:
https://virgool.io/overfit/alphago-mhoamralnzeq

#overfit
#read
#paper
#blog

@nlp_stuff
آن چه له‌کان در خشت خام می‌بیند

همانطور که می‌دونید هینتون، له‌کان و بنجیو سه خدای دیپ لرنینگ هستند. اگر قبلا یادتون باشه قبلا در این پست (www.tg-me.com/nlp_stuff/137) و این پست (www.tg-me.com/nlp_stuff/127) ایده‌ها و چشم‌اندازهای هینتون و بنجیو از مسیر آینده هوش مصنوعی به سمت AGI رو توضیح دادیم. حالا آقای له‌کان اومدند و مقاله ۵۰ صفحه‌ای رو منتشر کردند و در اون راجع به ایده‌های خودشون صحبت کردند. له‌کان در این مقاله ابتدا یک معماری شناختی کلی که از یک هوش خودکار در نظر داره رو نشون داده. این معماری کلی شامل قسمت‌هایی مثل Perception و Actor و Cost و World Model هستند که هر کدوم وظیفه مجزایی دارند. گام بعدی طراحی یک معماری برای هر شبکه‌های عصبی هر کدام از این قسمت‌هاست که له‌کان در اینجا معماری JEPA رو که می‌تونه به صورت سلسله مراتبی بازنمایی‌هایی رو از دنیا یاد بگیره رو طراحی و پیشنهاد کردند. در کنار این مسائل هم یک دور اومدند مسائلی مثل انواع یادگیری خودنظارتی و چرایی نیاز به تابع انرژی و همچنین ضعف‌های احتمالی انواع روش‌های خودنظارتی رو یک مرور خوب کردند و یک پارادایم یادگیری خودنظارتی non-contrastive رو برای آموزش دادن شبکه JEPA پیشنهاد دادند. مقاله رو هم در openreview گذاشتند که هر کی که خواست بیاد روش نقد کنه و نقدها هم دیده بشوند.
هم له‌کان و هم کیلچر (کیلخر) در مورد توضیح این ایده‌ها ویدئو‌هایی رو گذاشتند که در اگر حوصله و وقت خوندن مقاله رو نداشتید می‌تونید اونا رو مشاهده کنید.

لینک مقاله:
https://openreview.net/forum?id=BZ5a1r-kVsf
لینک ویدئو له‌کان:
https://www.youtube.com/watch?v=DokLw1tILlw
لینک ویدئو کیلچر:
https://www.youtube.com/watch?v=jSdHmImyUjk

#paper
#read

@nlp_stuff
جدایی آندره از ایلان

امروز آندره کارپثی، مدیر هوش مصنوعی تسلا (قبلا در این پست www.tg-me.com/nlp_stuff/198 یکی از تاک‌هاش رو بررسی کرده بودیم) در توییتی اعلام کرد که پس از ۵ سال به پایان همکاری با تسلا رسیده. از اونجایی که پروژه ماشین‌های خودران تسلا رو میشه جزو بزرگترین پروژه‌های جاری هوش مصنوعی دید و هم این که کارپثی جزو غول‌های هوش مصنوعی محسوب میشه (کارپثی الحق و الانصاف جزو معدود افرادی هست که هم در حوزه ریسرچ و هم صنعت حرف برای گفتن داره) ، جدایی این دو از هم جالب توجهه‌. این جدایی دو سوال رو در مورد آینده ایجاد میکنه، یک این که سرنوشت پروژه ماشین‌های خودران تسلا بعد از کارپثی به کجا میرسه و سوال مهم‌تر این که مقصد بعدی کارپثی کجاست؟

لینک توییت:
twitter.com/karpathy/status/1547332300186066944

#news

@nlp_stuff
مدل NLLB-200 از متا؛ ترجمه ماشینی ۲۰۰ زبانه

فرض کنید دیگه زبان یه محدودیت برای استفاده از سایت‌های مختلف و مکالمه با افرادی در زبان‌های دیگه نباشه. هدف ترجمه ماشینی همینه.
حالا گروه هوش فیس‌بوک یا همون Meta AI اومده یه گام بلند برداشته و اسم این گام رو No Language Left Behind (NLLB) گذاشته که این گام شامل دو تا پروژه‌ست:
اول. ترجمه ماشینی بین ۲۰۰ زبان! اما نه فقط برای زبان‌های معروف بلک حتی برای زبان‌های با منابع کم مثل اردو و اتریشی).
دوم. ترجمه صدا (speech) برای زبان‌های مختلف که برای همه زبان‌ها من جمله زبان‌هایی که ساختار نوشتاری استانداردی ندارند قابل استفاده‌ست.

این مدل نسبت به Google Translate یک مقدار محصوصا در زبان‌های کم‌منبع بهتر شده اما نکته مهم‌تر اینه که این مدل اوپن سورسه که ملت راه رو ادامه بدن. همین کافیه تا ببینید چقدر این کارشون ارزشمنده و بازی‌عوض‌کنه. این به کجا ختم میشه؟ به اونجا که شما مثلا میتونید توی متاورس با ملت از هر جای جهان تعامل داشته باشید و مثلا با هم بشینید جلسه کتابخوانی راه بندازید و هر کس به زبون خودش حرف بزنه. اونجا که کتاب‌ها به همه زبان‌ها ترجمه بشن مخصوصا از زبان‌های گمنام‌تر به زبان‌های پرطرفدارتر که در لینک اول پایین می‌تونید نمونه‌هاشو ببینید. جالب نیست؟
شروع این حرکت از معماری LASER در سال ۲۰۱۸ اتفاق افتاد که اون موقع از ۵۰ زبان پشتیبانی می‌کرد و واقعا مدل کارایی بود؛ قبلا هم از این مدل در کانال اسم آوردیم. چند مدل و دیتای دیگه داده شد تا رسید به LASER2 با پشتیبانی از ۱۰۰ زبان. بعد هم NLLB-200 که امسال دادند برای ترجمه‌ای ۲۰۰ زبانه و بعد دیتای NLLB-Data-200 و در نهایت LASER3 که وظیفه‌اش اینه که امبدینگ‌هایی بسازه که جملاتی که در ۲۰۰ زبان مختلف یک معنی میدن راحت پیدا بشن.
تا اینجا رو داشته باشید و یه سر به لینک‌ها بزنید تا در موعدی اگر عمر و وقت بیشتر بود مفصل مدلش رو هم شرح بدیم.


لینک دمو:
https://nllb.metademolab.com

لینک بلاگ کلی:
https://ai.facebook.com/research/no-language-left-behind/

لینک بلاگ جزئی‌تر:
https://ai.facebook.com/blog/nllb-200-high-quality-machine-translation/

لینک مقاله:
https://research.facebook.com/publications/no-language-left-behind/

لینگ ریپو (مدل، دیتا و…)
https://github.com/facebookresearch/fairseq/tree/nllb/

#read
#paper
#blog

@nlp_stuff
ارمغانی دیگر از قلمرو مولتی‌مودال! تولید تصاویر انسانی با استایل‌های مختلف.

جذابیت مدل‌‌های generative مخصوصا در حوزه تصویر داره میل به بی‌نهایت می‌کنه. مدل‌هایی مثل deep fake قبلا خیلی گرد و خاک کردند. اخیرا مدلی به‌نام Text2Human معرفی شده که با استفاده از جملات متنی یک استایل از انسان واقعی رو تولید می‌کنه. روش کارش به این صورته که شما در ورودی وضعیت بدنی (human pose) رو به صورت تصویر می‌دید (که هر تصویری می‌تونه باشه و خود دمو هم چندین مثال داره) و فرم لباس و بافت لباس مورد نظرتون رو به صورت جملات متنی می‌دید و مدل براتون تصاویر آدم‌هایی با همان ویژگی توصیف‌شده توسط شما رو تولید می‌کنه. شیوه کار کلی این مدل در دو گام اصلی خلاصه میشه. در گام اول یک تصویرخام از فرم بدن انسان (human pose)، تبدیل به یک قالب کلی انسان با یک لباس بدون بافت و شکل مشخص میشه (human parsing). سپس در گام دوم خروجی گام اول گرفته می‌شه و بافت و فرم لباس رو به تصویر گام قبل اضافه می‌کنه. نمای کلی مدل در تصویر زیر اومده. برای گام اول و تولید بردار بازنمایی قالب بدن انسان از جملات ورودی، از یک شبکه با چندین لایه fully connected استفاده می‌شه و این بردار بازنمایی به همراه تصویر خام به یک شبکه Auto Encoder داده میشه تا در خروجی یک قالب کلی از بدن انسان که فرم لباس در اون مشخصه ولی رنگ و بافت خاصی نداره رو خروجی بده. سپس برای گام دوم، خروجی تصویر گام اول به دو شبکه Auto Encoder همکار داده میشه که یکی مسوول بررسی ویژگی‌های سطح بالای تصویر استایل انسان هست و دیگری به صورت ریزدانه‌تری فیچر‌ها رو در نظر می‌گیره (فرض کنید در شبکه اول هر چند ده پیکسل مجاور هم تجمیع می‌شوند و به شبکه داده می‌شوند در حالیکه در شبکه دوم هر پیکسل یک درایه از بردار ورودی را تشکیل می‌دهد). از طرفی بازنمایی جملات نیز به این شبکه‌ها داده می‌شود. سپس برای اینکه این دو شبکه همکاری داشته باشند خروجی دیکودر شبکه اول به ورودی دیکودر شبکه دوم داده میشه. یعنی شبکه دوم علاوه بر دریافت خروجی encoder خودش، خروجی دیکودر شبکه اول رو هم دریافت می‌کنه و بعد اقدام به بازسازی تصویر نهایی می‌کنه. معماری این قسمت رو هم در تصاویر می‌تونید ببینید. این مدل بر روی هاگینگ‌فیس هم serve شده و می‌تونید دموش رو به صورت رایگان مشاهده کنید.

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

لینک دمو:
https://huggingface.co/spaces/CVPR/Text2Human

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

#read
#paper

@nlp_stuff
رهایی از دوراهی سخت؛ هم تنسورفلو، هم پایتورچ با IVY

تا به حال احتمالا با چالش سخت انتخاب بین تنسورفلو و پای‌تورچ مواجه شده باشید. اخیرا با اضافه شدن Jax هم این انتخاب سخت‌تر شده. اما تیم unifyai یه فریم‌ورک جدید به نام IVY معرفی کرده که یک syntax یکپارچه برای توسعه مدل‌های دیپ داره و صرفا با تنظیم backend این پکیج روی هر یک از فریم‌ورک‌های تنسورفلو، پای‌تورچ و یا jax می‌تونید از عایدات همون ابزار بهره‌مند بشید. البته این فریم‌ورک در مسیر توسعه است و با توجه به عمر کوتاهش اما تعداد استار بسیار زیادی گرفته که نشون میده به نظر راه درستی رو داره میره.

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

#tool

@nlp_stuff
گلچین مقاله‌های گرافی ICML2022

کنفرانس ICML (که یکی از معروف‌ترین کنفرانس‌های مربوط به ماشین لرنینگه) در هفته‌ای که گذشت برگزار شد و خب حالا نوبت دروی محصولاته. در همین راستا آقای Galkin اومدند و گلچینی از مهم‌ترین مقالات گرافی ICML2022 در حوزه‌های مختلف مثل مدل‌های Diffusion تولید گراف، ترنسفورمر‌های گرافی، استدلال الگوریتمی به کمک گراف و استدلال بر روی گراف‌های دانش و ... رو مرور کردند. در صورتی که سر و کارتون با فیلد ماشین لرنینگ گرافی هست میتونه مفید باشه براتون.

لینک بلاگ:
https://towardsdatascience.com/graph-machine-learning-icml-2022-252f39865c70

#read
#blog

@nlp_stuff
اوپن‌سورس‌ شدن جهان پروتئین‌ها توسط دیپ‌مایند

پروتئین‌ها واحد‌های پایه اعمال بایولوژیکی بدن انسان هستند. حمل اکسیژن‌ها توسط گلبول‌ها، تشخیص نور توسط چشم‌، حرکت ماهیچه‌ها و تشخیص سلول‌های سرطانی و خلاصه هر چه مکانیزم بایولوژیکی در هر چه موجود زنده هست رو پروتئین‌ها پی‌ریزی می‌کنند. هر پروتئین خودش از رشته‌ای از آمینواسید‌ها تشکیل شده (کلا ۲۰ نوع آمینواسید داریم) که طول این رشته میتونه تا چند هزار آمینواسید هم برسه. حالا نحوه تعامل و فعل و انفعالات بین این آمینواسید‌ها شکل سه‌بعدی یک پروتئین رو تعیین میکنه که بسیار پیچیده و دارای پیچ‌خوردگی‌ها و تا‌های زیادیه. از طرفی همین شکل سه‌بعدی پروتئین تعیین می‌کنه که پروتئین چه کاری و به چه صورتی انجام میده. ما اگر بدونیم میتونیم مثلا سریع‌تر علت بیماری‌ها رو بفهمیم و سریع‌تر براشون دارو و درمان پیدا کنیم یا حتی انزیم‌هایی رو کشف کنیم که بتونن پلاستیک رو بازیافت کنند.
برای چند دهه دانشمندان این حوزه تلاششون بر فهمیدن ساختار یک پروتئین از آمینواسید‌هاش بود که این تلاش‌ها به روش‌های آماری و بعد هم با ظهور ماشین لرنینگ به دیپ‌لرنینگ سپرده شدند. شرکت دیپ‌مایند در چند سال گذشته ابتدا مدل alphafold رو خلق کرد که میتونست همین تسک رو یعنی پیش‌بینی شکل سه‌بعدی هر پروتئین رو انجام بده. مدل alphafold یک مدل انقلابی در حوزه بیوانفورماتیک حساب میشه که یک مساله واقعی رو حل کرده. حالا دیپ‌مایند اومده و طی یک حرکت خفن پیش‌بینی مدل alphafold از شکل سه‌بعدی ۲۰۰ میلیون پروتئين (کل تعداد پروتئین‌هایی که در جهان تا حالا می‌شناسیم) رو اوپن‌سورس کرده! به امید این که سرعت در حوزه تحقیقات بایولوژی بالا بره.

لینک توضیح دیپ‌مایند:
https://www.deepmind.com/blog/alphafold-reveals-the-structure-of-the-protein-universe
لینک دیتابیس اوپن‌سورس شده:
https://alphafold.ebi.ac.uk/

پ.ن.: از این که پست‌های کانال رو به اشتراک می‌گذارید صمیمانه ازتون ممنونیم.

#read
#news

@nlp_stuff
معیار silhouette؛ بایدها و نبایدها

یکی از معیارهایی که برای سنجش کیفیت خوشه‌بندی ازش میشه استفاده کرد معیار silhouette است. در مسایلی که برچسب ground truth وجود نداره، برای ارزیابی کیفیت خوشه‌بندی باید از معیارهای ریاضیاتی استفاده کنیم تا کیفیت خوشه‌بندی مشخص بشه. این معیار به ازای هر سمپل در دیتا محاسبه میشه و برای محاسبه روی کل دیتا معمولا یه تجمیع مثلا از جنس میانگین بر روی اون انجام میشه. این معیار در واقع تشویق می‌کنه که سمپل‌های هر خوشه بهم نزدیک باشند و همزمان سمپل‌های یک خوشه بیشترین فاصله رو از نزدیکترین خوشه به خودشون داشته باشند. به همین دلیل هر چقدر خوشه‌ها چگال‌تر باشند و بهتر از هم جدا شده باشند، مقدار بزرگ‌تری به خودش می‌گیره. خروجی این معیار بین -۱ تا +۱ است که هر چقدر به +۱ نزدیک‌تر باشه نشون میده خوشه‌بندی بهتر انجام شده و هر چقدر به -۱ نزدیک‌تر باشه نشون میده سمپل‌ها به خوشه‌های اشتباهی تخصیص داده شدند. مقادیر نزدیک به صفر هم نشون‌دهنده اینه که خوشه‌ها به مقدار زیادی با هم همپوشانی دارند. اما یه نکته مهم که معمولا در استفاده از این معیار بهش توجه نمیشه، اون پیش‌فرضی هست که برای محاسبه این معیار درنظر گرفته شده. در واقع این معیار همواره برای خوشه‌هایی که شکل دایره‌ای تر دارند بیشتر از خوشه‌های غیر دایره‌ای شکل (همانند خوشه‌هایی که روشی مانند DBSCAN براتون درمیاره) خواهد بود. در صورتی که فهمیدید شکل خوشه‌ها از حالت دایره‌ای خارج شده باید از معیارهای دیگه‌ای برای سنجش کیفیت خوشه‌بندی استفاده کنید. یکی از این معیارها Bayes Information Criterion است که فرمولش رو در تصویر می‌تونید ببینید.

پ.ن: در تصویر زیر به ترتیب ۳ نوع دیتاست می‌بینید که در بالای تصویر امتیاز silhouette برای هر سه دیتاست به ترتیب و برای روش های مختلف کلاسترینگ نشون داده شده. همون ‌طور که میبینید برای دیتاست اول و دوم در حالی که روش mini-batch kmeans به طور اشتباه خوشه‌بندی رو انجام داده اما امتیاز بالاتری گرفته.

منابع:
[1] https://scikit-learn.org/stable/modules/clustering.html#silhouette-coefficient
[2] Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Chapter 9

#handsOn

@nlp_stuff
تیر آخر برای فهمیدن ترنسفورمرها!

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

لینک بلاگ:
https://e2eml.school/transformers.html

لینک پیاده‌سازی:
http://nlp.seas.harvard.edu/annotated-transformer

لینک ریپو:
https://github.com/dair-ai/Transformers-Recipe

#read
#blog

@nlp_stuff
مقاوم‌سازی شبکه عصبی در برابر انواع حملات خصمانه!

حتما در سال‌های اخیر در مورد Adversarial Attacks و ضعف شبکه‌های عصبی در تشخیص تصاویری که با افزوده شدن نویزهای کوچک تغییر داده شده‌اند شنیده‌اید. به طور مشخص، میتوان با افزودن نویز به تصاویر طوری که این نویز‌ها برای چشم انسان پنهان باشند، قدرت تشخیص شبکه‌ی عصبی که روی تصاویر سالم خوب کار می‌کند را به صفر رساند! از این رو در دهه‌ی گذشته محققین بسیاری سعی در یافتن روش‌های دفاعی (Defense Mechanism) برای مقابله با این حملات برآمده‌اند. اما مشکل اصلی این بوده که هر کدام از این روش‌های دفاعی حداکثر برای یک نوع حمله به شبکه‌های عصبی طراحی شده بودند و با آمدن روش جدیدی از حمله بلااستفاده یا بسیار ضعیف میشدند. از این رو سوال مهمی که مطرح شد این بود که میتوان شبکه‌های عصبی طراحی کرد که به ازای ورودی های مشخص، توان تشخیص درست را به ازای تمام حملات ممکن در یک همسایگی آن ورودی‌ها داشته باشد؟ از این رو فیلد جدیدی با عنوان Verification of Neural Networks مورد توجه قرار گرفت که سعی در اثبات ریاضی‌وار توانایی یک NN در تشخیص پیچیده ترین حملات (Adaptive and brute force attacks) دارد.

در کنفرانس اخیر ICML وورکشاپی تحت عنوان Workshop on Formal Verification of Neural Networks برگزار شد که مهمترین پیشرفت‌ها در این حوزه را در چند سال اخیر نشان می‌دهد. به طور ویژه یکی از این مقاله‌ها (با عنوان Improving adversarial robustness via joint classification and multiple explicit detection classes)، ایده‌ی Verification شبکه‌های عصبی که به طور توأمان Classification و Detection انجام میدهند را بررسی میکند.

یکی از راه‌های افزایش کارآیی شبکه‌های عصبی برای تشخیص Adversarial attackها افزودن Detector به شبکه‌ی عصبی است. منظور از Detector یک Binary Classifier است که تعیین میکند آیا ورودی داده شده تصویری سالم است یا مورد تغییر قرار گرفته است و به نوعی Adversarial حساب می‌شود؟ به طور مثال اگر می‌خواهیم از مجموعه داده‌ی MNIST برای train کردن شبکه‌ی عصبی استفاده کنیم که شامل ده کلاس است، میتوان کلاس یازدهمی اضافه کرد که وظیفه‌اش شناسایی عکس‌هایی است که دستکاری شدند. این مقاله به طور ویژه نشان می‌دهد که با افزودن تعداد بیشتری از این detectorها به Network، چگونه می‌توان توانایی تشخیص آن شبکه‌ی عصبی را بهبود داد. به طور مشخص این مقاله، نحوه‌ی Verify کردن و Train کردن چنین شبکه‌های پیچیده‌تری را شرح میدهد و با آزمایش‌های گوناگون روی داده‌های مختلف موثر بودن چنین روشی را نشان میدهد.

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

لینک ورکشاپ:
https://www.ml-verification.com

لینک مقاله:
http://download.huan-zhang.com/events/wfvml2022/papers/24_CameraReady_Camera%20Ready.pdf

#read
#paper

@nlp_stuff
مرور روش‌های SSL (Self-Supervised Learning) در پیش‌یادگیری NLP

آقا آمیت در این بلاگ پست (مال سال ۲۰۲۰عه) به صورت خیلی جمع و جور اومده یه مروری کرده که چه تسک‌هایی با SSL طراحی شدند که نقش pretext یا همون pretraining رو میتونند به عهده بگیرند. یکیش رو همین الان نقدا باید بدونید: Masked Language Modeling. این تسک شامل ماسک کردن کلمه و حدس زدنش توسط مدله که در برت استفاده شد. یازده تا روش این مدلی رو ایشون توضیح داده که مدل با اینا می‌تونه بدون اینکه لازم باشه داده‌ای لیبل بزنیم، از روی متن representationها رو یاد بگیره و بعد بتونه جلوی تسک‌های مختلف قدعلم کنه. اگر ده دقیقه وقت دارید، این بلاگ پست رو بخونید و لذت ببرید.

این یازده تا روش به صورت یکجا به اضافه‌ی مقالاتی که از این روش‌ها استفاده کردند:
Center Word Prediction (Continuous Bag of Words in Word2Vec)
Neighbor Word Prediction (skip-gram in Word2Vec)
Neighbor Sentence Prediction (Skip-Thought Vectors)
Auto-regressive Language Modeling (Neural Probabilistic Language Model, GPT)
Masked Language Modeling (BERT, RoBERTa and ALBERT)
Next Sentence Prediction (BERT)
Sentence Order Prediction (ALBERT)
Sentence Permutation (BART)
Document Rotation (BART)
Emoji Prediction (DeepMoji)
Gap Sentence Generation (PEGASUS)


لینک پست:
https://amitness.com/2020/05/self-supervised-learning-nlp/

#read
#blog

@nlp_stuff
چت‌بات blender bot 3 هدیه facebook research به مشتاقان حوزه چت‌بات!

چند روزی می‌گذره که تیم تحقیقاتی فیسبوک چت‌بات open domain خودش رو به صورت عمومی ریلیز کرده و کد و وزن مدل‌ها و یک دمو از این مدل رو در راه خدا نذر کرده! تیم فیس‌بوک ادعا کرده که این نذر رو در راه اعتلای جامعه تحقیقاتی انجام داده چرا که اینطوری راه تحقیقات در حوزه conversational AI باز میشه. این مدل در واقع یه سیستم عظیم ماژولار هست که از ماژول‌های مختلفی مانند Internet search decision، long term memory access decision، generate internet search query و چندین ماژول دیگه تشکیل شده که فلوی اجرایی کل این مدل رو در تصویر زیر می‌بینید. علاوه بر اینکه در ماژول‌هایی مثل generate dialogue response از ترنسفورمرها و مدل‌های زبانی مبتنی بر اون‌ها استفاده شده، برای انتخاب اجرای هر یک از این ماژول‌ها هم یه ترنسفورمر ترین شده که در لحظه به ازای یه سری ورودی کنترلی تصمیم می‌گیره کدوم فلو رو در پیش بگیره. البته دموی این مدل فعلا فقط برای مردم ینگه دنیا (آمریکا) در دسترس هست و فیس‌بوک گفته همزمان از دیتای دمو هم برای بهبود مدل داره استفاده می‌کنه. از طرفی فیس‌بوک، مکانیزم‌های امنیتی خاصی رو به کار برده برای اینکه خطرات احتمالی ناشی از سرچ‌های نابه‌جا مثل محتوای خشونت و غیره به حداقل برسه (در مورد بحث‌هایی مثل responsible AI هم قبلا صحبت کرده بودیم و باید کم کم خیلی بیشتر بهش توجه بشه). اگه در حوزه conversational AI کار می‌کنید داکیومنت‌ها و کد‌هایی که این تیم منتشر کرده رو حتما شخم بزنید، باشد که رستگار شوید.

پ.ن: خداوکیلی ببینید چقدر کار کردند ولی دارند رایگان همه چیز رو در معرض عموم می‌ذارند. با این کار باور کنید همه کامیونیتی از جمله خود تولیدکنندگان حظ و بهره می‌برند.

لینک گیت‌هاب:
https://github.com/facebookresearch/ParlAI/tree/main/projects/bb3

لینک بلاگ:
https://ai.facebook.com/blog/blenderbot-3-a-175b-parameter-publicly-available-chatbot-that-improves-its-skills-and-safety-over-www.tg-me.com/?utm_source=twitter&utm_medium=organic_social&utm_campaign=blenderbot

#paper
#read

@nlp_stuff
بالاخره لذت دسترسی به Stable Diffusion:

در طی یک سال مدل‌های تبدیل متن به تصویر زیادی منتشر شدند که البته اکثرا اوپن سورس نبودند و حسرت امتحان کردنشون بر دل ما ماند. حالا ساعاتی پیش مدل Stable Diffusion (که یک مدل تبدیل متن به تصویر هست) اوپن سورس شد.
اگر میخواید توسط بستر اسپیس هاگینگ فیس امتحان کنید (که البته اینقدر بهش هجوم آوردن سخت جواب میده)
https://huggingface.co/spaces/stabilityai/stable-diffusion

اگر هم می‌خواید خودتون کد رو ران کنید (اگر خودتون GPU دارید یا حتی با کولب هم میشه ران گرفت):
https://huggingface.co/CompVis/stable-diffusion-v1-4

پ.ن: تصویر چند تا نمونه‌ای که خودمون تونستیم خروجی بگیریم رو هم قرار دادیم. بعضی از کپشن‌های مربوطه این تصاویر اینگونه بودند:
'Jesus, Painting, Cubism'
'Carl Fredricksen from Up was dead all along according to this depressing fan theory. octane render. cinematic. hyper realism. high detail. 8k. pixar.'
'An old man who eats the books. octane render. cinematic. hyper realism. high detail. 8k. pixar'
'Tom Holland in his old age. octane render. cinematic. hyper realism. high detail. 8k.'
'Tom Holland eating a apple. octane render. cinematic. hyper realism. high detail. 8k.'
'A desperate young Iranian. octane render. cinematic. hyper realism. high detail. 8k.'
'Angela Merkel with hijab'
'birds playing football'

برید لذتش رو ببرید

@nlp_stuff
2025/07/04 09:00:43
Back to Top
HTML Embed Code: