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

فصل ۳ از ۸

پیشرفت ترم
۰٪

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

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

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

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

دو فصلِ قبل گفتیم مدل «کلمهٔ بعدی» را حدس می‌زند. حالا وقتش است یک دقتِ مهم اضافه کنیم: واحدِ کارِ مدل «کلمه» نیست، 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: چرا مدل چیزهایی سرِ هم می‌بافد، و اولین قدمِ جدیِ عادتِ وارسی.

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

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