写点什么

高效向量检索实践:阿里云百炼生成 +Milvus 存储技术方案解析

  • 2025-03-31
    浙江
  • 本文字数:2502 字

    阅读完需:约 8 分钟

凌晨 1 点,某电商平台的推荐系统突然告急——每秒涌入的 10 万次用户点击,让原本精准的搜索推荐陷入混乱。商品库中上亿张图片和描述文本,如何在毫秒内找到与用户行为最匹配的商品?另一边,一家汽车公司的自动驾驶团队正为如何用千万份单日 PB 级的仿真驾驶多模态数据的预训练发愁;同时还有更多企业在思考如何进一步提高智能客服回答问题的准确度并给用户提供相应参考信息。


这些场景背后,是一个共同的挑战:多模态数据的处理效率,正成为企业智能化转型的关键。


现在,百炼+向量检索服务 Milvus 版这对组合为多模态数据的处理和利用提供了高效的解决方案。

一、方案背景

阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作,在 5 分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。


其中,百炼平台提供多款向量模型,如通用多模态向量、通用文本向量等,能够根据用户的输入生成高维连续向量,这些输入可以是文本、图片或视频。多模态向量在可应用于图片搜索、文搜图、视频搜索、图片分类和视频内容审核等下游任务中。



那么这些生成的向量数据需要:


  • 高效存储:支持海量向量持久化存储

  • 快速检索:实现毫秒级相似性搜索

  • 灵活扩展:适应业务快速增长的数据规模


阿里云向量检索服务 Milvus 版(简称阿里云 Milvus)作为云原生向量数据库,能完美匹配以上需求。用户可以调用百炼的 Embedding 向量模型 API 将文本图片、视频等其他多模态数据转换为向量,并将这些向量数据存入阿里云 Milvus 的向量数据库中进行检索。


阿里云 Milvus 简介:阿⾥云 Milvus 是⼀款云上全托管服务,提供⼤规模向量数据的相似性检索服务。100%兼容开源 Milvus,在开源版本的基础上增强了可扩展性,具备易⽤性、可⽤性、安全性、低成本与⽣态优势。


阿⾥云 Milvus 可以⽀持⼏乎所有涉及到向量搜索的场景。例如检索增强⽣成 RAG,以及经典的搜索推荐、多模态检索等。


简言之,阿里云 Milvus 可存储百炼产生的向量数据,并进行大规模向量数据的检索。****本文将重点介绍这一过程的方案。

二、方案介绍

方案描述

用户核心痛点:


  1. 多模态数据处理挑战


  • 文本、图像等高维数据难以直接用于 AI 计算,传统关系型数据库无法高效存储和检索向量

  • 自建向量检索系统成本高(硬件投入超百万/年)、性能差(亿级数据查询延迟>1 秒)


  1. 规模化扩展瓶颈


  • 数据量激增导致存储扩容困难,传统方案需停机分片

  • 多模态混合检索(文本+图像+视频)缺乏统一技术栈支持


  1. 业务连续性风险


  • 开源向量数据库运维复杂,故障恢复耗时(RTO>30 分钟)

  • 缺乏企业级数据安全保护(传输/存储加密、权限管控)


本方案构建了一套从多模态数据向量化到高效检索的完整链路:通过百炼平台的多模态 AI 向量模型生成高维向量数据,并借助阿里云 Milvus 向量数据库实现海量向量的存储、索引与毫秒级检索。方案覆盖数据预处理、向量生成、分布式存储、混合检索等全流程,为 AI 场景提供开箱即用的向量数据管理能力,支撑推荐系统、内容相似性搜索等业务场景的快速落地。



实现步骤(以文本数据为例):


资源准备:



请确保您的运行环境中已安装 Python 3.8 或以上版本,以便顺利安装并使用 DashScope。


  1. 准备输入数据,借助 LangChain SDK 对文本进行分割,作为 Embedding 向量模型的输入数据。


text_splitter = RecursiveCharacterTextSplitter(chunk_size=1024, chunk_overlap=0)
# 使用LangChain将输入文档安照chunk_size切分all_splits = text_splitter.split_documents(docs)
复制代码


  1. 创建 Milvus 集合 Collection 用于存储和管理向量数据


# 设置Milvus Collection名称。COLLECTION_NAME = 'doc_qa_db'
# 设置向量维度。DIMENSION = 768
复制代码


  1. 选定的 Embedding 模型(DashScope)负责将输入文本转换为向量,并将这些向量存入阿里云 Milvus 的向量数据库中。


# 设置embedding模型为DashScope(可以替换成自己模型)。
embeddings = DashScopeEmbeddings( model="text-embedding-v2", dashscope_api_key="your_api_key")
# 创建connection,host为阿里云Milvus的访问域名。
connection_args = {"host": "c-xxxx.milvus.aliyuncs.com", "port": "19530", "user": "your_user", "password": "your_password"}# 创建Collectionvector_store = Milvus( embedding_function=embeddings, connection_args=connection_args, collection_name=COLLECTION_NAME, drop_old=True,).from_documents( all_splits, embedding=embeddings, collection_name=COLLECTION_NAME, connection_args=connection_args,)
复制代码


  1. 向量相似性检索:Embedding 模型处理查询输入,并将其向量化。


# 利用Milvus向量数据库进行相似性检索。
query = "What are the main components of Milvus?"docs = vector_store.similarity_search(query)print(len(docs))
复制代码

方案特点

架构角度


  • 全托管云原生服务,无缝对接,开箱即用,入门门槛低

  • 阿里云 Milvus 作为 AI 专业向量检索引擎,支持超大规模向量数据处理


性能角度


  • 检索秒级响应

  • 支持跨模态混合检索,兼顾召回率和精确度


成本角度(和自建相比)


  • 无需预先购买 GPU 等硬件成本

  • 百炼和阿里云 Milvus 均可全托管,运维 0 成本

  • 分布式架构存储千亿级别向量数据,存储效率提升

应用场景

阿里云 Milvus 存储百炼产生的向量数据并进行检索的产品组合方案,可广泛并灵活运用于以下典型场景:


多模态数据搜索与推荐:


  • 电商或零售跨模态商品搜索:用户通过上传图片搜索相似商品

  • 医疗影像检索:输入 CT 或 B 超等影响,检索相似病例及治疗方案

  • 文化媒体内容搜索:“听一听”识曲等


搭建基于 RAG 的智能问答系统


  • 智能客服:通过问答机器人自动回复用户问题,降低人工成本

  • 法律咨询服务:精准匹配法律条例和判例,生成法律意见书草案等

  • 电商导购:根据用户提出的需求自动推荐相关商品

  • 企业知识管理:员工可通过自然语言提问,直接获取跨系统文档中的关键信息


自动驾驶


  • 自动驾驶数据预训练

最新优惠

阿里云向量检索服务 Milvus 版 限时年付 5 折!|新购续费均可|每个 uid 仅限参与 1 次(非同人)


用户头像

还未添加个人签名 2020-10-15 加入

分享阿里云计算平台的大数据和AI方向的技术创新和趋势、实战案例、经验总结。

评论

发布
暂无评论
高效向量检索实践:阿里云百炼生成+Milvus存储技术方案解析_大数据_阿里云大数据AI技术_InfoQ写作社区