هم‌هوش — خودآموز هوش مصنوعی

فصل ۳ از ۸

پیشرفت ترم
۰٪

ترم ۱ · هوش مصنوعی واقعاً چیست؟

توکن: واحدِ کارِ مدل

فصل ۳پیش‌نمایش رایگان
۱۰ دقیقه مطالعه فصل ۳

در این فصل چه یاد می‌گیری#

دو فصلِ قبل گفتیم مدل «کلمهٔ بعدی» را حدس می‌زند. حالا وقتش است یک دقتِ مهم اضافه کنیم: واحدِ کارِ مدل «کلمه» نیست، token است. در این فصل می‌فهمی token چیست، چرا مدل جواب را توکن‌به‌توکن می‌سازد، چرا فارسی برای مدل سنگین‌تر از انگلیسی است، و context window یعنی چه. این‌ها ریزه‌کاریِ فنی نیستند؛ توضیح می‌دهند چرا مدل وسطِ گفت‌وگوی طولانی فراموش می‌کند و چرا در شمردنِ حروف می‌لغزد.

یک نوارِ متن که با تیغه به تکه‌های نامساویِ توکن بریده می‌شود و یک قابِ محدود دورِ بخشی از آن است

آخر این فصل می‌توانی:

  • بگویی token چیست و چرا همیشه با «کلمه» یکی نیست
  • توضیح بدهی مدل چطور جواب را توکن‌به‌توکن می‌سازد
  • بگویی چرا یک جملهٔ فارسی توکنِ بیشتری از همان جملهٔ انگلیسی می‌گیرد
  • مفهومِ context window را توضیح بدهی و یک خطای مرزِ توکن را بگیری

قبل از شروع#

از فصل ۱: جوابِ مدل تولید می‌شود، نه جست‌وجو.

از فصل ۲: مدل در training یاد گرفته «کلمهٔ بعدی» را حدس بزند.

لوازم: یک مرورگر و یک دستیارِ هوش مصنوعی. آزمایشگاهِ این فصل قرار است یک نمایشگرِ token داشته باشد که متن را جلوی چشمت تکه‌تکه کند؛ تا وقتی آماده شود، همین کار را تقریبی از دستیارت می‌خواهی (پایین نشانت می‌دهم).

۱. token چیست؟#

مدل متن را همان‌طور که ما می‌بینیم — کلمه‌کلمه — نمی‌بیند. اول متن را به تکه‌های کوچک می‌شکند و هر تکه یک token است. گاهی یک token یک کلمهٔ کامل است، گاهی یک تکه از یک کلمه، و گاهی حتی یک نشانه یا فاصله. مدل کلِ کارش را روی همین تکه‌ها انجام می‌دهد، نه روی کلمه‌ها.

چرا این‌طوری؟ چون زبان کلمه‌های بی‌شمار دارد، ولی اگر متن را به تکه‌های پرتکرار بشکنی، با تعدادِ محدودی تکه می‌توانی تقریباً هر چیزی را بسازی — حتی کلمه‌ای که تا حالا ندیده. یک کلمهٔ ساده و پرتکرار معمولاً یک token است؛ یک کلمهٔ بلند یا کم‌یاب به چند token می‌شکند.

همین حالا می‌توانی این را ببینی — با یک احتیاطِ مهم. از دستیارت نخواه بشمارد، چون در شمردن ضعیف است (بخشِ ۵ همین را نشانت می‌دهد). به‌جایش بخواه تکه‌ها را فهرست کند و خودت بشمار؛ نوشتنِ فهرست کاری است که مدل خوب انجام می‌دهد و شمردنِ یک فهرستِ کوتاه کاری است که تو بی‌خطا انجامش می‌دهی. این متنِ کوتاه را بده:

سلام دنیا

