大模型应用越来越多,很多团队会碰到同一个问题:传统数据库擅长精确匹配,却很难找到“意思相近”的内容。矢量库(向量数据库)就是为这类语义检索需求准备的。它把文本、图片、音频转换成向量,再通过计算向量之间的距离,找出最相关的结果。在阿里云上使用矢量库,可以把这套能力放进已有的云环境,省去自建集群的一部分运维工作。

先搞清楚它解决什么问题
假设一家企业有几千份产品手册,客服人员输入“设备开机后指示灯闪红但不响”,关键词搜索可能什么都搜不到。原因很简单,文档里写的是“电源指示灯异常”和“蜂鸣器故障排查”。语义检索能看出两者的关联,把相关段落排到前面。这也是检索增强生成(RAG)的基本思路:先从知识库里召回相关内容,再交给大模型组织回答。
阿里云上常见的几条路径
阿里云按场景给出了几条路径,不同产品各有侧重:
- 云原生数据库的向量能力,AnalyticDB for PostgreSQL 提供向量检索引擎,适合结构化数据和向量数据混合查询的场景。如果团队本来就用 PostgreSQL,SQL 写法基本能延续下来。
- 内存数据库的向量扩展,Tair 支持向量索引,适合延迟敏感、数据量中等、读取并发高的在线服务。
- 搜索引擎的向量检索,阿里云 Elasticsearch 和 OpenSearch 支持向量字段和近似最近邻搜索。如果业务既要关键词检索,又要按类目过滤后再按相似度排序,放在搜索引擎里通常更顺手。
- 托管的专用向量数据库,阿里云提供托管版 Milvus 等服务,适合向量规模很大,并且需要细调索引类型和参数的团队。
选哪一种,主要看数据规模、查询模式,以及团队已有的技术栈。功能列表长短,参考价值有限。
向量维度和索引怎么设
维度通常由嵌入模型决定。文本模型输出多少维,向量字段就得设成多少维,对不上写入时会直接报错。换模型之前,要先确认新模型的输出维度,必要时重建整个索引。
维度并不是越高越好。维度越高,单条向量占的存储越大,距离计算也越慢,内存压力会跟着上去。以图搜图场景里,图像模型的输出维度同样要和索引对齐。如果业务对精度要求不高,选一个够用的较低维度模型,成本往往更可控。
索引类型决定了速度和精度之间的取舍。大规模向量常用近似索引,例如 HNSW 和 IVF 这类。HNSW 查询快、召回质量好,但内存占用较高。IVF 更适合规模很大的数据,不过查询时要调节探测范围这类参数,参数设得太保守,召回会漏掉结果。具体参数不要照抄文档默认值,要用一批带标注的查询样本跑一遍,看召回率和延迟的实际表现。
案例一:企业知识库问答
某制造类企业的技术支持团队积累了大约十万段设备维修文档。最初他们用关键词搜索,一线工程师的首次命中率不到四成,很多问题只能转给资深工程师。
后来团队把文档按段落切分,用文本向量模型生成嵌入,写入阿里云上的向量索引,同时保存原文、设备型号和更新时间等结构化字段。查询时先按设备型号过滤,再做向量相似度召回,最后交给大模型生成带引用来源的回答。
上线两个月后,一线工程师自己解决的问题变多了,转给资深工程师的工单也少了。这里的关键做法是把结构化过滤和语义召回组合起来。先过滤能保证范围准确,再做语义召回能提高相关性,两步缺一步,效果都会打折扣。
案例二:电商以图搜图
一个服饰电商平台希望用户上传一张照片,就能找到风格相近的商品。团队用图像模型提取商品主图的向量,并把颜色、品类、价格区间作为过滤条件存入索引。
第一个问题是图片质量参差不齐。同一件商品的模特图和平铺图,向量差异可能很大,直接用单张图建索引,结果并不稳定。团队后来对同一商品的多张图片分别建立向量,查询时取最高相似度作为该商品的得分,效果比单图方案稳定了不少。
第二个问题是热门商品反复出现,结果页千篇一律。团队在排序阶段加入了多样性控制,让不同款式和品类都有机会露出。对电商来说,相似度最高的结果不一定是用户最想看的结果。
选型时要看的五件事
- 数据规模和增长速度,先估算向量数量和维度,再算存储和内存成本。数据每月都在涨,要按未来一两年的量来估。
- 查询延迟和并发量,在线服务和离线分析对延迟的要求差别很大,最好用真实查询压测,别只看官方的理论指标。
- 召回准确率,近似检索本来就在速度和精度之间取舍。准备一批人工标注的查询样本,定期跑评估。
- 过滤能力,业务里很少只做纯向量搜索。带条件过滤时的性能和灵活度,常常比向量本身的速度更影响体验。
- 运维和团队经验,团队如果已经熟悉某个数据库或搜索引擎,维护成本会低很多。这一点在选型时经常被低估。
落地建议
建议先拿一小部分真实数据做原型,选两三个核心指标,比如命中率和平均响应时间,用它们判断方案是否可行。很多团队会先纠结向量库选哪家,但嵌入模型的选择和文本切分方式,往往比向量库本身更影响最终效果。切分太粗,段落里混进无关内容;切分太细,上下文又断了。这两件事值得多花时间试。
架构稳定后,再逐步扩大数据范围,同时建立定期重建索引和监控召回质量的机制。数据更新了,索引跟不上,检索结果很快就会变旧。
阿里云矢量库可以较快地把语义检索接入现有业务,但它不能替你定义问题。先想清楚要解决什么、用什么数据、以什么指标判断成败,选型才有依据。