三个技巧:给例子、给边界、给输出格式。 三个都是「把话说死」的不同方式。 例子那一条本课量出了曲线:零个例子 3 / 6,每类三个例子 6 / 6。中间那段是平的。 平的那一段最值得看——例子的价值在覆盖几种说法,不在数量。
上一节给四段骨架,这一节给四段里的血肉。 三个技巧对应四段里的后两段:约束(边界)和格式(输出格式)。例子那一样是额外的,加在四段之外。 这一节是本章难度最高的一篇,因为它讲的是「怎么把模糊的要求变成模型执行得了的指令」。
一、技巧一:给例子
要它做分类、做改写、做固定格式的输出,光说规则不够——给两三条例子,效果立刻不一样。 演示里做了一个分类任务:六条用户留言,分到咨询、投诉、建议三类。
| 每类给几个例子 | 例子总数 | 分对 | 准确率 |
|---|---|---|---|
| 0 | 0 | 3 / 6 | 50% |
| 1 | 3 | 3 / 6 | 50% |
| 2 | 6 | 4 / 6 | 67% |
| 3 | 9 | 6 / 6 | 100% |
零例子那行是纯关键词规则的成绩。 加上例子之后往上走,但中间有一段是平的——从三个例子加到六个,一个都没多分对。 平的那一段是本节的重点:例子数量加了,覆盖面没加。
二、为什么第三个例子是决定性的
从六个例子加到九个,准确率从 67% 跳到 100%。 原因很简单: 第三批例子里有三条正好覆盖了测试集里那三种说法——「修了三次还是没好」对「修三次都没好」、 「能不能上门服务」对「能不能上门取车」、「首保要带什么材料」对「首保要带啥」。 前六个例子里没有这样的对照,所以加了等于没加。
挑例子的时候要问:这三条是不是在说同一件事的三种说法?是的话,再加三条也没用。 反过来,三条各说一件事,比九条说同一件事有用得多。
三、技巧二:给边界
边界就是「不许干什么」和「只能来自什么」。上一节讲过它的重要性,这一节讲写法。 写法一,只来自某处。 「金额与时间只能来自资料原文。」这一句把编造的路堵死了。 写法二,超了就怎样。 「资料里没有的,回答『需要转人工』。 」不只说不能编,还说编不了的时候怎么办。
写法三,给一个默认值。 「拿不准时输出咨询。 」分类任务必须有这一句,否则遇到模糊的样本它会随机挑。 三种写法里第二种最容易被漏。 只说「不许编」不够,还得说「编不了时说什么」——不然它就在「编」和「沉默」之间反复, 而沉默对用户是最差的体验。
四、技巧三:给输出格式
输出格式要写到「下游能直接用」的程度。 要 JSON 就给一个骨架,别只说「输出 JSON」。字段名、嵌套、要不要代码块包裹,都得写。 要几句就写几句,还要说「不用列表」「不加序号」。不然它会给你排成条目。
要标注出处就写清标法:「句末用 [1][2] 标出依据的资料编号」。 只说「标注出处」,标法每次都不一样。 格式这一段的好处是错了立刻能发现——不用看内容对不对,看形状就知道。 所以它是提示词里最容易调的一段。
五、三个技巧的合用顺序
别一次全上。一次全上,出了问题不知道是哪一样起的作用。 第一步,四段写齐,跑一遍。 记下准确率。 第二步,加边界(兜底那句)。 再跑。这一步通常改善的是「硬答」问题,不是准确率。
第三步,加例子。 再跑。这一步改善的才是准确率。 第四步,把例子从三条加到九条,看还有没有提升。 没有就别加了——按第 6.1 节的账, 多加六条例子会让整份提示词长三成,注意力预算更紧。 四步走完,你手上有一份「每一项都验证过」的提示词。这比一次写一份完美的提示词快得多。
六、一个容易忽略的点:例子的标签必须对
演示里那九个例子的标签是我手写的,全对。真项目里这一步最容易出错。 一条标错的例子,比没有例子更糟。 因为它不只是没帮上忙,它还在教错。 所以准备例子的时候要两个人各标一遍,不一致的挑出来讨论。九条例子两个人标,二十分钟的事。
还有一条:例子里的说法要贴近真实用户。拿书面语当例子,用户说口语时它还是不会分。
七、动手 Demo:给例子:从零个到五个,准确率怎么走
九条标注好的留言当例子池,六条当测试集。 例子从零个加到每类三个,看准确率怎么走,再看中间那一段为什么是平的。
def rule_only(s): # 零例子:只有两条关键词规则
if u'差' in s or u'投诉' in s:
return u'投诉'
if u'建议' in s or u'希望' in s:
return u'建议'
return u'咨询'
def with_examples(s, ex): # 有例子:在例子里找最像的一条,抄标签
if not ex:
return rule_only(s)
hits = Q.retrieve(s, [t for t, _g in ex], top=1)
if not hits:
return rule_only(s) # 一条都不像,退回规则
for t, g in ex:
if t == hits[0][1]:
return g
return rule_only(s)
实跑输出:
--------------------------------------------------------------------
给例子:从零个到五个,准确率怎么走
--------------------------------------------------------------------
① 例子数从 0 到 3,准确率
--------------------------------------------------------------------
| 每类给几个例子 | 例子总数 | 分对 | 准确率 |
|---:|---:|---:|---:|
| 0 | 0 | 3 / 6 | 50% |
| 1 | 3 | 3 / 6 | 50% |
| 2 | 6 | 4 / 6 | 67% |
| 3 | 9 | 6 / 6 | 100% |
零例子那行是纯关键词规则的成绩。
加上例子之后一路往上,但中间有一段平的——那一段是「例子数量加了,覆盖面没加」。
② 只给一个例子时,错在哪
--------------------------------------------------------------------
「等两个小时都没人接待」应为 投诉,判成了 咨询
「修三次都没好」应为 投诉,判成了 咨询
「能不能上门取车」应为 建议,判成了 咨询
错的三条有个共同点:例子里没有和它说法相近的句子。
「等两个小时都没人接待」和一个例子「服务态度差」一个字都不重合,找邻居找不到,只能退回规则,
规则又把它当咨询。
③ 第三个例子为什么是决定性的
--------------------------------------------------------------------
从两个例子加到三个例子,准确率跳了一大截。
因为第三批例子覆盖到了「修了三次还是没好」「能不能上门服务」「首保要带什么材料」这三种说法。
例子的价值不在数量,在覆盖几种说法。
所以挑例子的时候要问:这三条是不是在说同一件事的三种说法?是的话,再加三条也没用。
④ 例子不是越多越好
--------------------------------------------------------------------
例子多了有两个代价:提示词变长(第 6.1 节那个注意力预算),以及 token 变贵。
实操建议:每类三到五条,挑说法差别最大的那几条,不要挑最像的。
还有一条容易忽略:例子的标签必须绝对正确。一条标错的例子,比没有例子更糟。
! 这个 Demo 用的是「找最像的邻居」当 few-shot 的替身,只能看字面重合。
真模型能跨过同义,所以真机上的曲线会比这张表好看——这张表是下限,不是上限。
但它测出来的方向是真的:例子的覆盖面,决定了模型对「说法差异」的容忍度。
①第一张表四行。零例子 3 / 6,每类一个 3 / 6,每类两个 4 / 6,每类三个 6 / 6。 ②第一行到第二行一个都没涨——加了三个例子,成绩没动。 那三个例子离测试句太远。 ③第三行涨了一个,第四行涨了两个。最后那三个例子正好覆盖了测试集的三种说法。 ④第二段把错的三条列出来了。它们的共同点:例子里没有和它说法相近的句子。 「等两个小时都没人接待」和一个例子「服务态度差」一个字都不重合。 ⑤这个 Demo 用的是「找最像的邻居」当替身,只能看字面重合。 真模型能跨过同义,所以真机上的曲线会比这张表好看——这张表是下限。
30 秒实验
- 把你现在的提示词加三条例子(每种情况一条),跑一遍记分,再加三条,再记一次。
- 检查你例子的标签,找一个人重标一遍,看有几条不一致。
- 把「不许编」改成「不许编,编不了时说这句话」,再跑一遍那两个不能答的问题。
常见误区
- 「例子越多越好。」前六个例子一个分都没涨。例子的价值在覆盖说法,不在数量。
- 「只说不要编就够了。」不够。还得说「编不了时说什么」,不然它在编和沉默之间反复。
- 「例子随便写几条。」标签必须绝对正确,说法要贴近真实用户。一条错例子比没例子更糟。
自测三问(点开对答案)
1. 加了六个例子为什么没涨分? —— 例子数量加了,覆盖面没加。六个例子说的是同一批说法,测试集里的新说法一个都没覆盖。 2. 「不许编」还缺什么? —— 缺「编不了时说什么」。要给它一条兜底话术,不然它在编造和沉默之间反复。 3. 三个技巧该按什么顺序加? —— 四段、边界、例子。一步步加才知道哪一步起作用。一次全上,出问题分不清原因。技巧都讲完了,最后一节落到平台上:提示词在扣子里有四个位置,每个位置该写什么、写错了会怎样。
- ☐ (本篇完,下一篇 6.4 扣子平台设置提示词案例)
相关笔记
- 提示词的分类和写作方法:四段式怎么写
- 提示词的工作原理:注意力预算与位置
- 39 AI训练师手册2 · 索引
- 🐦 扣子开发 AI Agent · 索引