想象一下,你是一家连锁奶茶店的培训主管。过去,每开一家新店,都要把店员送去总部培训一个月才能上岗(这就像训练一个专用模型)。现在,你发现了一个神奇的新带教方法:不用专门培训,只要把老店员的服务记录递给新店员看几眼——顾客说了什么话、店员回了什么嘴、顾客最后满不满意——新店员居然就能像老员工一样熟练接单了。这就是大模型圈最火的能力:上下文学习(In-Context Learning,ICL)。 更妙的是,小店店员翻烂了记录也学不会,可当门店规模扩大到某个临界点之后,新店员真的就是“看一眼就会、举一反三”。这种“规模一到,能力顿悟”的现象,就是人们常说的涌现能力。这篇文章,我们就用这家奶茶店的日常故事,把 ICL 聊透:它是什么、凭什么能学会、示例怎么选、规模为何如此重要,以及它有哪些“翻车”的时刻。

岗位关联

对 AI 从业者而言,ICL 是理解大模型提示工程与能力涌现的基石。掌握它,你就能在不微调模型的情况下,用几条示例撬动大模型完成各种下游任务,显著降低 AI 应用的落地成本。

目录
  1. 可视化演示
  2. 1. 基本概念:看几个例子就会的“老带新”
  3. 2. 工作原理:新店员如何“偷师学艺”
  4. 3. 示例设计:给你的新店员挑“教材”
  5. 4. 关键算法:让新店员“超常发挥”的秘诀
  6. 5. 性能特性:规模越大,越容易“开窍”
  7. 6. 优化策略:让新店员更快上手的调优心法
  8. 7. 局限挑战:新店员也有“翻车”时
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示大模型上下文学习机制:few-shot示例输入Transformer生成预测、不同示例数量性能对比、以及输出token对示例的注意力聚焦模式。

本节配有交互动效(进入视口后自动加载,约 3KB)。

ICL工作流程 Few-shot示例作为上下文输入Prompt Transformer通过注意力机制隐式学习模式 P(y|x,examples) ≈ argmax attention(Q,K,V) 无需梯度更新即可完成推理

1. 基本概念:看几个例子就会的“老带新”

新店开张,店长没有把新店员送去总部培训,而是塞给 TA 一本写着“顾客说了什么—店员回了什么”的服务记录本。新店员翻了几页,居然就能站在吧台前,像模像样地接单了。这就是奶茶界的“老带新”:不搞系统培训,光看几段示范就会干活。

在大模型的世界里,这种“看例子就学会”的本领叫上下文学习(In-Context Learning,ICL):不更新模型的任何参数,只在输入文本中拼上几组“问题—答案”示例,模型就能在这段示例的示范下,对新问题给出符合规律的回答。这些示例被称为演示(demonstration)。给几个示例叫 few-shot(少样本),给一个叫 one-shot,一个示例都不给、只靠指令则叫 zero-shot(零样本)。

ICL 与传统的微调(fine-tuning)有本质不同:微调要改动神经网络内部的权重,相当于把店员送去基地“洗脑”;ICL 完全不碰权重,只改变模型“眼前看到的文字”,相当于临时翻看记录本。正因为不需要训练,ICL 成为大模型最灵活的“即插即用”能力,也是涌现能力最典型的代表——只有模型规模足够大时,它才会稳定出现。

你看,公式里每个符号都能对应到店长手里的记录本:示例对是过往案例,新输入是正在排队的顾客,输出是店员即将说出口的那句话。ICL 的本质,就是让模型在“看例子”的过程中学会任务规律。

