1. 提示词(prompting engineering)
提示词工程,是大模型的一种范式,本文总结提示词工程技巧。
2. 提示词技巧
2.1 角色-上下文-任务
一个提示词里一般有三大要素:角色、上下文、任务;
- 角色,赋予大模型一个角色,例如“我是一个素食主义者”
- 上下文,给出更多的上下文信息,将使得大模型信息更加充分。例如,让大模型推荐一份午餐:“我已经做了两个小时运动,我是一个素食主义者,不喜欢吃肉”
- 任务,给大模型一个明确的任务,例如“给我一个午餐的建议”
按照这个结构化提示词描述后,大模型回答“今天的午餐,你可以试一下豆子和甜番茄汤。这个食谱会补充蛋白质、纤维等”。
2.2 格式化的输入输出
格式化的输入输出,也将有助于大模型生成,例如:“给出一个JSON的输出,描述5种动物名字。”
MD是大模型的母语,一般推荐用MD来描述。
2.3 重复的提示
对于大模型,有可能有遗忘效应,重复的提示,可以让大模型更加明确任务。例如:
“
任务
xxxxx
任务重申
xxxx(重复一般上述任务)
”
2.4 去除幻觉的提问
大模型回答问题可能有幻觉,会顺着人类语言来说话,此时有几种技巧可以来看它是否真的理解了
- 负面提示,例如:“你只要说明对任务的理解,不要生成代码”,明确的要求大模型不干什么
- 指示模型提出更多问题,例如“你能清楚的理解我的意图吗?如果没有,请问我有关上下文的问题”。
2.5 思维链
模仿人类思考的过程,给出逐步推理依据,最终推导出答案。例如“
Q: 小罗有5个网球,他又买了2罐网球,每罐有3个网球,现在小罗有多少个网球。
A:小罗一开始有5个网球,2罐网球每罐3个相当于有6个网球,5+6=11,小罗一共有11个网球。
Q: 餐厅有23个苹果,如果用20个做午餐,又买了6个,现在餐厅有多少个苹果
”
大模型输出“餐厅一开始有23个苹果,用掉20个后剩下3个苹果。然后又买了6个苹果,所以现在餐厅一共有3+6=9个苹果”
上述提示词中A就是告诉大模型人的思考过程,大模型按照人的思考过程对问题进行了回答。