Singular Thinker – Telegram
Singular Thinker
949 subscribers
405 photos
17 videos
5 files
250 links
We talk about things that find them interesting.
توی این کانال از مطالبی که برامون جذاب باشه حرف
میزنیم، یا مطالب جذاب بقیه رو نشر می‌دیم.
Contact/راه ارتباطی:
@Singular_Thinker
Download Telegram
مدلسازی زبان - قسمت سوم

خب تو قسمت دوم در مورد تعریف مدل‌های زبانی و یک مدل خیلی ساده صحبت کردیم. تو این قسمت میخوایم در مورد Recurrent Neural Network (RNN) یا همون شبکه‌های عصبی بازگشتی صحبت کنیم که یکی از اولین مدل‌هایی بر پایه شبکه عصبی بود که در دنیای واقعی مورد استفاده قرار گرفت و از اون در سیستم عامل اندروید برای تبدیل صوت به متن و هم‌چنین جستجوی صوتی سایت Google استفاده شد.

⚠️توجه: اگه با کلیت مفهوم شبکه‌های عصبی آشنا هستید میتونید پارگراف بعدی رو رد کنید.

اگه با شبکه عصبی مصنوعی آشنا نیستید فرض کنید که یه جعبه‌ای هست که به ازای هر ورودی یک خروجی برمیگردونه. معمولا ورودی و خروجی‌های این جعبه از جنس بردار با طول مشخص هستن. حالا داخل جعبه یه سری پیچ تنظیم‌شونده وجود داره که با تغییر اونا میتونید تابع داخل جعبه رو عوض کنید و هر تابعی از ورودی به خروجی رو تخمین بزنید. اگه واستون سواله که چرا اصن تابع مفهوم مهمیه یک دیقه اول این ویدئو رو ببینید. فرآیند training یا آموزش به فرآیند یاد گرفتن تنظیم بهینه این پیچ‌ها گفته میشه به‌طوری که به ازای ورودی‌های مختلف خروجی شبکه نزدیک به خروجی مد نظر ما رو برگردونه. پس ما یه تعدادی داده ورودی و خروجی رو به عنوان نمونه داریم که با اون‌ها training رو انجام میدیم. خب من فک کنم تا قدری که فعلا برای این متن نیاز به درک شبکه عصبی بود رو گفتم و برای ادامه مطلب میتونید سری ویدیوهای بسیار زیبای 3blue1brown رو ببینید. هم‌چنین این پست قدیمی کانال هم میتونه قابل توجه باشه.

خب همین طوری که از اسمشون مشخصه شبکه‌های عصبی بازگشتی نوعی از شبکه‌های عصبی هستن. ایده پشت شبکه‌های عصبی بازگشتی خیلی قابل درکه. من اگه از شما بپرسم که تو این عکس گربه هست یا نه شما برای جواب دادن به این سوال شما به اطلاعات اضافه بر این عکس احتیاج نداری. در حالی‌که اگه من یه جمله رو در اختیار شما قرار بدم و بگم تو این جمله ضمیر «تو» به چه کسی برمیگرده شما نیاز داری که جمله و شاید حتی جملات قبلی رو هم داشته باشی تا بتونی تشخیص بدی. پس حالا اگه یه دیتای ترتیبی(sequential data) مثل کلمات یک جمله داشته باشیم شبکه عصبی‌مون دو تا ورودی میگیره یکی کلمه در هر لحظه و یکی دیگه یه بردار حافظه که اومده تمام اطلاعات مفید لحظات قبلی رو تو خودش ذخیره کرده. مثل وقتی که یکی براتون پشت تلفن یه قصه‌ی بلندی رو تعریف میکنه و شما یه سری یادداشت برمیداری تا بتونی اطلاعات جدید رو پردازش کنی. به این بردار جدید hidden state یا memory state میگن.(تصویر در کامنت)

