Skip to content

小样本提示学习策略全解

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

1. 什么是 Zero-shot 提示方法?

Zero-shot 提示方法是指给模型提供一个不属于训练数据的提示,但模型可以生成你期望的结果的方法。这种方法使得大型语言模型可以用于许多任务。

简单理解:不给大模型任何提示,直接提问,让大模型自己做决策。

示例场景

  • 翻译一句话
  • 给出一个词的定义
  • 生成一首诗

2. 什么是 Few-shot 提示方法?

Few-shot 提示方法是指给模型提供一些示例或上下文,来引导模型更好地完成任务的方法。这些示例或上下文可以作为模型的条件,来影响后续的输出。

简单理解:在提问之前,先给大模型一个示例和解释让它学习和模仿,从而在一定程度上赋予它泛化能力。

示例场景

  • 给模型一些情感分析的示例,让它根据文本判断情感倾向
  • 给模型一些编程任务的示例,让它生成代码片段

3. One-shot 和 Few-shot 提示策略及其应用场景

核心思想

最简单的提示工程方法就是通过输入一些类似问题和问题答案,让模型参考学习,并在同一个 prompt 的末尾提出新的问题,以此提升模型的推理能力。

策略对比

策略示例数量适用场景示例
One-shot1个示例相对简单或常见的任务,或模型已有很强涌现能力的任务给模型一个新词和定义,让它用新词造句
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 的方式虽然有效,但并不是很稳定。如果想要得到稳定的正确答案,可能需要更高阶的提示方法。

应用方法

  1. 明确你想要解决的问题或任务,以及你期望的输出或回答的格式和内容
  2. 将你的问题或任务用自然语言描述出来,并在前面加上一些与任务相关的中间步骤或过程,作为输入或查询给模型
  3. 观察模型生成的输出或回答,看是否符合你的期望和需求。如果不满意,可以尝试修改你的输入或查询,或者使用其他控制参数来影响模型的行为

7. Few-shot-LtM 策略包含哪些主要阶段及其职责?

Few-shot-LtM(Least-to-Most)策略是一种利用最少到最多的提示序列,来让大语言模型逐步增加推理难度和深度的方法。它可以让模型更有效地利用其通用知识和涌现能力,同时避免过拟合或灾难性遗忘。

两阶段流程

阶段名称职责
第一阶段问题分解根据问题的复杂性和模型的能力,将问题拆分成若干个更简单或更具体的子问题。这些子问题可以建立在彼此之上,也可以相互独立。为模型提供一个清晰和合理的思路,让模型能够逐步接近最终的目标
第二阶段逐个解决子问题根据第一阶段得到的子问题序列,依次给模型提供相应的提示,让模型生成每个子问题的答案。这些答案可以作为下一个子问题的输入或条件,也可以直接作为最终答案。为模型提供一个有效和灵活的引导,让模型能够产生合理和正确的输出

完整流程示意

阶段一:问题分解
  原始问题 → 子问题1 → 子问题2 → ... → 子问题N

阶段二:逐步解决
  子问题1 → 答案1
  子问题2 + 答案1 → 答案2
  ...
  子问题N + 答案(N-1) → 最终答案