以下内容如果需要论文支撑,需要访问原网址。
提示工程指导
什么是提示工程?
设计有效的提示词以指导模型来完成期望的任务的方法。
模型设置
- 参数越小,模型返回的结果就越确定;反之,模型会给出更多样化的结果。
temperature
和top_p
,这两个参数中一般调整其中一个即可。 - 控制给出的回答中token数量和句子数量(项的数量):
max length
和stop sequences
。 - 防止模型在响应过程中频繁响应token:
frequency penalty
和presence penalty
,这两个参数一般调整其中一个可。前者参数值越高,该token出现的可能性越小;后者参数值越高,生成的文本越具有多样性。
给 LLM 提示
这里以gpt3.5为例
可以使用三个不同的角色来构建prompt
:
- system: 不是必须的,但有助于设定assistant的整体行为,帮助模型了解用户需求,并根据需求提供响应的响应。
- user:可以直接作为prompt
- assistant:可以定义它来传递模型所需的行为示例
是否提供范例
- 未提供:零样本提示
- 已提供:少样本提示
提示词要素
指令 + 上下文 + 输入数据 + 输出指示 = 提示词
(自己决定提示词由什么内容组成)
需要进行大量实验找出最有效的方法。
需要:具体、避免不明确
尽量避免说不要做什么,而是说要做什么。
比如:不要询问个人信息→应该避免询问用户个人信息。
提示技术
- 零样本提示
- 少样本提示(1-shot、3-shot、5-shot、10-shot)
- 缺点:对于某些推理问题的响应会出现不可靠的响应 ·
- CoT提示:以解决更复杂、常识和符号推理任务(作者:这是足够强大的语言模型才会出现的新兴能力)
- 零样本CoT提示: 将"让我们逐步思考"添加到原始提示中
- Auto-CoT:
- Stage1:问题聚类:将给定问题分为几个聚类
- Stage2:演示抽样:从每个聚类中选一个有代表性的问题,使用带有简单启发式(可以是问题的长度、理由的步骤数)的Zero-Shot-CoT生成其推理链
- 自我一致性 (生成结果选择最一致的答案)
- 生成知识提示:融合知识或信息以帮助模型做出更准确的预测
- Prompt Chaining:把一个任务分解成多个子任务,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分。
- 文档问答中的链式提示(引文+原始文)
- ToT
- RAG(检索增强生成):访问外部知识源
- ART(自动推理并使用工具 Automatic Reasoning and Tool-use):? 这个再编辑吧,没懂
- APE(自动提示工程师)
- 发现"让我们一步一步地解决这个问题,以确保我们有正确的答案"效果比"让我们一步一步地思考"更好。
- Active-Prompt:使用或不使用少量 CoT 示例查询 LLM。对一组训练问题生成 k 个可能的答案。基于 k 个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。
- 方向性刺激提示:用于更好地指导LLM生成摘要。
- PAL(程序辅助语言模型):使用LLMs读取自然语言问题并生成程序作为中间推理步骤的方法。
- ReAct框架:与外部交互获得信息,并根据得到的信息给出回应
- 自我反思:LLM在来自环境的反馈中反思。
- 多模态思维链提示方法:将文本和视觉融入到一个两阶段框架中。
- 基于图的提示:?没写
- 元提示