AI模型提示词写得含糊,模型不会停下来问你,它直接猜。我的毕业设计要处理3247条问卷开放题,做文本分类,一开始我跟模型客气地聊:「帮我把这些数据整理一下。」结果它自己编了三个我数据里根本没有的列名,还振振有词地挨个解释。那晚我盯着输出看了十分钟。
人麻了。说实话这事怪不着模型——大模型不是同事,它不会追问。你漏说的每个条件它都替你脑补,脑补错了还特别自信。后来我把提示词当交接文档写:就像把活儿丢给一个聪明但不了解项目的实习生,格式、边界、丑话都得先讲清楚。下面的坑和办法,全是我拿这批数据一条条试出来的。
模型为什么总答非所问
模型不追问也不确认,提示词里没写死的条件它一律自己补,你漏一句它就自由发挥一句,还错得很自信。这不是模型笨,是它手上没有别的信息,只能按概率蒙。
我让它「帮我清洗一下数据」,它把所有空值填成0。可我那份问卷里,空值意味着拒答。全填0,等于把三百多个拒答的人硬掰成了「打0分的人」。这结论要是直接进了论文,答辩现场我可能当场社死。
后来在提示词里加了一句「空值保留为空,单独归为拒答,不要默认填充」,一次过。这就像点菜没说不要香菜——店小二不是故意的,上来全是香菜而已。你不喝,这锅算谁的?
我在毕设里翻过的三次车
三次翻车全是提示词的锅:没锁输出格式、一次喂太多条、没给例子就让它自由发挥。每翻一次都搭进去一晚上。
第一次,格式崩了。我让它输出JSON,它好心好意包了个 ```json 的代码块标记,我那个简陋的解析脚本当场去世。来回改了11轮才想起来,该在提示词里写死「只输出JSON数组,不要代码块标记,不要任何解释」。就这么一句话——删掉它脚本必崩,加上它一次过。
第二次,贪多。一口气扔500条让它分类,前200条挺像样,第300条之后它开始复读,把「物流太慢」标成「产品质量问题」——那批问卷根本不涉及物流。改成分批投喂,每批50条,批与批之间用一行分割线隔开。抽检100条(我自己逐条核对过),对了93条。这个数是我一个一个数的,不是模型报的。
第三次,歧义。我说「按满意度分类」,它给了套五级量表。我导师要的是三级。加了一个输入输出示例之后,这歧义直接消失。一个例子顶十句形容词,这话我现在逢人就讲。
话说我室友听我念叨了两天提示词,问我这跟念咒有什么区别。还真有点像:咒念对了不一定灵,念错了一定不灵。
现在固定在用的一套写法
我的提示词现在固定五段:角色、数据长什么样、要干什么、输出格式、一个例子,顺序照这个来,一段都不省。写完直接存成模板,换数据只改前两段。
角色那段我一开始当玄学,试了下还真有用。加了「你是问卷数据清洗助理,只依据给定文本判断,拿不准就标unknown」之后,它编列名的毛病好了大半。输出格式那段要写到抠门的地步:字段名、类型、顺序、字段缺失怎么办,全写上,一个都不许它发挥。
两种写法的差别,一张表看得更直白:
| 对比项 | 大白话瞎问式 | 五段式写死 |
|---|---|---|
| 典型提示词 | 帮我把这些数据分类一下 | 角色+数据说明+任务+输出格式+示例 |
| 返工轮数 | 10轮起步,我试过11轮 | 2到3轮收敛 |
| 输出格式 | 每次都不太一样 | 批批一致,脚本直接能读 |
| 适合干嘛 | 闲聊、头脑风暴 | 要落库、要写进论文的正经活 |
我个人是彻底站五段式这边。写起来多花五分钟,能省掉后面两三个小时的返工,这笔账怎么算都划算。
提示词抠到什么程度可以收手?
抽检能过就收手。我给自己定的线是抽100条对90条以上,达标就冻结提示词,别追一步到位。收益递减得厉害,第12轮之后基本全是玄学。
从2轮改到3轮,可能救回十几个点;从11轮改到12轮,救回的多半是心理安慰。同样一下午,拿去人工抽检,比抠措辞划算得多。还有件事别忘:模型到最后仍会错,统计结果写进论文之前,人工核对这道工序不能省。
答辩前一晚,我又想起盯着输出发呆的那个晚上。现在脚本挂着五段式提示词,40分钟跑完全部3247条,抽检93%是对的。导师问数据处理怎么做的,我说一半靠模型,一半靠提示词写得死。他愣了一下,笑了。
常见问题
提示词里要不要写「请」「谢谢」这类礼貌用语?
对结果影响很小。我试过加和不加,准确率看不出差别。真正管用的是写清楚「拿不准怎么办」,比如「不确定就标unknown,别猜」。
中文提示词和英文提示词差别大吗?
处理中文数据就用中文写,术语可以夹英文。没必要为了「听说英文更好」折腾翻译,数据还是中文的时候,中英混杂反而容易乱。
数据敏感,不敢直接贴给在线大模型怎么办?
先脱敏:姓名、手机号、学号替换成编号再贴。我全部是脱敏之后才上模型的,这道工序别省。
提示词是不是越长越好?
不是。长而含糊不如短而具体。我的五段式一般三百字上下,重点是把格式和边界说死,不是堆字数。
网上流传的万能提示词模板能直接抄吗?
结构可以借,句子别照抄。模板不知道你的数据长什么样,输出格式那段必须按你自己的字段重写。