در مورد اینکه چرا بهش میگن حافظه تو پاگراف بالا توضیح دادم. حالا به این فکر کنید که به شما دمای هوا، سرعت باد، میزان رطوبت و چند ویژگی دیگه برای روزهای اخیر رو دادند و از شما میخوان که وضعیت هوا رو برای چند روز آینده پیش‌بینی کنید. همون طور که میدونید این مسئله مشکلی هست و خیلی مشخص نیست که شما
چطوری باید این کارو انجام بدید. اما ممکنه در چند سال آینده مشخص بشه که یه متغییر مخفی هست که با دونستن اون راحت میشه وضعیت هوا رو پیش‌بینی کرد. این مدل یعنی همون RNNها سعی میکنن اول اون متغییر نهان رو بسازن و بعد بر اساس اون پیش‌بینی رو انجام بدن و برای همین به اون متغییر میگن hidden state و با حرف h نشونش میدن. فرم کلی معادله RNN ها به صورت زیره:
h_[t+1] = g(h_[t], x_t)
x_[t+1] = f(h_[t+1])

که x_t هم ورودی در هر لحظه است و در آخر مقدار آخرین x_[t+1] پیش بینی لحظه بعد رو نشون میده.

اما این شبکه‌های عصبی بازگشتی مشکلاتی هم داشتند؟ برای جواب این سوال بیاید برگردید به مثال خودمون که میخواستیم ببینیم این ضمیر "تو" به چه اسمی برمیگرده؟ حالا سوال اینجاست که آیا این مدل‌های RNN میتونن جواب رو پیدا کنن؟ جواب این سوال اینه که بستگی داره که اون اسم در چه فاصله ای از جمله ما باش. اگه فاصله کم باشه معمولا اوکیه ولی اگه فاصله زیاد باشه این مدل‌ها معمولا جواب خوبی نمیدن. یعنی اینکه انگار این مدل‌ها مثه ماهی گلی/قرمز یا همون انیمیشن Nemo هستن و حافظه‌ی کوتاه مدت قوی‌ای ندارن و برای تشخیص وابستگی‌های با فاصله‌ی زیاد (long-range dependencies) خوب کار نمیکنن.

علت وقوع این مشکل رو که بهش vanishing gradient میگن رو در سال ۱۹۹۴ Yashua Bengio تو یه مقاله جالب بررسی میکنه و تو سال ۱۹۹۷ آقا Schmidhuber به همراه شاگردش درصدد رفعش برمیان و یه دسته جدید از RNNها رو معرفی میکنن که بهشون LSTM میگن که در واقع سرواژه‌های Long short-term memory هست. (این آقای Schmidhuber واقعا ورقی هستن که باید تو یه متن جداگانه بهشون بپردازم حتما :))))‌ ). خلاصه خیلی وارد جزئیات بیشتر LSTM نمیشم و توضیح بیشتر رو میسپارم به این بلاگ پست از colah زیبا که قبلا هم تو این پست بلاگ هاشو معرفی کرده بودم.

ادامه ⬇️😱
🔥6👍31
ولی حوالی سال ۲۰۰۶ با استفاده ار نوعی از LSTMها تونستن که انقلابی در بازشناسی گفتار speech recognition برپا کنن‌و از مدل های سنتی جلو بزنن و میتونید تصور کنید که این روند همین‌طور ادامه داشت تقریبا تا سال ۲۰۱۷ که مدل‌های ترنسفورمر سر و کله‌شون پیدا شد و یه قدم خیلی بزرگ ایجاد کردند تا حدی که از اون موقع تا همین الان که ما چیزهایی مثل chatgpt رو داریم رو میشه گفت تا حد زیادی مرتبط با همین پیدایش ترنسفورمرها میدونیم. انقدر تو زمینه‌های مختلف موفقیت داشته که مقاله attention is all you need که توسط تیم گوگل در سال ۲۰۱۷ ارائه شد که توش معماری ترنسفورمر رو اونجا برای اولین بار معرفی کردن تا الان نزدیک به ۱۵۰ هزار تا ارجاع داشته. 🤯 (در عرض ۷ سال)

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

