后厨来了个新徒弟,老师傅没有急着灌输一本《烹饪原理5000条》,而是随手端出几道做好的菜摆在案板上:“这是宫保鸡丁,鸡丁要嫩、花生要脆;这是酸菜鱼,鱼片要滑、酸味要正。”徒弟看了两眼,心里马上有了“标准答案”的样子,照葫芦画瓢做出来的菜八九不离十。教大模型,用的也是这套方法。 大模型像极了这个新徒弟。你对它说“帮我给评论分类”,它虽然认识“分类”两个字,却不知道你要的是“好评/差评”二选一,还是“1-5星”打分,更不清楚你希望它先分析再下结论。但只要你往提示词里放两三组“输入→输出”的样例,它立刻心领神会,照着样例的格式、口径和推理习惯作答。这一招,就是Few-shot示例引导(Few-shot示例引导)——提示词工程里性价比最高的技巧之一。 别小看这几条样例。挑什么样例、写成什么格式、放几条、按什么顺序、样例本身对不对,每个细节都在悄悄改变模型的输出。本文就用“老师傅传手艺”这条线,把Few-shot示例引导的六个关键环节串起来讲透,让零基础的你也能成为调教大模型的行家。

岗位关联

这是大模型应用开发中最常用、见效最快的提示词技巧之一,掌握它能显著提升AI输出的可控性与准确性,是所有Prompt工程学习者的第一项核心技能。

目录
  1. 可视化演示
  2. 基本概念与定义:Few-shot示例引导是什么
  3. 案例格式设计:让样例一看就懂
  4. 示例选择策略:挑出最合适的示范
  5. 示例数量控制:几条示例最优
  6. 示例顺序影响:排列顺序的讲究
  7. 示例质量调试:清扫低质量示例
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示TCP/IP四层模型中数据的封装与解封装过程,切换模式查看发送端封装、接收端解封装和完整通信流程。

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

TCP/IP 数据封装过程 数据从应用层向下传递,每层添加协议头部 封装数据=原数据+各层头部 发送端自上而下封装,接收端自下而上解封装

基本概念与定义:Few-shot示例引导是什么

新来的徒弟第一次被要求写“菜品说明卡”,完全不知道怎么下笔——他不知道卡片该写食材还是写做法,更不知道写到什么程度算合格。老师傅没多解释,直接翻出三张写好的样品卡摆在他面前。徒弟扫了两眼,模仿着写出一张格式差不多的卡片。教大模型做新任务,用的正是这个动作:在提问前,先往提示词里放几条“输入→输出”的完整样例,让它照着样例的样子回答。这个技巧就是Few-shot示例引导。

所谓Few-shot,英文直译是“少量样本”。在提示词工程里,它指在prompt中嵌入少量输入输出对,让模型把样例当作参照系来回答新问题。与之相对的Zero-shot(零样本)只给文字指令、不给样例,相当于只告诉徒弟“写个卡片”却一张示范都不给;One-shot则只给一条样例。大模型的底层是一个“上下文预测器”:它会从你给出的所有文本里归纳模式,然后顺着这个模式继续生成。因此样例不只是格式示范,更是在悄悄规划“推理路径”——比如先判断情感,再给出标签。

用条件概率的语言来描述会更精确。设示例集为E,新输入为x,模型在“已看过示例”的前提下为每个候选输出y打分并选择最优:

由此可见,Few-shot不是让模型“背答案”,而是让模型在示例的坐标系里寻找与新输入最吻合的作答方式。这就像老师傅“以菜传艺”——不背菜谱、不看理论,只看几道成品,徒弟便心领神会。这条思路,是下面所有细节的总纲。

P(y∣x,E)P(y \mid x, \mathcal{E})
这个式子表示:在给定样例集E和新输入x时,模型生成答案y的概率。大模型不会凭空输出,它会致力于最大化这个概率来作答。
  1. 示例集合E模型参考的输入输出对构成的集合,是Few-shot的“示范菜谱”。
    E={(x1,y1),(x2,y2),…,(xk,yk)}\mathcal{E} = \{(x_1, y_1), (x_2, y_2), \dots, (x_k, y_k)\}
  2. 新输入x当前等待回答的问题,相当于“新点的一道菜”。
    xx
  3. 候选输出y模型可能生成的答案,相当于“出品的菜”。
    yy
  4. 条件概率整个式子表示“看过样例后,面对新输入,模型选择某个答案的概率”,概率越高越可能输出。
    P(y∣x,E)P(y \mid x, \mathcal{E})

