Skip to content

Prompt

1 post with the tag “Prompt”

Prompt技巧:Few-shot

在编写智能体(Agent)或大模型(LLM)的提示词(Prompt)时,Few-shot(少样本提示/少样本学习) 是一个非常核心且高效的概念。

简单来说,Few-shot 就是在给 AI 下达任务指令时,不只给“规则”,还给它看几个“正确答案的例子”。

我们可以把它理解为一种 “类比教学”


1. 直观理解:从 Zero-shot 到 Few-shot

Section titled “1. 直观理解:从 Zero-shot 到 Few-shot”

为了理解 Few-shot,我们需要先看看它的“兄弟”们:

  • Zero-shot(零样本):

    你直接命令 AI 做事,不给任何例子。

    指令: 请将下面这句话翻译成英文:“今天天气真不错。”

    AI: The weather is really nice today.

  • One-shot(单样本):

    你给 AI 一个 例子,让它照猫画虎。

    指令: 请模仿下面的风格将句子翻译成英文。

    示例: “你好吗?” -> “How do you do?” (正式风格)

    任务: “今天天气真不错。”

    AI: The weather is quite pleasant today. (试图模仿正式感)

  • Few-shot(少样本):

    你给 AI 两个或更多(通常 3-5 个) 例子。

    这能帮 AI 锁定非常具体的模式、格式或逻辑。


大语言模型本质上是“文字接龙”的高手,它们非常擅长模式识别(Pattern Matching)。通过提供几个例子,你可以达到以下目的:

  1. 固定格式(关键): 假如你需要 AI 输出 JSON 或特定的代码格式,给例子比写一堆“请不要输出额外文字”的文字说明要有效得多。

  2. 规范风格: 比如你需要“鲁迅风格”或“小红书风格”,给几个样板段落,AI 就能瞬间领悟语调。

  3. 复杂逻辑引导: 对于数学题或推理题,给几个带有“解题步骤”的例子(这叫 Chain-of-Thought Few-shot),能显著提高 AI 的准确率。

  4. 处理边缘情况: 你可以在例子中包含一个“当找不到答案时输出什么”的样本,防止 AI 胡编乱造。


假设你想做一个 “从用户评论中提取情绪和关键词” 的智能体。

❌ 这种是 Zero-shot (效果可能不稳定)

Section titled “❌ 这种是 Zero-shot (效果可能不稳定)”

Prompt: 请分析下面的评论,告诉我用户的情绪是正面还是负面,并提取提到的产品特性。

评论: “这手机屏幕是很清楚,但是电池太不耐用了,用了半天就没电。”

AI 可能回答: “这是一个中性偏负面的评论。提到的特性有屏幕清晰度(正面)和电池续航(负面)。” (问题:回答格式随意,不方便程序后续处理)

✅ 这种是 Few-shot (效果稳定精准)

Section titled “✅ 这种是 Few-shot (效果稳定精准)”

Prompt: 任务:分析用户评论。 输出格式:情绪 (Positive/Negative/Mixed) | 关键词列表

示例 1: 输入:“味道好极了,而且送货很快!” 输出:Positive | [“味道”, “送货速度”]

示例 2: 输入:“衣服质量太差了,线头很多,而且客服不理人。” 输出:Negative | [“质量”, “做工”, “客服服务”]

示例 3: 输入:“虽然价格便宜,但是物流慢得要死。” 输出:Mixed | [“价格”, “物流速度”]

当前任务: 输入:“这手机屏幕是很清楚,但是电池太不耐用了,用了半天就没电。” 输出:

AI 会回答: Mixed | ["屏幕清晰度", "电池续航"] (结果:完全遵循了你设定的“情绪 | [列表]”这种特殊格式)


  1. 样本数量: 通常 3 到 5 个 例子性价比最高。太少(1个)可能导致 AI 过度拟合那个例子的特定内容;太多(几十个)会占用 Token,且收益递减。

  2. 多样性: 例子要覆盖不同的情况。比如上面的例子中,我分别列举了“正面”、“负面”和“混合”三种情况。

  3. 标签明确: 使用 输入:输出: 或者 User:Assistant: 这样清晰的分隔符,让 AI 知道哪里是例子,哪里是正文。

  4. 质量至上: 你的例子必须是完美的。如果例子里有错别字或逻辑错误,AI 会完美地学会这个错误。

Few-shot 就是 “先演示,后提问”

它是提示词工程(Prompt Engineering)中最简单、但提效最明显的手段。当你发现 AI 听不懂你的复杂指令,或者输出格式总是不对时,别再加长篇大论的解释了,直接给它加两个例子试试。