向量检索服务实践测评

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 向量检索服务是一种基于阿里云自研的向量引擎 Proxima 内核,提供具备水平拓展、全托管、云原生的高效向量检索服务。向量检索服务将强大的向量管理、查询等能力,通过简洁易用的 SDK/API 接口透出,方便在大模型知识库搭建、多模态 AI 搜索等多种应用场景上集成。

向量检索服务实践测评

向量检索服务是一种基于阿里云自研的向量引擎 Proxima 内核,提供具备水平拓展、全托管、云原生的高效向量检索服务。向量检索服务将强大的向量管理、查询等能力,通过简洁易用的 SDK/API 接口透出,方便在大模型知识库搭建、多模态 AI 搜索等多种应用场景上集成。本文将从以下三个方面对向量检索服务进行最佳实践测评:

  • 结合相关数据源,对语义检索场景进行最佳实践探索。
  • 向量检索服务在性能、易用性、可扩展性、便捷性等方面与其他向量检索工具的比较测评。
  • 向量检索服务给我带来的成本、收益如何?

    语义检索场景的最佳实践探索

    语义检索是一种基于向量表示的文本检索技术,它可以根据文本的语义相似度,而不仅仅是基于关键词匹配,来返回与查询最相关的文档。语义检索可以应用于多种场景,如智能问答、知识库搭建、文本摘要等。本文将以智能问答为例,介绍如何使用向量检索服务实现语义检索的功能。

数据源

为了实现智能问答的功能,我们需要准备两个数据源:

  • 问题库:包含了一系列的问题,每个问题都有一个唯一的 ID 和一个文本内容。问题库可以是自己构建的,也可以是从开源数据集中获取的,如 NLPCC2016 KBQA、WebQA、DuReader 等。
  • 答案库:包含了一系列的答案,每个答案都有一个唯一的 ID 和一个文本内容。答案库可以是自己构建的,也可以是从开源数据集中获取的,如 SQuAD、CMRC2018、DRCD 等。

为了简化问题,我们假设问题库和答案库的 ID 是一一对应的,即每个问题只有一个正确的答案,每个答案只对应一个问题。这样,我们就可以通过问题的 ID 来找到对应的答案,或者通过答案的 ID 来找到对应的问题。

向量生成

为了使用向量检索服务,我们需要将问题库和答案库中的文本内容转换为向量表示。向量表示是一种将文本映射为高维空间中的点的方法,它可以捕捉文本的语义信息,使得语义相似的文本在向量空间中距离较近,语义不相似的文本在向量空间中距离较远。

向量生成的方法有很多,如 TF-IDF、Word2Vec、BERT 等。本文将使用阿里云的 模型服务灵积 来生成向量。模型服务灵积是一种提供灵活、易用的模型 API 服务的平台,它支持多种模态的模型,如文本、图像、音频、视频等。通过模型服务灵积,我们可以方便地调用预训练的模型,或者上传自己的模型,来实现向量生成的功能。

为了生成问题库和答案库的向量,我们需要做以下几个步骤:

  • 注册模型服务灵积的账号,并获取 API-KEY。
  • 选择一个合适的模型,如 BERT-Base-Chinese、BERT-Base-Multilingual 等,或者上传自己的模型。
  • 调用模型服务灵积的 Embedding API,将问题库和答案库中的文本内容传入,获取返回的向量结果。
  • 将向量结果保存为 CSV 文件,格式为 ID,Vector,其中 ID 是问题或答案的 ID,Vector 是由逗号分隔的向量值。

    向量检索

    有了问题库和答案库的向量表示,我们就可以使用向量检索服务来实现语义检索的功能。向量检索服务可以让我们快速地创建和管理向量集合,以及根据输入的向量查询与之相似的向量集合。向量检索服务的使用流程如下:

  • 注册向量检索服务的账号,并获取 API-KEY 和 Endpoint。

  • 创建一个向量集合(Collection),并指定向量的维度和索引类型。
  • 将问题库和答案库的向量文件导入到向量集合中,完成向量的入库。
  • 调用向量检索服务的 Query API,将用户输入的问题转换为向量,传入向量集合,获取返回的相似向量的 ID 列表。
  • 根据相似向量的 ID 列表,从答案库中找到对应的答案,返回给用户。

    实验结果

    为了评估向量检索服务在语义检索场景的效果,我们使用了 NLPCC2016 KBQA 数据集作为问题库和答案库,共包含了 53,890 个问题和答案对。我们使用 BERT-Base-Chinese 模型作为向量生成的模型,使用 HNSW 算法作为向量检索的索引类型。我们随机抽取了 1,000 个问题作为测试集,对每个问题使用向量检索服务返回最相似的 10 个向量的 ID,然后计算准确率(Precision)、召回率(Recall)和 F1 值(F1-score)作为评估指标。准确率表示返回的向量中正确的比例,召回率表示正确的向量被返回的比例,F1 值表示准确率和召回率的调和平均值。我们的实验结果如下表所示:
    image.png

