Few-shot 推理为何有效?
从预训练目标看少样本推理的机制与表现提升
原题:大语言模型在few-shot推理模式下为何能够提升任务表现?其背后机制与模型预训练目标之间有何关联?
模型架构 · 字节真题
回答与解析
为什么few-shot可能有效
自回归预训练学习 p(next token | context)。把任务说明和若干输入—输出示例放进上下文后,示例会改变后续token的条件分布,帮助模型识别任务、输出格式、标签映射和相关模式。因此few-shot常能比零样本提供更多任务信息,但不是必然提升;示例质量、顺序、相似度、格式和上下文预算都会影响结果。
机制仍是开放问题
- 任务识别/潜变量推断:从示例推断当前任务或生成过程。
- 隐式学习算法:某些构造与模型中,Transformer前向计算可实现类似回归或梯度下降的更新规则。
- 贝叶斯式推断:将上下文看作观测,对任务假设进行后验更新。
这些是相互竞争或互补的研究解释,不应把“预训练已经学会元学习”或“attention就是在更新参数”写成定论。推理时模型权重不变,变化的是上下文相关激活与输出分布。
与预训练和微调的关系
next-token目标让模型习惯利用前缀中的结构,但ICL能力还依赖模型规模、训练数据中任务序列的结构和训练分布。微调通过梯度把适应写进参数;ICL把示例保留在上下文中,切换快但受长度、顺序和推理成本限制。
错误标签有时仍可能保留格式或标签空间带来的部分收益,但错误映射通常会损害任务表现,不能概括成“标签无需正确”。评测应和zero-shot、正确示例、随机标签及相似度检索示例做对照。
口语版讲法(约4分钟)
- 从next-token条件分布解释
- 说明示例提供的四类信息
- 介绍三种机制假说
- 区分激活变化与参数更新
- 给出正确标签和对照实验边界
few-shot有效的第一层解释,是它和自回归预训练的接口一致。语言模型训练的是给定前缀预测下一个token。推理时把任务说明、若干输入输出示例和新输入都放进前缀,模型就能利用这些额外条件,调整后续答案的概率分布。示例可能提供任务类别、输出格式、标签含义和输入到输出的映射,所以经常比只给一句指令信息更充分。
但我不会说few-shot一定提升。示例如果和查询无关、格式冲突、顺序造成偏置,或者占用太多上下文挤掉关键输入,效果都可能下降。模型规模、预训练数据中是否出现过类似任务结构、示例数量和检索策略也会影响结果。因此few-shot是一种上下文条件化方法,不是免费且稳定的增益。
背后机制目前仍是研究问题。任务识别假说认为,模型从示例中认出一个预训练阶段已经学过或接近的任务。隐式学习算法的工作发现,在某些受控构造和模型中,Transformer前向计算可以实现类似线性回归或梯度下降的更新规则。还有贝叶斯式解释,把任务看成潜变量,根据上下文示例更新对任务的后验判断。
这些解释可能在不同模型和任务里同时发挥作用,不能直接宣布某一个已经成为定论。尤其不能把attention权重随输入变化,等同为模型参数被更新。ICL推理期间,模型权重没有通过优化器改变;改变的是当前上下文产生的激活、注意力分配和最终条件分布。把它称为“类似学习”可以,但必须保留这个边界。
正确标签也很重要。有研究发现,即使标签随机,示例仍可能通过格式、输入分布或标签空间带来部分收益,但这不等于标签无需正确。若任务要求学习一个新的输入到标签映射,错误示例通常会误导模型。不同实验得到的结论依任务、模型和提示设置而变,不能推广成通用规律。
ICL和微调的区别也在这里。微调用梯度把变化写入参数,适合持久适应,但有训练成本和遗忘风险;ICL不改参数,切换任务快,却受上下文长度、每次重复输入示例的成本和顺序敏感性限制。二者也可以组合,例如先做指令微调,再用检索到的示例做上下文适应。
实际评测时,我会至少对比zero-shot、正确few-shot、随机标签、随机顺序和相似示例检索,并按类别和输入长度分桶。只有在独立测试集上稳定提升,才说明示例真的提供了任务信息,而不是某个模板或位置巧合。
关键一句:ICL中变化的是上下文激活与条件分布,而不是模型权重。
核验来源
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做一个智能客服,用户给了几个例子说“帮我处理退款”,然后它就能自动识别后续的退款请求。你觉得为什么给几个例子模型就能学会?它内部是怎么做到的,跟它平时训练的那个“猜下一个词”的任务有什么关系?
- 问法 2 · 层层追问
大模型做few-shot为什么效果还不错?……你觉得它真的在学新任务,还是激活了旧知识?……那它预训练时候的next token prediction任务,跟这个能力有没有什么内在联系?
- 问法 3 · 直球架构
从机制上解释大语言模型few-shot推理能力提升的原因,重点分析其与预训练目标(next token prediction)之间的关联,以及当前主流的理论假说(如任务识别、隐式梯度下降、贝叶斯推断)中你倾向哪一个,为什么?