P(yk+1  |  xk+1,  {(x1,y1),…,(xk,yk)})P\left(y_{k+1} \;\middle|\; x_{k+1},\; \{(x_1, y_1), \dots, (x_k, y_k)\}\right)
这个公式是说:在看完 k 组“输入—答案”示例、又看到新输入 x_{k+1} 之后,模型输出 y_{k+1} 的概率有多大。ICL 的目标就是让这个概率尽量接近正确答案。
  1. P(A|B) 条件概率符号表示在 B 成立的条件下 A 发生的可能性有多大
    P(A∣B)P(A \mid B)
  2. y_{k+1} 新输出标签模型要预测的新样本结果,比如“正面”
    yk+1y_{k+1}
  3. x_{k+1} 新查询输入还没出现在示例里的待回答内容,比如一句新影评
    xk+1x_{k+1}
  4. 示例对集合k 个由“输入—答案”配对组成的示范对
    {(x1,y1),…,(xk,yk)}\{(x_1, y_1), \dots, (x_k, y_k)\}

2. 工作原理:新店员如何“偷师学艺”

你好奇地问新店员:“你怎么知道顾客嫌太甜就该推荐降糖?”店员挠头说:“我也说不清,看记录本时,好像每一条都在提醒我——‘甜’和‘降糖’常常一起出现。”新店员并不是背下每条记录,而是在阅读时不断捕捉词与词之间的关联模式,这就是TA的“偷师”。

大模型的 ICL 与此惊人相似。以 Transformer 架构为例,每一层的自注意力机制(Self-Attention)都会让序列中的每个 token 与所有其他 token 建立关联。当提示里塞进 k 个示例后,模型的内在表示会在层层传递中反复“回看”这些示例,再从一个隐式的“任务规则”出发生成答案。学术上称这个想象为隐式贝叶斯推断:模型就像在心里估计“这个任务最可能的规则长相”。

形式上,注意力可以写成一个简洁的公式:

每个位置的查询 Q 会和所有位置的键 K 做点积打分,得到“该看谁多少注意力”的分数,再用 softmax 归一化成权重,最后按权重聚合对应的值 V。因为每一层注意力都能跨越整个上下文,示例中的信息才能一路传到最后的预测位置。同时,任务识别和模式匹配也扮演关键角色:示例帮模型确认“这是情感分类”还是“这是翻译”,然后从预训练学到的海量技能中找出正确的路径。

这就像新店员读记录本时,每遇到一个词,都会下意识地扫一遍全本,看看哪些词总是一起出现,最后形成一种“语感”——不是背诵,而是捕捉规律。注意力层就是大模型的“语感”来源。

