想象你是一家新公司的负责人,今天来了一位名叫小零的资深实习生。他读过海量资料,行业常识很丰富,但还没接触过你们公司的具体项目。你不需要给他十个历史案例参考,只需要把任务说清楚:“请把这封用户投诉总结成三个要点,并用正式语气回复。”他就能直接开始干活。这就是 Zero-shot 直接推理——大模型在你不提供任何示例的情况下,仅凭一段指令和一段输入,就直接完成任务。 “Zero-shot”里的“zero”指的是提示词中的示例数量为零,而不是模型的知识为零。小零的知识来自入职前的大量阅读,你的指令只是告诉他“现在要做什么”。同样地,大模型在预训练阶段已经读过海量文本,你的一句话就像一张任务单,让它把已有知识用起来。理解这件事,是进入 Prompt 工程世界的钥匙。

岗位关联

掌握零样本直接推理,是使用大模型最基础也最核心的起点。它让你能用一段话快速验证模型能力、搭建系统原型,并为后续的少样本、思维链等高级技巧打下地基。无论你是 Prompt 工程师、AI 产品经理还是算法工程师,都会直接受益。

目录
  1. 可视化演示
  2. 概念内涵
  3. 工作原理
  4. 指令设计
  5. 质量因素
  6. 应用场景
  7. 局限对策
  8. 评估优化
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示零样本提示流程(指令→模型→输出)、Zero-shot与Few-shot对比、直接推理置信链三种模式。

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

零样本提示流程 仅含任务指令,不含任何示例 LLM凭预训练知识直接推理 y=LLM(instruction) 无需示例即可完成任务

概念内涵

小零刚进公司,你让他写一份项目周报。你没有给他任何历史周报模板,只是说:“请把本周完成的进展整理成三条要点。”他略一思考,就写出了结构清晰的周报。这个场景在 Prompt 工程里,就叫作 Zero-shot 直接推理:提示词中不包含任何任务示例,模型仅凭指令和输入直接给出答案。

“零样本”并不是指模型一无所知。小零读过海量书籍和资料,只是没看过你公司的作业范例。大模型也是一样,它在预训练阶段已经掌握了大量语言模式、事实知识和推理能力。当你给出指令时,它只是把已有能力调用起来。与少样本相比,少样本会给你两三个例子让模型照着做,而零样本一个例子都不给。

从数学角度看,零样本直接推理可以理解成一个在候选答案中挑选概率最高的过程:

回到比喻:小零不是没有知识,他只是没见过你的工作模式。你的一句指令,能把他的知识储备“点亮”。零样本直接推理,就是这种“不给模板也能干活”的能力。

y^=arg⁡max⁡y∈YPθ(y∣x,I)\displaystyle \hat{y} = \arg\max_{y \in \mathcal{Y}} P_\theta(y \mid x, I)
这个公式的意思是:给定输入 x 和指令 I,模型在所有可能的答案 y 中,选一个它认为概率最高的答案。
  1. 预测结果这是模型最终输出的答案,也就是小零交上来的那份周报。
    y^\hat{y}
  2. 最优选择在候选答案集合中,找出概率最高的那一个。
    arg⁡max⁡y∈Y\arg\max_{y \in \mathcal{Y}}
  3. 条件概率模型在已经看到输入和指令时,认为答案 y 有多大的可能性。
    Pθ(y∣x,I)P_\theta(y \mid x, I)

工作原理

为什么小零能直接干活?因为他入职前已经读过海量资料,脑中积累了丰富的知识。大模型也一样,它的“入职资料”就是预训练阶段的互联网文本。在这个阶段,模型学会了词语之间的关系、事实常识、对话方式,甚至一部分推理能力。

当你给它一段指令时,模型会先理解指令中的任务目标和输入内容,然后开始一个词一个词地生成答案。这种生成方式叫作“条件生成”:每一步都在已经生成的内容基础上,预测下一个最可能的词。整个输出句子的概率,就是每一步概率的连乘。

“预训练知识”就像是小零的底子,“指令理解”是任务单,“条件生成”则是他落笔的方式。三者合在一起,零样本直接推理才能成立。

