1.定义任务场景和成功标准
任务场景可分为简单任务:实体抽取、qa等
复杂任务:代码生成、创意写作等
在定义任务后,就要定义模型实现该任务的成功标准:
模型表现和准确率;延迟;价格。
2.开发测试用例
多样化的测试用例覆盖任务的典型应用和边缘情况。
3.设计初始的prompt
设计最初的prompt,从简单描述任务场景、回答的风格等开始。最好是使用few-shot的方式,告诉模型的输入输出格式。
4.针对测试用例评估prompt
将测试用例使用初始的prompt输入到模型,观察和评估回复内容,并与成功标准作比较。使用一致的评分标准,可以是人工评估、与答案核心内容的比较或是用其他模型的回答判断等。
5.优化prompt
根据评估结果,朝着成功标准迭代优化prompt。包括但不限于增加描述明细、示例、模型行为的约束。但是要注意不要过分优化小部分的输入,否则会过拟合。
6.部署prompt
一旦设计的prompt成功通过了测试用例,就可以将其应用。注意监控模型表现,边缘情况等意外仍随时可能发生。
准则:
- 清晰直接:提供清晰的指令和背景信息以指导Claude的回应。
- 使用示例:在提示中包含示例以展示期望的输出格式或风格。
- 赋予Claude角色:让Claude扮演一个特定的角色(如专家),以提升针对你的用例的表现。
- 使用XML标签:利用XML标签来结构化提示和回应,以提高清晰度。
- 分解提示:将复杂任务分解成更小、更易管理的步骤,以获得更好的结果。
- 让Claude思考:鼓励逐步思考以提高Claude输出的质量。
- 预填充Claude的回应:用几个词开始Claude的回应,以将其输出引向期望的方向。
- 控制输出格式:指定期望的输出格式以确保一致性和可读性。
- 请求Claude进行重写:基于评分标准请求修订,以促使Claude迭代并改进其输出。
- 利用长上下文窗口技巧:优化利用Claude长上下文窗口的提示。