案例格式设计:让样例一看就懂

如果老师傅甩给徒弟的样品卡五花八门——第一张写食材,第二张写火候,第三张画了幅图——徒弟不但学不到东西,还会被整懵。示范要生效,前提是每张卡的“栏位”统一。Few-shot示例引导同理:格式混乱的样例,会让模型不知道该模仿什么。

一条合格的Few-shot样例应满足三项要求。第一,输入输出成对出现:每条样例必须完整展示“输入是什么、输出是什么”,缺一不可,模型才看得到映射关系。第二,字段命名清晰:在输入输出前分别加上“输入:”与“输出:”这类显式标记,明确文本边界。第三,分隔符唯一:示例与示例之间用固定分隔符(如单独一行的"---")隔开,且这个分隔符绝不能混进业务文本里,否则模型会把分隔符当成内容。

可用一个三元组来概括一条样例的结构:

现实中,格式的威力常被低估。同一批任务,把示例里的标签从“1/0“改成”正面/负面“,输出准确率就可能明显波动。因为模型在模仿的不仅是答案,还有答案的”长相”。就像徒弟不仅学菜的味道,还会模仿摆盘风格——你示范的卡片长什么样,他交上来的卡就长什么样。

ei=(xi,fi,yi)e_i = (x_i, f_i, y_i)
一条“合格”的示范样例,由输入文本、承载格式和期望输出三部分组成。
  1. 输入文本xᵢ第i条示例的输入部分,模拟真实用户输入。
    xix_i
  2. 格式模板fᵢ这条样例采用的排版模板,如“输入:{x} 输出:{y}”。
    fi="输入: xi; 输出: yi"f_i = \text{"输入: } x_i \text{; 输出: } y_i\text{"}
  3. 期望输出yᵢ模型应当模仿的目标答案。
    yiy_i
  4. 三元组结构三者合成一条“有骨有肉”的样例,模型才能看清从输入到输出的完整映射。
    ei=(xi,fi,yi)e_i = (x_i, f_i, y_i)

示例选择策略:挑出最合适的示范

同样是教川菜,老师傅不会拿“开水白菜”当第一道示范菜——那是国宴功夫菜,徒弟看完只会怀疑人生。他会挑“宫保鸡丁”这类家常经典:用料常见、步骤典型,练完一通百通。给AI选示例,道理一模一样:示例的质量与针对性,决定了模型的模仿上限。

示例选择有三条核心原则。第一,代表性优先:示例要覆盖任务中出现频率最高的输入模式,让模型看几条就能覆盖大多数真实请求。第二,多样性覆盖:常见变体都要有代表,比如长短句、口语化表达、带特殊符号的文本,避免模型只见树木不见森林。第三,相似度匹配:工程实践中,通常先把所有候选示例做向量化(embedding),再计算每条示例与新输入的语义相似度,挑出最接近的几条。“相似”的示例为什么会更好?因为模型在处理新输入时,会优先从上下文中寻找结构相近的模式——相似的句子结构,对应的推理路径也更容易被“唤醒”。

数学上,相似度可以用向量的余弦值来度量:

选好示例,等于给模型配了一位“懂行的师父”。示例贴合任务,模型的模仿就像站在巨人的肩膀上起步;示例牛头不对马嘴,再强的模型也会被带偏到沟里去。

sim(x,xi)=cos⁡(v⃗(x),v⃗(xi))\mathrm{sim}(x, x_i) = \cos(\vec{v}(x), \vec{v}(x_i))
相似度用两个向量的夹角余弦衡量,值接近1表示语义相近,接近-1表示意思相反。
  1. 查询向量vec(x)把待回答的新输入编码成高维向量,相当于“新菜的特征坐标”。
    v⃗(x)\vec{v}(x)
  2. 示例向量vec(xᵢ)把候选样例的输入也编码成同一空间中的向量。
    v⃗(xi)\vec{v}(x_i)
  3. 余弦函数两个向量的点积除以模长的乘积,度量方向上的重合程度。
    cos⁡(θ)=a⃗⋅b⃗∥a⃗∥⋅∥b⃗∥\cos(\theta) = \frac{\vec{a} \cdot \vec{b}}{\|\vec{a}\| \cdot \|\vec{b}\|}
  4. 综合得分得分越高,示例与查询越“同频”,越适合放进提示词。
    sim(x,xi)=cos⁡(v⃗(x),v⃗(xi))\mathrm{sim}(x, x_i) = \cos(\vec{v}(x), \vec{v}(x_i))

