Universal Self-Adaptive Prompting

prompt提示词2026年6月7日3

USP(Universal Self-Adaptive Prompting,Wan et al., 2023b)可以理解为:把 COSP 的“自适应挑示例”推广成一个更通用的、可用于各种任务的自动 few-shot 构造方法。它的主要变化有三点:(1) 用无标注数据也能造示例;(2) 用更复杂的打分函数挑示例,而不是靠“答案一致性”;(3) 推理阶段不再用 Self-Consistency(不做多次采样投票)。

下面按“是什么—怎么做—适用/不适用—例子”讲清楚。


1) USP 想解决什么问题(相对 COSP 的痛点)

COSP 依赖两件事:

  • 你有一批“题目-答案”或至少是“可投票的最终答案”形式,才能用 **agreement(答案一致性)**筛选示例;
  • 最终还要用 Self-Consistency 多次采样来提升效果(成本/延迟更高)。

但很多任务并不天然“可投票”(如写作、摘要、开放问答、多标签信息抽取),或者你手里只有无标注数据(只有输入没有正确输出),这时 COSP 很难直接套用。

USP 的目标就是:

不依赖标注、也不依赖自一致投票,把“自动造示例 + 自动挑示例”做成更普适的流程。


2) USP 的核心思路(概念版)

A. 用无标注数据生成 exemplars(输入→模型生成输出)

给一批无标注输入 (x)(只有问题/文本/图片描述等),让模型为每个 (x) 生成一个候选输出 (\hat{y}),从而构造“伪示例”:

  • 示例 = (输入 x,模型生成的输出 (\hat{y}))
  • 这些示例不保证正确,但数量大、覆盖面广

B. 用“更复杂的打分函数”筛选示例

USP 不用“多次采样后看答案一致不一致”这种只适合有明确最终答案的标准,而是引入更通用的评分:对每个候选示例(x, (\hat{y}))评估它“作为 few-shot 示例”是否有用。
直观上,常见会考虑这类信号(不要求你全会实现,但理解方向):

  • 格式/约束满足度:输出是否符合任务要求(JSON、字段、长度、标签集合)
  • 可解释性/步骤合理性:如果任务需要推理链,推理是否自洽
  • 任务相关性/信息量:是否覆盖关键模式、边界情况
  • 一致性/自洽性(但不是 Self-Consistency 投票):例如同一输入的不同视角描述是否矛盾
  • 对目标任务的“带来增益”:更像“这个示例放进 prompt 后能不能让模型在开发集上变好”(工程上常用小开发集近似评估)

一句话:

USP 用“可泛化的质量/效用评分”来挑示例,而不是用“答案多数投票的一致性”来挑示例。

C. 推理阶段不使用 Self-Consistency

最终拿到 few-shot exemplars 后,USP 用它们组成一个最终 prompt,对每个新输入只生成一次(或常规单次解码),不再多次采样投票:

  • 优点:成本低、延迟小,更适合在线服务
  • 代价:失去 Self-Consistency 带来的“采样集成”增益,需要更依赖 exemplar 质量与评分策略

3) USP 适合与不适合的应用场景

适合

  1. 无标注数据多、标注贵的任务
    • 客服意图分类、信息抽取、摘要、风格改写、质量检查等
  2. 输出不是单一离散答案、难以做投票聚合的任务
    • 摘要、改写、结构化抽取(字段可能多且开放)、长文本生成
  3. 对延迟/成本敏感的线上场景
    • 不用 Self-Consistency,多次采样成本直接省掉
  4. 需要跨任务通用的一套自动造 prompt 流程
    • 同一套“生成候选示例→打分筛选→拼 prompt”的流水线换任务即可复用

不适合

  1. 强可验证、且 Self-Consistency 能显著增益的任务
    • 数学/逻辑/选择题:COSP + Self-Consistency 往往更强
  2. 模型对任务几乎不会做、生成的伪标注质量很差
    • 如果 (\hat{y}) 大量胡写,评分再复杂也很难选出真正有帮助的 exemplars
  3. 没有任何可用于评估/打分的信号
    • 连格式约束、规则校验、少量开发集都没有时,“复杂评分”无从落地

4) 至少 3 个中文提示词写法示例(围绕 USP 的三步:生成→评分→组装→推理)

说明:USP 的关键在“用无标注数据生成 exemplars,并用评分选它们”。所以例子会体现这两步怎么写 prompt。你在工程里会对一堆无标注输入重复调用“生成候选示例 prompt”,再调用“评分 prompt/规则”,最后把 top-k 拼进最终 prompt。