بعد یک کلمهٔ بلندتر و کم‌یاب‌تر مثلِ «کتابخانه» را هم به همین شکل بخواه و دو فهرست را مقایسه کن — معمولاً کلمهٔ ساده و پرتکرار یک تکه می‌ماند و کلمهٔ بلند به چند تکه می‌شکند. حتی این فهرست هم دقیقاً همان مرزهای واقعیِ مدل نیست؛ یک تقریب است، چون مدل دارد توصیف می‌کند نه اینکه واقعاً درونش را نشانت بدهد. پس جهتِ نتیجه را باور کن، نه عددش را. وقتی نمایشگرِ توکنِ آزمایشگاه آماده شد، همین کار را دقیق و جلوی چشمت انجام می‌دهد.

۲. مدل جواب را توکن‌به‌توکن می‌سازد#

یادت هست در فصلِ ۱ گفتیم جواب «تولید» می‌شود؟ حالا می‌توانیم دقیق بگوییم چطور. مدل کلِ جواب را یک‌جا نمی‌ریزد بیرون؛ یک token در هر قدم تولید می‌کند. هر توکنِ تازه را بر اساسِ همهٔ توکن‌های قبلی انتخاب می‌کند — یعنی promptِ تو به‌علاوهٔ هر چه خودش تا این لحظه نوشته. بعد آن توکن را هم به دنباله اضافه می‌کند و دوباره حدس می‌زند توکنِ بعدی چه باشد.

همین را می‌بینی وقتی جوابِ مدل کم‌کم و تکه‌تکه روی صفحه ظاهر می‌شود. آن جریانِ نرم، در واقع همان تولیدِ توکن‌به‌توکن است. این تصویرِ ذهنی را نگه دار: مدل مثلِ کسی است که جمله را دارد همین الان می‌نویسد، نه کسی که یک جوابِ آمادهٔ کامل را از جایی کپی می‌کند.

💡 نکته: چون هر توکن به توکن‌های قبلی وابسته است، یک لغزشِ کوچک در وسطِ جواب می‌تواند بقیهٔ جواب را با خودش کج کند. برای همین گاهی مدل یک جملهٔ اشتباه را با اطمینان ادامه می‌دهد — چون دارد روی چیزی که خودش قبلاً نوشته بنا می‌کند.

۳. چرا فارسی توکنِ بیشتری می‌گیرد#

اینجا یک واقعیتِ مهم برای ما فارسی‌زبان‌هاست. بیشترِ مدل‌ها طوری متن را تکه می‌کنند که برای انگلیسی صرفه‌جویانه باشد، چون — همان‌طور که در فصلِ ۲ دیدیم — دادهٔ آموزشی‌شان بیشتر انگلیسی بوده. نتیجه این است که یک کلمهٔ انگلیسی اغلب یک token می‌شود، ولی همان مفهوم به فارسی به چند token می‌شکند.

همین حالا می‌توانی این را تقریبی ببینی. باز هم از دستیارت فهرستِ تکه‌ها را بخواه، نه شمارش را؛ این دو خط را بده و بعد خودت دو فهرست را بشمار:

Artificial intelligence is a tool.
هوش مصنوعی یک ابزار است.

ببین کدام نسخه تکه‌های بیشتری دارد (عدد دقیق نیست، ولی جهتش درست است). معمولاً نسخهٔ فارسی توکنِ بیشتری می‌گیرد، حتی وقتی حرفِ یکسانی می‌زند. سه پیامدِ واقعی دارد: جملهٔ فارسی جای بیشتری از حافظهٔ گفت‌وگو می‌گیرد (بخشِ بعد)، کارکردن با آن معمولاً پرهزینه‌تر است، و گاهی جوابِ فارسی کمی ضعیف‌تر درمی‌آید. این‌ها نه ضعفِ توست نه ضعفِ زبانِ فارسی؛ نتیجهٔ نحوهٔ تکه‌کردن است.

۴. context window: مدل هر لحظه چقدر می‌تواند ببیند#