اما شاید از این مطلب من این طور به نظر برسه که دوران RNNها به طور کلی تموم شده و دیگه این‌ مدل‌ها از رده خارج شدن در حالی که این طور نیست و مدل‌های جدیدی همچنان در حال منتشر شدن هستن که دارن سعی میکنن خوبی‌های ترنسفومر و RNNها رو با هم داشته باشن. مثلا میشه به مدل هایی مثل Linear RNNها شامل Mamba و DeltaNet اشاره کنم که در مورد Mamba در این پست یه توضیح مختصری دادیم. همچنین xLSTM و minLSTM و minGRU که هر دو در سال گذشته و توسط تیم Bengio و آزمایشگاه منتشر کننده LSTM در شهر لینز هستن اشاره کرد. همچنین کلی کارهای تئوری جهت بررسی دقیق‌تر اتفاقی که در هنگام آموزش این شبکه‌ها رخ میده در حال انجامه. اگه جلوتر وقت بشه در مورد برخی از این مدل‌ها هم توضیح خواهم داد. ولی فعلا در قسمت بعدی صحبت میکنیم که به چی چی میگن attention و بلاخره این دوستانمون تو گوگل ایده ترنسفورمر رو از کجاشون در آوردن؟

در آخر توصیه میکنم اگه نسبت به RNNها کنجکاو هستید که حتما بلاگ پست آقا Andrej Karpathy رو که سال ۲۰۱۵ نوشتن رو به همراه نحوه پیاده‌سازی RNNها از دست ندید.
جالبیش اینه همون موقع هم karpathy و هم colah پیشبینی کرده بودن که attention یه جهت امیدوارکننده برای آینده خواهد بود که همین طور هم شد.

#note
#language_modeling
@SingularThinker
🔥9👍1
برای نمونه و آشنایی با شخصیت عجیب و جالب آقای Schmidhuber مثلا ببنید بزرگوار میکن که ۶۰ سالگی تازه اول جوونیه.

The GOAT of tennis @DjokerNole said: "35 is the new 25.” I say: “60 is the new 35.” AI research has kept me strong and healthy. AI could work wonders for you, too!

🔗 Jürgen Schmidhuber (@SchmidhuberAI)

#tweet #language_modeling
@SingularThinker
👍3🔥1
Singular Thinker
مدلسازی زبان - قسمت سوم خب تو قسمت دوم در مورد تعریف مدل‌های زبانی و یک مدل خیلی ساده صحبت کردیم. تو این قسمت میخوایم در مورد Recurrent Neural Network (RNN) یا همون شبکه‌های عصبی بازگشتی صحبت کنیم که یکی از اولین مدل‌هایی بر پایه شبکه عصبی بود که در دنیای…
بچه‌ها اگه خوندید میشه بهم بگید این توضیحی که من دادم رو متوجه میشید؟(اگه کامنت بذارید خیلی بهتره ولی ری اکشنم قبوله.)
مخصوصا اونایی که خیلی با موضوع آشنا نبودن. راستش اصن نمیدونم که میتونم مفهوم رو منتقل کنم یا نه صرفا دارم تمرین میکنم تو این سری ولی حس میکنم سری مطالب خوبی خواهد شد ولی حتما بهم فیدبک بدید تا بشه بهترش کرد همین طور که یواش یواش داریم پیش میریم.

سوالی یا ابهامی هم اگه بود حتما بپرسید که من یا بقیه اگه بلد بودیم راهنمایی کنیم. اگه پیشنهادی دارید هم من به شدت استقبال میکنم.
🔥6👍3💅1
Singular Thinker
Photo
این #meme هم میریم که یه تنوعی بشه هم بخاطر میم آخر و پیوستن خانم zara به OF که من همین یه هفته پیش که داشتم تو یوتیوب میگشتم دنبال مطلب دیدم که چقدر ویدئوهاشون پرطرفداره😂🤦‍♂این ویدئو رو ببینید مثلا ۷۰۰ هزارتا ویو داره ولی بازم کفاف زندگی رو نمیداده گویا‌. وضع اقتصادی خرابه به نظر.
@SingularThinker
4💅3👎1🔥1
مدلسازی زبان - قسمت چهارم

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

