一、阿里云向量检索服务概述
向量检索服务DashVector基于通义实验室自研的高效向量引擎Proxima内核,提供具备水平拓展能力的云原生、全托管的向量检索服务。DashVector将其强大的向量管理、向量查询等多样化能力,通过简洁易用的SDK/API接口透出,方便被上层AI应用迅速集成,从而为包括大模型生态、多模态AI搜索、分子结构分析在内的多种应用场景,提供所需的高效向量检索能力。
二、向量检索服务优势
多维度高精度
依据不同数据维度和分布选择不同算法或算法组合,根据具体场景需求实现精度和性能之间的平衡。
高性能低成本
通过与分布式调度引擎的结合离线数据检索和训练,实现在有限成本下获得最大化性能并满足业务需求。
超大规模索引和检索
引入复合检索算法,精于工程实现和算法优化,低成本实现高效率的检索方法,单片索引可达几十亿的规模。
多场景适配
结合超参调优和复合索引等方法,解决数据场景智能适配问题,提高系统的自动化能力,增强用户的易用性。
三、阿里云向量检索服务实践
DashVector x 通义千问大模型:打造基于专属知识的问答服务
通过向量检索将匹配过程转化为语义搜索,让提取相关知识点就会变得简单而高效。
本地知识库的向量化。通过文本向量模型将其转化为高质量低维度的向量数据,再写入DashVector向量检索服务。这里数据的向量化我们采用了灵积模型服务上的Embedding API实现。
相关知识点的提取。将提问文本向量化后,通过 DashVector 提取相关知识点的原文。
构造 Prompt 进行提问。将相关知识点作为“限定上下文+提问” 一起作为prompt询问通义千问。
1.API-KEY 准备
开通灵积模型服务,并获得 API-KEY:开通DashScope并创建API-KEY。
开通DashVector向量检索服务,并获得 API-KEYAPI-KEY管理。环境准备
需要提前安装 Python3.7 及以上版本,请确保相应的 python 版本。pip3 install dashvector dashscope
数据准备
git clone https://github.com/shijiebei2009/CEC-Corpus.git
搭建步骤
- 本地知识库的向量化
在示例中,我们将 Embedding 向量和新闻报道的文稿(作为raw字段)一起存入DashVector向量检索服务中,以便向量检索时召回原始文稿。
- 知识点的提取
将 CEC-Corpus 数据集所有新闻报道写入DashVector服务后,就可以进行快速的向量检索。实现这个检索,我们同样将提问的问题进行文本向量化后,再在DashVector服务中检索最相关的知识点,也就是相关新闻报道。
构造 Prompt 向LLM(通义千问)提问
在通过提问搜索到相关的知识点后,我们就可以将 “提问 + 知识点” 按照特定的模板作为 prompt 向LLM发起提问了。在这里我们选用的LLM是通义千问,这是阿里巴巴自主研发的超大规模语言模型,能够在用户自然语言输入的基础上,通过自然语言理解和语义分析,理解用户意图。可以通过提供尽可能清晰详细的指令(prompt),来获取更符合预期的结果。这些能力都可以通过通义千问API来获得。
具体我们这里设计的提问模板格式为:请基于我提供的内容回答问题。内容是{ },我的问题是{ },当然您也可以自行设计合适的模板。
做好这些准备工作以后,就可以对LLM做与具体知识点相关的提问了
基于DashVector作为向量检索的底座,LLM大模型的知识范畴得到了针对性的扩展,并且能够对于专属的特定知识领域做出正确的回答。
可以看到DashVector作为一个独立的向量检索服务,提供了开箱即用的强大向量检索服务能力,这些能力和各个AI模型结合,能够衍生多样的AI应用的可能。
四、总结
向量检索服务具备高性能、全托管、云原生的特性,以及简洁易用的SDK/API接口和丰富的功能支持。在实际应用中,阿里云向量检索服务能够满足大模型知识库搭建、多模态AI搜索等多种应用场景的需求。因此,阿里云向量检索服务是一个值得用户信赖和选择的优秀产品。并且该产品将会不断改进优化,值得用户关注和使用。