想象一家老字号餐馆里,有位做了二十年菜的老师傅。一天来了位客人,点了一道从没听过的地方菜,还随手递来两张照片——一张是别人做好的成品,一张是配料清单。老师傅端详片刻,既没报培训班,也没改写自己的菜谱,仅仅对照照片里的搭配与火候,愣是把这道新菜做了出来。 大模型的上下文学习(In-Context Learning,ICL)就是这手“临阵磨枪”的绝活。模型在预训练阶段已经把海量知识“炖”进了参数里;到了推理阶段,面对一个新任务,它不需要更新任何权重——就像老师傅不需要重新学烹饪原理——只需在提示(prompt)里放几个示例,模型就能从示例中读出任务模式、照葫芦画瓢地完成任务。这就是大模型“涌现能力”最直观的体现:一个固定的大脑,却能适应无限多的新任务。
理解 ICL 机制,意味着你能用一套冻结权重服务几十个业务场景,省下数百万微调算力成本,这是大模型时代工程决策的核心底层认知。
目录
可视化演示
展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。
本节配有交互动效(进入视口后自动加载,约 3KB)。
系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T
概念定义:什么是上下文学习
老师傅做菜时真正依赖的是什么?是眼前那两张照片里的“参照关系”——成品什么样、配料有哪些、大概什么做法。他不需要把菜谱背下来,更不需要去厨师学校进修。这恰恰就是上下文学习的精髓:模型从提示中给出的示例里“看出”任务规律,然后照着规律做预测。
在深度学习中,“学习”这个词常常让人联想到更新权重、反向传播。但上下文学习走了一条完全不同的路:它把任务说明直接编码在输入序列里。你给模型一串带有输入输出对的示例,再抛出一个新问题,模型就能顺着示例的格式与模式,给出新问题的答案。整个过程没有梯度下降,没有参数更新,模型还是那个预训练好的模型,变化的只是它“看到”的上下文。
正式地讲,上下文学习可以描述为:给定上下文示例集 D 与查询输入 x,模型输出条件概率最大的答案:
1. 最佳答案 $\hat{y}$:模型在词表上算出所有候选词的概率后,挑出概率最大的那个作为最终输出,对应老师傅最终端上桌的菜。
2. 条件概率 $P_{\theta}(y \mid x, D)$:在模型参数固定为 θ、看到示例集 D 与输入 x 的前提下,答案 y 的可能性大小。
3. 参数下标 θ:强调参数从未被更新。整个公式里 θ 只是“被使用”,不是“被优化”。
4. 示例集 D:若干“输入→输出”配对,相当于老师傅手里的参考照片。D 可以为空,对应 Zero-shot;也可以有 k 组配对,对应 Few-shot。
基于示例有无,ICL 又分成两支:Zero-shot 直接靠任务描述引导模型,一个示例都不给,像厨师只看菜名就动工;Few-shot 则在提示中放入少量示例,像厨师拿着三四张成品照,照着模仿。微调是给模型“重新上课”,ICL 是“看例题直接考试”——这正是它与微调最本质的分界线。
发展源流:从 GPT-3 到涌现
老师傅年轻时并不会做这道地方菜。为什么二十年后的今天,他看一眼照片就会了?不是菜谱变了,而是他二十年的功底攒到了一个临界点,积累的调味常识、火候经验、食材处理技巧彼此打通,产生了“举一反三”的质变。大模型的 ICL 也是这么来的:小模型无论怎么给示例都像“没开窍”,规模大到一定程度后,给几个示例就突然会了。
2020 年 GPT-3 发表时,研究者首次系统性地观察到这种能力:一个只做“续写”训练的模型,居然能根据提示中的几个例子完成翻译、问答、算术等从未专门训练过的任务。这种现象被称为“涌现能力”——它不是被明确编程进去的,而是模型参数量跨越某个规模门槛后自然冒出来的。
如果把任务表现画成关于模型规模的曲线,会看到一条典型的 S 形曲线,在临界规模附近陡然上升:
1. 模型规模 N:指模型的参数量,类似厨师的“从业年限”。
2. 临界规模 $N_c$:能力涌现的阈值。N 小于它,ICL 表现接近随机;大于它,表现迅速攀升。
3. 陡峭系数 k:控制能力上升多快,k 越大,“从不会到会”的拐弯越陡。
4. 能力水平 S(N):在给定规模下模型做任务的得分,取值范围在 0 到 1 之间。
这条曲线透露了一个重要规律:ICL 不是“学出来的技能”,而是“长出来的能力”。它提醒我们,评估一个团队是否要追加大模型算力,不能只看当前效果,还要看到规模增长可能带来的能力跃迁——就像投资者要判断厨师到底还差几年火候。
归纳头机制:ICL 的底层引擎
老师傅做菜时会“闪回”:看到照片里某个配料的切法,脑子里自动弹出以前做过的相似菜式,连后续步骤都想起来了。Transformer 模型内部也有类似的“闪回”结构,研究者称之为归纳头(induction head)。它负责在上下文中找到与当前 token 相似的历史 token,再把那个 token 之后的内容“复制”过来作为预测依据。
归纳头的关键机制是两层注意力的协作。先看单层注意力如何工作:每个 token 都会生成一个查询向量 Q,去和上下文里所有 token 的键向量 K 做匹配,再用匹配强度去加权求和对应的值向量 V。公式如下:
1. 查询 Q 与键 K:Q 代表“我在找什么”,K 代表“我是什么”,两者点积衡量相关性,就像“这张照片的配料”和“记忆中的菜”在比对。
2. 缩放因子 $\sqrt{d_k}$:向量维度较大时点积数值会很大,除以它防止 softmax 进入饱和区,类似比拼时要先统一量纲。
3. softmax 归一化:把相关度分数变成一组和为 1 的注意力权重,决定每段记忆被调用多少。
4. 加权求和 V:最终输出是各个 token 携带信息按权重混合的结果,类似把多道相似菜的步骤按相似度加权拼成新做法。
单层注意力只会“注意到”相似 token,还不能完成“复制其后内容”这个动作。归纳头是两层注意力组合出来的复合结构:
1. 第一层 Attn₁:定位上下文中与当前 token 相同的“前文出现点”,比如查询里的“樱桃”先回头找到示例里的“苹果”。
2. 第二层 Attn₂:把注意力从“出现点”移到它的后一个 token 上,读取其后的答案,比如读出“水果”。
3. 复合操作 $\circ$:两层顺序执行,前一层的结果作为后一层的输入,衔接成“匹配→复制”的完整链路。
值得注意的是归纳头并非所有模型天然具备。它通常在规模足够大、训练数据足够丰富后才稳定出现,这也解释了为什么 ICL 是“涌现能力”——当模型大到某些注意力头自然学会了“找相似、抄答案”这一招,ICL 就诞生了。你甚至可以把归纳头理解为老厨师那套“触类旁通”的直觉回路,它是二十年后厨艺质变的物质基础。
前向传播流程:一次完整推理
老师傅完整做一道菜的流程是:先看照片(理解示例),再比对自家食材(匹配),然后开火下锅(迁移做法),最后装盘上桌(输出成品)。大模型完成一次 ICL 推理,同样遵循一条清晰的前向传播链路。
第一步是构造输入。模型会把所有示例和查询拼成一个长序列,以特定分隔符区分示例内部和示例之间。形式化表示为:
1. 示例对 $(x_1, y_1)$:第一个演示样本的输入及其标准答案,相当于照片里的“配料 + 成品”。
2. k 个示例拼接:多个输入输出对按顺序首尾相连,共同构成任务的“参考手册”。
3. 查询输入 $x_{\text{query}}$:放在序列末尾、真正待求解的问题,最后一个 token 对应的位置就是模型要填的空。
输入序列进入模型后,会经过几十层 Transformer 块的前向传播。每一层都执行前面讲的自注意力,逐层提炼任务模式:低层可能看到字面重复,高层开始理解“示例中的输出应该作为预测模板”。整个过程没有任何反向传播,没有损失函数,没有优化器。
最终,模型取最后一个 token 位置的隐状态,通过输出投影层映射到词表概率分布:
1. 最后隐状态 $h_{\text{last}}$:它浓缩了整个上下文(示例 + 查询)的语义,相当于老师傅看完照片后脑中的完整方案。
2. 输出投影矩阵 $W_o$:把隐状态从模型空间映射到词表大小的向量,每个维度对应一个候选词。
3. softmax:把向量转成概率分布,概率最高的词就是模型给出的答案。
这套流程的关键词是“无需梯度”——四个字背后是巨大的工程红利。你不需要一个 GPU 集群去跑训练,只要在推理请求里多塞几个示例,任务就“切换”了。想想老师傅那本从未被改写的菜谱,一切都说得通了。
影响因素:什么在左右效果
同样是看照片做菜,照片清晰度、数量、拍摄角度都会影响出品质量。ICL 也一样,它的效果受若干关键因素左右,理解这些因素,才能在实战中把 ICL 的潜力榨干。
首先是示例数量。直觉上示例越多越好,但实验表明 ICL 性能大多随示例数呈对数增长,迅速饱和。给出公式:
1. 示例数量 k:每个任务提供的标注样本数,对应照片的张数。
2. 对数项 $\log(1+k)$:收益递减的数学刻画——从 1 个示例到 2 个示例提升明显,从 50 个到 51 个几乎无感。
3. 常数 $c_1$ 与 $c_2$:$c_1$ 决定提升速度,$c_2$ 是零示例时的基线水平,对应 Zero-shot 的底子。
更反直觉的是,示例多了有时反而变差,出现“越加越乱”的非单调现象。这就像照片铺了一桌,厨师反而看花了眼,拿不准主次。原因在于过长的上下文会引入注意力噪声,且示例间如果存在冲突信息,模型难以取舍。
其次是格式与顺序。同样的示例换一种排列顺序,效果可能剧烈波动,这已经是被反复验证的“排列敏感性”。最后是标签空间与分布:示例中各类别的比例、标签词的措辞都会影响预测偏向。比如示例里“水果”标签占多数,模型就更倾向于把边界案例判成“水果”。理解这些影响因素,相当于摸清老师傅的脾气——知道什么条件下他发挥稳定,什么条件下容易翻车。
工程价值:零成本适配新任务
餐馆老板的视角最实际:与其花几万块送厨师去外地培训(微调),不如买三张照片让他看着做。每来一个新菜系,只需换一批照片,不耽误出菜,还省下培训时间。这就是 ICL 在工程世界的价值映射。
传统微调流程要准备训练集、写训练脚本、租 GPU、调参、重新部署模型,一个任务动辄数天到数周。而 ICL 把“模型适配”简化为“提示工程”:你只需要在提示里放几个示例,发送一个推理请求,模型立刻就能以新任务的形态工作。直观的成本对比是:
1. ICL 成本 $C_{\text{ICL}}$:按推理 token 数计费,每个示例消耗固定 token,总成本随 k 线性增长。
2. token 单价 $c_{\text{token}}$:推理服务的单位计价,当前市场约每百万 token 几美元到几十美元。
3. 微调成本 $C_{\text{FT}}$:包含训练算力、GPU 租赁、人工调参与模型存储,比 ICL 高出数个量级。
这种成本优势直接改变了资源分配决策。一家同时有十几个 NLP 任务的公司,如果每个任务单独微调一个模型,光是 GPU 和运维成本就压得喘不过气。改用“一个底座模型 + 多套提示模板”的 ICL 架构后,新任务上线时间从天级降到分钟级,一个模型服务所有任务,GPU 利用率大幅提升。这和餐馆老板用同一套厨房设备接待四方来客,本质上是同一个生意逻辑:硬件不变,靠“菜谱”(提示)灵活应变。
局限与展望:不完美但值得期待
老师傅也有失手的时候:照片拍得刁钻、灯光偏色,或者客人描述的菜名和实际做法有出入,他做出的菜就可能走样。ICL 并非万能,它有一系列已知的“翻车点”。
最典型的是排列敏感性:同一组示例,仅调换顺序,预测结果可能从正确变成错误。这可以用公式直观表达:
1. 排列 $\pi_1(D)$ 与 $\pi_2(D)$:同一示例集 D 的两种不同打乱顺序。
2. 性能差异:两者的准确率不相等,说明模型对上下文顺序并不鲁棒,就像厨师对照片摆放顺序有偏好。
3. 管理启示:实践中需要做顺序搜索或设计稳健的提示模板,不能随便塞几个示例就完事。
其次是提示敏感性:措辞轻微改动(比如把“分类”改成“判断”)可能带来显著效果差异。此外,模型的输出分布会向训练数据中的高频类别倾斜,导致小众类别的召回率偏低。这些局限催生了当前活跃的研究方向:如何让 ICL 更稳定、如何自动搜索最优示例、如何消除标签偏差。也许未来某天,模型会对照片的摆放顺序彻底免疫——但即便在今天,这份“不完美”也已经足以让 AI 从业者提前看清一个趋势:理解 ICL,就是理解大模型时代最便宜的“适应能力”,谁先掌握它,谁就能用最低成本撬动最多的业务价值。
AI 应用场景
智能客服意图识别
阶段:推理与部署
解决的问题:传统意图识别需要为每个新业务线标注大量数据、训练分类器并重新部署,周期长且成本高。ICL 允许在提示中放入 2-3 个示例,让大模型即时理解新意图,无需任何权重更新,从“定制开发”变成“配置化上线”。
具体案例:某电商平台新增“以旧换新”咨询通道,算法工程师在 prompt 中放入“手机开裂→回收估价”“旧家电→以旧换新补贴”等 3 组示例并附上说明,当天即获得可用意图分类器,首周准确率超过传统方案三个月迭代的效果。
数据标注规范快速验证
阶段:数据工程
解决的问题:标注规范频繁修改时,传统做法需要重新培训标注团队、返工历史数据,成本极高。ICL 可以先让大模型按新规范标注小批量样本,快速验证规范的清晰度与可行性,再决定是否全面铺开。
具体案例:一家医疗 AI 公司修改了病理报告的结构化标注规范,标注组长用 5 个示例让大模型先行标注 100 条测试数据,与人工标注的一致率超过 90%,及时发现规范中的歧义条款,避免了一次涉及 10 万条数据的返工事故。
多任务统一服务架构
阶段:模型服务与资源分配
解决的问题:一家企业往往有十几个 NLP 任务,每个任务单独微调一个模型会消耗大量 GPU 资源,且难以统一运维。ICL 让一个底座模型承载全部任务,切换任务只需切换提示模板,资源利用率与迭代速度同时提升。
具体案例:某金融科技公司将 6 个分类任务从各自独立的微调 BERT 模型迁移到“1 个大模型 + 6 套 ICL 提示模板”的架构,GPU 占用下降 70%,新任务上线时间从天级降至小时级,推理成本整体降低 55%。
Python 演示
# -*- coding: utf-8 -*-"""迷你上下文学习(ICL)演示:不更新任何参数, 仅靠上下文示例完成新任务。用"固定词向量 + 余弦注意力"模拟归纳头的匹配-复制机制。""" import math # 固定参数: 预训练"词向量" (模拟冻结的模型权重)WORDS = { "苹果": [1.0, 0.1], "梨": [0.9, 0.05], "香蕉": [0.8, 0.15], "樱桃": [1.1, 0.2], "西瓜": [0.95, -0.05], "白菜": [-0.1, 0.9], "菠菜": [0.15, 0.95], "西红柿": [-0.2, 0.8], "猫": [0.2, 1.1], "狗": [0.3, 1.2], "兔": [0.1, 1.05], "水果": [1.0, 0.0], "蔬菜": [-0.1, 1.0], "动物": [0.2, 1.3],} NEG = [-0.5, -0.5] # 未登录词向量 def vec(word): """取出预训练向量(参数冻结, 模拟 model.parameters() 不变)""" return WORDS.get(word, NEG) def cos_sim(a, b): """余弦相似度: 注意力机制里点积打分的简化版""" dot = sum(x * y for x, y in zip(a, b)) na = math.sqrt(sum(x * x for x in a)) nb = math.sqrt(sum(y * y for y in b)) if na == 0 or nb == 0: return 0.0 return dot / (na * nb) def induction_head(context, query): """ 简化版归纳头: 先在前文中找与 query 最相似的 key (第一层注意力), 再复制其对应的 value (第二层注意力). 全程零梯度更新. """ best_key = None best_val = None best_score = -1.0 for key, val in context: score = cos_sim(vec(query), vec(key)) if score > best_score: best_score = score best_key = key best_val = val return best_key, best_val, best_score def icl_predict(demonstrations, query): """构造上下文示例并推理: 示例+查询整体作为 prompt""" print("=" * 46) print("上下文示例(demonstrations):") for k, v in demonstrations: print(f" {k} -> {v}") print(f"查询: {query} -> ?") key, val, score = induction_head(demonstrations, query) print(f"匹配: {query} ~ {key} (相似度 {score:.3f})") print(f"预测: {query} -> {val}") print("(模型权重全程未更新, 纯前向传播完成模式迁移)") return val if __name__ == "__main__": # 任务1: 水果分类 (Few-shot, 2个示例) icl_predict([("苹果", "水果"), ("香蕉", "水果")], "樱桃") # 任务2: 蔬菜分类 (Few-shot, 2个示例) icl_predict([("白菜", "蔬菜"), ("菠菜", "蔬菜")], "西红柿") # 任务3: 动物分类 (仅1个示例, 展示少示例下的迁移) icl_predict([("猫", "动物")], "狗")
WORDS = {...}预训练词向量表,对应“冻结的模型权重”,整个推理过程中从未被修改。def vec(word)按词查向量,模拟参数读取;未登录词返回默认向量,避免越界。def cos_sim(a, b)两个向量的余弦相似度,是注意力打分函数的最小简化版。score = cos_sim(vec(query), vec(key))第一层注意力:让查询“樱桃”去匹配示例里最相似的“苹果/香蕉”。best_val = val第二层注意力:选中匹配示例的答案“水果”并准备复制。def icl_predict(demonstrations, query)完整 ICL 入口:打印上下文、执行匹配复制、输出预测。if __name__ == "__main__":三个任务的运行入口,直观对比不同示例配置下的表现。
常见误区
误区模型看了示例就会了,内部肯定偷偷发生了某种“学习”,一定更新了参数。毕竟人学会新东西,大脑总会有些变化。
正解ICL 全程零梯度更新。模型像一个记性超好的老厨师,看照片做菜时菜谱一个字没改,只是从记忆里调用了相似经验。唯一改变的是输入序列(上下文),参数 θ 严格不变。你可以把“上下文”理解成模型的一次性“工作记忆”,用完即弃。
为何常见:中文“学习”一词有强烈的“获得新能力”的暗示,加上微调时代“能力提升 = 参数更新”的惯性思维,很容易产生这个误解。
误区多给几个示例吧,10 个不行给 100 个,效果肯定线性上涨。既然 ICL 靠示例学习,那示例就是多多益善。
正解研究表明 ICL 性能随示例数大多呈对数增长并迅速饱和,甚至出现“越加越差”的非单调现象。这和老厨师参考照片太多反而拿不准主次类似——上下文窗口有限,冗余示例引入注意力噪声,干扰真正的模式提取。
为何常见:日常经验里“数据越多模型越强”深入人心,人们容易忽略上下文窗口长度和注意力机制的物理约束。
误区Few-shot 需要更新权重做少量训练,Zero-shot 才是纯推理。它们是两个体系的东西。
正解两者都属于 ICL 家族,都冻结权重、都靠提示驱动。唯一区别是提示中是否包含示例:Zero-shot 不提供,Few-shot 提供少量。就像一个是“没照片只凭菜名”,一个是“给了几张参考照片”——本质是同一套机制的不同配置。
为何常见:微调领域确实存在"few-shot learning"这个旧概念(用少量数据微调),初学者容易把两个同名概念混淆。
误区大模型是黑盒,ICL 为什么有效没人知道,反正调好提示词就行,原理研究没意义。
正解研究者已经找到重要线索——归纳头会在两层注意力的组合中完成“匹配→复制”,且在规模化模型上稳定出现。虽然完整的理论解释尚未闭环,但机制研究已经从“玄学”进入“可复现的结构分析”阶段,这也是可解释性领域最活跃的方向之一。
为何常见:Transformer 内部参数量巨大,大众媒体常渲染不可解释的神秘感,导致认知停留在“魔法”层面。
面试题
Q1. ICL(上下文学习)的完整英文全称是什么?
- A.In-Context Learning← 正确答案
- B.Intra-Class Learning
- C.Input-Content Learning
- D.Inference-Cost Learning
答案:A。ICL 是 In-Context Learning 的缩写,强调在推理时通过上下文示例完成任务。B、C、D 都是干扰项,它们分别拼凑了“类内”“输入内容”“推理成本”等词,并非标准术语。
Q2. 关于 ICL 与微调(fine-tuning)的区别,下列说法正确的是?
- A.ICL 更新模型权重,微调不更新
- B.ICL 不更新权重,靠示例完成推理← 正确答案
- C.微调不更新权重,ICL 更新
- D.ICL 更新权重,微调同样更新
答案:B。ICL 的核心特征就是“零梯度更新”,权重冻结、纯前向推理;微调则需要反向传播更新参数。B 正确,其余三个选项都在混淆两者的更新状态。
Q3. 哪个模型首次大规模展示了上下文学习(ICL)能力?
- A.BERT
- B.GPT-3← 正确答案
- C.LSTM
- D.ResNet
答案:B。GPT-3 的研究者首次系统性地观察到:仅靠提示中的少量示例,模型无需微调即可完成翻译、问答等任务。BERT 更擅长表征学习,LSTM 是循环网络,ResNet 是视觉网络,都不是 ICL 的标志性模型。
Q4. 关于归纳头(induction head)在 ICL 中的作用,正确的说法是?
- A.只存在于单层 Transformer 中
- B.需要两层注意力协作完成匹配复制← 正确答案
- C.与模型规模的大小毫无关系
- D.只负责文本生成,与示例学习无关
答案:B。归纳头是两层注意力的复合结构:第一层在上下文中找到与当前 token 相似的“前文出现点”,第二层读取该点之后的 token 并复制。C 错——归纳头在规模足够大的模型中才会稳定形成,与模型规模密切相关。
Q5. ICL 中“匹配-复制”机制的核心步骤是什么?
- A.反向传播更新模型参数
- B.匹配前文相似 token 并复制其后内容← 正确答案
- C.使用随机数生成一个答案
- D.扩展词表并重新初始化
答案:B。归纳头的“匹配-复制”是指:先定位上下文中相似的 token,再把它后面的内容复制为预测依据。整个过程在冻结参数的前向传播中完成。A 是微调做的事,C 与 D 与 ICL 机制完全无关。
Q6. Few-shot 与 Zero-shot 的核心区别是什么?
- A.Few-shot 提供少量示例,Zero-shot 不提供示例← 正确答案
- B.Few-shot 更新权重,Zero-shot 不更新
- C.两者在提示方式上没有任何区别
- D.Zero-shot 需要比 Few-shot 更多的标注数据
答案:A。两者都是 ICL 家族的成员,都冻结权重,区别仅在于提示中是否包含示例:Few-shot 放入若干输入输出对,Zero-shot 仅靠任务描述。A 正确,B 错在都更新权重,C 忽略差异,D 恰好说反。
Q7. 下列哪些因素会影响 ICL 的实际效果?
- A.示例的数量多少← 正确答案
- B.示例的排列顺序← 正确答案
- C.标签空间与数据分布← 正确答案
- D.模型激活函数的名称
答案:ABC。示例数量决定收益递减曲线,排列顺序引发不稳定性,标签空间分布影响预测偏向,三者都会显著改变 ICL 表现。D 中激活函数名称只是实现细节,与 ICL 效果无关。
Q8. 关于 ICL 的工程价值,下列说法正确的是?
- A.每次任务切换都要重新训练模型
- B.零代码适配新任务且推理成本低← 正确答案
- C.ICL 比微调的训练成本更高
- D.ICL 无法在真实生产环境部署
答案:B。ICL 把“模型适配”简化为“提示模板切换”,无需训练代码,成本仅为推理 token 费用,远低于微调的 GPU 训练成本。A、C 说反,D 与现实不符——ICL 已被广泛用于生产环境。
Q9. 为什么说 ICL 是“涌现能力”?
- A.因为它是由算法工程师预先设计的
- B.模型规模过临界点后能力突然出现← 正确答案
- C.因为它在小模型上表现反而更好
- D.因为它需要外部知识库的强力支持
答案:B。涌现指模型规模跨越临界值后,ICL 能力从接近随机迅速变为可用,这条 S 形能力曲线无法从小模型外推得到。它不是被明确编程的,也不依赖外部知识库,C、D 明显错误。
Q10. ICL 的已知局限性包括哪些?
- A.对上下文示例的排列顺序敏感← 正确答案
- B.对提示中的措辞用词非常敏感← 正确答案
- C.输出分布可能偏向训练高频类别← 正确答案
- D.推理过程完全不需要任何计算资源
答案:ABC。排列敏感性、提示敏感性、标签偏差都是实验反复验证的 ICL 局限。D 明显错误——ICL 虽然不更新权重,但仍然需要完整的 GPU 推理算力,只是省去了训练阶段的额外开销。