大语言模型的提示工程
大语言模型(LLMs)通过大量数据训练来理解提示并生成答案。提示文本越清晰,LLM 预测下一个可能文本的效果就越好。使用特定的提示技巧可以更有效地从 LLMs 获得相关结果。
零样本(zero-shot)提示
零样本提示是最简单的提示类型,仅提供任务描述和一些供 LLM 开始处理的文本,没有示例。例如,在测试对电影评论进行分类的零样本提示。模型温度设为较低值,使用 gemini-pro 默认的 top-K 和 top-P 值(实际禁用这两个设置)。以下是零样本提示的例子:
- 目标 :将电影评论分类为正面、中立或负面。
- 模型 :gemini-pro
- 温度 :0.1
- Token 限制 :5
- Top-K :N/A
- Top-P :1
- 提示 :将以下电影评论分类为正面、中立或负面。
- 评论 :“Her” 是一部揭示了如果 AI 不受控制地继续进化,人类将走向何方的令人不安的研究。我希望有更多像这样的杰作。
- 情感 :正面
单样本(one-shot)和少样本(few-shot)提示
在创建 AI 模型的提示时,提供示例有助于模型理解需求,引导其输出特定结构或模式。
-
单样本 提示:提供一个示例让模型模仿完成任务;少样本提示则提供多个示例,展示模型需遵循的模式,增加模型遵循模式的可能性。
-
少样本 提示:所需示例数量取决于任务复杂性、示例质量和生成式 AI 模型能力等因素,一般至少 3 - 5 个示例,复杂任务可能需更多,受模型输入长度限制可能需更少。
以下是一个解析披萨订单为 JSON 的少样本提示示例:
-
目标 :将披萨订单解析为 JSON 格式
-
模型 :gemini-pro
-
温度 :0.1
-
Token 限制 :250
-
Top-K :N/A
-
Top-P :1
-
提示 :将客户的披萨订单解析为有效的 JSON 格式。
-
示例 :
- 我想要一个小号披萨,上面有奶酪、番茄酱和意大利辣香肠。
-
* JSON 响应:
{ “size”: “small”, “type”: “normal”, “ingredients”: [[“cheese”, “tomato sauce”, “peperoni”]] }
-
另一个示例 :
- 我想要一个大号披萨,一半是奶酪和莫扎里拉,另一半是番茄酱、火腿和菠萝。JSON 响应:
{ “size”: “large”, “type”: “half-half”, “ingredients”: [[“cheese”, “mozzarella”], [“tomato sauce”, “ham”, “pineapple”]] }
选择示例的要点
选择示例时,应确保它们与任务相关、多样化且高质量。一个小错误都可能使模型困惑并导致不理想的输出。若希望生成对各种输入都稳健的输出,示例中应包含边缘情况,即不寻常或意外但模型仍应能处理的输入。
总结
本文介绍了零样本、单样本和少样本提示技术,并提供了具体的应用案例。掌握这些技术可以帮助你在实际应用中更有效地利用大语言模型。