提示词不是命令,是一次性塞进上下文的说明。它和用户那句话排队,一起被模型看。 看得见多少有个预算:句子越多、越长,任何一句分到的份额越小。 所以提示词的第一条纪律不是「写全」,是「写少」。
上一章讲往模型面前摆什么资料,这一章讲怎么跟它说话。 第 5.2 节否掉了微调,说过「说话更像我们的客服」得靠提示词。这一节讲提示词凭什么起作用的。 这一节没有平台操作,全是机制。四节里它是唯一一节可以坐着想明白的。
一、它不是命令,是上下文
很多人把提示词当成对模型下的命令。它不是。 模型看到的是一整串文字:你的提示词在前面,用户的问题在后面,中间可能还夹着检索回来的几段资料。 这三样在它眼里是同一种东西——文字。 所以提示词不是「下达指令」,是「提前把规矩铺好」。铺得好,它顺着走;铺得散,它挑着看。
这个区别决定了写法的差别:命令要短要硬,上下文要清楚要有层次。提示词属于后者。
二、看得见多少有个预算
演示里给了一份注意力预算模型:按句均分一份注意力,首尾各加权,长句按长度摊薄。
| 提示词 | 句数 | 总字数 | 关键句分到的份额 |
|---|---|---|---|
| 短(5 句) | 5 | 59 | 12.84% |
| 中(12 句) | 12 | 204 | 6.67% |
| 长(30 句) | 30 | 468 | 2.77% |
同一句话,在五句的提示词里分到一成多,在三十句里只剩不到三个点。 它一个字都没改,只是周围多了二十五句话。 这个模型是替身——真模型的注意力头、层数、位置编码复杂得多。 但它给出的方向是真的:上下文是一块有限的画布,你多写一句,别人就少一块。
三、位置比字数更要紧
同一句放在不同位置,份额差得很多。
| 放哪 | 分到的份额 | 相对平均 |
|---|---|---|
| 开头 | 10.67% | 1.28 倍 |
| 中间 | 6.67% | 0.80 倍 |
| 结尾 | 10.75% | 1.29 倍 |
开头和结尾差不多,中间明显低。 这个现象有个专门的说法,叫「中间遗忘」——塞在长上下文中间的信息最容易被忽略。 所以最要紧那一条,要么写在最前面,要么写在最后面,别放在第三段里。 实操上有个简单做法:开头写身份和规矩,结尾再重复一遍最关键的那条。重复一次比加形容词有用。
四、想强调就写长一点?反了
演示里把那条关键规矩从 25 字加长到 55 字,份额从 2.77% 掉到 1.98%。 写得更长,份额反而降了。 因为这一句自身也要按长度摊薄,加的字越多,摊得越狠。 这条结论有点反直觉,但解释起来很朴素:模型的注意力不是按「你有多想强调」分的, 是按「这段文字占多大比例」分的。你加长它,同时也在稀释它。
所以要强调一件事,靠的不是形容词,是位置和重复。
五、废话真的在占地方
演示里数了一下:中份提示词里三句纯背景——公司成立年份、服务理念、获奖经历——占了 22.17% 的份额, 五十五个字。 这三句对「答对保养周期」没有任何帮助,但它们确实分走了注意力。 这就是为什么「把公司介绍写进提示词」是个坏习惯。 那些内容该进知识库,需要的时候检索出来, 不需要的时候不占地方。
判断一句该不该留,问一句:删掉它,输出会变差吗? 不会就删。
六、那提示词到底该写多少
没有标准答案,但有个经验区间:人设与规矩一百到两百字,四段说清就够。 超过五百字的提示词,先问自己三件事:里面有多少是可验的约束?有多少是背景介绍? 有多少其实是业务事实(那该进知识库)? 三个问题回答完,通常能砍掉一半。
砍完之后再跑一遍。如果效果没变差,说明砍对了。
七、动手 Demo:提示词是在给注意力分格子
三份提示词,五句、十二句、三十句,里面有同一句关键规矩。 算它各分到多少份额,再换三个位置看差别。
def budget(sents, head_w=1.6, tail_w=1.6):
u'''按句均分注意力,首尾加权,长句按长度摊薄。'''
n = len(sents)
ws = []
for i, s in enumerate(sents):
w = 1.0
if i == 0: w *= head_w
if i == n - 1: w *= tail_w
w /= (1.0 + len(s) / 48.0)
ws.append(w)
tot = sum(ws) or 1.0
return [x / tot for x in ws]
实跑输出:
--------------------------------------------------------------------
提示词是在给注意力分格子
--------------------------------------------------------------------
① 三份提示词,同一个关键句
--------------------------------------------------------------------
| 提示词 | 句数 | 总字数 | 关键句分到的份额 | 比短的少多少 |
|---|---:|---:|---:|---:|
| 短(5 句) | 5 | 59 | 12.84% | 1.0 倍 |
| 中(12 句) | 12 | 204 | 6.67% | 1.9 倍 |
| 长(30 句) | 30 | 468 | 2.77% | 4.6 倍 |
同一句话,在五句的提示词里分到一成多,在三十句里只剩不到三个点。
它一个字都没改,只是周围多了二十五句话。
② 同一句,放在开头、中间、结尾
--------------------------------------------------------------------
放开头:分到 10.67%,是平均的 1.28 倍
放中间:分到 6.67%,是平均的 0.80 倍
放结尾:分到 10.75%,是平均的 1.29 倍
③ 想强调就写长一点?反了
--------------------------------------------------------------------
关键句 25 字时,分到 2.77%。
加长到 55 字后,分到 1.98%。
写得更长,份额反而降了。 因为这一句自身也要按长度摊薄,加的字越多,摊得越狠。
所以强调一件事靠的不是加形容词,是把它挪到开头或结尾(看上一段)。
④ 这些话其实没在干活
--------------------------------------------------------------------
中份提示词里,三句纯背景占了 22.17% 的份额,55 个字。
这三句对「答对保养周期」没有任何帮助,但它们确实分走了注意力。
! 这份 Demo 里的「注意力预算」是个替身:真模型的注意力头、层数、位置编码都复杂得多。
但它给出的方向是真的——句子越多、越长,任何一句分到的份额越小。
所以提示词的第一条纪律不是「写全」,是「写少」。
①第一张表四列。看最后一列:12.84% 掉到 6.67%,再掉到 2.77%。 同一句话,周围从四句涨到二十九句,份额掉到五分之一不到。 ②第二段是位置实验。开头 10.67%、中间 6.67%、结尾 10.75%——中间明显低一截。 ③第三段最反直觉:把关键句加长到 55 字,份额从 2.77% 掉到 1.98%。写得更长反而更不被注意。 ④第四段那三句纯背景占了 22.17% 的份额。 公司成立年份、服务理念、获奖经历——对答对保养周期一点用都没有。 ⑤最后那句要抄下来:提示词的第一条纪律不是「写全」,是「写少」。
30 秒实验
- 把你现在的提示词打印出来,数句数。超过十五句的,砍掉一半再跑一遍。
- 找出你提示词里最要紧那一条,看它在第几句。不在第一或最后一句的,挪过去。
- 数一下提示词里有多少句是「公司介绍」。那些该进知识库。
常见误区
- 「提示词越长越详细越好。」越长每句分到的份额越小。三十句的提示词里,关键句只剩不到三个点。
- 「想强调就多写几句。」加长会摊薄,份额反而降。要强调靠位置和重复。
- 「提示词是命令。」它是提前铺好的上下文,和用户的话一起排队被看。
自测三问(点开对答案)
1. 提示词和用户的话,在模型眼里有什么区别? —— 没有区别,都是上下文里的文字。所以提示词不是命令,是提前铺好的说明。 2. 为什么关键规矩要放在开头或结尾? —— 首尾权重高,中间最容易丢。演示里同一句放中间只有 0.80 倍平均份额。 3. 判断一句话该不该留在提示词里,问什么? —— 删掉它输出会变差吗。不会就删——留着只会稀释别的话。机制懂了,接下来是写法。下一节给一个能照着填的四段式:角色、任务、约束、格式。
- ☐ (本篇完,下一篇 6.2 提示词的分类和写作方法)
相关笔记
- 大模型微调真的有必要吗:为什么先试 RAG 而不是微调
- 为什么需要企业知识库:模型不知道公司昨天改了什么
- 38 AI训练师手册 · 索引
- 🐦 扣子开发 AI Agent · 索引