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

📅 2026/8/5 16:44:32
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模型并不是记住了这个对应关系。它的处理过程是看到示例后在自己的预训练知识里搜索类似的任务模式找到判断情感倾向这类任务的处理方式把你新输入的内容套用这个模式输出打个比方。你做数学应用题时翻开教材看了两道例题。看例题不是为了背住例题的答案而是回忆这类应用题该用什么方法、什么步骤去解。然后遇到新题用同样的方法去套。这就是 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 用得多但很多人用得不对。关键在于示例质量而不是数量。好示例的三个特征代表性覆盖任务的典型情况。别只给特例否则模型会学到错误的模式。比如做情感分类别全给强烈的情感示例也得给中性句。多样性示例之间要有差异。如果做翻译词性要有名词、动词、形容词如果做分类类别要尽量均衡。格式一致示例的输入输出格式必须和最终任务完全一致。示例用 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-shotOne-shot 作为轻量过渡。加分版在基础版上加这些需要补充几个关键点。第一示例的作用是激活而非训练不更新模型参数。第二示例质量比数量更重要2-5 个高质量示例通常优于大量低质量示例。第三好示例要具备代表性、多样性、格式一致性。第四Few-shot 中的示例称为 DemonstrationTest Instance 是真正要回答的问题。面试回答要点总结核心区别、原理机制、选择建议三个维度的高亮展示一句话总结Zero/One/Few-shot 的核心区别是示例数量背后通过 In-Context Learning 激活模型已有知识选择依据是任务复杂度——简单任务直接答复杂任务看例题。