例子1:用无标注数据生成“信息抽取”任务的 exemplar(生成阶段)

场景:从用户投诉文本中抽取结构化字段(无标注)。

生成候选 exemplar 的 Prompt(对每条无标注文本运行一次):

你是信息抽取助手。请从下面文本中抽取字段,并严格按 JSON 输出。
字段:

  • "产品": 文本中提到的产品或服务名称(没有则填空字符串)
  • "问题类型": 从集合["物流","质量","售后","价格","其他"]中选一个
  • "诉求": 用户希望如何解决(尽量简短)
  • "情绪强度": 1-5 的整数

文本:{一条无标注投诉文本}

只输出 JSON,不要输出其他内容。

你会得到候选示例:(文本 x, 模型输出 (\hat{y})=JSON)


例子2:对候选 exemplar 打分并筛选(评分阶段,USP 的关键)

场景:给上一步生成的候选 exemplar 打分,选出最适合作为 few-shot 示例的若干条。

评分 Prompt(对每个候选 exemplar 运行一次):

你是“few-shot 示例质量评估器”。请评估下面这条示例是否适合作为信息抽取任务的示范。
评分维度(0-5 分):

  1. 格式正确性:是否为合法 JSON、字段齐全、值类型正确
  2. 约束满足:问题类型是否在给定集合内,情绪强度是否为1-5整数
  3. 抽取合理性:字段是否与原文对应,是否出现编造信息
  4. 教学价值:作为示例是否清晰、有代表性(覆盖常见/边界情况)

输入文本:{文本 x}
模型输出:{候选 JSON \hat{y}}

请输出 JSON:
{"总分":0-20,"各维度":{"格式":x,"约束":x,"合理性":x,"教学价值":x},"是否入选":"是/否","原因":"一句话"}

工程里你可以按“总分”排序,取 top-k 进最终 prompt。
这就是 USP 相对 COSP 的“更复杂打分函数”的落地方向(可由规则+模型打分结合)。


例子3:把筛选出的 exemplars 拼成最终 few-shot prompt(推理阶段:不使用 Self-Consistency)

场景:线上抽取时只跑一次生成,不做多次投票。

最终推理 Prompt(单次生成):

你是信息抽取助手。请学习下面示例的输出格式与字段含义,然后抽取新文本的信息。

示例1:
文本:{入选示例文本1}
输出:{入选示例JSON1}

示例2:
文本:{入选示例文本2}
输出:{入选示例JSON2}

示例3:
文本:{入选示例文本3}
输出:{入选示例JSON3}

现在抽取:
文本:{新文本}

只输出 JSON,不要输出其他内容。

注意:这里没有“请采样多次并投票”的环节——这就是“USP 不用 Self-Consistency”。


例子4(再给一个开放式任务):摘要任务的 USP 示例生成与筛选

生成候选摘要 exemplar(无标注输入=文章):

你是摘要助手。请将下面文章总结为不超过120字的中文摘要,要求:覆盖关键事实、避免评价、不要引入文中没有的信息。
文章:{无标注文章}

评分(是否“忠实 + 覆盖关键点 + 无幻觉”):

你是摘要质量评估器。给出0-10分并判断是否入选 few-shot 示例。
评估要点:

  • 忠实性:是否出现文中没有的事实
  • 覆盖度:是否包含时间/人物/事件结果等关键点
  • 简洁性:是否<=120字
    输入文章:{文章}
    候选摘要:{模型摘要}
    输出格式:{"分数":0-10,"是否入选":"是/否","主要问题":"一句话"}

然后把高分摘要对作为 few-shot exemplars 拼进最终摘要 prompt。


5) USP 与 COSP 的一句话对比(帮你记忆)

  • COSP:用 Self-Consistency 在有标注/可投票任务里挑“高一致”的示例,并且推理时也 Self-Consistency。
  • USP:用 无标注数据生成示例 + 更通用的评分函数挑示例,推理时 不做 Self-Consistency,更通用、更便宜但更依赖筛选质量。

如果你告诉我你的具体任务类型(分类/抽取/摘要/对话/代码/数学)以及你是否有少量标注开发集,我可以把 USP 的“评分函数”细化成一套你能直接落地的打分维度与阈值,并给出一份可复制的最终 prompt 模板(含示例插槽)。