示例数量控制:几条示例最优

示范菜该看几道?看0道,徒弟全靠悟性,十有八九翻车;看1道,方向有了但变化不会;看3到5道,常见套路基本覆盖;看20道,徒弟眼花缭乱,而且菜都放凉了——时间成本和token成本全在涨。Few-shot的k值选择,本质就是在“引导充分”和“成本可控”之间取平衡。

经验规律大致如下:k=0是零样本基线,先把最朴素的指令效果测出来;k=1(One-shot)的跃升往往最大,模型第一次获得了“模板感”;k=2到5是最常用的区间,大多数分类、抽取任务到这个范围已趋于饱和;k超过10后,收益趋近于零,反而可能因为混入不相关样例而引入噪声。另外每一条示例都要占用上下文窗口,挤占模型处理新输入时的注意力预算。所以最佳实践是:从1条开始逐条增加,观察到效果不再变化就停止。

这可以用边际收益来表达。设Acc(n)表示注入n条示例后的准确率,则第n条示例的边际收益为:

教学从来不是菜越多越好。师傅讲透三道菜,徒弟能举一反三;囫囵吞枣看二十道,反而消化不良。给你的prompt配上“够用”的样例数量,既省token,又稳效果。

ΔAcc(n)=Acc(n)−Acc(n−1)\Delta \mathrm{Acc}(n) = \mathrm{Acc}(n) - \mathrm{Acc}(n-1)
该式表示“增加一条示例能多提升多少准确率”。现实中这个值随n增大不断下降。
  1. 示例数量n提示词中注入的示例总条数,是Few-shot最直接的旋钮。
    nn
  2. 准确率Acc(n)使用n条示例时,模型在评测集上的准确率。
    Acc(n)\mathrm{Acc}(n)
  3. 边际收益Δ相邻两个数量档位的准确率差,衡量“再加一条值不值”。
    ΔAcc(n)=Acc(n)−Acc(n−1)\Delta \mathrm{Acc}(n) = \mathrm{Acc}(n) - \mathrm{Acc}(n-1)
  4. 递减规律第一条示例改变最大,后续增量迅速缩小,说明“够用就好”。
    ΔAcc(1)>ΔAcc(2)>⋯>ΔAcc(k)\Delta \mathrm{Acc}(1) > \Delta \mathrm{Acc}(2) > \dots > \Delta \mathrm{Acc}(k)

示例顺序影响:排列顺序的讲究

同样三堂示范课,先讲基础再讲技巧,和先讲技巧再补基础,徒弟的吸收效果完全不同——开头定基调,结尾留印象。大模型读提示词也有类似的“位置偏好”:它分配给提示词不同位置的注意力并不均匀。

学界对这种现象通常归纳为两类效应。一是首因效应:位于提示词开头的示例会被模型当作“全局框架”,定义整个任务的输出结构——比如开头样例输出是JSON,模型会倾向认为整个任务都要输出JSON。二是近因效应:离新输入最近的末尾样例,最容易被模型“即时模仿”,尤其影响回答的措辞与细节风格。中间位置的示例影响力相对弱一些。这给我们的设计启示很直接:把格式最规范的样例放在开头,把风格最接近理想答案的样例放在末尾,需要强调的业务约束也放在首尾。

若用简化的权重公式描述位置影响力:

当然,真实注意力机制比这复杂得多,但“位置影响输出”这一点已被反复证实。聪明的师傅会把话术编排成“开场重点、中场过渡、结尾点睛”。排列示例时,也请用同样的心法。

