Zero-shot、Few-shot 和 One-shot Prompt 有什么区别?

🎯 博主简介

你好,我是安逸,CSDN「人工智能技术领域新星创作者」,码龄 6 年。博客总访问量 31万+,博客粉丝 1.2万+。

我长期关注人工智能技术与工程实践,主要研究和分享 AI Agent、RAG 系统、MCP 协议、OpenClaw、AI 编程工具以及大模型工程化落地。同时也持续输出 Java / Spring、Transformer、机器学习、深度学习与计算机视觉等方向的学习笔记和项目经验。

📚 推荐系列合集

目前已经整理了 生产级 RAG 系统实战、Agent 记忆系统、MCP 协议深度解析、OpenClaw 系列、Hermes Agent + Obsidian、图解机器学习、Claude Code 系列和 Agent 经典面试题等系列合集,涵盖 AI 应用开发、智能体实践、知识管理、机器学习与 AI 编程工具。

📱GZH:安逸Ai (科技前沿新闻,Github热门项目,最新免费资料...)

网页观看完整系列合集:🌐 Anyi AI 学习资源站


这道题考的是 Prompt Engineering 里面最基础也最重要的概念。

简单来说,三者的区别就在于:给不给示例、给几个示例。Zero-shot 不给示例,One-shot 给 1 个示例,Few-shot 给 2 个及以上示例。但背后的原理比这复杂一点------这涉及到模型是怎么"看示例学习"的。

下面我把这个知识点掰开讲。

什么是 Shot 提示技术

先把这三个概念说清楚。

Zero-shot Prompt 就是只给指令,不给任何示例。比如你让模型翻译一句话,直接说"把下面这句话翻译成英文:今天天气真好"。模型靠自己的预训练知识直接回答。

One-shot Prompt 是给 1 个示例。比如先给一个例子:"苹果→Apple,香蕉→Banana",然后再问"猫→?"。让模型从这一个示例里找规律。

Few-shot Prompt 就是给 2 个及以上的示例。继续翻译的例子,给 3-5 个词对示例,然后让模型翻译新的词。

这三个技术有个共同的核心:示例不是用来训练模型的,而是用来激活模型已有的知识。模型早就"见过"这些知识了,示例只是告诉它:该用哪部分知识、以什么格式输出。

三种Shot技术的提示结构对比,展示指令+示例数量+新输入的差异

为什么说是"激活"而不是"训练"?这里要引入一个关键概念------In-Context Learning(上下文学习),也叫情境学习。

In-Context Learning 原理

这是理解 Shot 提示技术的关键。

当你给模型一个示例:

复制代码
  输入:我今天很开心
输出:Positive

模型并不是"记住"了这个对应关系。它的处理过程是:

  1. 看到示例后,在自己的预训练知识里搜索类似的任务模式
  2. 找到"判断情感倾向"这类任务的处理方式
  3. 把你新输入的内容套用这个模式输出

打个比方。你做数学应用题时,翻开教材看了两道例题。看例题不是为了背住例题的答案,而是回忆这类应用题该用什么方法、什么步骤去解。然后遇到新题,用同样的方法去套。

这就是 In-Context Learning 的本质:示例提供上下文,模型从上下文中匹配任务模式,激活相关知识。

重要的事情说三遍:示例不更新模型权重!示例不更新模型权重!示例不更新模型权重!你给 100 个示例和 1 个示例,模型本身的参数没有任何变化。变化的只是这次推理时的"思考方式"。

示例数量影响的是模式匹配的清晰度。一个示例,模型只能猜大概的方向;三个示例,模型能更确定地找到正确的模式;给太多示例,反而可能让模型困惑或者浪费 token。

In-Context Learning工作流程图,展示输入提示→示例嵌入→知识激活→模式匹配→输出的完整过程

什么时候用哪个

这是面试里经常被问到的问题。

Zero-shot 适用场景:

  • 任务足够简单、通用。模型在预训练时见过大量这类任务,比如基础翻译、摘要生成、简单问答
  • 任务定义很明确,不需要额外解释格式
  • 需要节省 token、提高响应速度

One-shot 适用场景:

  • 想轻量级地"教"模型理解任务格式
  • 任务稍微复杂一点,但模型应该能快速理解
  • 作为 Zero-shot 和 Few-shot 之间的过渡

Few-shot 适用场景:

  • 任务涉及领域知识 或特定格式。比如医学术语分类、代码生成、特定文风写作
  • 任务模式不明显,需要多个示例让模型"悟"出规律
  • 需要确保输出格式高度一致

举几个具体例子:

