引言:当数据洪流遇上秒级决策
凌晨1点,某电商平台的推荐系统突然告急——每秒涌入的10万次用户点击,让原本精准的搜索推荐陷入混乱。商品库中上亿张图片和描述文本,如何在毫秒内找到与用户行为最匹配的商品?另一边,一家汽车公司的自动驾驶团队正为如何用千万份单日PB级的仿真驾驶多模态数据的预训练发愁;同时还有更多企业在思考如何进一步提高智能客服回答问题的准确度并给用户提供相应参考信息。
这些场景背后,是一个共同的挑战:多模态数据的处理效率,正成为企业智能化转型的关键。
现在,百炼+向量检索服务Milvus版这对组合为多模态数据的处理和利用提供了高效的解决方案。
方案背景
阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作,在5分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。
其中,在生成式AI场景中(如大模型训练、知识库构建等),百炼平台可提供多款向量模型,如通用多模态向量、通用文本向量等,能够根据用户的输入生成高维连续向量,这些输入可以是文本、图片或视频。多模态向量在可应用于图片搜索、文搜图、视频搜索、图片分类和视频内容审核等下游任务中。
那么这些生成的向量数据需要:
- 高效存储:支持海量向量持久化存储
- 快速检索:实现毫秒级相似性搜索
- 灵活扩展:适应业务快速增长的数据规模
阿里云向量检索服务Milvus版(简称阿里云Milvus)作为云原生向量数据库,能完美匹配以上需求。用户可以调用百炼的Embedding向量模型API将文本图片、视频等其他多模态数据转换为向量,并将这些向量数据存入阿里云Milvus的向量数据库中进行检索。
简而言之,阿里云Milvus可存储百炼产生的向量数据,并进行大规模向量数据的检索。本文将重点介绍这一过程的方案。
方案介绍
方案描述
用户核心痛点:
- 多模态数据处理挑战
- 文本、图像等高维数据难以直接用于AI计算,传统关系型数据库无法高效存储和检索向量
- 自建向量检索系统成本高(硬件投入超百万/年)、性能差(亿级数据查询延迟>1秒)
- 规模化扩展瓶颈
- 数据量激增导致存储扩容困难,传统方案需停机分片
- 多模态混合检索(文本+图像+视频)缺乏统一技术栈支持
- 业务连续性风险
- 开源向量数据库运维复杂,故障恢复耗时(RTO>30分钟)
- 缺乏企业级数据安全保护(传输/存储加密、权限管控)
本方案构建了一套从多模态数据向量化到高效检索的完整链路:通过百炼平台的多模态AI向量模型生成高维向量数据,并借助阿里云Milvus向量数据库实现海量向量的存储、索引与毫秒级检索。方案覆盖数据预处理、向量生成、分布式存储、混合检索等全流程,为AI场景提供开箱即用的向量数据管理能力,支撑推荐系统、内容相似性搜索等业务场景的快速落地。
实现步骤(以文本数据为例):
资源准备:
- 开通百炼服务并获得API-KEY。具体操作,请参见API-KEY的获取与配置。
- 创建Milvus实例。具体操作,请参见快速创建Milvus实例。
请确保您的运行环境中已安装Python 3.8或以上版本,以便顺利安装并使用DashScope。
- 准备输入数据,借助LangChain SDK对文本进行分割,作为Embedding向量模型的输入数据。
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1024, chunk_overlap=0) # 使用LangChain将输入文档安照chunk_size切分 all_splits = text_splitter.split_documents(docs)
- 创建Milvus集合Collection用于存储和管理向量数据
# 设置Milvus Collection名称。 COLLECTION_NAME = 'doc_qa_db' # 设置向量维度。 DIMENSION = 768
- 选定的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"} # 创建Collection vector_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, )
- 向量相似性检索: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的相关能力,欢迎在阿里云官网搜索向量检索服务Milvus版进行体验。
产品新用户也可免费领取1个月试用资格。
此外,阿里云为了回馈新老用户,推出了重大优惠:
阿里云向量检索服务 Milvus 版 限时年付5折! 新购续费均可|每个uid仅限参与1次(非同人)购买地址