最近在做一个小工具,用API调大模型来帮忙提取合同里的关键条款。一开始用最简单的“把下面内容里的金额、日期、甲乙双方提取出来”这种指令,效果还行。后来看很多教程说给模型一个专业角色能提升效果,我就把Prompt改成了“你是一名拥有10年经验的资深法务专家,请严谨地分析以下合同……”结果发现,提取的准确率不升反降,偶尔还会漏掉一些明显的信息,甚至输出一些“根据我的专业判断”这种废话来填补。想问问各位,是我对“角色设定”的理解有偏差,还是这种提取任务本身就不太适合加人设?如果要加,有没有比较稳妥的写法?感谢。
请教:Prompt里加了“角色设定”后,模型反而变笨了,是我写的方式不对吗?
全部回复
共 30 条我跑NER类任务也踩过这个坑,加人设之后模型容易“戏太多”,开始自由发挥。提取这种活儿本质是信息抽取,指令越直白、输出格式越死越好用,人设反而给它加了发挥空间。我现在的写法是角色只留半句,重点全放在“只输出JSON、不要解释、找不到就填null”上,准确率就稳回来了。你可以试试把人设换成约束条件,别让它有机会“专业判断”。
提取任务加人设纯属画蛇添足,模型光顾着演专家忘了干活。指令越直给越准。
这个现象其实挺常见的,我之前做信息抽取的时候也踩过类似的坑。加了“资深法务专家”这种人设之后,模型会不自觉地往“专家表演”的方向走,它觉得既然自己是专家,就得说点显得专业的话,结果反而把注意力从“精确抽取”分散到了“角色扮演”上。提取任务本质上是个约束很强的定位问题,跟写分析报告、做法律建议完全是两码事,人设带来的开放性反而会干扰它对明确字段的锁定。你看到的“根据我的专业判断”这种废话就是典型的副作用,模型在给自己加戏。如果确实想保留角色感,可以把它压得很轻,比如“你是法务信息抽取助手,只输出JSON,不要解释”,把角色和输出格式绑死,而不是给它一个宽泛的身份。另外提取任务更吃的是字段定义清晰、给一两个示例、明确说“找不到就填null”,这些比人设管用得多。人设不是万能钥匙,它更适合需要风格、语气、推理深度的场景,纯抽取任务加人设往往是负优化。
提取任务加人设容易让模型“戏多”,直接说清楚要抽什么字段更稳。
信息提取这种任务确实不需要人设,加了反而让模型分心去“演角色”。试试把角色去掉,把要求写具体点更管用。
这个现象其实挺常见的,我刚开始用API做信息抽取时也踩过类似的坑。给模型加“资深法务专家”这种角色,相当于给它打开了一个更宽的生成空间,它会开始“演”这个角色,而不是老老实实做抽取。你遇到的“根据我的专业判断”就是典型症状,模型把注意力从“找字段”转移到了“扮演专家”上。抽取任务本质上是定位和复制,不需要太多推理和领域知识,角色设定反而引入了噪声。我后来试过把角色写成“你是一个严谨的信息抽取器,只输出JSON,不要解释”,效果就稳定很多。所以关键不是不能加人设,而是人设要跟任务匹配,抽取类任务更适合“工具型”角色而不是“专家型”角色。另外你也可以试试把角色设定和任务指令分开写,比如system里放角色,user里只放待抽取文本和字段列表,这样模型不容易混淆。
角色设定确实不是万能的,信息抽取这类任务里模型更需要“照着找”,而不是“代入身份去理解”。你加了法务专家人设后,它可能开始走“分析判断”的路子,反而把注意力从原文里挪开了。我一般只在需要解释、推理或写报告时才加人设,纯提取就直接给字段清单加一句“只输出原文中出现的值,不要推断”。你可以试试把人设换成约束条件,比如“逐项提取,找不到就写无”,通常比硬塞一个专家身份稳。
你这个经历我太有同感了,我刚开始给模型加人设的时候也踩过类似的坑。后来才琢磨明白,角色设定其实是在给模型“加戏”,它会自动脑补出很多这个角色该说的话和该有的姿态,结果注意力就从“干活”转移到“表演”上了。像合同信息提取这种任务,本质上是结构化的信息抽取,模型需要的是精准对齐文本和字段,而不是发挥什么专业判断,人设一加反而引入了噪音。我自己的经验是,角色设定更适合开放性的任务,比如写文案、做分析、给建议,模型有发挥空间的时候人设能帮它聚焦风格。但提取类任务最好把指令写得像函数一样明确,甚至可以给一两个例子让它照着格式输出,比什么“资深法务专家”管用多了。你要是真想保留角色感,可以试试把角色放在系统提示里,然后用户提示里只写纯粹的提取要求,这样能稍微平衡一下。不过说实话,很多场景下不加人设直接给清晰指令,效果反而是最稳的。
我遇到过类似情况,后来发现是角色设定把模型的注意力带偏了。你让它当法务专家,它就真去“分析”合同了,反而忽略了你要的纯提取任务。提取类需求其实更像填空题,指令越直接越好,加人设等于给它加了戏。我现在只在需要判断或润色时才加角色,纯抽取就直接说清楚要什么字段、什么格式。
我一般只在需要模型切换语气或判断标准时才加角色设定,纯抽取任务基本不加。你那个法务人设一上,模型容易把注意力放到“我要像个专家”上,反而弱化了逐项抓取。稳妥点的写法是把角色和任务拆开,比如“先逐条提取金额、日期、甲乙双方,再用一句话说明风险”,别让它自由发挥。也可以试试把“资深法务”换成更轻的限定,比如“只做信息抽取,不要解释”,准确率可能会回来。