跳到主内容

什么是上下文学习?给几个例子它就会了

2026-10-06 发布 来源:我告诉你AI导航 阅读

给大模型两三个"输入到输出"的例子,它就能接着处理新输入,参数一个都没改。这个现象叫上下文学习。它好用,但常被误解成"模型现场学会了新任务"。把一次调用拆开看,进来什么、算了什么、出去什么,边界会清楚很多。

给大模型两三个"输入到输出"的例子,它就能接着处理新输入,参数一个都没改。这个现象叫上下文学习。它好用,但常被误解成"模型现场学会了新任务"。把一次调用拆开看,进来什么、算了什么、出去什么,边界会清楚很多。

一次调用里发生了什么

进来的是一整段文本:任务说明、几个示例、待处理的输入。它们被分词成 token,一起送进模型。模型做的只有一件事:根据前面所有 token,预测下一个 token 的概率分布,选一个接上去,再预测下一个。

示例的作用,是让这段前缀里出现一种稳定的模式。轮到待处理输入时,"下一个 token 该长什么样"已经被前面的例子约束住了:输出情感标签、输出三个字段、输出三行摘要。它是在续写一个已经开了头的格式。

出去的是一段文本。这一次前向计算里,权重矩阵没有被修改,没有梯度,没有反向传播。所谓"会了",指的是这次的条件变了,不是参数变了。关掉会话,这次形成的模式不留在模型里,下次要重新给例子。

参数没动,为什么像学会了

预训练时,模型见过大量"说明、示例、执行"的结构:教程、问答、代码注释、试卷。它学到的能力里,本来就包含"照着前面的模式往下写"。上下文学习唤起的是这个能力,不是凭空长出新能力。

可以类比成开卷考试:答案不在书上,答题格式在例题里。例题给得清楚,它照着格式填;例题自相矛盾,填出来的东西也摇摆。类比到这一步就要停,因为考生理解规则,模型只是让后续 token 的概率分布向示例靠拢,它没有理解这道题在考什么。

回到机制:注意力让后面的 token 能直接看到前面的示例,示例里的标签和格式参与了对下一个 token 的打分。例子越一致,这个分布越集中,输出越稳;例子互相冲突,分布被拉平,表现就是时对时错。

示例怎么选,比给几个更重要

覆盖边界。三类示例比三个同类示例有用:一个典型正例、一个典型反例、一个容易混淆的边界例。只给正例,遇到模棱两可的输入它会硬套。

格式一致。标点、大小写、字段顺序、有没有解释,示例和待处理输入要完全一致。示例里带了一句解释,新输出也会带解释,后面接程序就会崩。

标签均衡。做分类时,五个示例里四个是"通过",它倾向于继续输出"通过"。顺序也有影响,同类示例连在一起,会强化这种偏向。

数量上,两三个通常够用,五个以上增量递减,还占上下文。上下文长度有限,示例占掉的每一段,都是从待处理内容里挪走的。

敏感的是这几个变量

变量观察到的现象处理办法
示例顺序同类相邻时输出偏向该标签打散顺序,正反交替
示例数量从 2 增到 5 有提升,再增趋平先定 3 条,按错误类型补
措辞与标点换个问法,结果跟着变固定一套模板,不每次重写
输入长度待处理内容被示例挤占后变差长输入减示例,或先压缩再判断
标签空间示例没覆盖的标签容易漏示例覆盖全部候选标签

这张表说明一件事:效果对输入排列敏感。所以它适合"同一批数据、同一套模板"的批量处理,不适合一次一个说法地临时问。要做稳定产出,模板要冻结,改动要留版本。

和微调的分界

上下文学习改的是这次输入,微调改的是权重。前者零训练成本,改完立刻生效,随时能撤;后者要标注数据、要训练、要部署,但推理时不必带示例,单位成本更可控。

判断可以简化成三条:任务是否长期固定、数据是否足够、对一致性的要求有多高。三条都偏"是",考虑微调;只是临时处理一批文件,上下文学习足够。多数业务落在中间,先用上下文学习跑通,再决定要不要固化。

成本上还有一层。示例越长,每次调用的输入 token 越多,费用和等待时间都上升,生成速度和输入长度直接相关;免费版本的上下文额度更紧,示例多了会挤压正文,免费版与付费版的差别在这种地方最容易碰到。

它学不会的东西

新知识。示例里没有的事实,它不会因为看两个例子就掌握。问它某个内部系统的字段含义,例子给再多也只能猜。

精确计算。多位数乘法、长表格求和,靠模式匹配容易出错,这类任务交给工具或代码执行更稳。

强一致的判定。同样的输入换个顺序问,结论可能变。涉及金额、资格、责任的判定,要有规则兜底,模型输出只作参考。

长上下文里的远距离示例。示例和待处理输入隔得太远,或者中间塞了大量无关内容,示例的约束会变弱。表现是"前面说了格式,后面忘了"。

还有一类容易被忽略:示例本身错了。示例里把两个标签写反,它会照着错的学,而且错得很稳定。示例进模板前要有人过一遍,这比事后调提示词有效。

一套稳定的写法

上下文学习速查

  • 三段式:任务说明 + 2 到 3 个示例 + 待处理输入
  • 示例覆盖正例、反例、边界例,标签均衡
  • 示例格式与目标输出完全一致,标点也算
  • 批量任务冻结模板,改动留版本
  • 新知识、精确计算、强一致判定,别指望它

示例给的是形状,不是知识。想让它稳定做一件事,先把输入输出对齐到同一种形状,再谈别的。模型参数没有变化这件事,也解释了为什么换一个会话就得重来,参数量与能力那篇可以对照着理解"改权重"和"改输入"的区别。具体上下文长度以官方最新版本为准。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]