خب پس بریم سر اصل مطلب. تا اینجا تو قسمت اول گفتیم که برای ساختن یه چت‌باتی مثل chatgpt به سه ماده اولیه احتیاج داریم:
یک- مدلِ به قدر کافی بزرگ(معمولا شبکه عصبی ترنسفورمر)
دو- مجموعه‌ی دادگان بسیار بسیار بزرگ
سه-تعداد بسیار زیادی gpu یا همون پردازنده گرافیکی برای اجرای برنامه بر روی آن

بعد گفتیم که با ترکیب این سه ماده و در طی دو مرحله(pre-training, fine-tuning) چت‌بات ما حاضره. ما تمرکزمون رو گذاشتیم که مورد اول رو با هم بررسی کنیم و تا الان در قسمت دوم و سوم مدل‌های زبانی قدیمی‌تر از ترنسفورمر رو بررسی کوتاهی کردیم. درباره‌ی مورد دوم و سوم از مواد لازم من توضیح خیلی خاصی ندارم که بدم شاید چون تجربه و دانشی خاصی خیلی در موردشون ندارم. فقط شاید بپرسید داده خیلی خیلی زیاد از کجا بیاریم؟ از هر جا که تونستید :)) و اینکه gpu به چه درد میخوره؟ به درد انجام محاسبات ماتریسی به طور سریع میخوره که در این مورد وقتی با ساختار ترنسفورمر آشنا شدیم یکم بیشتر توضیح میدم. سوال تکراری هم بپرسید که از کجا گیر بیاریم جواب تکراری میدم که از هر کجا که شد و دستتون رسید. پس به طور خلاصه :
ChatGPT = GPT + fine-tuning procedure
GPT(Generative Pre-trained Transformer) = a large language mode(LLM)

این Generative اش برمیگرده به این خاصیت مدل زبانی که متن تولید میکنه و pre-trained هم اشاره به فرآیند آموزش روی داده‌های بزرگ داره و این پیشوند pre نشون میده که باز هم میشه آموزشش داد.
حالا به چی چی میگن داف نه ببخشید ترنسفورمر؟ ترنسفورمر یک معماری به خصوص از شبکه عصبیه که شامل چهار بخش کلی هست که تو عکس پایین میبینیم:
- Embedding
- Encoder
- Decoder
- Unembedding

بخش Encoder و Decoder خودشون از دو بخش اصلی تشکیل شده که به ترتیب Multi-Head Attention و MLP یا feed-forward NN هست که راجع به هر کدوم تو قسمت‌های آینده توضیح میدم و با هم میریم جلو.

ولی الان صرفا بیاید به این فکر کنیم که چطوری جملات رو تبدیل به یه مشت عدد کنیم به طوری که معنا رو برای ما کدگذاری کنه؟ برای جواب این سوال این پست قبلی کانال رو بخونیم تا در قسمت بعدی بریم سراغ attention تا ببینیم همه ی چیزی هستش که بهش احتیاج داریم یا نه؟

منبع اصلی پست قبلی و این پست هم ویدئوهای بسیار زیبا از کانال 3blue1brown (سه آبی یه قهوه‌ای) هست که خیلی توصیه میکنم که خرد خرد شروع کنید به دیدن ویدئوهاش و عششش کنید.

سوال یا نظری داشتید بگید حتما و اگه دوست داشتید واسه بقیه هم بفرستید.
#notes #language_modeling
@SingularThinker
👍6🔥1
راهنمای مطالب کانال:

دسته بندی براساس نوع پست‌ها:

هشتگ #note برای یادداشت‌هایی که مینویسم
بعد #tweet و #video که مشخصه.
پادکستایی که حال بکنم رو با #podcast معرفی میکنم و همین طور #music. کلی #meme هم داریم. یه سری #شعر هم هست و در آخر ویدئوهای #youtube کانال رو هم میتونید بیابید.

دسته‌بندی براساس محتوا:
به طور کلی مطالب مربوط به ریاضی با #math و اون اوایل چندتا مطلب خوب در مورد #game_theory گذاشتم اگر دوست داشتید چک کنید.