P(y1,…,yT∣x,I)=∏t=1TP(yt∣y<t,x,I)\displaystyle P(y_1, \dots, y_T \mid x, I) = \prod_{t=1}^{T} P(y_t \mid y_{<t}, x, I)
这句话可以理解为:小零写周报时,不是整篇一次性想完,而是每写完一个词,再根据前面的内容继续写下一个词。
  1. 联合概率整个输出句子从第一个词到最后一个词同时出现的概率。
    P(y1,…,yT∣x,I)P(y_1, \dots, y_T \mid x, I)
  2. 连乘符号把每一步生成单个词的概率乘起来,得到整句话的得分。
    ∏t=1T\prod_{t=1}^{T}
  3. 单步条件概率在已经看到前面的词、输入和指令后,模型预测下一个词的概率。
    P(yt∣y<t,x,I)P(y_t \mid y_{<t}, x, I)

指令设计

同样让小零写周报,任务单写得不同,结果可能完全不同。如果你只说“写个总结”,他会写得含糊;如果你说“用三条要点总结,并给出下一步计划”,他会写得清楚得多。在零样本直接推理中,指令就是任务单,设计质量直接影响输出质量。

指令设计有三件套:任务描述要说清楚“做什么”;角色设定可以让模型进入特定状态;输出约束则限制答案的格式。比如要求“用 JSON 返回”“不超过三句话”“只输出结果不解释”,都能让模型的输出更加可控。

引入格式约束后,模型的输出概率可以看作在原分布上做了一个过滤:

给小零一张清楚的任务单,他就不会在格式上自由发挥。指令设计的目的,就是让模型在正确的轨道上完成直接推理。

P′(y∣x,I)∝Pθ(y∣x,I)×1[y∈F]\displaystyle P'(y \mid x, I) \propto P_\theta(y \mid x, I) \times \mathbf{1}[y \in \mathcal{F}]
意思是:答案必须是合法的输出格式,如果不符合格式要求,概率直接被归零。
  1. 受限概率加入约束之后,模型对答案 y 的打分。
    P′(y∣x,I)P'(y \mid x, I)
  2. 正比关系左边和右边成比例,并不要求两边严格相等。
    ∝\propto
  3. 原始模型概率模型在没有任何格式约束时,对答案 y 的原始置信度。
    Pθ(y∣x,I)P_\theta(y \mid x, I)
  4. 格式指示函数当 y 属于允许的格式集合时取 1,否则取 0。
    1[y∈F]\mathbf{1}[y \in \mathcal{F}]

质量因素

不是所有任务交给小零都能一次成功。同样是一条分类任务,给小号模型做可能出错,给大号模型做可能轻松完成。这说明零样本直接推理的效果,不是一个固定值,而是一个受多种因素影响的结果。

第一个因素是模型能力:模型越大、预训练数据越丰富,零样本能力通常越强。第二个因素是任务难度:简单的情感倾向判断容易,复杂的多步推理就难。第三个因素是提示歧义:如果指令本身含糊,哪怕模型再强,也容易猜错方向。

要衡量这些因素,可以用成功率来评估模型在测试任务上的表现:

如果小零在一次任务上失败了,不要急着下结论。多换几条任务,计算成功率,才能判断到底是任务太难、模型太弱,还是指令没写清楚。

SR=1N∑i=1N1[y^i=yi∗]\displaystyle \text{SR} = \frac{1}{N}\sum_{i=1}^{N}\mathbb{1}[\hat{y}_i = y_i^{*}]
成功率就是做对的样本数占总样本数的比例。
  1. 成功率一批零样本任务中,模型答对的比例。
    SR\text{SR}
  2. 平均求和把 N 条样本的结果累计,再除以 N。
    1N∑i=1N\frac{1}{N}\sum_{i=1}^{N}
  3. 单条判断如果模型预测值和标准答案一致,这一项等于 1,否则等于 0。
    1[y^i=yi∗]\mathbb{1}[\hat{y}_i = y_i^{*}]

应用场景

小零能力不错,很快被派到客服部、档案室和会议室。在真实工程中,零样本直接推理最常见的场景有三类:文本分类、信息抽取和对话摘要。它们都有一个共同特点:任务目标明确,不需要复杂推理,正好发挥模型“读得多、会听话”的优势。

比如文本分类,你告诉模型“把这条评论分为正面或负面”,模型会根据语义直接给出标签。它本质上是在候选标签之间做一个概率比较,分数最高的标签胜出。这个比较过程可以用 softmax 来表示:

