使用自定义嵌入

如果您已为自己的数据创建自定义向量嵌入,则可以将其上传到 Agent Search,并在使用 Agent Search 进行查询时使用这些嵌入。

此功能适用于具有自定义结构化数据或包含元数据的非结构化数据的数据存储区。此功能不适用于媒体和医疗保健搜索。

默认情况下,Agent Search 会自动生成向量嵌入,无需进行任何配置。如果您不熟悉如何创建嵌入,Google 建议您让 Agent Search 为您创建和使用嵌入。不过,如果您已为自己的数据创建嵌入,则可能更愿意使用这些嵌入,而不是使用 Agent Search 生成的嵌入,尤其是当您的自定义嵌入包含可丰富搜索检索和排名的其他上下文时。例如:

  • 您的嵌入已针对自定义字词进行训练,例如内部术语,这些术语的语义相似性无法通过针对公开数据进行训练来捕获,例如仅出现在私密文档中的组织特定术语。
  • 您已为用户个人资料创建嵌入,并希望使用这些嵌入来创建个性化、语义相关的文档排名。您可以使用自己的嵌入来获取基于个性化的排名,这可以增强 Google 的文档嵌入,以实现基于相关性的排名。

如需自带嵌入,请执行以下操作:

  1. 准备工作:检查您的嵌入是否满足所有要求
  2. 提取包含嵌入的数据:提取包含嵌入的文档
  3. 更新架构:使用键属性 字段和维度规范更新架构
  4. 指定嵌入:全局指定嵌入,或按搜索请求指定嵌入。

准备工作

在开始之前,请确保您的嵌入满足以下要求:

  • 嵌入支持结构化数据和包含元数据的非结构化数据
  • 嵌入必须以一维数组的形式提供
  • 嵌入维度必须介于 1 到 768 之间(含 1 和 768)
  • 嵌入支持文本和图片。不支持视频
  • 最多可以将两个字段标记为嵌入键属性字段。您可能会使用两个字段,例如对嵌入进行 A/B 测试
  • 嵌入字段键属性指定设置后无法移除

提取包含嵌入的数据

您可以在文档注入期间,在作为文档数据或元数据一部分包含的一个或两个字段中注入文档的嵌入。

如需注入包含嵌入的数据,请执行以下操作:

  1. 根据您的数据类型,准备要提取的数据:

    • 结构化数据:准备数据时,请将每个 文档的嵌入作为一维数组包含在该 文档的一个或两个字段中。您最多可以提供两个嵌入(例如,如果要在嵌入之间进行 A/B 测试)。每个嵌入都必须在文档中自己的 字段中提供,例如: "example_embedding_vector": [0.1, 0.2, 0.3 ...]

      请按照 准备数据以进行提取文档中的结构化数据准备指南进行操作。

    • 包含元数据的非结构化数据:准备数据时,请将 每个文档的嵌入作为一维数组包含在一个字段中 ,该字段位于文档元数据中。您最多可以提供两个嵌入(例如,当要在嵌入之间进行 A/B 测试时)。每个嵌入都必须 在文档元数据中自己的字段中提供,例如: "example_embedding_vector": [0.1, 0.2, 0.3 ...]

      请按照准备数据以进行提取文档中针对 您的提取方法(Cloud Storage 或 BigQuery)的包含元数据的非结构化数据准备指南进行操作。