添加少样本示例

您可以在问题中添加示例,以向模型展示良好的回答是什么样的。模型会尝试识别示例中的模式和关系,并在生成回答时应用它们。包含示例的问题称为少样本问题,而不提供示例的问题称为零样本问题。少样本问题通常用于规定模型回答的输出格式、措辞、范围界定或一般模式。使用具体而多样的示例来帮助模型缩小其重点并生成更准确的结果。

在问题中包含少样本示例有助于提高其可靠性和有效性。但是,您应始终为少样本示例提供清晰的指令。如果没有清晰的指令,模型可能会从示例中选取一种意外的模式或关系,从而可能导致糟糕的结果。

此策略的要点如下:

  • 在提示中包含提示回答示例有助于模型学习如何回答。
  • 使用类似 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 等模型通常可以通过少量示例来学习模式,但您可能需要进行多次实验,以找到可产生所需结果的示例数量。但是,如果您添加太多示例,模型的回答可能会与示例过拟合

后续步骤