这是最好的时代,也是最坏的时代。有人沉醉于提示词技巧的海洋中,日复一日地精研其中奥秘,仿佛这便是通往智慧之门的钥匙;有人则在shi上雕花的迷宫里苦苦求索,妄图驯服这些数字巨人,使其俯首称臣。啊!多么讽刺啊!还有那些神秘主义者,他们将提示词工程视若天书,在其上笼罩一层又一层的神秘面纱。而更有甚者,那些自诩智者的人们,开设各式各样的课程,宛如在泰晤士河畔兜售灵丹妙药的江湖术士。然而在这喧嚣的人群之外,仍有许多可怜的灵魂,他们尚未踏上这人工智能的征程,如同伦敦城外的穷苦百姓,对这场变革一无所知。
今天的内容是一篇论文解读:
这是一篇雄文,它真的是牛逼,太牛逼了,它对市面上几乎所有的提示词技巧进行了分析、归类、反思和总结。如果提示词的屎上雕花有等级,它就是在穹顶上面俯瞰众生,睥睨一切。
论文作者一共整理出58个类别,6个顶级类别:
• 零样本
• 少样本
• 思维生成
• 分解
• 集成
• 自我批评
下面是每一类的特点和示例总结
1. 零样本提示 (Zero-Shot)
• 直接提示,无需示例或上下文
• 包括角色扮演和风格指导
• 可通过特定格式规范输出
提示:"请分析这条推文的情绪"
原始输出:"这条推文表达了积极的情绪。作者似乎对产品非常满意..."
使用风格提示改进:"用一个小写单词回答推文情绪:positive/negative/neutral"
改进输出:"positive"
心理技巧:
添加"我的职业生涩取决于此"等人性化短语可能提高准确性。
类似的还有"请你一定要输出json,不然我就要被解雇了"。
这类技巧我就不评价了。。
2. 少样本提示 (Few-Shot)
• 在主要提示前添加示例引导模型
• 需注意示例的分布和比例
• 示例选择方法:K近邻、投票K、自生成
[示例1] 推文:"我爱这个产品" -> 分类:正面
[示例2] 推文:"质量差劲" -> 分类:负面
问题推文:"价格太贵" -> 分类:?
选择示例方法:
• K近邻找相似案例
• Vote-K由模型提议示例
• 自生成上下文学习
3. 思维生成 (Thought Generation)
• 引导模型阐述推理过程
• 包括思维链、对比思维链
• 通过系统化步骤确保完整推理
标准提示词:
"让我们一步步思考"
"让我们一步步解决这个问题,确保答案正确"
"首先,让我们从逻辑角度思考"
"让我们分步骤分析这个上下文,边总结边分析"
来自Gemini报告的技术:通过采样多个推理路径,选择多数结果。
4. 问题分解 (Decomposition)
• 将复杂问题分解为子问题
• 包括从少到多提示、分解提示
• 适用于处理复杂嵌套问题
• Least-to-Most Prompting:专门用于符号推理和数学计算
• DECOMP:利用外部函数(如字符串操作、搜索)
• 思维树(ToT):探索多个潜在解决方案
• 递归思维:处理超出上下文长度的子问题
5. 集成技术 (Ensembling)
• 使用多个提示解决同一问题
• 通过多数投票等方式聚合结果
• 提高准确性但增加计算成本
- 自一致性:生成多个推理路径,多数投票
- DENSE:使用训练数据不同子集生成少样本提示
- MoRE(推理专家混合):针对不同推理类型使用不同提示
6. 自我批评 (Self-Criticism)
• 模型自我评估和改进
• 包括验证链和自我验证
• 注意:在真实规划能力上有局限
- 验证链(COVE):
1. 生成初始答案
2. 创建验证问题清单
3. 回答验证问题
4. 综合信息生成最终答案
- 自我验证:
1. 生成多个思维链解决方案
2. 遮盖问题部分内容
3. 基于剩余内容评估解决方案
结论
• 没有通用的提示技术
• 每种技术都可能在特定场景失效
• 选择技术需基于具体任务
• 有时简单的零样本提示已足够
• 趋势正从"提示"转向"编程"(如DSPy)
• 输出非确定性
• 无法保证100%准确
• 错误可能在系统中传播
• 思维链等方法存在泛化问题
原文地址,内容真的很壮观
https://arxiv.org/pdf/2406.06608