提示工程 Prompt

基础提示技巧

一个好的提示包含以下内容:系统提示、角色提示、语境提示、示例提示

提示词基础技巧

  1. 肯定式指令,减少不精确的模糊描述,提高紧迫感(PUA)
  2. 通过示例明确输出格式,必要时可引导任务的拆分或自检
  3. 找一个好的提示词框架,明确角色、目标、行为、场景与期望

系统提示

系统提示:定义模型的基本功能和总体目标

  • 有助于生成符合特定要求的输出,比如限制输出为 JSON 格式
  • 可以约束模型的能力,缓解幻觉问题;对 LLMs 的安全很有必要

角色提示

角色提示:为模型分配特定角色设定

  • 模型可以根据角色精心设计响应,调整输出的风格和特点
  • 帮助模型生成更相关、 信息更丰富的输出,提供个性化的增强

语境提示

语境提示:提供即时的、针对特定任务的信息来引导回答

  • 帮助模型理解所提问题的细微差别, 并据此调整回答
  • 模型可以更快地理解请求,生成更相关、 信息更丰富的输出

示例提示

提供示例对 LLMs 很有用,能帮助模型更好地理解任务要求

  • Zero-shot:只提供任务说明和文本描述,不提供具体的示例
  • One-shot:提供任务说明和文本描述,并包括一个具体的示例
  • Few-shot:提供任务说明和文本描述,并包括少量具体的示例(3~5 个)

确定示例的数量:

  • 取决于括任务的复杂性、示例的质量以及 AI 模型的能力
  • 根据一般经验法则,建议使用三到五个示例来进行 Few-shot

进阶阅读:上下文学习 ICL

后退提示

后退提示:促使学习者首先考虑与手头具体任务相关的一般性问题,然后将一般性问题的答案反馈到随后的具体任务提示中

  • 让 LLM 在尝试解决具体问题之前,激活相关的背景知识和推理过程
  • 后退式提示鼓励 LLMs 进行批判性思考,实现知识的创造和应用

原始提示:为一款第一人称射击视频游戏的新关卡编写一段故事情节,故事情节要具有挑战性和吸引力?

后退提示:在第一人称射击电子游戏中,有哪些虚构的关键设置有助于形成具有挑战性和吸引力的关卡故事情节?

然后根据后退提示的结果,再进行原始提示的优化,得到最终提示:

背景:第一人称射击视频游戏的 5 个引人入胜的主题: 
1. **废弃的军事基地**:一个庞大的末世军事基地,到处都是变异士兵和流氓机器人,是进行枪战 的理想场所。 
2. **赛博朋克城市**:霓虹闪烁的未来派城市环境,高耸入云的摩天大楼和密集的小巷,以电子强化敌 人和黑客技术为特色。 
3. **外星飞船**:一艘搁浅在地球上的巨大外星飞船,里面有阴森恐怖的走廊、零重力区和外 星生物。 
4. **僵尸横行的小镇**:荒凉的小镇被成群咄咄逼人的僵尸占领,这里既有激烈的近身格斗,也有寻找安全 通道的解谜游戏。 
5.  **水下研究设施**:一个充斥着海水的深海实验室,里面充满了变异的水生生物,需要隐身和水下探索技能 才能生存。 

选择其中一个主题,为第一人称射击视频游戏的一个新关卡编写一段故事情节,故事情节要具有挑战性和 吸引力。

思维链与自洽性

思维链提示 CoT

多步推理系统需要将复杂问题分解为更小的任务,并结合这些任务的解决方案来解决复杂问题。谷歌从思维链提示(chain of thought prompting,CoT)的角度展开工作,鼓励模型对复杂问题进行拆解并展示解决问题的步骤

  • 成功的思维链推理是大模型的涌现属性,即思维链提示的能力更适用于足够多参数(> 100B)的模型

思维链提示的好处:

  • 将计算成本合理分配到更需要逻辑推理的部分
  • 增强了输出的可解释性,并提供了调试错误的窗口
  • 适用于各类语言任务,并能显著提高推理任务的性能(如算术推理或常识推理)
  • 通过添加示例的方式(基于指令集的模型微调),很容易引起大语言模型的思想链推理

自洽性 self-consistency

在思维链提示的基础上,谷歌团队还提出了一种叫做自洽性(self-consistency)的推理优化策略

  • 策略思路很简单:针对解码器结果进行采样,形成多个推理路径,最后选择一致性最高的结果
  • 筛选一致性最高的结果这一步,一般通过少数服从多数的 vote 机制来实现
  • 实验表明,self-consistency 能极大地提高模型的推理能力以及结果的鲁棒性

谷歌推出的 Minerva 在 PaLM 模型的基础上,借助来自 arXiv 的海量论文(保留 LaTex、MathJax 或其他数学表达式)进行二次训练,并采用最新的提示计算和推理优化(比如刚刚提到的思维链提示和自洽性策略),最终实现了优异的推理能力: (左图数据集为高中数学竞赛题,右图数据集为语言理解基准测试,包含高中大学水平的各学科内容)

提示工程进阶

提示词框架

不同提示词框架都大同小异,选一个符合自己习惯的参考就行

RTF(Role-Task-Format)框架

  • Role 角色设定:为 AI 赋予一个虚拟身份或专业视角,引导其用特定角色思维回答问题
  • Task 任务指令:清晰定义 AI 需要完成的具体动作和内容要求,避免模糊指令或用词
  • Format 输出格式:指定 AI 结果的结构化呈现方式,比如格式、排版或特殊规范

CRISPE 框架(作者:Matt Nigh):

  • Capacity and Role(能力与角色,CR):设定 LLMs 需要扮演的角色
  • Insight(洞察力,I),清晰陈述背景信息和充分的上下文
  • Statement(指令,S),明确 LLMs 需要解决的问题或任务
  • Personality(个性,P),指定 LLMs 的输出风格或回答方式
  • Experiment(实验,E),要求 LLMs 提供多个答案,以供选择

2_object/ai/提示词实践/20240603 CO-STAR 提示词框架

CoT 进阶

1_study/DeepLearning/上下文工程/思维链 CoT 技术

软提示学习

谷歌-软提示学习

提示工程实践

常用提示词技巧与经验

常见提示词的技巧汇总

常见提示词的经验汇总

JSON 格式修复

  1. json-repair 库:自动修复不完整或畸形的 JSON 对象

参考:

往年同期文章