提示(Prompt)是我们与LLM沟通的语言。自然语言文本和模型采样参数两者构成了提示工程的重要部分。

模型采样参数

Temperature

通过引入温度T>0,可以将Softmax函数
$p_{i}=\frac{e^{z_{i}}}{\sum_{j = 1}^{k}e^{z_{j}}}$
改写为:
$p_i^{(T)} = \frac{e^{z_i / T}}{\sum_{j=1}^k e^{z_j / T}}$
当低温度(0<T<0.3)时,模型的分布更陡峭,高概率项被放大,适合准确任务;中温度(0.3<T<0.7)时,输出更加平衡;高温度(0.7<T<2)时,输出更加具有创意性。

开源模型的T往往会给出推荐值。

Top-k

Top-k的原理是将所有Token按概率从高到低排序,取排名前k个token组成临时候选集,随后进行归一化,再从中采样。

当Top-K=1时,采样方法退化为贪心采样。

零样本、单样本与少样本提示

零样本提示(Zero-shot Prompting) 指的是不给模型任何示例,直接让它根据指令完成任务。模型的效果取决于它在海量数据上预训练的学习能力。

单样本提示(One-shot Prompting) 给模型提供一个完整的任务示例,向它展示任务格式和期望输入风格。

少样本提示(Few-shot Prompting) 提供多个示例,让模型对任务细节、边界有更准确的理解。

指令调优(Instruction Tuning)

使用大量 “指令-回答” 格式的数据对预训练模型进行进一步的训练。

基础提示技巧

  • 角色扮演(Role-playing):赋予模型一个特定角色,引导它的回答风格、语气、知识范围。
  • 上下文示例(In-context Example):通过在提示中提供清晰的输入输出示例,教会模型处理请求。

[!NOTE]

In-context Example(上下文示例) 是一个更广义的术语,指在 prompt 中提供的任何示例、参考或背景信息,用于帮助模型理解任务。它可以是:

  • 输入输出对(few-shot)
  • 单一样本(one-shot)
  • 零样本但带说明(zero-shot with instruction)
  • 领域知识片段
  • 格式模板

少样本提示(Few-shot Prompting) 是 In-context Learning 的一种具体技术,特指在 prompt 中提供 多个(通常 2-10 个)完整的输入输出示例对,让模型通过类比学习来推断任务模式。

思维链(Chain of thought, CoT)

对于多步骤逻辑,直接让模型思考复杂问题容易出错,因此引导模型一步步思考,显示展示其推理过程。