你调通了接口,没报错,但AI给出来的东西——驴唇不对马嘴。要列表它给段落,要正式它给段子,要三句话它写三百字。
不是模型傻,是你跟它没在一个频道上。今天聊几个土办法,让AI老老实实按你的路子来。
别让它猜你要什么
这是最普遍的毛病。你问"帮我写个产品介绍",模型蒙了——什么产品?多长?什么语气?给谁看?它只能按平均水准瞎蒙一个。
正确的做法是把话说绝。对比一下:
差的prompt:"写个咖啡机的介绍。"
好的prompt:"写一段咖啡机产品介绍,面向25到35岁独居男性,字数150到200字,突出早上快速出杯的便利性,语气干练不啰嗦,不用感叹号,结尾加一句'三分钟搞定,出门不耽误'。"
你看,后者把路铺得明明白白,模型只需要填空,不用自己判断。出来的东西八九不离十。
我的习惯是写prompt之前先问自己:如果我是个刚入职的实习生,看了这段话能准确干活吗?能就发,不能就继续加约束。
system和user的区别用对了没
很多人把所有指令全塞进user,system空着。这浪费了一个好工具。
system是给模型设定人格和底层规则,贯穿整场对话。user是当前具体的任务。
举个例子。system写"你是个资深会计师,回答必须基于中国税法"。user写"员工出差餐补需要缴个税吗?"。
这样一来,模型从第一句回复开始就带着会计师的身份,不会中途跑偏。如果你把"你是个会计师"写在每次user的开头,同样能干活,但system让这件事更干净,少写重复话。
有个小技巧:system里加一句"如果用户问的问题不在你的知识范围内,直接说不知道,不要编造"。这能拦下很多胡说八道。
temperature别当摆设
这个参数控制随机性。调低了,回答死板;调高了,放飞自我。
0到0.3:适合翻译、代码生成、数据提取。答案要唯一,不要发挥。
0.3到0.7:适合日常对话、知识问答。有点灵活但不出格。
0.7到1.2:适合头脑风暴、创意写作、起名字。越往高越天马行空。
1.5以上我基本不用,出来的东西大概率是意识流,正常人看不懂。
如果你做的是客服问答,temperature压到0.2,稳定压倒一切。如果你在写小说大纲,拉到0.9,让模型帮你发散思维。
top_p跟temperature二选一
top_p是另一个控制随机性的参数,但用法不同。它控制候选词的池子大小。0.9表示只从概率最高的前90%的词里选,去掉那些概率极低的怪词。
大多数情况下,调temperature就够了。top_p保持默认1,别两个同时调,会互相干扰,出来的结果难以预测。
我唯一动top_p的时候:temperature已经调到0了,回答还是偶尔冒出奇怪用词,那就把top_p压到0.95,把极端词彻底关掉。
few-shot比zero-shot靠谱
不给示例直接让模型干活,叫zero-shot。给一两个例子再让它干,叫few-shot。
干同样的活,few-shot的输出质量稳定得多。尤其是格式要求严的任务,比如输出JSON或者表格。
差的prompt:"请把以下信息整理成JSON格式"——模型可能给你套不同的字段名。
好的prompt:"请把以下信息整理成JSON格式,示例:{'name': '张三', 'age': 30, 'city': '北京'}。现在请处理:李四,25岁,上海。"
模型看了示例,知道你要什么字段、什么结构,不会自己发明字段名。这招在结构化数据提取里百试百灵。
把不要的东西说清楚
有时候光说"要什么"不够,还得说"不要什么"。
比如你做文章摘要,写"摘要200字左右",模型可能给出一篇带"总结来说""综上所述"这类套话的东西。在prompt里加一句"不要使用'首先、其次、最后'等过渡词",生成的摘要就干净多了。
负面约束有时候比正面指令还管用。想想你最不想要的东西,直接写进去。
分段拆解复杂任务
你让AI一次性完成"读一篇论文、写摘要、翻译成英文、总结三个创新点、评价可行性",它大概率在最后几步开始胡编,因为上下文太杂了。
把这种任务拆成五个独立调用。第一步做摘要,第二步翻译摘要,第三步提炼创新点,第四步评价,第五步汇总。每一步的输入是上一步的输出,清清楚楚。
虽然拆开调用次数变多了,但每次任务单一,模型不容易犯糊涂。出错的时候也好定位是哪一步出了问题。
温度回调:基于反馈迭代
没有一个prompt一次写对。我调prompt的流程是:
第一版随便写,看输出。哪里不对,改prompt。再跑,再改。通常三四轮之后能稳定输出你想要的东西。
每次改动只调整一个点。比如这次只改temperature,下次只加few-shot示例。一次改太多你搞不清哪个调整起了作用。
记下每次改动的版本号和对应的输出质量。过两个月忘了当初怎么调的,回头看一眼就能捡起来。
两个偷懒但管用的助手
自己写prompt费脑子,可以借助AI帮你写prompt。把你要的效果用大白话描述给模型:"帮我写一个prompt,用来让AI生成小红书风格的化妆品推荐,要求语气活泼,带emoji,不超过200字"。模型会帮你编一个结构化的prompt出来,拿过来微调就能用。
另一个是让模型自己评价自己的输出。每次生成完之后,加一条"请评价上面这段回答的质量,按1到10分打分,并给出改进建议"。迭代几轮,答案越改越好。