چتباتها یا مدلهای زبانی محاورهای (Conversational language model) یا مدلهای زبانی بزرگ زیر شاخهای از هوش مصنوعی Artificial Intelligence هستند که با تحولات سالهای اخیر و توسعه شبکههای عصبی عمیق Deep Neural Network و Transformerها ممکن شدهاند. این مدلها زیر مجموعه هوش مصنوعی مولد (Generative AI) هستند.
این چت بات ها
- توانایی پاسخ به سوالات،
- انجام کار (task) داده شده برای مثال “نوشتن پاراگرافی در مورد کشور ایران”، “دستور العمل پختن قرمه سبزی” یا “نوشتن کد به زبان پایتون برای محاسبه بزرگترین مقسوم علیه مشترک دو عدد” و
- فراهم کردن پاسخ متنی
را دارند.
تمامی این موارد با الگوریتمهای محاسباتی و احتمالاتی بعد از یادگیری از متون و کتابها و صفحات وب و پردازشهای مختلف میانی و بهینهسازی ممکن شدهاند. شکل زیر به صورت خلاصه مراحل از نوشتن پرامپت (دستور ورودی متنی به چتبات) تا تولید خروجی توسط چتبات (متن خروجی پاسخ) را نمایش میدهد.
توضیح روش عملکرد الگوریتم را به صورت خیلی کلی به صورت زیر است:
الگوریتم پایه چتباتها به نحوی نوشته شده تا «ادامه منطقی[1]» متنی که به عنوان ورودی گرفته است را ایجاد کند
- که در آن «منطقی» به معنی کلمهای است که از فردی بعد از دیدن متون نوشته شده توسط افراد در میلیاردها وب سایت یا صفحات کتاب انتظار می رود تا بنویسد.
- توانایی اصلی چتبات یافتن تمامی متنهای مشابه و بعد یافتن بسیار سریع کلمات ممکن بعدی و احتمال ممکن برای هر کدام است به صورت لیستی از کلمات و احتمالات مربوط به آنها است.
برای مثال فرض کنید عبارت داده شده ورودی
“The best thing about AI is its ability to”
باشد. شکل زیر خروجی مدل نوعی چتبات را نمایش میدهد.
نمونه هایی با چتبات:
تمرین
- خودتان امتحان کنید و پرامپت بنویسید؟
- آیا شباهتی بین این الگوریتم و الگوریتم جستجوی گوگل میبینید؟
سوال اصلی اینه که این احتمالات از کجا و چطوری محاسبه میشوند.
۱- از کجا؛ دیتا آموزشی برای pretraining چه دیتایی بوده است؟
۳۰۰ میلیارد توکن، برای پیش آموزش GPT-3 استفاده شده است. جدول زیر دادههای مورد استفاده برای پیش آموزش GPT-3 را نشان میدهد. این مقدار یکی از پارامترهای معرفی چتبات است. این عدد برای مدل GPT-4، بیش از ۱۰۰ تریلیارد توکن گزارش شده است.
۲- احتمالات چطوری حساب میشوند؟
با یادگیری شبکه عصبی بسیار عظیم، برای مثال با ۱۷۵ میلیارد پارامتر در GPT-3. در واقع پیشپردازش pre_train شدن یک چتبات یعنی یادگیری همین وزنها. تعداد پارامترهای یک شبکه عصبی هم یکی از معیارهای مشخص کننده و متمایزکننده عملکرد چتباتها است. برای این کار به قدرت پردازشی بسیار زیاد (پردازندههای GPU) نیاز است. توضیح دقیق نحوه پیشپردازش، یادگیری و tunning چتبات خارج از محتوی این درسنامه است.
برای فهم بهتر پیشنهاد میکنم درسنامه ؟ و ویدیو را ببینید.
توضیح دقیق و شرح بلوک دیاگرام های فوق خارج از محتوی این درسنامه است. فقط به برخی مفاهیم بسیار مهم میپردازیم چون در فهم نحوی کارکرد سیستم چتبات بسیار مهم هستند:
- چنین سیستم هایی با کلمه به تنهایی عملکرد مناسبی ندارند، زیرا کلمه نمیتواند مقدار مناسبی از بافت (Context) موضوعی را منتقل نمیکند.
- مقدار متنی شبیه جمله یا بیشتر لازم است تا شامل بافت (Context) موضوعی باشد و آنرا منتقل کند که در ادبیات فنی LLM به آن Token گفته میشود. متن ورودی پرامپت هم در نهایت به صورت Token فهمیده میشود.
در بخش بعدی از تعدادی مثال برای ذهنیت بخشیدن به مفهوم بافت (Context) موضوعی استفاده میکنیم.
[1] reasonable continuation