什么是大模型的“上下文”?
简单说,上下文就是模型在回答你问题时能"看到"的所有内容。你可以把它理解成模型的工作记忆——就像你跟朋友聊天,得记住前面说了什么,才能接上话茬。
对于像 GPT、Claude 这类大语言模型,上下文包括整个对话历史:你问的每个问题,模型给的每次回答,甚至你上传的文档内容。模型每次生成回复时,都会把这些信息一起喂进去,基于完整的上下文来理解你的意图。
上下文窗口的限制
这里有个关键概念叫"上下文窗口"(Context Window),指的是模型一次能处理的最大文本量。最早的 GPT-3 只有 4096 个 tokens,大概相当于三千多个汉字,聊几轮就得"失忆"。现在新模型动不动就是 100K、200K tokens,甚至能到 200 万 tokens,基本上几本书的内容都能塞进去。
技术层面怎么实现的
模型处理上下文主要靠注意力机制(Attention)。这个机制让模型能计算上下文中每个词跟其他词的关联程度。比如你问"北京是中国的首都。它有多少人口?",模型会通过注意力权重识别出"它"指的是"北京"。
Transformer 架构引入的自注意力机制是现代大模型的基础。每个 token 都会跟上下文里所有其他 tokens 计算相关性(或者你可以理解模型输出的每一个Token都和其他前面受所有的Token相关),这样模型就能捕捉长距离依赖关系。
不过这样也带来计算复杂度的问题——标准注意力的计算量是 O(n²),上下文越长,计算成本呈平方增长。所以很多新研究在优化这个。像 FlashAttention通过重新组织计算顺序降低显存占用;Sliding Window Attention 只关注局部窗口;稀疏注意力(Sparse Attention)选择性计算重要位置,这些技术让都是优化长上下问的计算。
实际影响
上下文大小直接决定了能干什么。窗口小的模型只能做简单问答,聊几轮就开始忘记前面的回答,会导致答非所问。长上下文模型可以分析整篇论文、处理几十页的法律文档、在长对话中保持一致性。
但也不是越长越好。上下文太长会稀释注意力——模型可能在海量信息里迷失,反而抓不住重点。
最主要的还有成本问题,处理长上下文需要更多算力和时间,API 调用费用也按 token 数计算。所以实际应用中需要权衡,不是所有任务都需要塞满上下文窗口。
最后
上下文是大模型的基础设施,也是核心瓶颈。理解它的工作原理和限制,能帮你更好地使用这些工具,知道什么时候该精简输入、什么时候需要拆分任务、什么时候模型的"失忆"是正常现象。