小零在客服部的第一步,就是先凭常识给工单打标签。等系统上线后,再用人工校验不断优化。零样本直接推理的价值,就是让 AI 系统能以最快速度“先跑起来”。

P(yi∣x)=exp⁡(si)∑j=1kexp⁡(sj)\displaystyle P(y_i \mid x) = \frac{\exp(s_i)}{\sum_{j=1}^{k}\exp(s_j)}
模型先给每个候选标签算出一个原始分数,再把这些分数转换成概率,概率最高的标签就是最终结果。
  1. 候选标签概率输入 x 属于第 i 个标签的概率。
    P(yi∣x)P(y_i \mid x)
  2. 指数化得分把模型的原始打分变成正数,方便后续归一化。
    exp⁡(si)\exp(s_i)
  3. 归一化分母所有候选标签指数分数的总和,让所有概率加起来等于 1。
    ∑j=1kexp⁡(sj)\sum_{j=1}^{k}\exp(s_j)

局限对策

小零也有短板。遇到他完全没读过的行业黑话,他会靠猜;你让他必须输出 JSON,他偶尔会多一句废话;遇到需要多步计算的复杂问题,他更是容易翻车。这就是零样本直接推理的局限:知识偏差、格式不稳、复杂任务失效。

知识偏差来自训练数据的不平衡,模型更偏好常见的答案。格式不稳是因为模型天然喜欢自然语言,而不是严格的代码结构。复杂任务失效则是因为没有示例时,模型缺少模仿的依据。这时候最直接的对策,就是“增加示例”——从零样本切换到少样本。

增加示例是否值得,可以用准确率提升幅度来判断:

不要让小零硬撑。当他明显搞不定时,给他一两个高质量示例,让他照着学,往往比反复修改指令更有效。

Gain=Accfew-shot−Acczero-shot\displaystyle \text{Gain} = \text{Acc}_{\text{few-shot}} - \text{Acc}_{\text{zero-shot}}
如果少样本准确率明显高于零样本,那就应该果断补上示例。
  1. 收益少样本比零样本多出来的准确率。
    Gain\text{Gain}
  2. 少样本准确率在提示词中给少量示例时,模型的正确率。
    Accfew-shot\text{Acc}_{\text{few-shot}}
  3. 零样本准确率不给示例、只给指令时,模型的正确率。
    Acczero-shot\text{Acc}_{\text{zero-shot}}

评估优化

想要让小零越用越顺手,就需要一套评估和优化流程。第一步是构建测试集:收集一批具有代表性的输入和标准答案。第二步是多次采样:因为模型生成有随机性,同一条指令可能得到不同结果。第三步是迭代调优:根据错误案例不断修改指令。

评估时不能只看“准确率”,还要关注模型会不会把不该当作正类的样本也归为正类。这时就需要综合精确率和召回率,计算 F1 值:

评估不是为了让小零“考试”,而是为了找到他最容易出错的地方。用数据代替感觉,用反馈代替猜测,零样本提示词才能越来越稳定。

F1=2×P×RP+R\displaystyle F_1 = \frac{2 \times P \times R}{P + R}
F1 值是精确率和召回率的调和平均,两个指标都高时,F1 才会高。
  1. F1 值综合衡量模型精确率和召回率的指标。
    F1F_1
  2. 精确率模型认为是正类的样本中,有多少是真正类。
    PP
  3. 召回率真实正类样本中,有多少被模型找了出来。
    RR
  4. 调和平均用这个公式把两个率合并成一个分数。
    2×P×RP+R\frac{2 \times P \times R}{P + R}

AI 应用场景

客服工单自动分类

阶段:Prompt 设计 / 推理生成

解决的问题:传统客服系统依赖大量人工打标签,效率低且标准不一。AI 可以只根据一条分类指令,把用户工单直接归入“售后”“退款”“投诉”等类别,不需要先准备大量标注样例。

具体案例:某电商平台每天收到上万条客服工单。运营团队用零样本提示词让大模型读取工单内容,并输出一个分类标签。上线一周后,系统可以先完成初筛,人工只需要处理低置信度的工单。

合同信息抽取

阶段:信息抽取 / 输出格式约束

解决的问题:合同文本冗长,人工提取关键字段耗时且容易漏项。通过零样本指令,让模型从合同中抽取“合同编号”“签署日期”“甲方名称”并输出成 JSON,无需事先整理训练数据。