مدل نمی‌تواند بی‌نهایت توکن را یک‌جا در نظر بگیرد. یک سقف دارد: بیشترین تعدادِ توکنی که در یک لحظه «جلوی چشمش» است. به این ظرفیت context window می‌گویند. کلِ گفت‌وگو — پرامپت‌های تو و جواب‌های مدل — داخلِ همین پنجره جا می‌گیرد.

پیامدش را حتماً تجربه کرده‌ای یا خواهی کرد: در یک گفت‌وگوی خیلی طولانی، وقتی از سقف رد می‌شوی، قدیمی‌ترین بخش‌ها از پنجره بیرون می‌افتند و مدل عملاً آن‌ها را فراموش می‌کند. برای همین است که مدل گاهی چیزی را که همان اولِ گفت‌وگو گفته بودی «یادش می‌رود» — نه بی‌ادبی است نه خرابی؛ آن توکن‌ها دیگر در پنجره نیستند.

قبل از ادامه، جواب بده: در گفت‌وگویی که از سقفِ context window رد شده، مدل کدام بخش را زودتر از دست می‌دهد — چیزی که همان اول گفتی یا چیزی که همین الان گفتی؟ جواب: قدیمی‌ترین‌ها، یعنی اولِ گفت‌وگو؛ همان‌ها که اول از لبهٔ پنجره بیرون می‌افتند. برای همین اگر نکته‌ای مهم است، نگذار تهِ یک گفت‌وگوی درازِ قدیمی دفن شود.

💡 نکته: یک عادتِ عملی: اگر گفت‌وگو خیلی طولانی و پراکنده شد، به‌جای ادامه‌دادن، مهم‌ترین نکته‌ها را در یک پیامِ تازه و کوتاه خلاصه کن و از آن‌جا ادامه بده. این‌طور چیزی که لازم داری داخلِ پنجره می‌ماند. (کارِ عمیق‌ترِ حافظه را در ترمِ ۴ می‌بینیم.)

۵. غافلگیریِ مرزِ توکن: مدل حروف را نمی‌شمارد#

حالا یک خطای واقعی و بامزه که مستقیم از توکن می‌آید. چون مدل متن را به‌صورتِ token (تکه) می‌بیند نه حرف‌به‌حرف، در کاری به‌ظاهر ساده مثلِ شمردنِ حروف می‌لغزد. امتحان کن:

در کلمهٔ «سرسره» چند حرفِ «ر» وجود دارد؟ فقط عدد را بگو.

آن «فقط عدد را بگو» تصادفی نیست: اگر جا بدهی مدل بلند بلند حرف بزند، اغلب حرف‌ها را یکی‌یکی می‌نویسد و همان نوشتن کمکش می‌کند درست بشمارد. وقتی فقط عدد می‌خواهی، این عصا را ازش می‌گیری و مجبورش می‌کنی یک‌راست حدس بزند — و همان‌جاست که می‌لغزد. ببین مدل چه داد. با اطمینانِ کامل ممکن است جوابی مثلِ این بدهد:

۳

ولی بیا خودمان بشماریم: س، ر، س، ر، ه. حرفِ «ر» دو بار آمده، نه سه بار. مدل اشتباه کرد چون «سرسره» را به‌صورتِ چند تکهٔ توکن می‌بیند، نه پنج حرفِ جدا. دو نکتهٔ دقیق‌تر هم هست. اول اینکه مدل اصلاً برای «شمردنِ حرف» آموزش ندیده. دوم اینکه فارسی بسیار ریز به token شکسته می‌شود. ماجرا ترکیبِ این دوتاست.

و اگر دستیارِ تو «۲» گفت چه؟ این روزها زیاد پیش می‌آید، و دلیلش تقریباً هیچ‌وقت این نیست که مدل حالا حرف‌ها را می‌بیند. دو چیزِ دیگر ممکن است افتاده باشد: یا دستیار پیش از جواب بیشتر روی سؤال کار کرده، یا شمردن را به یک ابزار سپرده — مثلاً یک تکه برنامهٔ کوچک که واقعاً حرف‌ها را می‌شمارد. در هر دو حالت خودِ مدل چیزِ تازه‌ای یاد نگرفته؛ فقط کسی جای او شمرده است. پس نتیجه نگیر که «مدل حالا حرف می‌شمارد»؛ دو کار بکن. اول، همین سؤال را سه بار پشتِ‌سرِهم بپرس؛ اگر هر سه بار یک عدد نداد، همان بی‌ثباتی خودش جواب است. دوم، متن را بلندتر کن — یک جملهٔ کامل به‌جای یک کلمه:

