درس ۱
حدس کلمهی بعدی
نیمهی دوم «هر که بامش بیش» خودبهخود یادتان آمد؛ مدل پشت چتجیپیتی هم فقط همین کار را میکند.
شما هم مثل مدل، ادامه را حدس میزنید
اینها را در ذهنتان تمام کنید:
- از تو حرکت،
- کبوتر با کبوتر،
- تا تنور گرم است،
- قطره قطره جمع گردد،
ادامهی هر کدام فوری یادتان آمد، چون صدها بار شنیدهاید. حالا «امروز صبح رفتم» را تمام کنید. این بار جوابها یکی نیست: یکی میگوید نانوایی، یکی دانشگاه، یکی سر کار؛ همهشان هم درستاند.
مدل زبانی بزرگ (large language model)، یعنی برنامهی پشت چتجیپیتی، در اصل فقط همین کار را میکند. متنی را که تا اینجا نوشته شده میبیند، کلمهی بعدی را حدس میزند، آن را به متن اضافه میکند و دوباره حدس میزند. هر جواب بلند چتجیپیتی همین یک قدم است که بارها پشت سر هم تکرار شده.
مدل به هر ادامهی ممکن یک احتمال میدهد
همین بازی را روی لپتاپ خودم و بدون اینترنت با مدل کوچکی از همین نوع به اسم «آیا اکسپنس» (aya-expanse:8b) کردم و نیمهی اول ۱۲ ضربالمثل را به آن دادم. مدل در هر قدم به هر ادامهی ممکن یک احتمال (probability) میدهد و بعد یکی را مینویسد.
بعد از «هر که بامش بیش،» مدل به «بر» احتمال ۹۹٫۹٪ داد، یعنی تقریباً مطمئن بود. «بر» اولِ «برفش» است؛ مدل این کلمه را تکهتکه نوشت: «بر» و «ف» و «ش». اینکه چرا کلمه را تکه میکند، موضوع درس بعد است.
اما بعد از «امروز صبح رفتم» مدل مطمئن نبود. محتملترین تکه «سر» بود، آن هم فقط با ۶٪ احتمال؛ «بازار» ۴٪ داشت و «دانشگاه» ۲٪. درست مثل آدمها: وقتی ادامهی جمله معلوم نیست، هر کس چیزی میگوید.
خودتان ببینید مدل بعد از هر نیمه چه حدس زد
یکی از نیمهها را انتخاب کنید تا ده تکهای را ببینید که مدل بعد از آن از همه محتملتر میدانست. طول هر نوار احتمال همان تکه است و نوار پر یعنی صددرصد.
این اعداد را مدل «آیا اکسپنس» (aya-expanse:8b) روی لپتاپ خودم و بدون اینترنت داده است و در هر قدم محتملترین تکه را نوشته است. هر تکه ممکن است فقط بخشی از یک کلمه باشد.
روان بودن متن دلیل درست بودنش نیست
از این ۱۲ ضربالمثل، مدل فقط «هر که بامش بیش» را همانطور تمام کرد که ما میگوییم. بعد از «تا تنور گرم است،» نوشت «آشپزخانه سرد است». جمله روان است، ولی ربطی به ضربالمثل ندارد. حتی محتملترین تکهی اول فقط ۳٪ احتمال داشت، اما در جمله هیچ نشانی از این تردید نیست.
چتباتها جوابهای غلطشان را هم همینطور مینویسند. هر کلمه با کلمههای قبلی جور است، پس متن روان درمیآید؛ ولی در هیچ قدمی بررسی نمیشود که حرف درست است یا نه. مدلی که من امتحان کردم کوچک بود و مدلهای بزرگ پشت چتباتها را نسنجیدهام، ولی آنها هم با همین روش مینویسند.
مدل در هیچ کتابی دنبال جواب نمیگردد
خیلیها فکر میکنند مدل جواب را از جایی پیدا میکند. اگر در کتاب ضربالمثلها میگشت، یازده تای دیگر را هم درست تمام میکرد. مدل قبلاً با حدس زدن کلمهی بعدی در حجم عظیمی از متن یاد گرفته که چه ادامهای محتمل است.
رد پای آن متنها پیداست: بعد از «برفش بیشتر» نوشت «پایگاه خبری»، مثل تیتر یک سایت. بعضی چتباتها اول در اینترنت جستوجو میکنند، ولی جواب را باز با همین حدس مینویسند.
ده دقیقه با قلم و کاغذ
نیمهی اول شش ضربالمثل و دو جملهی نیمهتمام را روی کاغذ بنویسید و از سه نفر از اطرافیانتان بخواهید تمامشان کنند. برای هر کدام بشمارید هر جواب را چند نفر دادهاند: سه جواب یکسان مثل «بر» است و سه جواب مختلف مثل «امروز صبح رفتم».
بعد با یک کلمه شروع کنید، از جمع بپرسید کلمهی بعدی چیست، پرتکرارترین جواب را بنویسید و دوباره بپرسید. چند دور که بگذرد، جملهای ساختهاید که هیچکس بهتنهایی ننوشته است.
کلمهی بعدی را در متن خودتان بشمارید
همین شمارش را مرورگرتان هم انجام میدهد. متنی بنویسید یا بچسبانید و در خانهی «کلمه» یک کلمه بنویسید تا ببینید بعد از آن چه کلمههایی آمده و هر کدام چند بار. روی هر کلمه بزنید تا به جمله اضافه شود و شمارش از آن کلمه ادامه پیدا کند.
جملهی شما:
این شمارش فقط کلمهی قبلی را میبیند، ولی مدل زبانی همهی متنی را که تا اینجا نوشته شده میبیند.
واژهنامهی این درس
- مدل زبانی بزرگ (large language model): برنامهای که از روی حجم عظیمی از متن یاد گرفته کلمهی بعدی را حدس بزند.
- احتمال (probability): اینکه یک ادامه چقدر شانس دارد، از صفر تا صددرصد. جمع احتمال همهی ادامهها صددرصد میشود.
- توکن (token): تکهای از متن که مدل با آن کار میکند، گاهی یک کلمه و گاهی بخشی از آن، مثل «بر» در «برفش».
بقیهی نوشتههایم در وبسایتم هست. «یادگیری آخر هفته» خواهر فارسی خبرنامهی انگلیسیام Weekend Learning است که دربارهی ارزیابی مدلهاست و در هفتههایی میآید که این یکی نمیآید.
درس بعد: چرا مدل «برفش» را سه تکه نوشت و چرا همین تکهها متن فارسی را برای مدلها گرانتر از انگلیسی میکنند.
این درس را اجرا کنید و با خود ببرید
دفترچهی ژوپیتر (Jupyter notebook) این درس جز خود پایتون (Python) به چیز دیگری نیاز ندارد و بدون اینترنت اجرا میشود. فایل دفترچه را دانلود کنید یا آن را در گیتهاب ببینید.
کل درس، با همین صفحه و ابزارها و دادههایش، در یک فایل زیپ هم هست. فایل زیپ درس (حدود ۷۸ کیلوبایت) را دانلود و از حالت فشرده خارج کنید، بعد فایل index.html را در مرورگر باز کنید؛ اینترنت لازم نیست.
درسهای تازه هر دو هفته یک بار، جمعهها، در خبرنامهی یادگیری آخر هفته در لینکدین میآیند.