具体案例:一家 SaaS 公司要批量处理历史合同。工程师在指令中写明字段名和 JSON 格式,模型直接输出结构化结果。错误记录再交由人工复核,整体效率提升了四倍。

会议纪要摘要

阶段:文本生成 / 摘要

解决的问题:会议录音转写稿往往冗长,人工总结费时费力。零样本摘要可以让模型“把这段转写稿压缩成三个要点”,直接生成可读的会议纪要。

具体案例:一个远程团队每周开三次同步会。他们把会议转写稿复制到内部工具中,使用固定模板提示词生成纪要,并自动同步到项目管理软件。团队成员只需花一分钟做最后确认。

Python 演示

python26 行
from transformers import pipeline  def main():    # 加载一个支持多语言的零样本分类模型    classifier = pipeline(        "zero-shot-classification",        model="MoritzLaurer/mDeBERTa-v3-base-mnli-xnli-multilingual-90m"    )     # 给模型一条待分类的输入文本    text = "今天发布的新旗舰手机,续航大幅提升。"     # 告诉模型只能从这三个候选标签里选    candidates = ["科技", "生活", "娱乐"]     # 零样本直接推理:不给任何示例    result = classifier(text, candidate_labels=candidates)     # 打印每个候选标签对应的置信度    for label, score in zip(result["labels"], result["scores"]):        print(f"{label}: {score:.2f}")  if __name__ == "__main__":    main()
目的:演示零样本直接推理中最常见的文本分类场景。模型没有见过任何分类示例,只根据候选标签和输入文本,就独立判断文本最可能属于哪一类。
  1. classifier = pipeline("zero-shot-classification", ...)加载一个现成的零样本分类模型,相当于把小零这个实习生招进来。
  2. text = "今天发布的新旗舰手机,续航大幅提升。"这是待分类的业务输入,也就是任务中的 x。
  3. candidates = ["科技", "生活", "娱乐"]这行代码告诉模型候选答案只能从这三项里选。
  4. result = classifier(text, candidate_labels=candidates)核心调用,不给示例,只给输入和标签集合,模型直接推理。
  5. for label, score in zip(...)遍历输出结果,把标签与置信度打印出来,方便我们判断模型的把握有多大。

常见误区

误区零样本是"zero",那模型应该完全没学过任何数据,就像一个什么都不懂的新生儿。

正解模型只是没有看到当前任务给出的示例,它预训练阶段早已读过海量文本。正如小零读过很多书,只是没看过你公司的模板。零样本是“零任务示例”,不是“零知识”。

为何常见:大家容易被“zero-sample”这个名称误导,把它理解成绝对空白。

误区写提示词时尽量堆细节,越长越好,这样模型才知道我要什么。

正解零样本直接推理的关键是“明确”,而不是“冗长”。废话太多反而会引入歧义,让模型抓不住重点。指令应该像一张清晰的任务单,而不是一篇长篇说明书。

为何常见:因为我们在日常生活中,给别人解释事情时通常说得越细越不容易出错,但大模型更需要在噪声中抓住关键指令。

误区大模型无所不能,只要我提示词写得足够聪明,任何复杂推理任务都能直接解决。

正解零样本适合目标明确、难度适中的任务。复杂推理、多步计算、陌生领域任务往往会失效。此时应该使用少样本、思维链或进一步微调,而不是继续死磕提示词。

为何常见:因为大模型在演示视频中看起来很全能,容易让人高估它的零样本泛化能力。

误区示例就是信息,给了例子模型肯定表现更好,所以少样本永远优于零样本。

正解少样本的示例也可能引入偏差。如果示例选得不好,或者与真实输入分布不一致,模型反而会被带偏。实际工程中需要先评估零样本,再对比少样本,用数据判断。

为何常见:人们习惯性地认为“更多信息=更好结果”,却忽略了示例质量和分布匹配的重要性。

误区让模型输出 JSON,它却多写了一句解释,说明这个模型有问题。

正解模型天然倾向于生成自然语言,格式不稳是常见现象。正确做法是在指令中明确输出约束,例如“只输出 JSON,不要解释”,必要时再配合多次采样和解析校验。

为何常见:因为大家把模型当成传统软件,默认它应该严格遵守格式要求,而忽略了生成模型的概率特性。

