提示工程指南(三):提示的基本结构与少量(few-shot)提示技巧

上一篇博客已经讲解了zero-shot和few-shot提示,在few-shot提示中,需要给模型一些与所问问题相关的示例,那么什么样的示例能够最大化的激发模型的能力呢?

few-shot提示技巧

当选择示例的时候,可以参考如下技巧:

  • Liu et al., 2021:在选择示例之前,可以将示例和测试实例在嵌入空间中进行K-NN聚类,然后选择处于同一类的示例。

  • Su et al. (2022):为了选择多样化且有代表性的示例集

    1. 首先,根据嵌入(例如通过SBERT或其他嵌入模型)的余弦相似度构建有向图 G = ( V , E ) G=(V, E) G=(V,E),其中每个节点指向其 k k k个最近邻居;
    2. 从一组选定的样本 L = ∅ \mathcal{L}=\emptyset L=∅和一组剩余样本 U \mathcal{U} U开始。每个样本 u ∈ U u \in \mathcal{U} u∈U通过以下公式评分:

    score ( u ) = ∑ v ∈ { v ∣ ( u , v ) ∈ E , v ∈ U } s ( v ) where s ( v ) = ρ − ∣ { ℓ ∈ L ∣ ( v , ℓ ) ∈ E } ∣ , ρ > 1 \text{score}(u) = \sum_{v \in \{v \mid (u, v) \in E, v\in \mathcal{U}\}} s(v)\quad\text{where }s(v)=\rho^{- \vert \{\ell \in \mathcal{L} \vert (v, \ell)\in E \}\vert},\quad\rho > 1 score(u)=v∈{v∣(u,v)∈E,v∈U}∑s(v)where s(v)=ρ−∣{ℓ∈L∣(v,ℓ)∈E}∣,ρ>1

    这样的评分机制鼓励选择多样化的样本,如果 v v v的许多邻居被选中,则 s ( v ) s(v) s(v)较低。

  • Rubin et al. (2022):提出通过对比学习选择训练嵌入。给定每对训练样本 ( x , y ) (x, y) (x,y),一个示例 e i e_i ei(格式化的输入-输出对)的质量可以通过语言模型分配的条件概率来衡量: score ( e i ) = P LM ( y ∣ e i , x ) \text{score}(e_i) = P_\text{LM}(y \mid e_i, x) score(ei)=PLM(y∣ei,x)。我们可以识别其他示例的top- k k k和bottom- k k k分数作为每对训练样本的正选和负选候选集,并使用这些进行对比学习。

  • Diao et al. (2023):建议找到在多次采样试验中具有高分歧或熵的示例。然后为这些示例打标签,并用于少次提示。

  • 选择示例时应采用多样化的示例选择方案,尽可能使用测试样本的相关信息,并将示例随机排序,以避免多数标签偏见和最近性偏见。

  • Lu et al. 2022:增加模型大小或包含更多的训练示例并不能减少不同排列的上下文示例所导致的模型输出差异。相同的顺序可能对一个模型效果很好,但对另一个模型效果很差。

提示词的结构

事实上,所有的提示词可以总览为固定的结构,每一个提示词都可涵盖为以下元素:

  • 指令 - 你希望模型执行的特定任务或指令
  • 上下文 - 可以引导模型给出更好响应的外部信息或额外上下文
  • 输入数据 - 我们希望找到回应的输入或问题
  • 输出指示 - 输出的类型或格式。

以上一篇中的prompt为例:

markdown 复制代码
任务:情感分析
示例1:这段文字真是太棒了,我非常喜欢! - 积极
示例2:我不太喜欢这个,感觉很一般。 - 消极
示例3:这本书的内容很客观,提供了很多事实信息。 - 中性

现在,请对以下文本进行情感分析,模型需要对每个输入文本给出一个情感标签,即判断文本是积极的、消极的还是中性的:
1. 我真的对这个产品感到失望,它没有达到我的期望。
2. 这是我看过的最好的电影之一,强烈推荐给大家!
3. 报告详细介绍了市场的现状,很中立。
  1. 指令(Instruction):

    • 任务:情感分析 这个指令明确告诉模型需要执行的任务是情感分析,即识别文本中的情感倾向。
  2. 上下文(Context):

    示例1:这段文字真是太棒了,我非常喜欢! - 积极
    示例2:我不太喜欢这个,感觉很一般。 - 消极
    示例3:这本书的内容很客观,提供了很多事实信息。 - 中性

这些示例提供了情感分析的上下文,展示了不同类型的文本和它们对应的情感标签。这些上下文信息帮助模型理解如何根据文本内容判断情感倾向。

  1. 输入数据(Input Data):

    我真的对这个产品感到失望,它没有达到我的期望。
    这是我看过的最好的电影之一,强烈推荐给大家!
    报告详细介绍了市场的现状,很中立。

这些是模型需要分析的具体文本输入。模型需要根据之前的指令和上下文来对这些输入数据进行分类。

  1. 输出指示(Output Indication):

    模型需要对每个输入文本给出一个情感标签,即判断文本是积极的、消极的还是中性的。

这个输出指示告诉模型我们期望的输出类型是分类标签。

相关推荐
无糖可可果3 分钟前
远程 MCP 实战:让 AI 成为「千里眼」和「魔术手」
人工智能
wuhanzhanhui4 分钟前
从芯片到精密制造:2026武汉电子元器件、材料及生产设备展会见证微观世界的跃迁
大数据·人工智能
冬奇Lab6 分钟前
每日一个开源项目(第156篇):OpenDataLoader PDF - 基准测试第一名的开源 PDF 解析器,专为 RAG 设计
人工智能·开源·资讯
冬奇Lab6 分钟前
MCP 系列(03):生态导航——官方 Server 清单与社区精选
人工智能·资讯·mcp
百胜软件@百胜软件6 分钟前
百胜软件推出RT业务:零售技术服务全链路飞轮如何助力品牌商“降本+增收”?
大数据·人工智能·零售
AGI_Eval10 分钟前
姚顺雨的“半年考”:Hy3用21B激活参数,交出了一份怎样的答卷?
人工智能
武子康16 分钟前
OpenAI Workspace Agents 进入信用计费:Coding Agent 从额度体验走向成本治理
人工智能·openai·claude
周末程序猿16 分钟前
图解 120 个大语言模型(LLM)核心概念(31-60)
人工智能
敲代码的猴先生21 分钟前
论文分享 | TensorAbuse:通过滥用TensorFlow API将AI模型转化为恶意软件
人工智能·python·语言模型·tensorflow·论文笔记
hereitis贝壳22 分钟前
AI条形码插件|EAN13、Code、交叉二五码标准生成脚本,Win/Mac双端通用
人工智能