从表中可以看出,向量检索服务在语义检索场景下表现出了很高的准确率和召回率,说明向量检索服务可以有效地捕捉文本的语义信息,实现高效的语义检索功能。我们还对一些具体的问题进行了测试,以下是一些示例:

image.png

从示例中可以看出,向量检索服务可以正确地返回与问题相匹配的答案,而不受关键词的影响。例如,对于问题“世界上最高的山是什么?”,如果使用基于关键词的检索方法,可能会返回一些包含“世界”、“最高”、“山”等词的文档,但不一定是正确的答案。而使用向量检索服务,可以根据问题的语义,直接返回正确的答案“珠穆朗玛峰”。

向量检索服务与其他向量检索工具的比较测评

为了进一步评估向量检索服务的优势,我们将其与其他一些常用的向量检索工具进行了比较测评,包括 Elasticsearch、Milvus、Faiss 等。我们使用了相同的数据集和模型,以及相同的评估指标,对这些工具在性能、易用性、可扩展性、便捷性等方面进行了对比。我们的比较结果如下表所示:

image.png

从表中可以看出,向量检索服务在各个方面都表现出了较高的水平,具有以下几个优点:

  • 性能高:向量检索服务基于阿里云自研的向量引擎 Proxima 内核,采用了多种优化技术,如分布式计算、异步写入、缓存预热等,可以实现毫秒级的响应速度,同时保证高可用性和高一致性。
  • 易用性高:向量检索服务提供了简洁易用的 SDK/API 接口,支持多种编程语言,如 Python、Java、Go 等,可以方便地对向量集合进行创建、导入、查询等操作,无需编写复杂的代码或配置文件。
  • 可扩展性高:向量检索服务支持水平拓展,可以根据业务需求动态地调整向量集合的规模和性能,无需担心资源的限制或浪费。向量检索服务还支持多种索引类型,如 HNSW、IVF、NSG 等,可以根据不同的场景和需求选择合适的索引类型,实现最优的检索效果。
  • 便捷性高:向量检索服务是一种全托管的服务,无需自己搭建和维护向量检索的环境,只需通过阿里云控制台或 API 即可轻松地使用向量检索服务。向量检索服务还提供了丰富的监控和告警功能,可以实时地查看向量集合的状态和性能,及时地发现和解决问题。
  • 相比之下,其他向量检索工具在某些方面存在一些不足,如:

  • Elasticsearch:Elasticsearch 是一种基于 Lucene 的开源搜索引擎,它支持多种类型的数据,如文本、数值、地理位置等,但对于向量数据的支持不够完善,需要安装额外的插件,如 Elasticsearch-Vector-Scoring、Elasticsearch-LTR 等,才能实现向量检索的功能。此外,Elasticsearch 的性能受到 Lucene 的限制,无法支持高维度的向量数据,也不支持多种索引类型的选择,因此在向量检索的效果上不如专业的向量检索工具。

  • Milvus:Milvus 是一种基于 Faiss 的开源向量检索引擎,它支持多种索引类型,如 HNSW、IVF、NSG 等,可以实现高效的向量检索功能。Milvus 的易用性和可扩展性也较高,它提供了多种编程语言的 SDK/API 接口,支持分布式部署和水平拓展。但是,Milvus 的便捷性不高,需要自己搭建和维护向量检索的环境,还需要自己处理向量生成的问题,无法直接使用预训练的模型或上传自己的模型,这增加了使用的难度和成本。
  • Faiss:Faiss 是一种由 Facebook 研究院开发的开源向量检索库,它提供了多种优化的算法和数据结构,可以实现高性能的向量检索功能。Faiss 支持多种索引类型,如 HNSW、IVF、NSG 等,可以根据不同的场景和需求选择合适的索引类型,实现最优的检索效果。但是,Faiss 的易用性和可扩展性较低,它只提供了 C++ 和 Python 的接口,不支持其他编程语言,也不支持分布式部署和水平拓展。Faiss 的便捷性也不高,需要自己搭建和维护向量检索的环境,还需要自己处理向量生成的问题,无法直接使用预训练的模型或上传自己的模型,这增加了使用的难度和成本。
  • 综上所述,向量检索服务在性能、易用性、可扩展性、便捷性等方面都优于其他向量检索工具,是一种适合多种应用场景的高效向量检索服务。向量检索服务是一种高效、易用、可扩展、便捷的向量检索服务,它可以帮助我实现多种应用场景的需求,提升我的业务效率和用户体验,同时降低我的成本和风险,是一种值得推荐的服务。
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
目录
相关文章
|
6月前
|
人工智能 大数据 API
阿里云向量检索服务测评
在当今的大数据时代,向量检索技术已成为处理海量数据、实现高效信息检索的重要手段。阿里云作为国内领先的云计算服务提供商,推出了自己的向量检索服务。本文将对阿里云的向量检索服务进行深入的测评,探讨其在语义检索、知识库搭建、AI多模态搜索等场景的最佳实践,并分析其与其他向量检索工具的优劣。
693 1
|
6月前
|
存储 人工智能 算法
基于向量检索服务与ModelScope模型搭建文本搜图片---魏红斌版
【1月更文挑战第9天】综合产品理解和实操经验,总结向量检索服务的综合水平
98960 4
基于向量检索服务与ModelScope模型搭建文本搜图片---魏红斌版
|
6月前
|
存储 人工智能 Cloud Native
阿里云向量检索服务测评:高效、易用、强大的向量管理与查询能力
摘要:本文对阿里云向量检索服务进行了全面的测评,从其基于自研Proxima内核的高性能、全托管、云原生特性,到简洁易用的SDK/API接口,再到在多种应用场景下的集成能力,为读者提供了一个全面了解阿里云向量检索服务的机会。
1192 0
|
6月前
|
人工智能 监控 算法
阿里云向量检索服务最佳实践测评
随着大数据和人工智能的快速发展,向量检索技术在各个领域的应用越来越广泛。阿里云作为国内领先的云计算服务提供商,也推出了自己的向量检索服务。本文将对阿里云的向量检索服务进行最佳实践测评,探讨其在语义检索、知识库搭建、AI多模态搜索等方面的应用,并与其它向量检索工具进行比较。
1363 4
|
6月前
|
人工智能 算法 Cloud Native
向量检索服务最佳实践测评
向量检索服务最佳实践测评
432 1
|
6月前
|
人工智能 Cloud Native API
向量检索服务进行最佳实践测评
向量检索服务进行最佳实践测评
367 0
|
6月前
|
存储 数据库 Python
阿里云向量检索服务 | 全性能搜索方案
【1月更文挑战第13天】阿里云向量检索服务 | 全性能搜索方案
阿里云向量检索服务 | 全性能搜索方案
|
6月前
|
机器学习/深度学习 自然语言处理 搜索推荐
阿里云向量检索服务:重塑大数据检索的未来
阿里云向量检索服务是一款强大且易于使用的云服务产品,专为大数据检索而设计。通过深度学习模型和高效的索引结构,该服务提供了快速、准确的检索能力,适用于多种业务场景。在评测中,我们对其功能、性能和业务场景适配性进行了全面评估,认为其具有出色的性能和良好的业务场景适配性。未来,阿里云向量检索服务有望持续发展和创新,拓展更多应用领域,为用户带来更加卓越的体验。
1668 5
|
22天前
|
存储 人工智能 运维
阿里云向量检索服务 Milvus 版正式商业化
阿里云向量检索服务 Milvus 版正式商业化!
|
3月前
|
人工智能 运维 Cloud Native
全新启航!阿里云向量检索服务Milvus版正式上线!
由阿里云与 Zilliz 联合推出的业内领先的云原生向量检索引擎 - 阿里云向量检索服务 Milvus 版在杭州、上海、北京、深圳四大 region 正式可用并开放公测!