网页 综合 更新时间 2026-11-13 19:52:50

使用向量检索服务DashVector与DashScope构建文本语义搜索-开发者社区-阿里云

自动蜘蛛 developer.aliyun.com 正文约 2562 字
使用向量检索服务DashVector与DashScope构建文本语义搜索-开发者社区-阿里云
在理解向量检索之前需要先了解一个概念,什么是向量。向量(Vector),Embedding Vector,在DashVector中,Vector作为Doc(文档)的基础数据单位之一,用于描述各种非结构化数据的特征。说通俗点,向量实际上是一串数字的组合,也就是一个数组,这个数组代表了这段文本的特征。
向量检索服务DashVector是一种支持向量检索的服务。它支持Dense Vector(密集向量)和Sparse Vector(稀疏向量),前者用于模型的高维特征表达,后者用于关键词和词频信息表达。DashVector可以进行关键词感知的向量检索,即Dense Vector和Sparse Vector结合的混合检索。
随着大数据、人工智能和云计算等技术的普及,人们处理和利用大量数据的能力得到了显著提高。这为向量检索服务的出现提供了必要的技术基础。而随着深度学习和自然语言处理技术的突飞猛进,向量检索服务得到了广泛应用。这些技术使得将文本或数据转换成向量表示成为可能,进而进行相似性匹配。
总之,向量检索服务的出现是技术发展、数据处理需求以及提高搜索效率和精度的需求等多种因素共同作用的结果。
本次活动提供了一个月的serverless型产品的试用,前往活动首页可以直接开通,如下:
整个开通过程还是非常简单的,直接命名一个Cluster名称即可,其他保持默认。如下:
点击立即试用后直接跳转到向量检索服务的控制台首页,如下:
在首页可以很直观地看到,已经有一个Cluster正在运行。点击可以来到Cluster首页。如下:
到此,我们已经完成了产品的开通试用,接下来就通过一个实用的例子来体验。
该实验将基于QQ 浏览器搜索标题语料库(QBQTC:QQ Browser Query Title Corpus)进行实时的文本语义搜索,查询最相似的相关标题。这里要借助到DashScope灵积模型服务,那怎么理解DashScope灵积模型呢,说白点就是通过DashScope统一的API和SDK来实现被不同业务系统集成,从而为各领域模型提供开箱即用的能力。在正式开始体验之前,非常有必要先了解下向量检索服务的使用流程,如下:
那该实验的第一步就需要开通DashScope灵积模型服务,前往服务控制台,点击去开通,如下:
完成后,将会看到如下界面,如下是我之前开通了通义千问的模型服务。如下:
点击左侧的API-KEY管理,点击创建新的API-KEY,如下:
在接下来弹出的API-KEY窗口中复制好新的KEY,如下:
接着来到向量检索服务控制台,点击左侧导航栏的API-KEY管理,点击创建新的API-KEY,如下:
有了上面的API-KEY后,接下来需要在你的电脑上安装python环境,这里我就不再赘述了,提供一个比较好的文档链接供参考。最详细的Windows安装Python教程
完成后,可以运行cmd,打开命令行窗口,运行python、pip,验证环境是否可用。如下:
接下来安装初始环境,运行如下命令,如下:
大概运行一分钟左右,直到出现Successfully installed字样,就表明环境安装完成。如下:
推荐Python3.7 及以上版本。这里如果大家不注意python版本的话,安装过程中会出现报错,提示版本过低,需要执行如下命令进行在线升级python版本,命令如下:
有了初始环境,接着要准备数据,这里需要电脑安装git工具,可以自行前往git官网,选择电脑操作系统对应版本进行安装。这里提供一个非常实用的文档参考,点击前往Git 安装和配置教程:Windows - Mac - Linux 三平台详细图文教程,带你一次性搞 Git 环境
完成后,在cmd窗口通过git -v可以查看,如下:
由于数据源来自与github,如果网络不稳定的话,需要多试几次。接下来通过git bash窗口,运行如下命令:
图上显示数据集train.json文件有180000行数据。当然这里也可以通过cat命令,获取到train.json文本中的内容。如下:
从train.json文本内容中可以很直观地看到,数据集中的训练集(train.json)其格式为 json:
接下来将从这个数据集中提取title,方便后续进行embedding并构建检索服务。python代码如下:
将上述代码另存为title.py文件并拖入cmd窗口,并执行。
接下来通过调用灵积模型服务的API-KEY来获取通用文本向量,也就是embedding向量。python代码如下:
接下来将如下python代码实现向量检索服务构建检索,实现向量的入库。也就是把QBQTC训练数据集里的title内容都写到DashVector服务上的集合里。代码如下:
向量入库的这段代码运行需要耗费两小时,可以在向量检索服务控制台查看入库的向量数量,如下:
此时还可以通过查看Cluster详情获取到向量的用量统计,向量有关的信息。如下:
还可以对向量数据进行更删改查等操作,如下:
有了上述的集合结果后,可以通过如下命令实现语义检索了。代码及结果如下:
到这里我们就完整体验了使用向量检索服务,基于QQ浏览器搜索标题语料库实现实时的文本语义搜索,查询最相似的相关标题。当然,如果你对于此次的实践意犹未尽,还想继续深入了解并学习,官网很贴心的准备了其他两个小实践,链接如下:
使用DashVector与LLM大模型实现垂直领域专属知识问答服务
使用DashVector和ModelScope实现多模态检索
DashVector + DashScope升级多模态检索
作为开发者,我之前使用过如Faiss、Milvus和Annoy。感兴趣的同学可以前往如下链接了解学习。
向量数据库Annoy和Milvus_annoy向量库优缺点
这些工具在向量检索领域都有广泛的应用,并且具有各自的特点和优势。例如,Faiss是Facebook开源的向量检索工具,它支持高效的相似度搜索和聚类,适用于大规模数据集。Milvus则是一个开源的向量数据库,提供了高性能的向量检索和数据分析功能。Annoy则是一个轻量级的向量检索工具,易于使用和部署,适用于小型数据集。
访问原文 返回搜索 https://developer.aliyun.com/article/1439535
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。