wi=exp⁡(−λ(i−1))w_i = \exp(-\lambda (i - 1))
该式刻画“越靠前的示例,其框架性影响力越强”。指数衰减意味着开头若干条示例的权重远高于中部。
  1. 位置序号i示例在提示词中出现的位置,i=1是第一条。
    i=1,2,…,ki = 1, 2, \dots, k
  2. 衰减系数λ控制位置影响力的衰减快慢,λ越大开头的权重越高。
    λ>0\lambda > 0
  3. 指数函数保证权重为正且随位置单调递减。
    exp⁡(z)=ez\exp(z) = e^z
  4. 位置权重wᵢ第i条示例对模型输出的综合影响力,开头示例权重最大。
    wi=exp⁡(−λ(i−1))w_i = \exp(-\lambda (i - 1))

示例质量调试:清扫低质量示例

老师傅最怕的事,是自己教错了。如果示范卡上白纸黑字写着“盐50克”,徒弟照做,整锅菜全废——坏样例的污染力,比好样例的引导力更凶猛。模型对示例几乎是“盲从”的:你给它什么,它就模仿什么,哪怕那条示例本身是错的。

低质量示例主要有三类问题。一是标签错误:输入输出对本身不匹配,比如把“服务太差”标成“好评”;二是一致性缺失:两条相似输入的示例给出的标签互相矛盾,模型会无所适从;三是格式噪声:分隔符混乱、字段缺失或有多余字符,干扰模型对“干净格式”的提取。因此Few-shot调试的第一步不是调参数,而是“查样例”。

正确的调试顺序是:先清空示例测Zero-shot基线,确认要不要用Few-shot;然后逐条替换或删减示例做A/B对比,把“带偏”模型的元凶样例揪出来;最后统一所有示例的格式、术语和标注口径。可以把示例集合的质量理解为“正确率”与“噪声”的加减博弈:

每次调Few-shot效果不佳,先别急着怪模型。回头检查你递给它的每一道“示范菜”——是不是有一道菜里,偷偷放错了盐。

Q(E)=λ⋅C(E)−μ⋅N(E)Q(\mathcal{E}) = \lambda \cdot C(\mathcal{E}) - \mu \cdot N(\mathcal{E})
一个示例集合的综合质量,等于它的标注正确率减去格式噪声的惩罚。想让质量高,既要“答得对”,也要“长得齐”。
  1. 正确率C(E)示例集中标注正确的比例,是质量的“压舱石”。
    C(E)=正确示例数总示例数C(\mathcal{E}) = \frac{\text{正确示例数}}{\text{总示例数}}
  2. 噪声度N(E)衡量格式混乱、标签冲突的程度,越高越干扰模型。
    N(E)N(\mathcal{E})
  3. 权重系数λ、μλ放大正确率的作用,μ放大噪声的代价,两者按任务调节。
    λ,μ>0\lambda, \mu > 0
  4. 质量分Q(E)综合得分,值越高代表这组示例越值得放进提示词。
    Q(E)=λ⋅C(E)−μ⋅N(E)Q(\mathcal{E}) = \lambda \cdot C(\mathcal{E}) - \mu \cdot N(\mathcal{E})

AI 应用场景

银行客服工单自动分类

阶段:Prompt设计阶段

解决的问题:传统规则引擎需要人工维护大量关键词和正则表达式,遇到新话术容易漏判,成本高、反应慢。用Few-shot示例引导,只需在提示词中放两三条“工单→类别”的样例,模型就能以极低成本学会分类口径。

具体案例:某银行智能客服每天处理数千张用户工单,按8个类别分流。起初只写指令时,模型常把“为什么我转不了账”归为“其他”;加入两条样例——“转账失败→账户问题”、“卡片被冻结→风控问题”——后,模型稳定分类为“转账类”和“风控类”,人工转接率明显下降。

电商评论结构化提取

阶段:信息抽取与数据入库

解决的问题:模型默认输出自由文本,无法直接写入数据库。用2-3条“评论→JSON”样例,模型就会严格模仿JSON结构输出,结构化提取变成“照葫芦画瓢”。

具体案例:某电商平台想从评论中提取“情感+关键维度”。给模型看两条样例——“价格贵但质量好”→{"sentiment":"positive","aspects":{"price":"negative","quality":"positive"}}——模型对同类评论的解析入库率从57%提升到92%。

跨服务日志统一格式化

阶段:可观测性与运维自动化

