明确「好结果」的标准:在编写 Prompt 之前明确任务的预期结果,这有助于将这些要求转化为 Prompt,从而更准确地传达用户的意图

精准表达任务指令:使用正式、礼貌、严谨、精炼的语言撰写 Prompt,避免语法结构复杂、语义模糊不清、逻辑混乱的语言,以及歧义、语病、拼写/标点错误

为否定句设置兜底策略:避免大模型完成某些任务时可以使用否定句,但应为每一个否定句设置一个兜底策略,使大模型在识别到不应当做什么的时候,给出预设的回复

指定模型所扮演的角色:指定模型扮演的角色/身份,可以帮助模型更好地定位答复的内容与风格

指定生成结果的格式:显式规定模型返回结果的格式,以便后续使用 regex 或 json 处理生成结果

增加强调词和强调符号:将重要的需求放在前面,并在最后加以重复,可以起到强调的作用;因为当 Prompt 包含的指令过多时,模型可能会更关心靠前和靠后的指令,忽略中间的指令

撰写模块化的 Prompt:将 Prompt 划分成边界清晰的模块,减轻模型的理解负担,也便于开发者修改与维护

在真实场景下迭代 Prompt:Prompt 的设计是一个迭代的过程,需要大量的实验来获得最佳效果

测试 Prompt 的稳定性:优质的 Prompt 应具备良好的稳定性,在不同的输入上有一致良好的表现

使用思维链:在设计 Prompt 时,让模型给出具体的思考过程,通常能够取得更好的结果,尤其是在涉及逻辑推理与数学计算的任务上

使用Few-shot Prompt:为大模型提供一个答案的参考框架,通过模仿的方式来生成我们期望的结果

设置拒答策略:让模型在没有把握的时候拒绝回答问题,提高生成数据的质量

权衡 Prompt 的精度与召回率:一般来说 Prompt 表述越细致越严格时,生成结果的精度越高,召回率越低;根据业务需求找到平衡点即可

使用大模型辅助 Prompt 撰写:向大模型寻求撰写 Prompt 的灵感并整合到 Prompt 中,让大模型能够更好地理解某些抽象名词背后的具体含义

原文:https://zhuanlan.zhihu.com/p/660369244