یه سری راهنما برای #apply نوشتم و گاها #phd_position ها رو به اشتراک گذاشتم.

یه سری ابزار و توصیه در مورد تحقیق و پژوهش هم بوده که میشه با #research_stuff پیداشون کرد.

دو سه بار یه سری دوره هم معرفی کردم با #course اگه دوست دارید بگید بیشتر بذارم من کلی کورس میشناسم تو زمینه‌های مختلف.

با هشتگ #language_modeling هم میتونید پست‌های مربوطه‌ به chatgpt‌ و LLMها رو پیدا کنید.

یه سری وبینار و غیره مربوط به فیلد #learning_theory هم گذاشتم ولی فک کنم مخاطبای این مطالب خیلی کم باشیم. یکی از ترجیحای من این بود که اینجا علاوه بر مطالب عمومی یکم تخصصی‌تر هم در مورد این فیلد حرف بزنیم اگه پایه‌اید و علاقه‌مند یه ندا بهم بدید.

مطالب سریالی:
مدلسازی زبانی - قسمت اول/دوم/سوم/چهارم/ پنجم/ ششم/

فضای هیلبرت - معرفی/ قسمت اول/ قسمت دوم
توضیح نگار در مورد فضای هیلبرت

فضای هیلبرت reproducing kernel یا همون RKHS - قسمت اول/ قسمت دوم

اخیرا هم یه سری ویدئو از نظریه اطلاعات گذاشتم رو کانال یوتیوبم که میتونید اینجا پیداشون کنید:
مقدمات نظریه اطلاعات:‌جلسه اول/ دوم/ سوم / چهارم

در انتها هر نظر یا پیشنهادی یا هر حرفی دارید میتونید به صورت شناس به آیدی تو بیو و ناشناس با این لینک بگید بهم.
خرد یارتون و keep learning

@SingularThinker
👍2💅2
Singular Thinker pinned «راهنمای مطالب کانال: دسته بندی براساس نوع پست‌ها: هشتگ #note برای یادداشت‌هایی که مینویسم بعد #tweet و #video که مشخصه. پادکستایی که حال بکنم رو با #podcast معرفی میکنم و همین طور #music. کلی #meme هم داریم. یه سری #شعر هم هست و در آخر ویدئوهای #youtube…»
Mathematician and polymath John von Neumann was born on 28th December in 1903.

He could speak eight languages by the age of six, including Ancient Greek and Latin. He could divide eight-digit numbers in his head at the age of six. He was familiar with differential and integral calculus by the age of eight. He entered the University of Budapest at the age of 15 and earned a degree in chemical engineering at the age of 19. He obtained his Ph.D. in mathematics from the University of Berlin at the age of 22.

🔗 Physics In History (@PhysInHistory)

#tweet
@SingularThinker
5👍1💅1
نگار می‌گوید که
فروغ از انسان‌های موردعلاقه‌ی منه‌. من هیچوقت از آدم‌ها بت نمیسازم و نمیپرستمشون چون مسلما همه "آدمیم" و عاجز! ولی فاکتور‌های تحسین‌برانگیز آدم‌ها خیلی به چشمم میاد و وقتی اسم فروغ رو میشنوم فقط و فقط صفت جسارت توی ذهنم میاد. جسارت انتخاب کردن و جسارت زندگی…
جالب که زادروز فروغ و فان نیومن تو یه روز شده، دو تا انسان مورد علاقه من که جفتشون خیلی زود مردن :( یکی ۳۲ سالگی یکی دیگه ۵۳ سالگی.

به قول شفیعی کدکنی: 《هیچ روشنفکری بهتر از فروغ به ستیزه با سنّت برنخاست.》
🔥4💅1
My book is (at last) out, just in time for Christmas!
A blog post to celebrate and present it:
https://francisbach.com/my-book-is-out/

🔗 Francis Bach (@BachFrancis)

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

#learning_theory #tweet
@SingularThinker
👍4🔥2