تا اینجای کار فهمیدیم توکن ها چی هستن و LLM ها چطور حرف مارو متوجه میشن.
حالا هر LLM میتونه تعداد مشخصی از توکن هارو در لحظه ببینه و در حافظه اش نگه داره، و به مجموع توکن هایی که یک LLM میتونه در حافظه اش نگه داره، context window گفته میشه.
<aside> <img src="attachment:08a0af6e-327d-4fb0-bacb-ed179fb3d9cc:Telegram_logo.svg.webp" alt="attachment:08a0af6e-327d-4fb0-bacb-ed179fb3d9cc:Telegram_logo.svg.webp" width="40px" />
من روزی دو یا سه قسمت رو آماده میکنم و میذارم روی نوشن. اگه این دست از مطالب به کارِت میاد، میتونی چنل تلگرامم جوین شی تا چیزی از دستت نره. ماچ به کله ات 💋
</aside>
این شامل system prompt و همه input tokens و output tokens هایی هست که حین تعامل با LLM تولید میشن.

به عبارتی، context window همون مجموع توکن های ورودی و خروجیه.
حالا هرچی گفت و گوی شما با LLM طولانی تر بشه و مسج های بیشتری ردو بدل بشه، تعداد توکن ها هم همینجور زیاد و زیادتر میشه.

خب ما که همینجوری نمیتونیم توکن هارو تو حلق LLM فرو کنیم و قطعا به لیمیت میخوریم، و در واقع هر LLM یک لیمیت مشخصی داره و فقط یک تعداد مشخصی از توکن هارو میتونه هندل کنه.
پس مثلا وقتی شما میخونی که کانتکست ویندوی یک مدلی 200k هست، یعنی اون مدل میتونه 200k توکن رو هندل کنه و اگه شما از لیمیت عبور کنی به ارور میخوری.
حالا در ادامه ما میریم و این لیمیت رو بررسی میکنیم.
شما فرض بگیر که یه چت خیلی طولانی با LLM داری و بالاخره یکجا به لیمیت میخوری و ازونجا به بعد API به شما ارور برمیگردونه:

اصلا امکان داره که وسط صحبت و فرستادن مسج به این لیمیت بخوری، چون قبل اینکه مسج رو بفرستی همه چی اوکی بوده ولی دقیقا همون لاکار، لیمیت رو رد کردی و به ارور خوردی.
یعنی این Context Window اصلا با کسی شوخی نداره.

خود مدل هم اونقدری زبل نیست که بتونه این لیمیت رو دور بزنه، پس معمولا شما بالاخره یجایی به این ارور برخورد میکنی.
ولی حتی اگه context window اون LLM خیلی زیاد باشه هم بازم احتمالا به مشکل Lost in the Middle برخورد میکنی، یعنی هرچی زمان بیشتری با مدل چت میکنی احساس میکنی که داره خنگ تر میشه و صحبتای قبلی رو یادش میره.
حالا چرا این اتفاق میفته؟ الان برات بازش میکنم.