解决的问题:不同服务的日志格式五花八门,运维团队需要维护大量解析正则。Few-shot让模型直接完成“原始日志→标准JSON”的转换,减少硬编码解析器。

具体案例:某SRE团队把Java堆栈、Go panic、Nginx error log各选一条样例放入提示词,模型就能对后续日志统一输出标准事件结构,接入告警平台的解析耗时从分钟级降到秒级。

Python 演示

python99 行
# -*- coding: utf-8 -*-"""Few-shot 示例引导 demo: 用 Jaccard 相似度选示例 + 模拟模型输出"""import re TASK_DESC = "请将下面的用户留言分类为: 好评、差评、中性。" CANDIDATES = [    ("这家餐厅的菜很好吃,服务也热情", "好评"),    ("等了四十分钟才上菜,太失望了", "差评"),    ("味道还行,价格有点贵", "中性"),    ("快递小哥送货速度很快,点赞", "好评"),    ("商品质量一般,不推荐", "差评"),    ("外观不错,功能中规中矩", "中性"),    ("客服解决问题很耐心,满意", "好评"),    ("噪音太大,严重影响使用", "差评"),    ("性价比还可以,没惊喜也没失望", "中性"),] TEST_EXAMPLES = [    ("外卖包装很用心,味道也好", "好评"),    ("屏幕用了几天就花了,质量堪忧", "差评"),    ("颜值在线,但续航一般", "中性"),]  def jaccard_sim(text_a, text_b):    """用字符 bigram 集合的 Jaccard 相似度模拟文本相似度"""    def bigrams(s):        s = re.sub(r'[^\u4e00-\u9fa5a-zA-Z0-9]', '', s)        return set(s[i:i+2] for i in range(max(len(s)-1, 1)))    a, b = bigrams(text_a), bigrams(text_b)    if not a or not b:        return 0.0    return len(a & b) / len(a | b)  def build_prompt(desc, examples, query):    """把示例拼进 prompt, 这是 Few-shot 引导的核心"""    lines = [desc]    if examples:        lines.append("示例:")        for i, (inp, out) in enumerate(examples, 1):            lines.append(f"输入: {inp}")            lines.append(f"输出: {out}")            if i < len(examples):                lines.append("---")    lines.append(f"输入: {query}")    lines.append("输出:")    return "\n".join(lines)  def select_examples(pool, query, k=3):    """按相似度选出与 query 最相关的 k 条, 最相似的放在末尾"""    scored = [(jaccard_sim(query, inp), inp, out) for inp, out in pool]    scored.sort(key=lambda t: t[0], reverse=True)    top = scored[:k]    top.reverse()    return [(inp, out) for _, inp, out in top]  def simulate_model(prompt, examples):    """模拟模型: 有示例时按最近示例的标签输出, 无示例时猜中性"""    if not examples:        return "中性"    return examples[-1][1]  def evaluate(pool, test_set, k):    total = len(test_set)    hit = 0    for query, truth in test_set:        if k == 0:            pred = "中性"            prompt = build_prompt(TASK_DESC, [], query)        else:            ex = select_examples(pool, query, k)            prompt = build_prompt(TASK_DESC, ex, query)            pred = simulate_model(prompt, ex)        print("查询:", query)        print(prompt)        print("预测:", pred, "| 真实:", truth)        print("=" * 40)        if pred == truth:            hit += 1    return hit / total  if __name__ == "__main__":    print("Zero-shot 效果:")    acc0 = evaluate(CANDIDATES, TEST_EXAMPLES, 0)    print("Zero-shot 准确率:", acc0)     print("Few-shot (k=2) 效果:")    acc2 = evaluate(CANDIDATES, TEST_EXAMPLES, 2)    print("Few-shot 准确率:", acc2)     print("Few-shot (k=4) 效果:")    acc4 = evaluate(CANDIDATES, TEST_EXAMPLES, 4)    print("Few-shot 准确率:", acc4)
目的:演示Few-shot完整链路——用Jaccard相似度从候选池中挑选示例、拼装提示词、让模型模仿示例作答,并对比Zero-shot与Few-shot的准确率差异。
  1. def jaccard_sim(text_a, text_b):用字符对(bigram)集合计算两段中文文本的相似度,作为“语义相近”的简化模拟。
  2. def build_prompt(desc, examples, query):把任务描述、若干条输入输出样例和新输入拼成一个完整提示词,这就是Few-shot的核心动作。
  3. scored.sort(key=lambda t: t[0], reverse=True)将候选示例按与查询的相似度从高到低排序,模拟向量检索选出最贴近的样例。
  4. top.reverse()把最相似的示例挪到数组末尾,让它在提示词中紧挨着新输入,对应“近因效应”的工程实践。
  5. return examples[-1][1]模拟模型“照着最末尾一条样例的标签作答”,直观体现示例对输出的引导作用。
  6. acc0 = evaluate(CANDIDATES, TEST_EXAMPLES, 0)评估零样本基线,没有示例时模型只能默认猜“中性”。
  7. acc2 = evaluate(CANDIDATES, TEST_EXAMPLES, 2)加入两条精选示例后,准确率提升,验证“样例即引导”。

