您可以通过 Example Store 存储和动态检索少样本示例。通过少样本示例,您可以向 LLM 展示预期的响应模式,从而提高其对类似查询的响应质量、准确性和一致性。
什么是少样本示例?
少样本示例是特定于 LLM 应用场景的带标签数据。它包含一个输入-输出对,用于演示模型请求的预期模型响应。您可以使用示例来展示 LLM 的预期行为或响应模式。
只需使用几个相关示例,您就可以涵盖更多可能的结果、预期行为和用户输入,而无需相应地增加提示的大小或复杂性。这可以通过仅包含相关示例(减少包含的示例数量)以及通过“展示而非讲述”预期行为来实现。
使用少样本示例是一种上下文学习。示例展示了清晰的输入和输出模式,但未说明模型如何生成内容。您只需使用相对较少的示例,即可涵盖更多可能的结果或用户查询,而无需增加提示大小或代码复杂性。使用示例不会更新预训练模型的参数,也不会影响 LLM 的知识广度。因此,通过示例进行情境学习是一种相对轻量级且简洁的方法,可用于自定义、更正或改进 LLM 对未见过提示的推理和回答。
通过收集能够代表用户查询的相关示例,您可以帮助模型保持注意力、展示预期模式,并纠正错误或意外行为。这不会影响其他会产生预期响应的请求。
与所有提示工程策略一样,使用少样本示例是对其他 LLM 优化技术(例如微调或 RAG)的补充。
如何使用示例库
以下步骤概述了如何使用示例库:
创建或重复使用
ExampleStore
资源(也称为“示例库实例”)。- 对于每个区域和项目,您最多可以有 50 个示例库实例。
根据 LLM 回答编写并上传示例。可能有两种情形:
如果 LLM 的行为和响应模式符合预期,请根据这些响应编写示例,然后将其上传到示例库实例。
如果 LLM 显示意外行为或响应模式,请编写一个示例来演示如何更正响应,然后将其上传到示例库实例。
上传的示例会立即提供给与示例库实例关联的代理或 LLM 应用。
如果基于 Vertex AI Agent Development Kit 的代理与 Example Store 实例相关联,则该代理会自动检索示例并将其纳入 LLM 请求中。
对于所有其他 LLM 应用,您必须搜索并检索示例,然后将其纳入提示中。
每当您发现 LLM 的性能不尽如人意,或者遇到对抗性或意外的用户查询时,都可以继续向 Example Store 实例迭代添加示例。您无需更新代码或重新部署 LLM 应用的新版本。您将示例上传到示例库实例后,代理或应用会立即可以使用这些示例。
此外,您还可以执行以下操作:
通过在存储的示例的搜索键与查询中的搜索键之间执行余弦相似度搜索来检索示例。
按函数名称过滤示例,并将候选示例列表精简为代表 LLM 可能做出的回答的示例。
反复改进代理或 LLM 应用。
与多个代理或 LLM 应用共享示例。
撰写少样本示例的指南
示例对模型性能的影响取决于提示中包含的示例类型以及包含方式。
以下是有关撰写示例的一般建议:
相关性和相似性:示例必须与特定任务或领域密切相关。这有助于模型专注于知识中最相关的方面,减少token使用量,并保持甚至提高性能。如果这些示例与对话相关,您需要的示例数量就会更少。可用示例的语料库必须能代表可能的用户查询。此外,示例必须与给定的用户查询相关。
复杂性:为帮助 LLM 更好地执行任务,请使用低复杂性的示例来展示预期的推理。
代表可能的模型结果:示例中的预期回答必须与可能的结果保持一致。这样一来,示例便可清晰地展示与 LLM 对提示的预期推理一致的推理。
格式:为获得最佳性能,请以与 LLM 训练数据一致且与对话历史记录不同的方式,在提示中设置小样本示例的格式。提示中示例的格式可能会对 LLM 性能产生相当大的影响。
用例示例:函数调用
您可以使用少量示例来提高函数调用性能。您可以采用一致的模式来指明用户查询的预期函数调用。该示例可以通过包含需要调用的函数以及函数调用中要包含的实参来模拟对请求的预期响应。假设函数 get_store_location
返回存储区的位置及其说明。如果查询未按预期调用此函数或显示意外输出,您可以使用少样本示例来修正此行为,以用于后续查询。
如需详细了解函数调用,请参阅函数调用。
如需了解详情,请参阅示例库快速入门。
后续步骤
了解如何创建示例库。
了解如何通过示例向代理传授知识