
Few-shot Prompt Engineering:示例驱动的高效 Prompt 设计
一、Few-shot 学习基础 Few-shot Prompt 是 In-Context Learning(上下文学习)的核心实现方式——在 Prompt 中提供少量输入-输出示例,让模型"学会"目标任务模式,无需更新模型参数即可完成新任务。 1.1 三种模式对比 模式 示例数 适用场景 优势 劣势 Zero-shot 0 通用任务、简单分类 最简洁、最少 token 消耗 复杂任务准确率低 Few-shot 1-5 格式约束、新概念、风格迁移 精准控制输出格式和风格 需要设计示例 Many-shot 10-100+ 复杂模式学习、规则归纳 接近微调效果 token 开销大 1.2 In-Context Learning 的工作原理 Few-shot 学习的本质是:模型在前向传播过程中,利用注意力机制从示例中提取出输入-输出的映射模式,并在推理时复用该模式。 # Few-shot 学习示意代码 def build_few_shot_prompt(examples: list, test_input: str) -> str: """ examples: [{"input": "...", "output": "..."}, ...] """ prompt_parts = [] for i, example in enumerate(examples): prompt_parts.append(f"输入 {i+1}: {example['input']}") prompt_parts.append(f"输出 {i+1}: {example['output']}") prompt_parts.append("") prompt_parts.append(f"输入 {len(examples)+1}: {test_input}") prompt_parts.append(f"输出 {len(examples)+1}: ") return "\n".join(prompt_parts) # 示例:情感分类 examples = [ {"input": "这部电影太精彩了!", "output": "正面"}, {"input": "质量很差,不推荐购买。", "output": "负面"}, {"input": "还可以吧,一般般。", "output": "中性"}, ] test_input = "服务态度非常好,下次还来!" prompt = build_few_shot_prompt(examples, test_input) print(prompt) 二、示例选择策略 2.1 代表性选择 示例要覆盖任务的典型模式,而非随机选取。 ...