#رشتوی تمیز و ساده! :)
یه مدل زبانی مثل ChatGPT چطور کار می کنه؟
با شروع سال ۲۰۲۳! تب هوش مصنوعی رفت بالا و خیلی ها حتی بدون اینکه آگاهی داشته باشن که این مدل ها چطور کار می کنن افتادن تو یه چیزی به نام چت بات!
الان میخوام یه سرو گوشی آب بدیم ببینم پشتش چه خبره 👇
یه تاریخچه ریز بریم:تحلیلگرا میگن که بازار NLP ( یا پرداز زبان انسانی) از 11 میلیارد دلار (2020) به + 35 میلیارد دلار (2026) میرسه.اندازه مدل و تعداد پارامترهای درگیر نیز زیاده.تو این نمودار میبینید که چطور اندازه مدل های LLM تو چند سال گذشته زیاد شده
توضیح LLM یا مدل زبان بزرگ نوعی مدل یادگیری ماشینیه که برای پردازش و تولید متن زبان طبیعی طراحی شده .این مدلها معمولاً مبتنی بر تکنیکهای یادگیری عمیق هستن و بر روی مقادیر عظیمی از دادههای متنی آموزش داده میشن تا الگوها و روابط در زبان را یاد بگیرن.
مدلهای زبان بزرگ را میشه برای انواع وظایف پردازش زبان طبیعی، مانند ترجمه زبان، خلاصهسازی متن، پاسخگویی به سؤال و تولید متن استفاده کرد. تا دیروز
GPT-3 (Generative Pre-trained Transformer 3)
قوی ترین مدل بود OpenAI بود که 175 میلیارد پارامتر داشت. حالا GPT4 را ببینید! 🤯
همه اینایه الگوی ساده(قابل فهم)و درعین حال پیچیده ای دارن
ورودی ->پردازش-> خروجی
تصور کنید یک مدل محاسبه گر اون وسطه که بر اساس ورودی داره بهتون خروجی میده و جالبه که جوابی که میده( جملات)دنباله ای از کلماتن که پشت سر هم محاسبه میشن و تولید میشن.عین هدفگیری با تفنگ دوربین داره
اگه تو بازی های شوتر دیده باشید شما چند ثانیه زمان میخواید که رو هدفتون فیکس کنید. اینم همین جوری میاد و شروع به تولید زنجیره ای از کلمات می کنه تا به نزدیک ترین جواب برسه و اون جواب نهایی را به شما تحویل میده.
این پست را اگه تا آخرش دوام بیارید متوجه میشید چی به چیه:)
حالا این زنجیره جلمات از کجا میان؟ #شبکه_عصبی
این یک ساختار شبکه ای هست که توش اعداد از یک طرف وارد میشن و بر اساس احتمالات هی جمله ها را سورت می کنند. برای کلمات از LLMs یا Large Language Models استفاده میشه که یه کم روش استفاده اش متفاوته
داخل LLMs ها یک ساختاری استفاده میشه به نام ترانسفورماتور که پتانسیل های بسیار زیادی را به مدل های زبانی میده. در واقع ترانسفورماتور خودش یک مدل یادگیری عمیقه که مکانیسم توجه به خودش را انتخاب می کنه و به طور متفاوت به هر بخش از ورودی (که شامل خروجی بازگشتیه) یه وزن میده.
بیاید یه کم ملسموس تر و به طور خاص روی «کلمات» صحبت کنیم.
توی مدلهای زبانی به جای اینکه هر کلمه یه ورودی باشه، میتونیم کلمه ها را به نشانه هایی تقسیم کنیم که می تونن کلمات، زیرکلمه ها، کاراکترها یا نمادها باشن. توجه کنید که تو این ساختار حتی فضاهای بین کلمات هم حسابن!
اما این که بیایم کاملا همه کلمات رو صرفا با اعداد نشونه گذاری( یا همون Tokenize) کنیم و هر وقت مدل مون نیاز به یه چیزی برای پر کردن جمله داشت بریم سراغ کلمات و بکشیمشون بیرون میشه همون مدل های خل و چل قدیمی!
حالا کار جهادی :) یعنی کاری که بچه های OpenAi کردن چی بود؟ این که اومدن از embedding یا سیستم تعبیه گذاری کلمات با معانی مشترک تو یه بردار چند بعدی استفاده کردن.
تو عکس می بینید نسبت و فاصله سگ و گربه نسبت به اتاق و خونه چطوریه! این جایی هست که معنا درگیر میشه
حالا فقط نزدیکی کلمات مشابه نیست. Embeddings یه سری مقیاس بندی هم میکنه. مثلا پاپی و سگ و گربه یه فاصله معناداری با هم دارن.
اگه همین تعبیه گذاری را برای جمله سازی استفاده کنیم چی میشه؟
روی این جمله ای که تو تصویر میبینیم چه اتفاقی میفته تو پروسه ما؟
اول ترانسفورماتور میاد ورودی ما را توی این نمودار کد گذاری می کنه.
بعد یه فرایندی به نام ( attention) یا توجه میاد و یه مقدار معنای بیشتری ( Context) به ساختار ما میده.
میخوام Attention را باز کنم. تصور کنید رفتید بانک و میخواید وام بگیرید. اون چیزی که باعث میشه جمله صحیح را انتخاب کنید میشه توجه به کانتکست:
- وام منو بده جیگر
- توله سگ وام منو بده
- اگه مقدوره با وام بنده موافقت کنید
- من وام میخواهم،آن را به من اعطا بفرمایید
حالا این embeddings یا تعبیه گذاری گیر این هست همیشه که چه کلمه ای انتخاب کنه بده به شما.
bank of the river ( ساحل رودخانه )
Money in the bank ( پول در بانک )
مثل ما آدما، وقتی قرار هست که یک معنا درک بشه از بانک به سایر قسمت های جمله هم باید توجه بشه. پول و رودخانه مهمن اینجا
فرآیند توجه از طریق جمله برای کلماتی که زمینه را برای بانک کلمه فراهم می کنن، به گذشته هم نگاه می کنه
بعد میاد جاسازی را دوباره وزن می کنه تا کلمه بانک از نظر معنایی به کلمه "رودخونه" یا "پول" نزدیکتر بشه. تو عکس میبینید که برای مقایسه هر دو جمله چطور عمل می کنه
حالا این یه جمله ساده هست. همین فرایند را چندین ( چند صد) بار تو پردازش های سریع اتفاق میفته تا برسه به یه جمله نسبتا صحیح. بعد این را میندازه تو یه مدل عصبی ( عصبی مثل ایرانی ها نه) تا احتمالات ممکن برای پیوستگی جملات و همچنین صحیح بودن نسبت به تاریخچه استفاده اش مشخص بشه
مثلا روی اون داده Train ( یا تمرین ) داده شده اگه هیچ وقت نتونه : توله سگ من وام میخوام را پیدا کنه، احتمال جواب دادن با این فرمت هم بسیار کم میشه. در واقع مدلهای زبانی یا LLMs برای فهمیدن و تولید یک داده اولیه نیاز دارن که پردازش زبانی درستی پیدا کنند.
این یک توضیح بسیار ساده شده از ChatGPT بود که من بخش های خیلی زیادی از اون را حذف کردم تا قابل فهم برای عوام بشه. توی این لینک کامل تر و بهترش توضیح داده برید بخونید عش کنید
writings.stephenwolfram.com/2023/02/what-i…
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.