Prompt的定义
Prompt(提示词)⼯程是指,通过为LLM提供待处理任务的更多上下⽂和信息,来提⾼LLM表现的⼀种技术。提示词⼯程核⼼是创建和完善提示词,使得模型可以更好地了解预期的输出类型,并产⽣更准确和相关的结果。提示词⼯程的主要流程如下:
a. 测试集准备;
b. 编写初始提示词;
c. 测试提示词;
d. 对于提示词进⾏持续调优;
e. 发布优化后的提示词

提示词编写的通用技巧
原则一:清晰且明确的指令
⼤模型需要清晰且明确的指令才能更好的完成任务,合理的 prompt 通常能够包含更多的上下⽂细节,以及对于任务的 详细要求,以及适量的样例。完成清晰且明确的指令通常包括如下技巧:
- 提供样例
提供⼏个示例,⼤模型就能够模仿这些示例来完成任务,下⾯的例⼦介绍了一些参数的样例,以便大模型能够从用户的自然语言中提取出来:

- 检查条件是否满⾜
完成任务时要先检查是否满⾜这些条件,然后执⾏相应的策略,下⾯的例⼦要求⼤模型判断⽂本中是否包含了⼀系列指令

原则二:给⼤模型思考的时间
在处理复杂任务时,⼤型模型往往会产⽣较⾼的错误率。原因也不难理解,尽管⼤型模型具备海量的知识和⼀定的泛 化能⼒,但在⾯临需要深⼊理解和推理的复杂任务时,仍显得⼒不从⼼。因此第⼆个准则就是要确保⼤模型经过了充分的思 考再解题,⽽不是仓促间给出答案。
- 划分步骤
将⽬标拆解成局部任务,让模型充分发挥其在局部任务上的优势,下⾯的例⼦要求模型按照指定的步骤进⾏处理:

- 逐步思考
在问题后追加“ 请⼀步步思考” ,⼤模型就会分步骤思考,如下例所示:

原则三:持续优化
提示词⼯程是⼀个不断测试,优化的系统⼯程,这期间可能涉及前述的多种技巧组合,以实现最优的效果。下⾯简单介绍⼏种优化的⽅式:
- 调整提示词结构
调整提示结构,⽐如增加⼈设,上下⽂,⽬标等。典型的提示词框架包括系统⼈设,上下⽂介绍,任务⽬标,约束限 制等,提示词结构的优化可参考前⽂描述。
- 组合不同的技巧
除了上述的通⽤技巧外,还可以组合其他技巧,例如:
1) 尽量不要⽤⼤概、应该、好像等不清不楚的词语。
2) 如果要强调⼤模型“ ⼀定” 要遵守某个规则时,可以⽤“ 必定、⼀定、必须” 等定语去做强调。
3) 不要给单⼀模型处理⾮常复杂的任务,⼀般⼀个任务最好不超过三个步骤。
4) 对于背景描述、执⾏任务和例⼦等不同模块,⽤多个符号“ ###” 或者“ ***” 进⾏隔开。
- 反馈优化
反馈优化是提⾼⼈⼯智能模型尤其是⼤型语⾔模型性能的关键环节之⼀。针对“bad cases” ,即模型处理不当或错误响 应的案例,进⾏细致分析并据此调整 Prompt 编写策略,能够有效提升模型的准确性和鲁棒性。下⾯是执⾏这⼀过程的⼀些 建议步骤:
1) 收集与分类 BadCases:系统地收集模型在各类任务中的错误响应案例。这些案例应被详细记录并分类,⽐如按照错误类型(如语法错误、逻辑错误、常识错误等)或任务领域(如历史事实、科学解释、情感理解等)进⾏分组。
2) 深⼊分析错误原因:对每个 Bad Case 进⾏深⼊分析,明确指出错误的具体原因。这可能包括模型对语境理解的偏差、数据不⾜导致的盲点、或是模型架构本身的局限性等。同时,识别出容易混淆的概念或场景,这些往往是模型犯错的⾼发区。
3) 提炼根因与差异:基于分析,提炼出导致错误的根本原因,并明确不同类别错误之间的差异。理解这些差异有助于设计更精确的提示和修正策略。
4) 编写针对性提示:在原始 Prompt 中加⼊针对已识别问题的提示信息。这些提示应当直接⽽具体,旨在引导模型关注那些容易出错的⽅⾯,⽐如强调特定的上下⽂细节、提醒注意概念的细微差别、或者是提供正确的逻辑框架等。
5) 迭代测试与调整:将修改后的 Prompt 应⽤于模型,重新测试之前出错的任务,观察并记录改进情况。这⼀步骤可能需要多次迭代,每次迭代后都要根据新的测试结果继续调整 Prompt 或模型训练参数。 通过上述⽅法,可以逐步细化和优化模型的训练⽬标,减少错误,提升其在特定任务上的表现能⼒。