Project – Telegram
کورس CS 11-711 برای آپگرید‌شدن در پردازش زبان

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

لینک کورس و اسلایدها:
http://phontron.com/class/anlp2021/schedule.html
راه جنرالیزیشن از اورفیت می‌گذرد

معمولا رسم بر این بوده که هر وقت مدل به حالت overfit میرسه آموزش‌دادنش متوقف بشه و دیگه امیدی به اصلاح مدل نمیره. اما مقاله‌ای اومده و نشون داده که در صورت ادامه به آموزش مدل، خیلی خیلی گام بعدتر از اورفیت هم همچنان میتونه اتفاق جالبی که به عنوان grokking نامگذاری شده، بیافته. توضیح این مقاله رو میشه در دو بخش تسک تعریف شده و پدیده‌ی رخداده در فرآیند آموزش پی گرفت.
در قسمت تعریف تسک، این مقاله یک تسک تقریبا نمادی (symbolic) رو درست کرده‌اند. به این صورت که تابعی دلخواه از دو سیمبل ورودی که هر کدوم میتونن مقادیر نمادی a و b و .. را بپذیرند را در نظر گرفته اند. مقدار این تابع برای تمامی مقادیر ممکن ورودی محاسبه میشه (جدول پیوست شده رو میتونید نگاه کنید) و تعدادی از خانه‌های این جدول خالی می‌شوند و باقی به عنوان داده آموزشی به مدل داده می‌شود. حال مدل بایستی با آموزش روی داده‌های داده شده، جاهای خالی جدول را پر کند.
اما نکته اصلی مقاله، در فرآیند آموزش آن قرار دارد. پس از تعدادی گام آموزش، مدل بر روی دادگان آموزشی اورفیت میکند در حالی که دقت آن بر روی داده‌های validation تقریبا صفر است. اما با ادامه دادن آموزش حتی پس از اورفیت، پس از تعداد خیلی خیلی زیادی گام آموزشی، در نهایت مدل به یکباره و سرعت از اورفیت خارج میشود و دقت آن بر روی داده‌های validation به ۹۹ درصد می‌رسد که این پدیده grokking نامگذاری شده است.
نکته جالب این ماجرا در این جاست که داشتن داده کم ولی ادامه دادن آموزش پس از اورفیت می‌تواند منجر به مدلی بهتر از مدلی با تعداد داده بیشتر شود. البته که مقیاس تعداد گام‌های لازم بسیار زیاد است و مساله از نظر عملی قابل اشکال است.

در صورت علاقه‌مندی بیشتر می‌تواند یوتیوب توضیحات کیلچر درباره این مقاله را ببینید:
https://youtu.be/dND-7llwrpw
لینک مقاله:
https://mathai-iclr.github.io/papers/papers/MATHAI_29_paper.pdf
در انتقال یادگیری از لایه‌های میانی غافل نشوید

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

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

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

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

#read
#paper

لینک کانال

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

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

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

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

#read

لینک کانال
https://news.1rj.ru/str/project_ml
سلام دوستان
@project_ml
من امروز به نکته جالب و مهمی رسیدم که مایلم باهاتون به اشتراک بزارم تا شما هم استفاده کنین
بر خلاف نحوه نوشتن مقاله ای که ما میدونیم و عمل میکنیم (‌حداقل من)٫ از گفتن عنوان به استاد و استاد راهنما و پارتنرمون شروع میکنیم و بعد شاید چکیده رو بنویسیم و..... اما مطلبی که قابل توجه هست اینه که طبق مطلبی که در سایت الزویر منتشر شده٫ مراحل توصیه شده چیز بسیار متفاوتیه! انتخاب عنوان جزو مراحل آخر نگارش یک مقاله است! و مثلا من که شروع به نوشتن میکردم همزمان به هرجا که میرسیدم رفرنس رو درج میکردم اما رفرنس زدن دقیقا آخرین مرحله است! این مطلب منحصرا برای نوع خاصی از مقالات نیست و پیشنهاد میکنم حتی اگر مقالات داخلی کنفرانسی هم مینویسین این مطلب رو بخونین
https://www.elsevier.com/connect/11-steps-to-structuring-a-science-paper-editors-will-take-seriously

کانال تلگرامی

