您可以在问题中添加示例,以向模型展示良好的回答是什么样的。模型会尝试识别示例中的模式和关系,并在生成回答时应用它们。包含示例的问题称为少样本问题,而不提供示例的问题称为零样本问题。少样本问题通常用于规定模型回答的输出格式、措辞、范围界定或一般模式。使用具体而多样的示例来帮助模型缩小其重点并生成更准确的结果。
在问题中包含少样本示例有助于提高其可靠性和有效性。但是,您应始终为少样本示例提供清晰的指令。如果没有清晰的指令,模型可能会从示例中选取一种意外的模式或关系,从而可能导致糟糕的结果。
此策略的要点如下:
- 在提示中包含提示回答示例有助于模型学习如何回答。
- 使用类似 XML 的标记为示例添加标记。
- 尝试在提示中添加不同数量的示例。具体取决于模型,示例太少会导致无法有效改变模型行为,示例太多可能会导致模型过拟合。
- 在各个示例之间使用一致的格式
零样本问题与少样本问题
以下零样本问题要求模型从文本中提取技术规范并以 JSON 格式输出:
Extract the technical specifications from the text below in JSON format. Google Pixel 7, 5G network, 8GB RAM, Tensor G2 processor, 128GB of storage, Lemongrass { "Network": "5G", "RAM": "8GB", "Processor": "Tensor G2", "Storage": "128GB", "Color": "Lemongrass" } |
假设您的应用场景需要特定的格式,例如采用小写字母的键名称。您可以在问题中添加示例,以向模型显示如何设置 JSON 格式。以下少样本问题演示了 JSON 键为小写的输出格式:
Extract the technical specifications from the text below in a JSON format. <EXAMPLE> INPUT: Google Nest Wifi, network speed up to 1200Mpbs, 2.4GHz and 5GHz frequencies, WP3 protocol OUTPUT: { "product":"Google Nest Wifi", "speed":"1200Mpbs", "frequencies": ["2.4GHz", "5GHz"], "protocol":"WP3" } </EXAMPLE> Google Pixel 7, 5G network, 8GB RAM, Tensor G2 processor, 128GB of storage, Lemongrass { "product": "Google Pixel 7", "network": "5G", "ram": "8GB", "processor": "Tensor G2", "storage": "128GB", "color": "Lemongrass" } |
请注意,该示例使用类似 XML 的格式来分隔问题的组成部分。如需详细了解如何使用类似 XML 的格式以最佳方式设置少样本问题的格式,请参阅设计问题结构。
找到最佳示例数量
您可以改变提示中提供的示例数量来进行实验,以获得最想要的结果。PaLM 和 Gemini 等模型通常可以通过少量示例来学习模式,但您可能需要进行多次实验,以找到可产生所需结果的示例数量。但是,如果您添加太多示例,模型的回答可能会与示例过拟合。
后续步骤
- 在问题库中探索更多问题示例。