选择嵌入任务类型

Vertex AI 嵌入模型可以为各种任务类型(例如文档检索、问答和事实验证)生成经过优化的嵌入。任务类型是根据您的预期用例优化模型生成的嵌入的标签。本文档介绍了如何为嵌入选择最佳任务类型。

支持的模型

以下模型支持任务类型:

  • textembedding-gecko@003
  • text-embedding-004
  • text-multilingual-embedding-002

任务类型的优势

任务类型可以提高嵌入模型生成的嵌入的质量。

问题及其答案在语义上不相似
图 1. 问题及其答案在语义上并不相似,这意味着嵌入式内容不会自动显示它们之间的关系。

例如,在构建检索增强生成 (RAG) 系统时,一种常见的设计是使用文本嵌入和向量搜索来执行相似性搜索。在某些情况下,这可能会导致搜索质量下降,因为问题及其答案在语义上并不相似。例如,“为什么天空是蓝色的?”这一问题及其答案“阳光的散射会导致天空呈现蓝色”作为陈述的含义截然不同,这意味着 RAG 系统不会自动识别它们之间的关系,如图 1 所示。如果没有任务类型,RAG 开发者需要训练模型来了解查询和答案之间的关系,这需要高级数据科学技能和经验,或者使用基于 LLM 的查询扩展HyDE,这可能会导致高延迟和高成本。

任务类型会使问题和答案在嵌入空间中更接近
图 2. 任务类型可针对特定任务优化嵌入。在本例中,问题和答案在嵌入空间中更接近。

借助任务类型,您可以为特定任务生成优化后的嵌入,从而节省开发您自己的特定于任务的嵌入所需的时间和费用。针对查询“为什么天空是蓝色的?”及其答案“阳光的散射会导致天空呈现蓝色”所生成的嵌入空间将位于表示两者之间关系的共享嵌入空间中,如图 2 所示。在此 RAG 示例中,经过优化的嵌入会提高相似搜索的效果。

除了查询和答案用例之外,任务类型还为分类、聚类和事实验证等任务提供了优化的嵌入空间。

支持的任务类型

使用任务类型的嵌入模型支持以下任务类型:

任务类型 说明
SEMANTIC_SIMILARITY 用于生成经过优化以评估文本相似性的嵌入
CLASSIFICATION 用于生成经过优化的嵌入,以便根据预设标签对文本进行分类
CLUSTERING 用于生成经过优化以根据相似性对文本进行分组的嵌入
RETRIEVAL_DOCUMENTRETRIEVAL_QUERYQUESTION_ANSWERINGFACT_VERIFICATION 用于生成针对文档搜索或信息检索进行了优化的嵌入

嵌入作业最适合的任务类型取决于您对嵌入的用例。在选择任务类型之前,请确定您的嵌入用例。

确定嵌入用例

嵌入用例通常属于以下四类之一:评估文本相似度、对文本进行分类、对文本进行聚类或从文本中检索信息。如果您的用例不属于上述类别之一,则默认使用 RETRIEVAL_QUERY 任务类型。

评估文本相似度

如果您想使用嵌入来评估文本相似度,请使用 SEMANTIC_SIMILARITY 任务类型。此任务类型会生成经过优化以生成相似度得分的嵌入。

例如,假设您要生成嵌入以用于比较以下文本的相似性:

  • 猫在睡觉
  • 猫咪在午睡

使用嵌入来创建相似度得分时,相似度得分很高,因为这两段文本的含义几乎相同。

请考虑以下真实场景,其中评估输入相似度会很有用:

  • 对于推荐系统,您需要识别与用户偏好项语义相似的内容(例如产品、文章、电影),以提供个性化推荐并提高用户满意度。

对文本进行分类

如果您想使用嵌入式文本根据预设标签对文本进行分类,请使用 CLASSIFICATION 任务类型。此任务类型会在针对分类进行了优化的嵌入空间中生成嵌入。

例如,假设您想为社交媒体帖子生成嵌入,然后使用这些嵌入将帖子的情感分类为正面、负面或中性。当对包含“I don't like traveling on airplanes”字样的社交媒体帖子的嵌入式内容进行分类时,情绪会被归类为负面。

集群文本

如果您想使用嵌入来根据文本的相似性对其进行分组,请使用 CLUSTERING 任务类型。此任务类型会生成经过优化的嵌入,以便根据相似性进行分组。

例如,假设您想为新闻报道生成嵌入,以便向用户显示与他们之前阅读的报道主题相关的报道。生成并对嵌入式内容进行分组后,您可以向阅读大量体育相关文章的用户推荐其他体育相关文章。

聚类的其他用例包括:

  • 客户细分:将具有类似嵌入值的客户归为一组,这些嵌入值是从客户的个人资料或活动生成的,以便进行有针对性的营销和提供个性化体验。
  • 商品细分:根据商品标题和说明、商品图片或客户评价对商品嵌入值进行聚类,可以帮助商家对其商品进行细分分析。
  • 市场调研:对消费者调查问卷答案或社交媒体数据嵌入进行聚类分析,可以揭示消费者意见、偏好和行为中的隐藏模式和趋势,有助于进行市场调研并制定产品开发策略。
  • 医疗保健:对从医疗数据中提取的患者嵌入进行聚类有助于识别具有类似病情或治疗反应的群体,从而提供更个性化的医疗保健方案和有针对性的治疗方案。
  • 客户反馈趋势:将来自各种渠道(调查问卷、社交媒体、支持工单)的客户反馈汇总到各个群组中,有助于找出常见的痛点、功能请求和需要改进的方面。

从文本中检索信息

如果您想将嵌入用于文档搜索或信息检索以及问答用例(如简介中所述的搜索、聊天机器人或 RAG),则需要运行两项具有不同任务类型的嵌入作业:

  1. 使用 RETRIEVAL_DOCUMENT 任务类型为您的文档(也称为语料库)创建优化嵌入。
  2. 根据查询的性质,使用以下任务类型之一为查询创建优化后的嵌入数据:
    • RETRIEVAL_QUERY:用作查询的默认任务类型,例如“温哥华最好的餐厅”“绿色蔬菜”或“什么是最好的饼干食谱?”。
    • QUESTION_ANSWERING:如果所有查询都采用适当问题的格式(例如“为什么天空是蓝色的?”或“如何系鞋带?”),请使用此选项。
    • FACT_VERIFICATION:如果您想从语料库中检索证明或反驳某个陈述的文档,请使用此参数。例如,查询“apples grow underground”可能会检索到关于苹果的文章,最终会否定该陈述。

请考虑以下真实场景,其中检索查询会很有用:

  • 对于电子商务平台,您需要使用嵌入式模型,让用户能够同时使用文本查询和图片来搜索商品,从而提供更直观、更具吸引力的购物体验。
  • 对于教育平台,您希望构建一个问答系统,该系统可以根据教科书内容或教育资源回答学生的问题,提供个性化的学习体验,并帮助学生理解复杂的概念。

后续步骤