اگه با ChatGPT یا Claude کار کرده باشی، حتماً یه جایی به محدودیت context window خوردی. یه مکالمه طولانی داشتی و یهو مدل یادش رفت چی گفته بودی. یا یه متن بلند دادی و مدل نتونست همهش رو پردازش کنه. دلیلش Context Window هست. توی این مقاله قراره بفهمی این مفهوم چیه، چرا مهمه و چطور باهاش کنار بیای.
Context Window به زبان ساده
Context Window حافظه کاری مدل AI هست. یعنی حداکثر مقدار متنی که مدل میتونه همزمان «ببینه» و پردازش کنه.
فکر کن مثل یه میز کار. هر چقدر میزت بزرگتر باشه، کاغذ بیشتری میتونی روش بذاری و همزمان ببینی. Context Window همون اندازه میز کاره. اگه میز کوچیک باشه، باید بعضی کاغذها رو برداری تا جا برای کاغذ جدید باز بشه. و وقتی کاغذ رو برداری، دیگه نمیبینیش.
Context Window با واحد «توکن» اندازهگیری میشه. توکن چیه؟ تقریباً معادل یه کلمه یا بخشی از یه کلمه. توی فارسی، هر کلمه معمولاً ۱ تا ۳ توکن میشه (چون مدلها بیشتر روی انگلیسی آموزش دیدن و فارسی رو به بخشهای کوچکتر تقسیم میکنن).
اندازه Context Window مدلهای مختلف
بذار یه مقایسه سریع بکنیم:
- GPT-3 (2020): ۴,۰۹۶ توکن — حدود ۳ هزار کلمه
- GPT-4 (2023): ۸,۱۹۲ توکن (نسخه استاندارد) و ۳۲,۷۶۸ توکن (نسخه بزرگ)
- Claude 3 (2024): ۲۰۰,۰۰۰ توکن — حدود ۱۵۰ هزار کلمه
- Gemini 1.5 Pro (2024): ۲,۰۰۰,۰۰۰ توکن
- Claude Opus 4.6 (2026): ۱,۰۰۰,۰۰۰ توکن
- SubQ LLM (2026): ۱۲,۰۰۰,۰۰۰ توکن
از ۴ هزار توکن به ۱۲ میلیون توکن. توی ۶ سال. این رشد عجیبه.
ولی اندازه تنها عامل مهم نیست. مهمتر اینه که مدل چقدر اطلاعات رو توی این context «واقعاً» استفاده میکنه.
مشکل «Lost in the Middle»
یه تحقیق مهم در سال ۲۰۲۳ نشون داد که مدلهای زبانی اطلاعات ابتدا و انتهای context رو خوب یادشون میمونه، ولی اطلاعات وسط context رو تا حد زیادی نادیده میگیرن. به این مشکل میگن «Lost in the Middle».
فکر کن یه کتاب ۵۰۰ صفحهای به مدل بدی و بخوای یه اطلاعات خاص توی صفحه ۲۵۰ رو پیدا کنه. مدل ممکنه اطلاعات صفحات اول و آخر رو خوب یادش باشه ولی صفحه ۲۵۰ رو از دست بده.
این مشکل توی مدلهای جدیدتر بهتر شده ولی کاملاً حل نشده. پس فقط اندازه context window مهم نیست — کیفیت استفاده از context هم اهمیت داره.
Context Window شامل چه چیزهایی میشه؟
یه نکته مهم که خیلیها نمیدونن: Context Window فقط شامل سؤال تو نیست. شامل همه چیزه:
- System Prompt: دستوراتی که رفتار مدل رو تنظیم میکنه
- تاریخچه مکالمه: تمام سؤالها و جوابهای قبلی
- سؤال فعلی: چیزی که الان پرسیدی
- جواب مدل: چیزی که مدل داره تولید میکنه
پس اگه context window مدل ۱۰۰ هزار توکن باشه و system prompt و تاریخچه مکالمه ۹۰ هزار توکن مصرف کرده باشه، فقط ۱۰ هزار توکن برای سؤال و جواب فعلی باقی مونده.
به همین دلیله که مکالمههای طولانی با ChatGPT بعد از یه مدت «کند» یا «فراموشکار» میشن. context داره پر میشه و مدل مجبوره بخشی از تاریخچه رو فراموش کنه.
چرا اندازه Context Window مهمه؟
Context Window بزرگتر یعنی کاربردهای بیشتر:
تحلیل اسناد طولانی: اگه یه قرارداد ۱۰۰ صفحهای داشته باشی، با context window کوچیک باید تکهتکه بدیش و جواب کامل نمیگیری. با context window بزرگ، کل سند رو یجا میدی.
مکالمههای طولانی: یه مشاور AI که تاریخچه کامل مکالمه رو یادش باشه، خیلی بهتر از یکی هست که هر ۱۰ دقیقه حافظهش ریست بشه.
کدنویسی: یه پروژه نرمافزاری ممکنه صدها فایل داشته باشه. هرچی context window بزرگتر باشه، مدل بخش بیشتری از کد رو میبینه و پیشنهادات بهتری میده.
RAG: توی سیستمهای RAG، میخوای مرتبطترین مستندات رو به مدل بدی. context window بزرگتر یعنی مستندات بیشتری میتونی بدی.
نکات عملی برای مدیریت Context Window
حالا که فهمیدی context window چیه، بذار چند نکته عملی بگم:
۱. مهمترین اطلاعات رو اول یا آخر بذار
به خاطر مشکل Lost in the Middle، اطلاعاتی که از همه مهمتره رو اول یا آخر prompt بذار. وسط رو برای اطلاعات کماهمیتتر نگه دار.
۲. Context رو تمیز نگه دار
هر چیزی که توی context بذاری، جا اشغال میکنه. اطلاعات غیرضروری رو حذف کن. اگه یه بخش از مکالمه دیگه ربطی نداره، یه مکالمه جدید شروع کن.
۳. خلاصهسازی مکالمههای طولانی
اگه مکالمهات خیلی طولانی شده، از مدل بخواه یه خلاصه از نکات کلیدی بده. بعد یه مکالمه جدید با اون خلاصه شروع کن. اینطوری context رو بهینه استفاده میکنی.
۴. از chunking استفاده کن
اگه سندی داری که توی context window جا نمیشه، تکهتکهش کن. ولی تکهها رو با overlap ببر. مثلاً اگه هر تکه ۱۰۰۰ توکنه، ۲۰۰ توکن آخر هر تکه رو اول تکه بعدی هم بذار. اینطوری context بین تکهها حفظ میشه.
۵. System Prompt رو کوتاه نگه دار
System Prompt هر بار با هر پیام ارسال میشه و جا اشغال میکنه. اگه system prompt بلند و پیچیدهای داری، سعی کن کوتاهش کنی.
۶. برای کدنویسی، فقط فایلهای مرتبط رو بده
به جای اینکه کل پروژه رو بدی، فقط فایلهایی رو بده که مستقیماً به سؤالت مربوطن. و اون بخشهایی رو هم که مهم هستن هایلایت کن.
توکنشماری عملی
چند تخمین کاربردی:
- ۱ صفحه متن انگلیسی ≈ ۵۰۰ توکن
- ۱ صفحه متن فارسی ≈ ۷۰۰-۱۰۰۰ توکن (به خاطر tokenization)
- ۱ خط کد ≈ ۱۰-۲۰ توکن
- ۱ کتاب ۳۰۰ صفحهای ≈ ۱۵۰,۰۰۰ توکن
ابزارهایی مثل tiktoken (کتابخانه Python) یا tokenizer آنلاین OpenAI میتونن دقیقاً تعداد توکنهای متنت رو حساب کنن.
آینده Context Window
ترند واضحه: context windowها دارن بزرگتر میشن. ولی چند سؤال مهم وجود داره:
آیا infinite context window ممکنه؟ از نظر تئوری، محدودیت حافظه و محاسبات هست. ولی تکنیکهایی مثل sparse attention و compression دارن این محدودیتها رو عقب میزنن. شاید تا ۵ سال دیگه context windowهای ۱۰۰ میلیون توکنی داشته باشیم.
آیا بزرگتر همیشه بهتره؟ نه لزوماً. اگه مدل نتونه اطلاعات رو خوب مدیریت کنه، context window بزرگ فقط هزینه بیشتر میشه بدون فایده بیشتر. کیفیت مهمتر از کمیته.
آیا context window جایگزین حافظه بلندمدت میشه؟ نه. Context Window حافظه کوتاهمدته. برای حافظه بلندمدت، سیستمهای خارجی مثل Vector Database لازمه.
جمعبندی
Context Window یکی از مهمترین مفاهیم برای هر کسی هست که با AI کار میکنه. خلاصهش اینه:
- Context Window = حداکثر متنی که مدل همزمان میبینه
- با واحد توکن اندازهگیری میشه
- شامل system prompt + تاریخچه + سؤال + جواب میشه
- بزرگتر بهتره ولی کیفیت استفاده هم مهمه
- با تکنیکهای ساده میتونی بهینهش استفاده کنی
دفعه بعد که ChatGPT حرفت رو فراموش کرد، میدونی چرا. و مهمتر از اون، میدونی چطور مدیریتش کنی.
نظرات
هنوز نظری ثبت نشده. اولین نفر باشید!
نظر خود را بنویسید