面试题

Q1. 零样本直接推理中的“零样本”指什么?

单选题 · easy

  • A.模型完全没有训练数据
  • B.提示中不提供任务示例← 正确答案
  • C.模型参数全部归零
  • D.输入文本长度为零

答案:B。“零样本”指提示词中示例数量为零,不是模型没有训练数据。模型在预训练阶段已经拥有大量知识,只是当前任务没有给出可参考的样例。

Q2. 在“给小零派活”的比喻中,小零更像哪种角色?

单选题 · easy

  • A.刚会读写的婴儿
  • B.读过海量资料的实习生← 正确答案
  • C.只会背模板的复读机
  • D.完全没有经验的转行者

答案:B。小零读过海量资料,具备丰富常识,只是不了解公司具体项目。这个比喻对应大模型的预训练知识丰富,但需要指令来指定当前任务。

Q3. 设计零样本指令时,下列哪一点最关键?

单选题 · mid

  • A.候选标签数量越多越好
  • B.把任务目标说清楚并限定输出← 正确答案
  • C.必须提供十个以上示例
  • D.必须输出完整推理过程

答案:B。零样本不给示例,所以任务描述和输出约束就是模型唯一的抓手。指令越清晰,模型越不容易跑偏。

Q4. 下面哪句话更符合清晰的零样本指令?

单选题 · mid

  • A.帮我看看这段话有什么问题
  • B.把这段客服对话总结成三个要点← 正确答案
  • C.这段话你随便处理一下就行
  • D.你是一个非常厉害的AI助手吗

答案:B。B 明确了任务对象、动作和输出数量。A 和 C 太模糊,D 只是在聊天,没有给出具体任务。

Q5. 模型输出格式不稳定,最有效的零样本补救是?

单选题 · mid

  • A.增加模型训练数据
  • B.明确指定JSON输出← 正确答案
  • C.把模型换成更小
  • D.删除角色设定语句

答案:B。小零不熟悉格式时,任务单上写清楚“只输出 JSON”最直接。删除角色设定或换小模型反而可能让格式更乱。

Q6. 为什么零样本在复杂推理任务上容易失效?

单选题 · mid

  • A.模型善于记忆但缺少任务示例
  • B.复杂任务需要多步分解和约束← 正确答案
  • C.指令中肯定带了太多示例
  • D.预训练知识一定是错误的

答案:B。复杂推理往往需要把大问题拆成小步骤,零样本没有示例作为抓手,模型容易跳步。此时可以增加示例或使用思维链提示。

Q7. 当零样本效果不佳时,你应该优先做什么?

单选题 · hard

  • A.把提示词加长到一万字
  • B.先建测试集评估,再补示例← 正确答案
  • C.随机调整模型温度到最高
  • D.完全不提供任何指令

答案:B。正确的优化顺序是:先构建测试集,量化失败,再尝试修改指令或增加高质量示例。随机调参和盲目加长都不是系统做法。

Q8. 哪些因素会影响零样本直接推理效果?

多选题 · mid

  • A.模型预训练覆盖度← 正确答案
  • B.指令清晰度与任务难度← 正确答案
  • C.候选输出格式约束← 正确答案
  • D.硬盘剩余空间大小

答案:ABC。零样本效果取决于模型能力、指令质量和任务复杂度,也受输出约束影响。硬盘空间与模型推理能力没有直接关系。

Q9. 关于零样本与少样本,下列说法正确的有?

多选题 · mid

  • A.零样本不给示例,少样本给少量示例← 正确答案
  • B.少样本一定比零样本更好
  • C.少样本示例可能引入偏差← 正确答案
  • D.零样本完全不需要预训练

答案:AC。零样本和少样本的核心区别就是示例数量。少样本不一定更好,因为示例质量差会带偏模型。零样本也需要预训练知识支撑。

Q10. 在零样本信息抽取中,哪些做法能提升结构化输出质量?

多选题 · hard

  • A.用JSON结构描述抽取字段← 正确答案
  • B.约束只输出合法格式结果← 正确答案
  • C.让模型自由发挥不要限制
  • D.多次采样并校验后取最佳← 正确答案

答案:ABD。用 JSON 描述字段、限定输出格式、多次采样校验都能提升稳定性。自由发挥会增强格式随机性,是反面做法。