DeepMind AI Expert
یا دوران توکنایز کردن در NLP به سر رسیده؟
پ.ن: وقتی میگن سرعت تو هوش مصنوعی دیوونه کننده است یعنی چی؟
دقیقا همین روزی که من این متن رو نوشتم و صرفا جهت ضایع کردن من شرکت Meta یه پژوهشی رو منتشر کردن که Byte Pair Encoding همچینم خوب نیست و راه های بهتری هست. واقعا خوب شد خیلی با جزئیات توضیحش ندادم و گرنه میسوختم ازین که کلی وقت گذاشتم.
راستش الان هم قصد ندارم این روش جدید رو خیلی توضیح بدم. صرفا ارجاعتون میدم به این توئیت که اگه علاقه داشتید بیشتر بخونید. منم میرم سراغ نوشتن قسمت دوم که امروز دیگه وقتشه.
#language_modeling
@SingularThinker
دقیقا همین روزی که من این متن رو نوشتم و صرفا جهت ضایع کردن من شرکت Meta یه پژوهشی رو منتشر کردن که Byte Pair Encoding همچینم خوب نیست و راه های بهتری هست. واقعا خوب شد خیلی با جزئیات توضیحش ندادم و گرنه میسوختم ازین که کلی وقت گذاشتم.
راستش الان هم قصد ندارم این روش جدید رو خیلی توضیح بدم. صرفا ارجاعتون میدم به این توئیت که اگه علاقه داشتید بیشتر بخونید. منم میرم سراغ نوشتن قسمت دوم که امروز دیگه وقتشه.
#language_modeling
@SingularThinker
Telegram
Singular Thinker
مدلسازی زبان - قسمت اول
میخوای بدونی چطوری ربات chatgpt خودتو بسازی و باهاش پول دربیاری؟ پس این مطلبو بخون تا نشونت بدم.
نه وایسا اینجا ازین خبرا نیست ولی بجاش تلاش میکنم تا در مورد چیزای جالبی در مورد مدل های زبانی که در موردشون صحبت شده با هم حرف بزنیم…
میخوای بدونی چطوری ربات chatgpt خودتو بسازی و باهاش پول دربیاری؟ پس این مطلبو بخون تا نشونت بدم.
نه وایسا اینجا ازین خبرا نیست ولی بجاش تلاش میکنم تا در مورد چیزای جالبی در مورد مدل های زبانی که در موردشون صحبت شده با هم حرف بزنیم…
🔥2💅1
مدلسازی زبان - قسمت دوم
خب تو متن اول راجع به این صحبت که مواد لازم برای ساخت یه chatbot مثل chatgpt چی باید باشه و در مورد مجموعه دادگان و شرایط ساطوری کردنش یکم توضیح دادیم. حالا الان بریم سراغ مدل که اصن چه مدلی برای مدلسازی زبان میشه استفاده کرد و در واقع بر اساس سوالی که مطرح شد تو کامنت پست قبلی بریم بیینم به چه چیزی میگن مدل زبانی اصلا؟!
بحث مدلسازی زبانی یا همون Language Modeling یه نوع مدلسازی احتمالی زبان طبیعی یعنی همین زبان هایی که ما باهاش به طور رومزه سر و کار داریم هست. مدل زبانی مدلیه که احتمال لغت بعدی رو در یک جمله یا مجموعه از کلمات بر حسب بافتار کلمات قبلی پیشبینی میکنه. مثل قابلیت predictive text که روی کیبوردهای گوشی هست که وقتی داریم تایپ میکنیم کلمه بعدی رو حدس میزنه.
این کلمه یه اصطلاح رایج تو فیلد پردازش زبان طبیعی یا همون NLP عه و تاریخچه نسبتا قدیمی داره که بر میگرده به سال ۱۹۸۰. ازین مدلها برای انجام تسک ترجمه ی ماشینی (Machine translation) استفاده میشده و برای همین منظور کلی از پیشرفت ها ابتدا روی این تسک تست میشده.
من همون طور که تو متن قبلی هم اشاره کردم تخصصی تو NLP ندارم اما بد نیست یه نگاهی بندازیم به تاریخچه این قضیه و یه دید کلیای بدست بیاریم ازینکه الان کجاییم و چطوری رسیدیم به اینجا.
بیاید خیلی به عقب بریم تا ببینیم این ایده دیدن زبان به صورت یه مدل احتمالاتی که هر کلمه رو بر اساس کلمات قبلی پیشنهاد میکنه به کجا برمیگرده؟ در این صورت باید برگردیم به نیمهی قرن ۲۰ جایی که کلاود شانون داشت سعی میکرد انتروپی زبان انگلیسی رو حساب کنه[1]. شانون این کار رو بر حسب پیشبینی لغت بعدی توسط آدم ها انجام میداد[2,3]. جزئیات کار خفن آقای شنون باشه برای جای دیگهای ولی واقعا یه روز دوست دارم تک تک پیپرای این مرد رو بخونم.
خب حالا بذارید کار رو با یک مثال پیش ببریم. فرض کنید این جمله «من کتابم را به دوستم علی دادم و به او گفتم ... » به ما داده شده و از ما خواستن که مدلی آماری بسازیم که کلمه بعدی رو پیشبینی کنه. اگه بخوایم خیلی ساده به قضیه نگاه کنیم و فرض کنیم که به یه مجموعه دادگان خیلی خیلی بزرگ دسترسی داریم میگیم که میریم تو مجموعه دادگانمون نگاه میکنیم که بعد از این جمله چه کلماتی اومده و هر کدوم چندبار تکرار شدن و به نسبت این تکرار احتمال هر کلمه رو حساب میکنیم. اما همون طور که تو متن قبلی هم اشاره کردم احتمال اینکه یه جمله عینا تکرار بشه خیلی کمه برای همین این روش عملا کارا نیست. ولی آیا لازمه که دنبال همهی این جمله تو مجموعه دادهها بگردیم و آیا صرفا دو سه کلمه قبل از جای خالی کفایت نمیکنه؟
اینجاست که فرض Markov بودن وارد کار میشه. شما در اصل با در نظر گرفتن اینکه صرفا سه کلمه قبل هر جای خالی کافی هست برای پیش بینی احتمال کلمه بعدی داری یه فرض سنگینی رو دادگانت میذاری ولی در عوض این اجازه رو میدی که مدلسازیات کارا بشه و این کاری هست که در IBM در دهه ۸۰ میلادی در ادامه خط فکری شانون انجام دادن و بهش میگن Word n-gram language model. حالا وقتی n=2 باشه به این مدل میگن bigram و وقتی که n=3 باشه بهش میگن trigram.
علی رغم اینکه دیدن که این مدلها میتونن تا حدی تو برخی زمینه ها خوب کار بکنن ولی در عمل مشاهده کردن که مدل bigram بعد از ۱۰۰ میلیون کلمه و مدل trigram بعد چند میلیارد کلمه به اشباع میرسه و اضافه کردن کلمات جدید دقت مدل رو افزایش نمیده که این به خاطر فرض های خیلی قوی هست که رو مجموعه دادگانمون فرض کردیم که غیرواقعیه. در واقع این مدلها از ویژگیهای اینکه داده ما مربوط به یه زبان مشخصی هست استفاده ای نمیکنن و از این روش میشه برای مدل کردن یه دنبالهای از نمادهای چرت و پرت هم استفاده کرد و بنابراین میشه حدس زد که چرا این روشها خیلی موثر نیستند. اما کار به اینجا ختم نمیشه و مدلهای بعدی جایگزین این مدلهای ساده میشن و کار رو ادامه میدن[4].
خب فک کنم برای این قسمت کافی باشه و در قسمت بعدی در مورد مدل های بر پایه شبکه عصبی بازگشتی یا همون Recurrent neural network(RNN)ها صحبت میکنیم.
#note #language_modeling
@SingularThinker
خب تو متن اول راجع به این صحبت که مواد لازم برای ساخت یه chatbot مثل chatgpt چی باید باشه و در مورد مجموعه دادگان و شرایط ساطوری کردنش یکم توضیح دادیم. حالا الان بریم سراغ مدل که اصن چه مدلی برای مدلسازی زبان میشه استفاده کرد و در واقع بر اساس سوالی که مطرح شد تو کامنت پست قبلی بریم بیینم به چه چیزی میگن مدل زبانی اصلا؟!
بحث مدلسازی زبانی یا همون Language Modeling یه نوع مدلسازی احتمالی زبان طبیعی یعنی همین زبان هایی که ما باهاش به طور رومزه سر و کار داریم هست. مدل زبانی مدلیه که احتمال لغت بعدی رو در یک جمله یا مجموعه از کلمات بر حسب بافتار کلمات قبلی پیشبینی میکنه. مثل قابلیت predictive text که روی کیبوردهای گوشی هست که وقتی داریم تایپ میکنیم کلمه بعدی رو حدس میزنه.
این کلمه یه اصطلاح رایج تو فیلد پردازش زبان طبیعی یا همون NLP عه و تاریخچه نسبتا قدیمی داره که بر میگرده به سال ۱۹۸۰. ازین مدلها برای انجام تسک ترجمه ی ماشینی (Machine translation) استفاده میشده و برای همین منظور کلی از پیشرفت ها ابتدا روی این تسک تست میشده.
من همون طور که تو متن قبلی هم اشاره کردم تخصصی تو NLP ندارم اما بد نیست یه نگاهی بندازیم به تاریخچه این قضیه و یه دید کلیای بدست بیاریم ازینکه الان کجاییم و چطوری رسیدیم به اینجا.
بیاید خیلی به عقب بریم تا ببینیم این ایده دیدن زبان به صورت یه مدل احتمالاتی که هر کلمه رو بر اساس کلمات قبلی پیشنهاد میکنه به کجا برمیگرده؟ در این صورت باید برگردیم به نیمهی قرن ۲۰ جایی که کلاود شانون داشت سعی میکرد انتروپی زبان انگلیسی رو حساب کنه[1]. شانون این کار رو بر حسب پیشبینی لغت بعدی توسط آدم ها انجام میداد[2,3]. جزئیات کار خفن آقای شنون باشه برای جای دیگهای ولی واقعا یه روز دوست دارم تک تک پیپرای این مرد رو بخونم.
خب حالا بذارید کار رو با یک مثال پیش ببریم. فرض کنید این جمله «من کتابم را به دوستم علی دادم و به او گفتم ... » به ما داده شده و از ما خواستن که مدلی آماری بسازیم که کلمه بعدی رو پیشبینی کنه. اگه بخوایم خیلی ساده به قضیه نگاه کنیم و فرض کنیم که به یه مجموعه دادگان خیلی خیلی بزرگ دسترسی داریم میگیم که میریم تو مجموعه دادگانمون نگاه میکنیم که بعد از این جمله چه کلماتی اومده و هر کدوم چندبار تکرار شدن و به نسبت این تکرار احتمال هر کلمه رو حساب میکنیم. اما همون طور که تو متن قبلی هم اشاره کردم احتمال اینکه یه جمله عینا تکرار بشه خیلی کمه برای همین این روش عملا کارا نیست. ولی آیا لازمه که دنبال همهی این جمله تو مجموعه دادهها بگردیم و آیا صرفا دو سه کلمه قبل از جای خالی کفایت نمیکنه؟
اینجاست که فرض Markov بودن وارد کار میشه. شما در اصل با در نظر گرفتن اینکه صرفا سه کلمه قبل هر جای خالی کافی هست برای پیش بینی احتمال کلمه بعدی داری یه فرض سنگینی رو دادگانت میذاری ولی در عوض این اجازه رو میدی که مدلسازیات کارا بشه و این کاری هست که در IBM در دهه ۸۰ میلادی در ادامه خط فکری شانون انجام دادن و بهش میگن Word n-gram language model. حالا وقتی n=2 باشه به این مدل میگن bigram و وقتی که n=3 باشه بهش میگن trigram.
علی رغم اینکه دیدن که این مدلها میتونن تا حدی تو برخی زمینه ها خوب کار بکنن ولی در عمل مشاهده کردن که مدل bigram بعد از ۱۰۰ میلیون کلمه و مدل trigram بعد چند میلیارد کلمه به اشباع میرسه و اضافه کردن کلمات جدید دقت مدل رو افزایش نمیده که این به خاطر فرض های خیلی قوی هست که رو مجموعه دادگانمون فرض کردیم که غیرواقعیه. در واقع این مدلها از ویژگیهای اینکه داده ما مربوط به یه زبان مشخصی هست استفاده ای نمیکنن و از این روش میشه برای مدل کردن یه دنبالهای از نمادهای چرت و پرت هم استفاده کرد و بنابراین میشه حدس زد که چرا این روشها خیلی موثر نیستند. اما کار به اینجا ختم نمیشه و مدلهای بعدی جایگزین این مدلهای ساده میشن و کار رو ادامه میدن[4].
خب فک کنم برای این قسمت کافی باشه و در قسمت بعدی در مورد مدل های بر پایه شبکه عصبی بازگشتی یا همون Recurrent neural network(RNN)ها صحبت میکنیم.
#note #language_modeling
@SingularThinker
Telegram
Singular Thinker
مدلسازی زبان - قسمت اول
میخوای بدونی چطوری ربات chatgpt خودتو بسازی و باهاش پول دربیاری؟ پس این مطلبو بخون تا نشونت بدم.
نه وایسا اینجا ازین خبرا نیست ولی بجاش تلاش میکنم تا در مورد چیزای جالبی در مورد مدل های زبانی که در موردشون صحبت شده با هم حرف بزنیم…
میخوای بدونی چطوری ربات chatgpt خودتو بسازی و باهاش پول دربیاری؟ پس این مطلبو بخون تا نشونت بدم.
نه وایسا اینجا ازین خبرا نیست ولی بجاش تلاش میکنم تا در مورد چیزای جالبی در مورد مدل های زبانی که در موردشون صحبت شده با هم حرف بزنیم…
❤12👍3🔥1💅1
Singular Thinker
مدلسازی زبان - قسمت دوم خب تو متن اول راجع به این صحبت که مواد لازم برای ساخت یه chatbot مثل chatgpt چی باید باشه و در مورد مجموعه دادگان و شرایط ساطوری کردنش یکم توضیح دادیم. حالا الان بریم سراغ مدل که اصن چه مدلی برای مدلسازی زبان میشه استفاده کرد و در…
بچه ها من رو این متن ها واقعا وقت میذارم و حس میکنم که خیلی برای بعضیا میتونه مفید باشه پس اگه دوست داشتید برای کسایی که فک میکنید جالبه براشون بفرستید.
اگه نظری یا پیشنهادی داری بهم بگید حتما که مثه سری پیش بتونم بهشون جواب بدم.
اگه نظری یا پیشنهادی داری بهم بگید حتما که مثه سری پیش بتونم بهشون جواب بدم.
🔥13👍1
با اینکه خیلی سال سختی بود ولی کتابای خوبی خوندیم و شاید اینا تونست کمک کنه که دووم بیارم. امیدوارم سال آینده بیشتر بخونم. شما هم اگه دوست داشتید بفرستید برام کتابایی که خوندید و آیدی گودریدزتون رو .
@SingularThinker
@SingularThinker
❤11💅1
مدلسازی زبان - قسمت سوم
خب تو قسمت دوم در مورد تعریف مدلهای زبانی و یک مدل خیلی ساده صحبت کردیم. تو این قسمت میخوایم در مورد 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 زیبا که قبلا هم تو این پست بلاگ هاشو معرفی کرده بودم.
ادامه ⬇️😱
خب تو قسمت دوم در مورد تعریف مدلهای زبانی و یک مدل خیلی ساده صحبت کردیم. تو این قسمت میخوایم در مورد Recurrent Neural Network (RNN) یا همون شبکههای عصبی بازگشتی صحبت کنیم که یکی از اولین مدلهایی بر پایه شبکه عصبی بود که در دنیای واقعی مورد استفاده قرار گرفت و از اون در سیستم عامل اندروید برای تبدیل صوت به متن و همچنین جستجوی صوتی سایت Google استفاده شد.
⚠️توجه: اگه با کلیت مفهوم شبکههای عصبی آشنا هستید میتونید پارگراف بعدی رو رد کنید.
خب همین طوری که از اسمشون مشخصه شبکههای عصبی بازگشتی نوعی از شبکههای عصبی هستن. ایده پشت شبکههای عصبی بازگشتی خیلی قابل درکه. من اگه از شما بپرسم که تو این عکس گربه هست یا نه شما برای جواب دادن به این سوال شما به اطلاعات اضافه بر این عکس احتیاج نداری. در حالیکه اگه من یه جمله رو در اختیار شما قرار بدم و بگم تو این جمله ضمیر «تو» به چه کسی برمیگرده شما نیاز داری که جمله و شاید حتی جملات قبلی رو هم داشته باشی تا بتونی تشخیص بدی. پس حالا اگه یه دیتای ترتیبی(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 زیبا که قبلا هم تو این پست بلاگ هاشو معرفی کرده بودم.
ادامه ⬇️😱
Telegram
Singular Thinker
مدلسازی زبان - قسمت دوم
خب تو متن اول راجع به این صحبت که مواد لازم برای ساخت یه chatbot مثل chatgpt چی باید باشه و در مورد مجموعه دادگان و شرایط ساطوری کردنش یکم توضیح دادیم. حالا الان بریم سراغ مدل که اصن چه مدلی برای مدلسازی زبان میشه استفاده کرد و در…
خب تو متن اول راجع به این صحبت که مواد لازم برای ساخت یه chatbot مثل chatgpt چی باید باشه و در مورد مجموعه دادگان و شرایط ساطوری کردنش یکم توضیح دادیم. حالا الان بریم سراغ مدل که اصن چه مدلی برای مدلسازی زبان میشه استفاده کرد و در…
🔥6👍3❤1
ولی حوالی سال ۲۰۰۶ با استفاده ار نوعی از 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
معماری ترنسفورمر خیلی رازآلود و معماگونه به نظر میرسه تا حدی که من به گوش خودم شنیدم که خیلی از استادای مطرح در سطح جهان میگن که بخشهایی از اون رو نمیفهمند و اصلا این که چرا چنین چیزی رو پیشنهاد کردند و چرا انقدر خوب کار میکنه. من سعی خواهم کردم یکمی سرنخهایی که بخشی از اون ها هم همین اخیرا علنی شد رو با هم پیگیری کنیم و با کمک هم یکمی دقیقتر بشیم و ببینیم پشت این ماجرای ترنسفورمرها چی خوابیده؟
اما شاید از این مطلب من این طور به نظر برسه که دوران 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
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
@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
خب تو قسمت سوم در مورد شبکههای عصبی بازگشتی ومشکلاتش صحبت کردیم و به این اشاره کردیم که کار رسید به سال ۲۰۱۷ و معماری ترنسفورمر توسط گوگل معرفی شد. ازون به بعد بواسطه یه سری از ویژگیهایی که داشت تبدیل شد به یکی از پایههای اصلی برای ساخت 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
دسته بندی براساس نوع پستها:
هشتگ #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
Telegram
Singular Thinker
مدلسازی زبان - قسمت اول
میخوای بدونی چطوری ربات chatgpt خودتو بسازی و باهاش پول دربیاری؟ پس این مطلبو بخون تا نشونت بدم.
نه وایسا اینجا ازین خبرا نیست ولی بجاش تلاش میکنم تا در مورد چیزای جالبی در مورد مدل های زبانی که در موردشون صحبت شده با هم حرف بزنیم…
میخوای بدونی چطوری ربات chatgpt خودتو بسازی و باهاش پول دربیاری؟ پس این مطلبو بخون تا نشونت بدم.
نه وایسا اینجا ازین خبرا نیست ولی بجاش تلاش میکنم تا در مورد چیزای جالبی در مورد مدل های زبانی که در موردشون صحبت شده با هم حرف بزنیم…
👍2💅2