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

توکن دقیقاً چیست؟

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

برای انگلیسی، تقریب معروف این است: ۱۰۰۰ توکن تقریباً ۷۵۰ کلمه است؛ یعنی هر توکن حدود سه‌چهارم کلمه. برای فارسی این نسبت بدتر است و پایین‌تر توضیح می‌دهیم چرا. مهم است بدانید تقسیم‌بندی ثابت و قابل حدس نیست؛ بستگی به توکنایزر مدل دارد و همین باعث می‌شود «حدس زدن» هزینه کار پرخطایی باشد — بهتر است از گزارش مصرف خود سرویس بخوانید.

چرا مدل به‌جای کلمه، توکن می‌خواند؟

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

توکن فارسی در برابر انگلیسی

همین جا جایی است که کاربر فارسی‌زبان هزینه‌ی بیشتری می‌دهد. یک جمله‌ی فارسی معمولاً ۱/۵ تا ۲ برابر هم ارز انگلیسی‌اش توکن مصرف می‌کند، به چند دلیل:

  • سهم داده‌ی آموزش: توکنایزرها روی متن‌های عمدتاً انگلیسی بهینه شده‌اند؛ متن فارسی کمتر «دیده» شده، پس تکه‌های بلندتر و کمتر بهینه می‌سازد.
  • نیم‌فاصله و حروف چسبان: واژه‌های پیچسته‌ی فارسی و نیم‌فاصله‌ها تقسیم‌های اضافه می‌سازند.
  • کاراکترهای بیشتر برای همان محتوا: بعضی نویسه‌های فارسی به‌تنهایی چند توکن می‌شوند.

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

توکن و پنجره‌ی زمینه

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

توکن و قیمت API

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

یک محاسبه‌ی نمونه برای حس ماجرا: فرض کنید قیمت یک مدل، ۱ دلار برای هر یک میلیون توکن ورودی و ۲ دلار برای خروجی باشد. چتی که ۵۰۰ توکن ورودی (پرامپت و تاریخ گفتگو) و ۴۰۰ توکن خروجی دارد، نیم میلی‌دلار ورودی و ۰/۸ میلی‌دلار خروجی مصرف می‌کند؛ به‌ظاهر ناچیز، اما در مقیاس هزار درخواست روزانه یعنی دغدغه‌ی واقعی هزینه. به همین دلیل گزارش مصرف به‌ازای هر درخواست — که در پنل کاربری ماین‌دبیس می‌بینید — ابزار کار جدی‌هاست.

شش راه عملی برای مدیریت مصرف توکن

  • پرامپت سیستم را یک بار درست بنویسید: دستورهای ثابت را در پرامپت سیستم بگذارید تا در هر پیام تکرار نشوند؛ تکرار یعنی پرداخت دوباره در هر درخواست.
  • از تاریخ گفتگو ببرید: برای موضوع تازه، گفتگوی جدید باز کنید؛ کشیدن تاریخچه‌ی طولانی در هر پیام، هزینه‌ی ورودی را بی‌دلیل بالا می‌برد.
  • فقط بخش لازم سند را بدهید: به‌جای چسباندن یک کتاب، متن مرتبط را انتخاب کنید یا اول خلاصه بگیرید و بعد روی بخش هدف کار کنید.
  • طول خروجی را مشخص کنید: «در ۱۵۰ کلمه» هم پاسخ را خواناتر می‌کند هم توکن گرانِ خروجی را کم.
  • مدل را با کار هم‌اندازه کنید: برای دسته‌بندی و کارهای ساده، مدل سبک کافی است؛ مدل بزرگ را برای کارهای سخت نگه دارید.
  • فایل را به‌جای متنِ چسبانده، پیوست کنید: در ماین‌دبیس آپلود فایل خوانده می‌شود و مدیریت زمینه تمیزتر از چسباندن متن در پیام است.

جمع‌بندی

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