任务类型 推荐方式 原因
"把'你好'翻译成英文" Zero-shot 太简单,模型直接会
生成符合特定JSON格式的报告 Few-shot 需要示例来明确格式
用中文写诗 One-shot 稍微复杂,给个示例帮助理解风格

选择的核心逻辑很简单:任务越复杂、越垂直,越需要示例;任务越通用、越简单,越不需要示例。

就像老师出题:简单的口算题直接让学生做就行;复杂的应用题,得先讲几道例题学生才能理解。

场景选择决策图,根据任务复杂度从简单到复杂分支,展示何时选Zero/One/Few-shot的判断路径

好示例怎么写

Few-shot 用得多,但很多人用得不对。关键在于示例质量,而不是数量。

好示例的三个特征:

  1. 代表性:覆盖任务的典型情况。别只给特例,否则模型会学到错误的模式。比如做情感分类,别全给强烈的情感示例,也得给中性句。

  2. 多样性:示例之间要有差异。如果做翻译,词性要有名词、动词、形容词;如果做分类,类别要尽量均衡。

  3. 格式一致:示例的输入输出格式必须和最终任务完全一致。示例用 JSON,任务也用 JSON;示例输出带引号,任务输出也带引号。

关于数量,这里有个反直觉 的点:不是越多越好。

研究显示,2-5 个示例通常是最优区间。超过这个数量,边际效益急剧下降,反而可能带来负面影响:

  • 模型开始"记住"示例而不是理解模式
  • token 消耗大幅增加
  • 格式过于固定,缺乏灵活性

而且,如果你的示例质量差,10 个差示例只会让结果更差。宁可只有 2 个高质量示例,也不要 10 个凑数的。

好示例vs差示例对比图,展示格式统一和多样性的影响,好示例包含代表性、多样性、格式一致,差示例全是特例和格式混乱

还有个容易被忽略的概念:Test Instance 和 Demonstration。Few-shot 里的示例叫 Demonstration,就是你提供的那些例子。Test Instance 是你真正要模型回答的新问题。两者格式必须一致,否则模型会困惑。

面试怎么答

基础版(直接背):

Zero-shot、One-shot、Few-shot 的区别在于是否提供示例以及示例数量。Zero-shot 直接给指令不给示例,One-shot 给 1 个示例,Few-shot 给 2 个及以上示例。它们的原理是 In-Context Learning,即示例激活模型预训练知识中的相关模式,而非真正训练模型。选择上,简单通用任务用 Zero-shot,复杂或领域特定任务用 Few-shot,One-shot 作为轻量过渡。

加分版(在基础版上加这些):

需要补充几个关键点。第一,示例的作用是"激活"而非"训练",不更新模型参数。第二,示例质量比数量更重要,2-5 个高质量示例通常优于大量低质量示例。第三,好示例要具备代表性、多样性、格式一致性。第四,Few-shot 中的示例称为 Demonstration,Test Instance 是真正要回答的问题。

面试回答要点总结,核心区别、原理机制、选择建议三个维度的高亮展示

一句话总结

Zero/One/Few-shot 的核心区别是示例数量,背后通过 In-Context Learning 激活模型已有知识,选择依据是任务复杂度------简单任务直接答,复杂任务看例题。

相关推荐
2501_933670792 分钟前
医药市场分析岗位适合应用统计学学生吗,需要考什么证
人工智能
水獭比特5 分钟前
Agent 工具审批不止一个按钮:用 v0.22.1 复盘入口、恢复和副作用
人工智能·python
网络毒刘6 分钟前
Token 用量观测实战:从会话结构拆前缀/工具/生成,建立个人降本仪表盘
人工智能·性能优化·token·cursor
库拉镜像AI牛牛7 分钟前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
IamZJT_7 分钟前
Agent 系统工程 09|Agent 的可靠性怎么测?成功率、恢复能力与成本
人工智能
半糖程序员8 分钟前
从零构建 Agent(10):保存并恢复会话
agent
AI你一生一世12 分钟前
当AI在数学中“失准”:一场关于形式化、直觉与工程取舍的深度复盘
人工智能·大语言模型·数学推理·ai对齐·形式化验证·推理模型·语义漂移
盟接之桥15 分钟前
AI助手:你的7×24小时智能管家——让异常预警无处不在
大数据·网络·数据库·人工智能·制造·ai编程
llqbzllll16 分钟前
Agent Skills 为什么不能只是“长提示词”:SKILL.md、按需加载和权限边界
人工智能
Harzerr18 分钟前
AI行业日报|2026-10-05:5个热点事件
ai·行业动态·技术趋势