Context(上下文)是大语言模型(LLM)理解和生成文本的核心机制,它决定了模型在生成响应时能够参考的历史信息的范围。本教程将详细讲解Context的核心概念、组成结构、作用机制,以及Context Window(上下文窗口)的关键特性。

1. Token : Context的基础单位

1.1 什么是 Token?

Token 是LLM处理文本的基本单位,Context的大小以Token为单位计量。

Token类型 示例 说明
完整单词 hello世界 常见的完整词汇
子词片段 ##ing##world 稀有词、新词
单个字符 a 标点符号和特殊字符

1.2 Token 与字数的关系

语言 大致比例 说明
英文 1 Token ≈ 0.75 单词 一个单词通常拆分为1-2个Token,长单词可达3-4个;此比例为平均值,实际因单词长度而异
中文(现代主流模型) 1 Token ≈ 1 个常用汉字 常用汉字(如"我""吃""饭")通常一字一Token
中文(生僻字) 1 Token ≈ 0.5 个生僻字 如"龘""爨"等罕见字可能拆为2-3个Token ,日常文本中极少出现,影响可忽略
混合文本 视具体内容而定 中英文混合、含数字/符号/URL时需分别计算 ,标点符号、空格、Emoji通常各占1个Token

简单理解:每个英文单词大约是1.5个Token,汉字接近1个Token。

1.3 Token 对 Context 的影响

方面 说明
Context计量 模型的上下文窗口以Token数量计算
成本计费 大多数LLM API按Token数量计费
处理效率 Token越少,LLM处理速度越快

2. Context(上下文): LLM 的"记忆"

2.1 什么是 Context?

Context 指的是模型在生成响应时所参考的所有前文信息。它是模型理解当前输入、维持对话一致性的基础。

Context就相当于LLM的"短期记忆",帮助它理解对话背景和语境。

2.2 Context 的组成结构

在对话场景中,Context通常包含以下几个部分:

组成部分 说明 示例
系统提示词(System Prompt) 定义模型角色和行为的指令 "你是一个专业的编程助手,请用简洁的语言回答问题。"
用户历史消息(User Messages) 用户之前发送的所有消息 "请解释什么是Python中的装饰器?"
模型历史回复(Assistant Messages) 模型之前生成的所有回复 "Python装饰器是一种用于修改函数或类行为的语法结构..."
当前用户消息(Current Message) 用户当前的输入 "请给我一个装饰器的示例代码。"

2.3 Context 的作用

作用 说明 示例
理解语境 帮助模型理解当前对话的背景和上下文 用户说"那明天呢?",模型知道"那"指代北京的天气
维持一致性 确保多轮对话中回答的一致性 对话中模型始终使用"你"称呼用户
引用前文 允许模型引用之前提到的信息 用户提到"张三",后续对话中模型知道"他"指代张三
消除歧义 解决代词指代、一词多义等问题 "苹果"可以指水果或公司,Context帮助模型确定正确含义

2.4 Context 的工作机制

自回归生成

LLM采用自回归方式生成文本,每次只生成一个Token。在生成每个Token时,模型会根据整个Context(包括已生成的所有Token)来预测下一个最可能的Token。

输入:"北京今天天气怎么样?"
    ↓
模型生成:"今天北京天气"
    ↓
基于Context生成下一个Token:"晴"
    ↓
继续生成:"朗,气温25-32摄氏度。"

注意力机制

Transformer架构中的注意力机制允许模型在生成每个Token时,关注Context中与当前Token相关的其他Token。例如,生成"它"时,模型会关注前文提到的名词(判定"它"是否代指"书"、"天气")。

2.5 Context 的局限性

局限 说明 影响
长度限制 受模型上下文窗口(后文展开)大小限制 长对话中早期信息可能被截断
遗忘问题 长对话中,早期信息可能被"遗忘" 模型可能重复回答或前后矛盾
中间丢失 长文本中,模型可能忽略中间部分的信息 重要信息可能被遗漏
计算成本 Context越长,推理成本越高 增加API费用和计算延迟

3. Context Window(上下文窗口): LLM 的"记忆容量"

3.1 什么是 Context Window?

Context Window 指的是模型能够处理的最大文本长度,通常以Token为单位。它决定了模型的"记忆容量"。

术语 说明
上下文窗口 模型单次能处理的最大Token数量
输入窗口 模型能接受的输入Token数量
输出窗口 模型能生成的输出Token数量

3.2 主流模型的上下文窗口

模型系列 典型窗口大小 说明
Qwen 3.6系列 256K 阿里云
GLM-5.2系列 1M 智谱AI
DeepSeek-V4-Flash 1M 深度求索

LLM版本更新极快,具体模型的上下文窗口请以各厂商最新公告为准。

3.3 上下文窗口的影响

影响方面 小窗口(如4K) 大窗口(如128K+)
适用场景 短对话、简单问答 长文档处理、代码分析
推理速度 较慢
计算成本
记忆能力 有限 强大
上下文保持 容易丢失早期信息 能保持更长对话一致性

上下文窗口越大越好吗?

不一定。大窗口虽然能处理更长的文本,但也会带来以下问题:

  • 推理速度变慢
  • 计算成本增加
  • 可能出现模型忽略中间部分信息

选择合适的窗口大小取决于具体应用场景。

4. Context 的优化策略

4.1 Context 管理方法

方法 说明 适用场景
滑动窗口 只保留最近N轮对话 长对话场景(简单粗暴的常规办法)
摘要压缩 对历史对话进行摘要 需要保留关键信息的场景(相对高级)
关键信息提取 只保留与当前问题相关的信息 信息密集型对话
分层上下文 将Context分为短期和长期 需要长期记忆的场景(Memory管理)

4.2 Context Engineering 上下文工程

Context Engineering 是一种通过设计和管理上下文来优化Agent性能的技术。它包括以下方面:

  • 上下文管理:有效利用历史对话,避免丢失重要信息。
  • 上下文增强:通过外部知识库或工具调用,补充模型上下文。
  • 上下文优化:根据模型输出,动态调整上下文,提高响应质量。

这一部分内容我们会通过更深入的教程内容展开。

5. Context 在实际应用中的案例

场景:智能代码助手

用户:帮我分析这个Python函数的问题。
用户:[粘贴函数代码]

模型:这个函数存在以下问题:1. 缺少错误处理;2. 变量命名不规范;3. 没有文档字符串。

用户:请帮我修复这些问题。
模型:修复后的代码如下:
[修复后的代码]

Context管理

  • 代码作为Context的一部分
  • 模型需要理解代码上下文
  • 修复建议基于代码分析

6. 总结

6.1 核心内容回顾

经过本节内容的学习,你已经掌握了以下知识:

知识点 核心要点 掌握程度
Token LLM处理文本的基本单位,Context的计量基础 掌握
Context 模型生成响应时参考的前文信息,对话一致性的关键 掌握
Context Window 模型能处理的最大文本长度,以Token为单位 掌握
Context组成 系统提示词、用户历史消息、模型历史回复、当前消息 掌握

6.2 常见问题与解答(FAQ)

问: Context 和 Prompt 有什么区别?

Prompt是用户输入给模型的文本指令,而Context是模型生成响应时参考的所有前文信息,包括Prompt、系统提示词和历史对话。可以理解为:Prompt是单次输入,Context是累积的上下文信息。

问: 为什么Context很重要?

Context是模型的"记忆",它帮助模型理解对话背景、维持回答一致性、引用前文信息、消除歧义。没有Context,模型只能处理孤立的句子,无法进行多轮对话或理解复杂任务。