https://news.1rj.ru/str/project_ml
من کلا راجع به GPU On demand نوشتم و برای Spot isntance ها قضیه یه مقدار متفاوته.
1. AWS
من با ‌AWS کار کردم و حدودا ساعتی ٣ دلار بهتون یک GPU V100‌می‌ده(یعنی مثلا ۸ تاش یکساعت می‌شه ۲۴دلار). خوب V100 قدیمی تر از A100 و خیلی اوقاتم GPU هاش پرن و اون instanceی که میخواید توی اون زمانی که می‌خواید گیرتون نمیاد. برای A100 فکر کنم باید حداقل ۸ تا GPU بگیرید و دونه‌ای هم ۴دلار ساعتی می‌ده.
2. Lambda
تجربم با لامبدا این بود که یه workstation خریده بودیم ازشون و یه شرکت خیلی کوچیک هستن. ولی نرخ‌های کلاودشو دیده بودم.
لامبدا ادعا می‌کنه که من V100 رو ۱.۵ دلار می‌دم ولی من چک کردم باید حداقل ۸تا V100 همزمان استفاده کنید که بهتون ساعتی ۱.۵دلار رو بده. اگه شما فقط می‌خواید یه مدل Train کنید و بعدش ذخیره کنید کارتون تموم می‌شه و کدتون هم راحت Multi-GPU می‌شه خوب Lambda به نظرم قیمتش نصفه و یا کمتره و اصلا هدف Lambda هم به نظرم همینه. مثلا برای کارهای دانشگاهی و مقاله و ....
ولی اگه می‌خواید یه pipeline کامل داشته باشید خوب باید روی یه سیستم cloud واقعی داشته باشید اونو برای همین باید از AWS یا GCP استفاده کنید. چون که Train مدل فقط یه بخشی از کل pipelineتونه و اون ۱.۵ دلار ساعتی اضافه هم برای حتی شرکت‌های استارتاپ هم چیزی نیست.
3. GCP
در خصوص GCP من فقط اینو می‌دونم که instance های GPUش برای Deep Learning خیلی تنوعش بیشتر از AWSه. برای همین توصیم برای Train کردن مدل دیپ لرنینگ اونه.
https://lambdalabs.com/service/gpu-cloud/pricing
CS 224: Advanced Algorithms
Prof. Jelani Nelson TF: Jeffrey Yan
http://people.seas.harvard.edu/~minilek/cs224/fall14/index.html
سلام اگر از بین دوستان میتونند چندتا اسم خوب برای گفتگوهای مصاحبه با افراد موفق پیشنهاد بدهند ممنونم میشم مثلا

1. Mind beautiful
2. Brain and robot

و .....
لطفا کامنت بزارید
COURSE
Foundations of Deep Learning" course covering deep learning opt, robustness, domain generalization, NTK, GANs, VAE, flows, meta/contrastive learning, interpretability, deep RL

https://colab.research.google.com/drive/1ElEaLiW6PGyXObYGAdULk8ArGd8nLU7p?usp=sharing
Video Lecures https://www.youtube.com/playlist?list=PLHgjs9ncvHi80UCSlSvQe-TK_uOyDv_Jf
سلام اگر از بین دوستان موافق باشند چالش برنامه نویسی قرار به مدت ۱۰۰ روز هر روز به مدت یک ساعت یک مسئله برنامه نویسی رو حل کنیم
زبان برنامه نویسی پایتون ، سی پلاس پلاسه

سطح هم از مبتدی شروع میکنیم تا پیشرفته ( به صورت قدم به قدم )

100 days of code


رو شروع کنیم

از افرادی که علاقه مند هستند لطفا بهم پیام بدهند
@reza_12_34
Project
سلام اگر از بین دوستان موافق باشند چالش برنامه نویسی قرار به مدت ۱۰۰ روز هر روز به مدت یک ساعت یک مسئله برنامه نویسی رو حل کنیم زبان برنامه نویسی پایتون ، سی پلاس پلاسه سطح هم از مبتدی شروع میکنیم تا پیشرفته ( به صورت قدم به قدم ) 100 days of code …
قضیه این چالش چیه؟

باید چیکار کنیم؟
قوانین این چالش به این شکله که روزانه در کمترین حالت حداقل ۱ ساعت کد بنویسید، اگر هم خواستید می تونید با هشتگ #چالش_صدروزه_کدنویسی ما رو در جریان کارهاتون قرار بدید و یادتون باشه همیشه تداوم و ثبات در کارها نتیجه میده .
نتایج این چالش چیه؟


1- نمونه کار های خوبی می سازید:

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


۲- تقویت مهارت هاتون:

شما می تونید مجموعه مهارتهای خودتون رو افزایش بدید و زبان ها ، فریم ورک ها و کتابخانه های جدید رو یاد بگیرید.



۳- نظمتون رو بهبود می بخشه:

در چالش 100 روزه ی کدنویسی می تونید برنامه ریزی داشته باشید و بهره وری و نرخ یادگیری خودتون رو افزایش بدید.

4- عادت های قدرتمندی می سازید:

ساختن عادت مداوم یادگیری چیزهایی جدید باعث میشه توسعه دهنده ی قوی تر و بهتری بشید.
به نمودار نتیجه چالش 100 روزه ی برنامه نویسی ذیل خوب نگاه کنید:

اکثرا افراد اینجا دست از تلاش می کشن دقیقا نقطه ای که قرار اوج بگیرند.