常见误区

误区“给AI示例越多越好,反正它上下文窗口那么大。我干脆把所有可能的样例都塞进去,效果肯定封顶。”

正解示例数量存在边际收益递减。前3-5条示例通常就能让效果饱和,继续增加不仅占用上下文窗口、推高token成本,还可能引入噪声和不相关模式,让模型无所适从。大模型是“吃货”不是“仓储员”——吃太多杂菜,反而品不出主味。正确做法是先测零样本基线,再逐条加示例,效果不再提升就停手。

为何常见:人们习惯性把“大模型上下文长”等同于“可以无限堆料”,忽略了注意力资源有限,且示例噪声会反向污染输出。

误区“反正AI能理解,示例随便从训练数据里挑几条放进去就行,不用花心思挑。”

正解示例质量决定Few-shot效果的“天花板”。低质量示例(标签错、格式乱、与任务无关)会被模型忠实地模仿——它分不清“你给的是对是错”,只知道“照这个来”。这就像给徒弟看了一张写错的配方卡,他做出来的菜也必然是错的。挑示例要像挑师父一样慎重:代表性、多样性、与查询的相似度都要兼顾。

为何常见:人们把大模型想象成“有判断力的思考者”,却忽略了它在Few-shot场景下更像一个“超级模仿者”,模仿对象的好坏直接决定结果。

误区“反正示例内容都在提示词里,顺序打乱一下不影响结果吧?我用随机顺序也行。”

正解大模型对提示词不同位置的注意力分布并不均匀。开头示例奠定输出框架(首因效应),末尾示例决定即时模仿的风格(近因效应),中间示例影响力相对弱。调换顺序导致准确率从90%掉到60%的情况并不罕见。排列示例时,把格式最标准的放开头、风格最贴合的放末尾,是零成本的性能优化。

为何常见:人们知道阅读顺序影响理解,却没意识到神经网络的位置编码会让顺序变成可观测的性能差异。

误区“Few-shot和微调差不多,都是给模型喂几个样本让它学会任务,只是量少一点。”

正解两者本质不同。Few-shot是在推理时把样例写进提示词,模型参数完全不动;微调要更新模型权重,属于训练流程。可以这样区分:Few-shot像给员工看几张优秀范例,他临时模仿;微调像给员工安排培训课程,从根本上改变工作习惯。成本上,Few-shot零训练、按token付费;微调需要GPU资源和数据集。

为何常见:“样本”与“训练”这两个词让初学者想当然,忽略了提示词注入与权重更新这两条完全不同的技术路径。

面试题

Q1. 下面哪一项最符合Few-shot示例引导的核心思想?

单选题 · easy

  • A.给模型提供多轮对话的历史记录
  • B.用大量数据对模型进行微调
  • C.在提示词中放入少量输入输出样例← 正确答案
  • D.让模型通过随机试错自我学习

答案:C。Few-shot的核心是在提示词里放入少量输入输出样例,让模型照猫画虎地模仿。A是对话管理,B是微调,D是强化学习路径,三者都不是Few-shot的机制。

Q2. 关于Zero-shot与Few-shot,以下说法正确的是?

单选题 · easy

  • A.Few-shot会提供少量示例← 正确答案
  • B.Zero-shot提供更多示例
  • C.Zero-shot需要更新权重
  • D.Few-shot训练成本更高