Attention(Q,K,V)=softmax(QK⊤dk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V
  1. Q、K、V 向量查询、键、值,分别回答“我要找什么”“我是什么”“找到后取什么”
    Q,K,VQ, K, V
  2. QK^\top 相关度打分查询与所有键做点积,得分越高说明越相关
    QK⊤QK^\top
  3. 缩放因子 \sqrt{d_k}让点积数值保持在合理范围,避免 softmax 梯度消失
    QK⊤dk\frac{QK^\top}{\sqrt{d_k}}
  4. softmax 归一化与加权聚合把得分变成总和为 1 的权重,再对值向量加权求和
    softmax(⋅)⋅V\text{softmax}\left(\cdot\right) \cdot V

3. 示例设计:给你的新店员挑“教材”

一个月后,店长发现:给新店员看什么记录,直接决定TA的服务水平。看十条统一的“顾客—回应”对话,店员很快上手;看二十条东一句西一句的碎片,店员反而犯迷糊。范例的数量、顺序、格式,每一处都是学问。

在 ICL 中,演示(demonstration)的设计是效果好坏的第一杠杆。实证研究发现:示例太少,模型学不到规律;示例太多,超出上下文窗口反而无效;示例顺序错乱,性能明显下滑;示例格式五花八门,模型无所适从;标签空间也有影响——如果示例里“负面”标签占多数,模型就会倾向于输出“负面”。

示例数量与性能之间通常呈现边际递减的饱和趋势,可用指数型函数近似描述:

这里 N 是示例个数,E_max 是性能上限,λ 是增长速率。前半段增加一个示例收益明显,后半段则趋近平缓。因此实践中 3~5 个精心挑选的示例往往性价比最高。

给新店员挑教材,本质上是在帮TA降低理解难度:数量少而精、顺序有讲究、格式一个样。示例设计做到位,店员学得快;示例一团乱麻,再聪明也白搭。

E(N)=Emax⁡⋅(1−e−λN)E(N) = E_{\max} \cdot \left(1 - e^{-\lambda N}\right)
  1. E(N) 性能函数任务准确率随示例数量变化的曲线
    E(N)E(N)
  2. N 示例数量提示中放入的“输入—输出”对个数
    NN
  3. E_max 性能上限示例再多也无法突破的天花板
    Emax⁡E_{\max}
  4. λ 增长速率决定每增加一个示例带来多大边际收益
    λ\lambda
  5. 1 - e^{-λN} 递减因子收益随示例数增加逐渐趋零
    1−e−λN1 - e^{-\lambda N}

4. 关键算法:让新店员“超常发挥”的秘诀

资深店长还有几招独门秘籍:第一招,上岗前先给新店员一张“今日重点”提示卡;第二招,在记录本上写出店员当时的“内心独白”,比如“顾客说太甜 → 内心想:推荐降糖 → 开口推荐”;第三招,接待之前先查一下总部资料库里最像的案例;第四招,总部招聘时优先选那些“一点就通”的高潜苗子。

这些秘诀映射到 ICL 里分别是四类方法:前缀提示(Prefix Prompt)——在示例前加入任务描述,让模型先明确“这是什么任务”;思维链提示(Chain-of-Thought,CoT)——在示例中加入中间推理步骤,引导模型“边想边答”,尤其适合数学与逻辑题;检索增强(Retrieval-augmented ICL)——针对新查询先从库里检索语义最相似的几条示例作演示,而不是随机挑选;指令微调(Instruction Tuning)——模型在预训练后再经过大量“指令→回答”数据训练,从而更容易看懂提示中的任务要求。

思维链背后的概率视角可以写成:

其中 z 表示模型在输出最终答案 y 之前生成的中间推理步骤。模型先“想”一段推理,再基于这段推理给出答案。

这些“秘诀”的共同点,是把大模型的潜能通过提示充分放大——就像给新店员一张清晰的任务卡、一份带思考过程的范例,TA自然能超常发挥。

P(y∣x)≈∑zP(z∣x)⋅P(y∣x,z)P(y \mid x) \approx \sum_{z} P(z \mid x) \cdot P(y \mid x, z)
  1. z 中间推理步骤例如“3×5=15,所以答案是 15”
    zz
  2. P(z|x) 推理生成概率给定问题 x,模型先产生某段推理 z 的概率
    P(z∣x)P(z \mid x)
  3. P(y|x,z) 答案生成概率基于推理 z,落在最终答案 y 上的概率
    P(y∣x,z)P(y \mid x, z)
  4. 求和符号边际化:把所有可能推理路径的结果汇总起来
    ∑z\sum_{z}

5. 性能特性:规模越大,越容易“开窍”

小门店的店员看了十个范例还是只会机械模仿;可当连锁品牌扩张到万店规模后,新店员看一眼范例就能举一反三,甚至能处理范例里根本没出现过的复杂状况。这种现象在奶茶界叫“开窍”,在 AI 界叫涌现(Emergence)。

涌现能力描述的正是:某些能力在模型规模较小时几乎不存在(性能贴近随机水平),但当参数规模跨越某个阈值后,能力突然跃升、直线向上。ICL 就是最典型的涌现能力之一——小模型“看再多示例也学不会”,大模型“一看范文就会”。

这种“突变式”的能力提升,可以用 S 型(逻辑斯蒂)曲线近似描述:

其中 S 表示模型规模(参数量或训练数据量),S_0 是涌现发生的临界阈值,k 控制转变的陡峭程度,A_max 是能力上限。实际研究还发现,涌现伴随着三个特性:稳定性——同一任务换一批示例或调换顺序,表现会波动;泛化能力——ICL 能迁移到训练时未见过的任务上;任务相关性——不是所有任务同时涌现,任务越难,涌现阈值往往越高。

就像万店连锁沉淀出了“组织智慧”,大模型在规模重压下“顿悟”了 ICL。对工程师而言,这意味着你可能不需要自己训练新模型——选对足够大的底座模型,能力自然到手。

A(S)=Amax⁡1+e−k (S−S0)A(S) = \frac{A_{\max}}{1 + e^{-k\,(S - S_0)}}
  1. S 模型规模参数量、训练数据量等规模指标
    SS
  2. S_0 涌现阈值能力发生突变的临界规模点
    S0S_0
  3. k 转变陡峭度曲线从低到高过渡得有多快
    kk
  4. A_max 能力上限规模极大时性能的饱和值
    Amax⁡A_{\max}
  5. 逻辑斯蒂分母形成 S 形曲线的核心部件
    1+e−k(S−S0)1 + e^{-k(S - S_0)}

6. 优化策略:让新店员更快上手的调优心法

老店长笑而不语:同样是“看记录学技能”,为什么我带出来的店员总比别人快?原因就在四个小动作——挑最像的案例给TA看、把记录的格式统一成一样、纠正TA对某类顾客的偏见、一次不塞太多东西。每一条都看似简单,合在一起效果却大不相同。

ICL 的优化策略也恰好对应这四个方向:示例选择——针对新查询检索最相似的示例,而不是随机挑,效果提升显著;模板优化——统一示例格式、讲清指令措辞,减少模型“误解任务”的概率;校准方法——通过调整输出分布,消除模型对某些标签的固有偏好(比如模型总爱输出“正面”);上下文压缩——在窗口有限的条件下,用摘要或筛选保留最有信息量的示例。

“找最相似示例”最常用的是余弦相似度:

把新查询 x 与候选示例 x_i 编码成向量后,计算它们之间的余弦夹角。夹角越小,语义越接近,这条示例就越适合作为演示。

这些心法的本质,是降低新店员的“理解成本”:让TA在最短时间内看到最相关、最规范、最不偏不倚的范例。工程上的 ICL 优化,其实就是组合拳——选例子、整格式、纠偏见、省空间。

sim(x,xi)=x⋅xi∥x∥2⋅∥xi∥2\text{sim}(x, x_i) = \frac{x \cdot x_i}{\|x\|_2 \cdot \|x_i\|_2}
  1. x 与 x_i 向量查询与候选示例的语义向量化表示
    x,xix, x_i
  2. 点积 x \cdot x_i两组向量对应维度相乘之和,衡量方向一致性
    x⋅xix \cdot x_i
  3. 模长 \|x\|_2向量的长度,用于消除向量大小的影响
    ∑jxj2\sqrt{\sum_{j} x_j^2}
  4. 余弦相似度点积除以两个模长,得到一个衡量夹角的数值
    sim(x,xi)=cos⁡θ\text{sim}(x, x_i) = \cos \theta

7. 局限挑战:新店员也有“翻车”时

当然,新店员并非万能。你发现TA有时只会照本宣科:一条记录写“少冰”,TA就永远只答“少冰”;顾客问“今天有什么推荐”,TA居然编出一款并不存在的“芒果榴莲珍珠”;更离谱的是,把三条范例的排列顺序换一下,TA的回答风格立刻漂移。这些“翻车”场景,在真实 ICL 中不仅存在,而且相当普遍。

ICL 的局限主要有四方面:上下文长度限制——哪怕最新的模型也只能装下数千到数万 token,示例一多就会超窗;鲁棒性差——示例顺序、措辞甚至标点符号的微小变化,都可能引起输出剧烈波动;幻觉问题——模型可能顺着示例的“惯性”编造与事实不符的内容;评估基准不稳——同一任务在不同示例集、不同随机种子下结果可能相差很大,让复现和评测变得困难。

衡量模型在给定上下文中“不确定度”的常用指标是困惑度(Perplexity):

困惑度越低,模型对文本的预测越自信。当上下文冗长、矛盾或超出模型知识边界时,困惑度通常会明显升高。

认清这些“翻车”时刻不是为了劝退,而是提醒我们:新店员需要持续校准和经验督导。工程上,要通过示例校验、输出审核、降级策略来兜底,才能放心地把 ICL 用在生产环境。

PPL=exp⁡(−1T∑t=1Tlog⁡P(xt∣x<t))\text{PPL} = \exp\left(-\frac{1}{T} \sum_{t=1}^{T} \log P(x_t \mid x_{<t})\right)
  1. x_t 第 t 个词元文本被分词后的最小处理单元
    xtx_t
  2. P(x_t | x_{<t}) 条件概率模型根据前文预测当前词元的把握
    P(xt∣x<t)P(x_t \mid x_{<t})
  3. 平均负对数似然把整段文本的预测难度取平均
    −1T∑t=1Tlog⁡P(xt∣x<t)-\frac{1}{T}\sum_{t=1}^{T}\log P(x_t \mid x_{<t})
  4. exp 指数还原把负对数似然变成直观的“困惑”数值
    exp⁡(⋅)\exp(\cdot)

AI 应用场景

场景一:舆情与评论情感分析

阶段:模型推理 / 提示工程

解决的问题:传统做法需要先标注几千条数据,再微调 BERT 这类模型,周期长、成本高。ICL 只需在提示里放 3~5 条已标注示例,零训练就能在评论数据上完成情感分类,冷启动极快。

具体案例:某电商运营团队每天要处理数千条用户评价。他们改用大模型 API 构造 few-shot 提示,附上三条精心挑选的正负例,把分类准确率提升到接近微调模型水平,上线周期从两周压缩到半天。

场景二:代码补全与风格迁移

阶段:模型生成 / 辅助编码

解决的问题:直接让模型写代码,风格往往不符合团队规范。通过在提示中放入仓库里现有代码的典型片段作为示例,模型补全的新代码就能自动贴合项目风格,减少 Code Review 的返工。

具体案例:一家后端团队接入代码大模型辅助编程时,把“日志格式”“命名规范”的代码样例作为 ICL 示例加入系统提示,生成代码的团队风格符合率明显提升,评审返工率下降约 30%。

场景三:客服意图识别冷启动

阶段:模型推理 / 业务冷启动

解决的问题:新业务上线时没有足够的标注数据训练意图分类模型。ICL 允许“带几个例子直接上”,等积累数据之后再微调,兼顾速度与成本。

具体案例:某金融公司上线新客服机器人时,冷启动阶段用 few-shot ICL 识别“查余额/转账/提额/投诉”等意图,每个意图只靠 5 条示例就能稳定运行,人工兜底率从 60% 降到 20%。

Python 演示

python42 行
# -*- coding: utf-8 -*-"""上下文学习(ICL)演示:对比 zero-shot 与 few-shot 在情感分类上的输出。"""from transformers import pipeline gen = pipeline("text2text-generation", model="google/flan-t5-small")  def ask(prompt: str) -> str:    """传入完整提示,返回模型在提示之后新生成的内容。"""    return gen(prompt, max_new_tokens=8)[0]["generated_text"].strip()  QUERY = "The movie is so wonderful!"EXAMPLES = [    "The weather is awful.\nSentiment: negative",    "The service is too slow.\nSentiment: negative",    "The book is very exciting.\nSentiment: positive",]  def build_prompt(examples, query):    head = "Classify the sentiment of the text as positive or negative.\n"    if examples:        head += "\n".join(examples) + "\n"    return head + f"Text: {query}\nSentiment:"  def main():    zero_prompt = build_prompt([], QUERY)    few_prompt = build_prompt(EXAMPLES, QUERY)     print("===== Zero-shot 提示 =====")    print(zero_prompt)    print("模型输出:", ask(zero_prompt))     print("\n===== Few-shot 提示 =====")    print(few_prompt)    print("模型输出:", ask(few_prompt))  if __name__ == "__main__":    main()
目的:加载一个轻量级指令微调模型,分别构造 zero-shot 与 few-shot 两个提示,直观对比“看示例”前后模型输出的差异。首次运行会自动下载模型权重。
  1. gen = pipeline("text2text-generation", model="google/flan-t5-small")加载开源小模型,CPU 即可运行,适合演示 ICL
  2. def ask(prompt: str) -> str:封装一次模型推理,并截取新生成的文本
  3. EXAMPLES三条示例分别覆盖负面与正面两类,构成 few-shot 上下文
  4. build_prompt(examples, query)把示例逐行拼接到指令之后,形成标准 ICL 提示
  5. zero_prompt = build_prompt([], QUERY)零样本:不带任何示例,只有指令
  6. few_prompt = build_prompt(EXAMPLES, QUERY)少样本:带 3 条示例
  7. if __name__ == "__main__": main()给脚本一个可执行入口

常见误区

误区“我以为上下文学习就是少样本学习,两者都是给模型看少量数据,意思应该差不多吧?”

正解两者有本质区别:少样本学习通常指在训练阶段让模型快速适应少量样本(可能需要更新参数或使用元学习),而 ICL 是推理阶段把示例拼进提示,参数完全不动。比喻:少样本学习像“上岗前的小班培训”,ICL 则是“在岗时翻看案例,看完立刻接单”。

为何常见:few-shot ICL 常被简称为“few-shot”,与少样本学习的英文撞车,导致初学者混淆两个不同阶段的概念。

误区“既然示例能教模型怎么回答,那当然是塞得越多越好,多多益善。”

正解示例过多可能超出上下文窗口被截断,会引入噪声或低相关样本,还会产生边际收益递减,甚至让性能下降。质量比数量重要。比喻:给新店员一百个琐碎案例,不如给十个高代表性的典型场景。

为何常见:直觉上“例子多=学得更全”,且不少初学者的实验里曲线确实在上升,容易忽略窗口与噪声的长期代价。

误区“ICL 这么强,以后全靠提示词就行,微调模型要过时了。”

正解ICL 依赖大模型的涌现能力,模型不够大时效果不稳定;在领域术语、格式化输出、私有知识等场景,微调依然不可替代。比喻:看案例能学接待话术,但要学会店里的全套财务系统操作,还是得系统培训。

为何常见:大模型宣传中 ICL 表现惊艳,容易让人低估它的规模依赖、长提示推理成本,以及应对复杂任务的边界。

误区“零样本嘛,反正不给例子,提示词随便组织一下就行。”

正解零样本 ICL 的性能高度依赖提示措辞、指令清晰度和输出格式。指令越明确,表现越接近 few-shot。比喻:对新店员说“好好干”不如说“顾客进门先微笑问好,点单时先问冰量再问糖度”。

为何常见:zero-shot 看似“零配置”,让人忽视 prompt 工程的重要性——实际上提示本身就是零样本模式下唯一的“知识接口”。

误区“网上都说了,ICL 靠的就是注意力机制和贝叶斯推断,原理已经很清楚了。”

正解注意力和贝叶斯推断只是主流假说;ICL 的内部机理仍有大量未解之谜,例如模型到底在“学习任务”还是在“复制模式”,不同现象有时并不能用单一理论自洽解释。比喻:我们知道新店员翻着记录本就会了,但 TA 脑子里具体经历了什么,目前仍是黑匣子。

为何常见:少数论文给出简洁解释后经媒体放大,容易被误读为定论,实际上该领域还在快速演进。

面试题

Q1. 在大模型语境中,ICL 常翻译为?

单选题 · easy

  • A.上下文学习← 正确答案
  • B.内部上下文层
  • C.增量概念学习
  • D.实例对比学习

答案:A。ICL 全称 In-Context Learning,直译为“上下文学习”,强调模型仅凭提示中的上下文示例即可完成新任务。其他选项是干扰项,与 ICL 的标准译法无关。

Q2. 与微调相比,ICL 的核心特点是?

单选题 · easy

  • A.需要更新全部模型参数
  • B.只改提示而不更新参数← 正确答案
  • C.需要收集更多训练样本
  • D.需要调整网络的层数与宽度

答案:B。ICL 不改动任何模型权重,任务知识全部通过提示文本注入;微调则需要更新参数、消耗大量算力。类比如:一个新店员靠翻记录本上岗,而不是送回总部重新培训。

Q3. few-shot ICL 中的“k”通常表示?

单选题 · mid

  • A.模型的隐藏层数量
  • B.提示中示例的数量← 正确答案
  • C.上下文窗口的长度
  • D.输出类别的数量

答案:B。在 few-shot ICL 中,k 指提示中“输入—输出”示例对的个数。k 太小学不到规律,k 太大受上下文窗口限制或引入噪声,需要权衡。

Q4. 设计 ICL 示例时需要关注哪些因素?

多选题 · mid

  • A.示例数量与多样性← 正确答案
  • B.示例排列的顺序← 正确答案
  • C.示例格式的一致性← 正确答案
  • D.激活函数的类型

答案:ABC。示例数量、顺序、格式都会显著影响 ICL 的效果;激活函数属于模型架构选择,与提示中的示例设计无关,因此 D 错误。

Q5. 关于“涌现能力”最准确的理解是?

单选题 · mid

  • A.能力随规模平稳提升
  • B.规模跨过阈值的突现← 正确答案
  • C.纯粹靠堆更多训练数据
  • D.模型结构微调的结果

答案:B。涌现指小规模时能力接近随机水平,规模超过某个阈值后能力突然跃升,ICL 就是典型例子。平稳提升是“量变”,跨越阈值的突变才是“质变”意义上的涌现。

Q6. 思维链提示(CoT)的核心思想是?

单选题 · mid

  • A.让模型直接输出最终答案
  • B.在示例中展示中间推理步骤← 正确答案
  • C.使用更深网络来增强记忆
  • D.减少示例数量以节省算力

答案:B。CoT 在提示示例中加入“先想后答”的中间推理步骤,引导模型生成推理链后再给出答案,能显著提升数学与逻辑题表现。它不改变模型结构,也不以省算力为目标。

Q7. 以下哪些做法可以提升 ICL 的稳定性?

多选题 · hard

  • A.选用语义相近的示例← 正确答案
  • B.对预测分布做校准← 正确答案
  • C.大幅增大学习率
  • D.使用随机初始化权重

答案:AB。检索语义相近的示例可降低示例选择方差,校准可抵消标签偏置,这两者都提升 ICL 稳定表现;学习率与权重初始化属于训练阶段的事,与推理期 ICL 无关。

Q8. ICL 中的“校准”方法主要目标是?

单选题 · hard

  • A.让模型不更新参数也能学习
  • B.消除模型对标签的固有偏好← 正确答案
  • C.增加模型的上下文窗口大小
  • D.降低示例选取的时间开销

答案:B。预训练语料中标签分布往往不均衡(例如“正面”偏多),导致模型即便看到均衡示例,输出仍倾向某些标签。校准通过调整输出分布来消除这种偏置,而不是改变学习方式或窗口大小。

Q9. ICL 的典型局限有哪些?

多选题 · hard

  • A.上下文窗口长度有限← 正确答案
  • B.对示例顺序很敏感← 正确答案
  • C.输出可能产生幻觉← 正确答案
  • D.无法完成文本分类

答案:ABC。窗口限制示例数量,顺序敏感导致鲁棒性差,幻觉是生成模型的通病;但 ICL 在文本分类上恰恰表现良好,因此 D 说法错误。

Q10. 从隐式贝叶斯推断视角,预训练的作用可理解为?

单选题 · extreme

  • A.为任务结构提供先验← 正确答案
  • B.为模型提供随机初始化
  • C.给示例提供更多标注
  • D.使激活函数非线性化

答案:A。贝叶斯观点下,预训练让模型获得一个关于“任务分布”的先验;ICL 示例相当于观测数据,模型据此更新后验再预测新样本。随机初始化、激活函数属于训练细节,并非预训练在贝叶斯框架里的角色。