در جملهٔ «مادرِ مهربانِ من هر روز برای برادرم نان و پنیر می‌برد» چند حرفِ «ر»
وجود دارد؟ فقط عدد را بگو.

جوابِ درست ۹ است (خودت با انگشت بشمار). اینجا لغزش خیلی رایج‌تر است، و جالب‌تر اینکه هر بار عددِ متفاوتی می‌گیری. سوم، اگر باز هم درست گفت، بپرس «چطور شمردی؟» و دنبالِ ردِ ابزار بگرد؛ جوابِ «حرف‌به‌حرف نگاه کردم» فقط یک متنِ تولیدشده است، ولی اگر بگوید یک تکه کد اجرا کرده یا فهرستِ حرف‌ها را جلویت بگذارد، تفاوتش را می‌بینی.

درسِ فصل با هر نتیجه‌ای یکی است: مدل حرف‌ها را نمی‌بیند، تکه‌های token را می‌بیند؛ و اینکه دستیارِ تو عددِ درست بدهد یا ندهد به این بستگی دارد که چه چیزی کنارِ مدل گذاشته‌اند. از روی خودِ عدد هم نمی‌فهمی کدام — یک عددِ درست و یک عددِ غلط دقیقاً یک شکل‌اند.

وارسی: این بهترین جای تمرینِ سه قانونِ ثابتِ دوره است: «اول خودت فکر کن» — «وارسی کن، خط به خط» — «مدل مطمئن است؛ دلیل نمی‌شود درست باشد». شمردنِ حروف کاری است که خودت بی‌خطا انجامش می‌دهی، پس چرا واگذارش کنی؟ حرف‌ها را با انگشت بشمار — اطمینانِ لحنش ربطی به درستیِ عدد ندارد.

⚠️ مواظب باش: از این به بعد، کارهایی را که به شمارشِ دقیقِ حرف یا رقم، جای دقیقِ کاراکترها، یا حساب‌وکتابِ ریز نیاز دارند کورکورانه به مدل نسپار — حتی وقتی دستیارت ابزار دارد و جوابِ اولش درست درمی‌آید. این‌ها دقیقاً همان‌هایی‌اند که مرزِ token مدل را می‌لغزاند. مرزهای دیگرِ مدل را در فصلِ ۵ کامل می‌بینیم.

واژه‌های تازهٔ این فصل#

کلمه تلفظ به حروف فارسی یعنی چه
token تُوکِن تکهٔ کوچکی که مدل متن را به آن می‌شکند؛ واحدِ واقعیِ کارِ مدل
context window کانتِکست ویندو بیشترین تعدادِ توکنی که مدل در یک لحظه «جلوی چشمش» دارد

تمرین‌ها

اول خودت فکر کن یا امتحان کن — بعد اینجا را باز کن.

در فصل بعد#

حالا می‌دانی مدل روی token کار می‌کند، جواب را توکن‌به‌توکن می‌سازد، و پنجره‌اش محدود است. یک بار در همین فصل دیدی که مدل با اطمینانِ کامل عددِ غلط داد. این فقط یک نمونه بود از یک الگوی بزرگ‌تر و مهم‌تر: مدل می‌تواند مطمئن ولی غلط باشد. فصلِ بعد کاملاً به همین می‌پردازد — به hallucination: چرا مدل چیزهایی سرِ هم می‌بافد، و اولین قدمِ جدیِ عادتِ وارسی.

به آخر این فصل رسیدی!

اگر ساختی و جواب داد، این دکمه مال توست.