上下文窗口就是大语言模型(LLM)的工作内存。它指模型任一时刻能够读取到的全部文本总量,包含你的提问、过往对话记录以及模型之前生成的回复内容。
1. 通俗概括上下文窗口Context‑Window等价于 LLM 的短时工作内存和电脑内存 RAM 类似区别于模型训练后固化的永久参数知识硬盘。模型本身不会自主记忆对话内容只有落在上下文窗口内的内容模型才可以看见超出窗口范围的历史对话模型就彻底看不到。 组成部分正如你所说用户本轮问题 全部历史问答。所有文字都会被转化为 Token 计入上下文配额。2. Token 计数规则1 个 Token 大致对应 4 个汉字。例如 128k 上下文窗口代表大约能容纳 9‑10 万汉字。 当对话累积 Token 快要塞满窗口时现在主流模型一般有两种处理策略截断策略最普遍丢弃最早的对话内容只保留后面一部分内容旧对话被删掉之后模型便不再知晓早期信息。摘要压缩把久远的对话浓缩成简短总结节省 Token 空间减少信息丢失。3. 两个容易混淆的概念上下文窗口大小模型单次处理 Token 的上限属于模型出厂固有属性如 32k、128k、1024k硬件决定上限系统参数权重模型训练阶段学到的知识不在上下文窗口里长期保存。4. 现实局限窗口越大推理成本越高、速度变慢超长上下文模型并不会细致通读全部文本距离当前提问很远的内容依然容易遗忘遥远上下文衰减问题若开启长期记忆功能会把部分重要内容存入向量数据库脱离上下文窗口检索后再放进窗口属于外挂方案并不是原生上下文窗口。举个简单例子帮助理解窗口上限是 2000Token你们聊天久了累计达到 2100Token最早的几句对话就会被截断。这时你问它最开始聊的话题模型就回答不上来了。所有内容都会被装入同一个上下文窗口系统提示词、至此为止的对话、你最新发送的消息还有模型此前生成的全部内容。固定前置部分完整的系统提示词System Prompt会永久放在上下文最前面每一轮对话都会保留会话交互内容按照聊天时序你的提问和我的回复成对存入上下文整段历史对话连同我之前输出的全部内容都会被放进上下文窗口边界约束上下文存在 Token 上限。一旦累积内容快要塞满窗口不同模型处理方式不一样一部分模型会把更早的对话内容截断丢弃只保留近期对话还有长‑上下文版本模型依靠超大窗口容纳全程聊天4.只有本轮对话内的消息会纳入窗口其他会话的聊天记录不会混入补充细节模型不会单独 区分 “我的回复” 和 “你的提问”它们统一视作输入序列给到 Transformer模型依据全部前 文来生成接下来的回答。在一次常规对话过程里系统提示词占用 200 个 tokens历史聊天记录占用 3000 tokens你最新的消息占 150 tokens模型此前输出内容占 500 tokens。总共大约 3150 个 token。如果该模型具备 128000 token 的上下文窗口处在窗口限额之内的内容模型都可以读取超出这个范围的内容对模型而言就相当于不存在。