外观
小样本提示学习策略全解
内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。
1. 什么是 Zero-shot 提示方法?
Zero-shot 提示方法是指给模型提供一个不属于训练数据的提示,但模型可以生成你期望的结果的方法。这种方法使得大型语言模型可以用于许多任务。
简单理解:不给大模型任何提示,直接提问,让大模型自己做决策。
示例场景:
- 翻译一句话
- 给出一个词的定义
- 生成一首诗
2. 什么是 Few-shot 提示方法?
Few-shot 提示方法是指给模型提供一些示例或上下文,来引导模型更好地完成任务的方法。这些示例或上下文可以作为模型的条件,来影响后续的输出。
简单理解:在提问之前,先给大模型一个示例和解释让它学习和模仿,从而在一定程度上赋予它泛化能力。
示例场景:
- 给模型一些情感分析的示例,让它根据文本判断情感倾向
- 给模型一些编程任务的示例,让它生成代码片段
3. One-shot 和 Few-shot 提示策略及其应用场景
核心思想
最简单的提示工程方法就是通过输入一些类似问题和问题答案,让模型参考学习,并在同一个 prompt 的末尾提出新的问题,以此提升模型的推理能力。
策略对比
| 策略 | 示例数量 | 适用场景 | 示例 |
|---|---|---|---|
| One-shot | 1个示例 | 相对简单或常见的任务,或模型已有很强涌现能力的任务 | 给模型一个新词和定义,让它用新词造句 |
| Few-shot | 多个示例 | 相对复杂或特殊的任务,或模型需要更多引导和调整的任务 | 给模型几个不同类型的笑话,让它根据关键词生成新笑话 |
Few-shot 具体应用方法
Few-shot 提示方法并不复杂,只需要将一些类似问题的问题+答案作为 prompt 的一部分进行输入即可。
格式规范:
- 以
Q作为问题的开头、A作为回答的开头(也可以换成"问题"、"答案") - 不同的问答对话需要换行,以便于更加清晰的展示
- 通过转义符+换行来完成分隔
Q: 示例问题1
A: 示例答案1
Q: 示例问题2
A: 示例答案2
Q: 实际问题
A:4. 什么是逐步 Zero-shot?
逐步 Zero-shot 是指一种利用大型语言模型进行推理的方法,它通过让模型自动生成多个中间步骤或过程,然后再根据这些步骤或过程来生成结果。
论文来源:Large Language Models are Zero-Shot Reasoners
逐步 Zero-shot 可以让模型更好地理解问题的含义和范围,更接近人类的思考方式。
两阶段流程
| 阶段 | 名称 | 职责 |
|---|---|---|
| 第一阶段 | Reasoning Extraction(推理提取) | 模型首先对问题进行拆分并分段解答问题 |
| 第二阶段 | Answer Extraction(答案提取) | 模型再进行答案的汇总 |
5. Zero-shot-CoT 提示策略及其应用方法
定义
Zero-shot-CoT 提示策略是指一种利用 Zero-shot 思维链进行推理的方法,该方法借助思维链(Chain of Thought,CoT)提示法来解决问题。
核心技巧:通过在问题的结尾附加
"Let's think step by step"这几个词,来引导模型生成一个回答问题的思维链。
优势
- 让模型更有效地利用其通用知识和涌现能力
- 避免过拟合或灾难性遗忘
应用示例
提示:
我去市场买了 10 个苹果。我给邻居 2 个苹果,给修理工 2 个苹果。
然后我又买了 5 个苹果,并吃了 1 个。我还剩下多少个苹果?
Let's think step by step.输出:
首先,你开始有 10 个苹果。你送走了 2 个苹果给邻居和 2 个苹果给修理工,
所以你还剩下 6 个苹果。然后你又买了 5 个苹果,所以现在你有 11 个苹果。
最后,你吃了 1 个苹果,所以你还剩下 10 个苹果。6. Few-shot-CoT 提示策略及其实际使用方式
定义
Few-shot-CoT 提示策略是指一种利用 Few-shot 思维链进行推理的方法,它通过给模型提供一些手动设计的中间步骤或过程,来影响模型的输出。
核心思想
通过编写思维链样本作为提示词,让模型学会思维链的推导方式,从而更好地完成推导任务。需要在提示样本中不仅给出问题的答案,还同时需要给出问题推导的过程(即思维链)。
注意:Few-shot-CoT 的方式虽然有效,但并不是很稳定。如果想要得到稳定的正确答案,可能需要更高阶的提示方法。
应用方法
- 明确你想要解决的问题或任务,以及你期望的输出或回答的格式和内容
- 将你的问题或任务用自然语言描述出来,并在前面加上一些与任务相关的中间步骤或过程,作为输入或查询给模型
- 观察模型生成的输出或回答,看是否符合你的期望和需求。如果不满意,可以尝试修改你的输入或查询,或者使用其他控制参数来影响模型的行为
7. Few-shot-LtM 策略包含哪些主要阶段及其职责?
Few-shot-LtM(Least-to-Most)策略是一种利用最少到最多的提示序列,来让大语言模型逐步增加推理难度和深度的方法。它可以让模型更有效地利用其通用知识和涌现能力,同时避免过拟合或灾难性遗忘。
两阶段流程
| 阶段 | 名称 | 职责 |
|---|---|---|
| 第一阶段 | 问题分解 | 根据问题的复杂性和模型的能力,将问题拆分成若干个更简单或更具体的子问题。这些子问题可以建立在彼此之上,也可以相互独立。为模型提供一个清晰和合理的思路,让模型能够逐步接近最终的目标 |
| 第二阶段 | 逐个解决子问题 | 根据第一阶段得到的子问题序列,依次给模型提供相应的提示,让模型生成每个子问题的答案。这些答案可以作为下一个子问题的输入或条件,也可以直接作为最终答案。为模型提供一个有效和灵活的引导,让模型能够产生合理和正确的输出 |
完整流程示意
阶段一:问题分解
原始问题 → 子问题1 → 子问题2 → ... → 子问题N
阶段二:逐步解决
子问题1 → 答案1
子问题2 + 答案1 → 答案2
...
子问题N + 答案(N-1) → 最终答案