答案:A。Zero-shot只给指令不给示例,Few-shot在指令之外补充少量输入输出对。两者都不更新模型权重,也都不需要训练,因此C、D错误,B把方向说反了。

Q3. 设计Few-shot示例时,下列哪项做法最能保证输出稳定?

单选题 · mid

  • A.让示例数量尽可能多
  • B.让示例文本全部使用长句
  • C.让示例中不出现任何中文
  • D.让所有示例的输入输出格式统一← 正确答案

答案:D。格式统一是Few-shot的“底线工程”:模型会模仿示例的排版与标签风格,格式混乱会直接导致输出漂移。数量多不等于质量高,排除A;长度和语言不是稳定性的关键,排除B、C。

Q4. 与查询文本语义相似的示例效果更好,最可能的原因是?

单选题 · mid

  • A.模型只会复制粘贴示例文本本身
  • B.相似示例提供了更接近的推理模式← 正确答案
  • C.相似示例让提示词变得明显更短
  • D.相似示例可以绕过模型的知识限制

答案:B。相似的句子结构更容易“唤醒”模型匹配的推理路径和词汇风格。A是错误归因,模型不是简单复制;C与相似度无关;D夸大了示例的作用,模型知识边界仍在。

Q5. 以下哪些属于低质量Few-shot示例的表现?

多选题 · mid

  • A.输入输出对彼此不匹配← 正确答案
  • B.示例标签与人类常识相违背← 正确答案
  • C.示例输出格式与目标不一致← 正确答案
  • D.示例数量恰好是三条

答案:ABC。输入输出不匹配、标签反常识、格式与目标不一致,都会让模型学到错误映射,属于低质量表现。三条示例本身是合理的数量,D不是质量问题。

Q6. 边际收益递减在Few-shot中的体现是?

单选题 · mid

  • A.示例越多效果线性提升
  • B.示例数量不影响最终准确率
  • C.后续增加的示例带来的提升逐渐变小← 正确答案
  • D.第一条示例一定会降低模型效果

答案:C。Few-shot的典型曲线是“前陡后平”:最早的几条示例提升最大,之后增量快速缩小。A错误,不是线性;B与实验相反;D把特例当规律,第一条通常提升最明显。

Q7. 同一组示例仅调整排列顺序,模型效果明显变差,最可能的原因是?

单选题 · hard

  • A.模型随机生成了部分答案
  • B.示例的数量还远远不够
  • C.示例中的中文让模型困惑
  • D.模型对首尾位置的注意力不同← 正确答案

答案:D。位置偏置是已反复验证的现象:开头示例定义输出框架,末尾示例影响即时模仿风格,顺序改变会直接影响这两类效应。A、B、C都无法解释“仅顺序变化”带来的剧烈波动。

Q8. 用Few-shot调试“输出格式混乱”时,哪些做法是有效的?

多选题 · hard

  • A.逐条替换示例做A/B对比← 正确答案
  • B.统一所有示例的分隔符← 正确答案
  • C.保持标签口径完全一致← 正确答案
  • D.直接不断增加示例数量

答案:ABC。A能定位到“带偏”格式的坏样例,B消除分隔符歧义,C保证标签命名一致,三者都是对症的调试手段。D盲目堆数量不解决格式问题,还可能引入新噪声。

Q9. 所谓One-shot,指的是给模型提供?

单选题 · easy

  • A.一条输入但没有对应的输出
  • B.只向模型提一个完整问题
  • C.只让模型输出一句话作为答案
  • D.恰好一条完整的输入输出样例← 正确答案

答案:D。One-shot是Few-shot的特例,即只提供一条完整的“输入→输出”样例。A缺输出无法形成映射,B、C描述的是提问方式而非示例注入,均不符合定义。

Q10. 关于Few-shot示例引导,下列哪些说法是正确的?

多选题 · hard

  • A.它不会改动模型的权重← 正确答案
  • B.示例质量会影响输出效果← 正确答案
  • C.示例顺序会影响模型表现← 正确答案
  • D.它不占用模型的上下文空间

答案:ABC。Few-shot只在提示词中注入样例,模型权重保持不变;质量与顺序都会通过模仿机制影响输出。D错误——每条示例都要占据上下文窗口,这正是“够用就好”的原因。