通过阿里云 Milvus 与 PAI LangStudio快速搭建DeepSeek RAG解决方案
大语言模型通常缺乏企业私有数据或实时信息的支持,而检索增强生成(RAG, Retrieval-Augmented Generation)技术能够通过检索企业私有知识库,将相关信息以上下文形式提供给大语言模型,从而显著提升其回答的准确性与相关性。本文基于阿里云的人工智能平台PAI LangStudio,结合阿里云向量检索服务Milvus版(简称Milvus)的强大能力,并以DeepSeek-R1-Distill模型为例,为您介绍面向金融、医疗场景的大模型RAG检索增强解决方案。
DeepSeek简介
DeepSeek系列模型是由深度求索(DeepSeek)公司推出的大语言模型。
DeepSeek-R1 模型包含 671B 参数,激活 37B,在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力,尤其在数学、代码、自然语言推理等任务上。
DeepSeek-V3 为MoE 模型,671B 参数,激活 37B,在 14.8T Token 上进行了预训练,在长文本、代码、数学、百科、中文能力上表现优秀。
DeepSeek-R1-Distill 系列模型是基于知识蒸馏技术,通过使用 DeepSeek-R1 生成的训练样本对 Qwen、Llama 等开源大模型进行微调训练后,所得到的增强型模型。
前提条件
已完成Milvus实例的创建,详情请参见创建Milvus实例。
已将RAG知识库语料上传至OSS中。本文针对金融、医疗场景提供以下示例语料:
使用限制
Milvus实例和通过PAI LangStudio创建的Embedding服务、LLM服务须在相同地域内。
1. 部署LLM和Embedding模型
本文以快速开始 > ModelGallery中部署的模型服务为例,后续创建连接时也会基于此处的模型服务进行创建。
前往快速开始 > ModelGallery,分别按场景选择大语言模型及Embedding分类,并部署指定的模型。本文以DeepSeek-R1-Distill-Qwen-7B和bge-m3 通用向量模型为例进行部署。
更多部署详情,请参见模型部署及训练。如果您想完整体验DeepSeek模型,请选择DeepSeek-R1或DeepSeek-V3,详情请参见一键部署DeepSeek-V4、DeepSeek-R1模型。
前往任务管理,单击已部署的服务名称,在服务详情页签下单击查看调用信息,分别获取前面部署的LLM和Embedding模型服务的VPC访问地址和Token,供后续创建连接时使用。
2. 创建连接
本文创建的LLM和Embedding模型服务连接基于快速开始 > ModelGallery中部署的模型服务。更多其他类型的连接及详细说明,请参见连接配置。
2.1 创建LLM服务连接
进入LangStudio,选择工作空间后,在连接的模型服务页签下,单击新建连接。
创建通用LLM模型服务连接。单击EAS服务,从弹出的抽屉中选择已部署的LLM服务,会自动填充
base_url和api_key。服务提供方选择PAI-EAS模型服务,选择EAS服务后,模型名称会自动填充(例如
DeepSeek-R1-Distill-Qwen-7B),Tool Call根据模型能力选择不支持或支持。
2.2 创建Embedding模型服务连接
同2.1 创建LLM服务连接,创建通用Embedding模型服务连接。其中base_url和api_key分别对应1. 部署LLM和Embedding模型中Embedding模型的VPC访问地址和Token。
连接类型选择通用Embedding模型服务,服务提供方选择PAI-EAS模型服务,EAS服务填写已部署的Embedding服务名称(如bdgm3),模型名称填写bge-m3。
2.3 创建向量数据库连接
在连接的数据库页签下,单击新建连接,创建Milvus数据库连接。
关键参数说明:
uri:Milvus实例的访问地址,格式为
http://<Milvus内网或公网地址>,推荐使用内网地址。您可以在阿里云Milvus控制台的Milvus实例的实例详情页面的访问地址区域查看。例如,
http://c-b1c5222fba****-internal.milvus.aliyuncs.com。其中 Proxy Port 为
19530,Attu Port 为3000。如需通过公网地址连接,需先打开公网访问开关,使用https://myip.ipip.net 等工具获取本机IP并配置到公网访问白名单中。
token:登录Milvus实例的用户名和密码,填写格式为
<yourUsername>:<yourPassword>。database:数据库名称,本文使用默认数据库
default。
3. 创建离线知识库
新建知识库索引,将语料经过解析、分块、向量化后存储到向量数据库,从而构建知识库。其中关键参数配置说明如下,其他配置详情,请参见知识库管理。
参数 | 描述 | |
基础配置 | 知识库数据集 | 配置前提条件中RAG知识库语料的OSS路径。 |
Embedding模型和数据库 | Embedding类型 | 选择通用Embedding模型。 |
Embedding连接 | 选择已创建的Embedding模型服务连接名称。 | |
向量数据库类型 | 选择向量数据库Milvus。 | |
向量数据库连接 | 选择已创建的Milvus数据库连接。 | |
数据表名 | 输入新的Collection名称。 | |
专有网络配置 | 请确保所配置的专有网络与Milvus实例保持一致。 | |
4. 创建并运行RAG应用流
进入LangStudio,选择工作空间后,在应用流页签下单击新建应用流,创建RAG应用流。
在 新建方式 区域选择 从模板新建,在 选择模版 区域选中 RAG 模板,然后填写 名称、选择 运行时 和设置 工作路径。
单击右上角创建运行时并进行配置。
重要专有网络配置参数:请选择前提条件中创建Milvus实例时的专有网络,或确保已选的专有网络和Milvus实例所在的专有网络已经互通。
开发应用流。
应用流包含四个节点依次串联:开始节点(输入参数
chat_history和question)→ 知识库检索 → 大模型节点 → 结束节点(输出参数answer)。应用流中的其余配置保持默认或根据实际需求进行配置,关键节点配置如下:
知识库检索:在知识库中检索与用户问题相关的文本。
知识库索引名称:选择3. 创建离线知识库中创建的知识库索引。
Top K:返回Top K条匹配的数据。
大模型节点:使用检索到的文档作为上下文,与用户问题一起发送给大语言模型,生成回答。
模型设置:选择2.1 创建LLM服务连接中创建的连接。
对话历史:是否启用对话历史,将历史对话信息作为输入变量。
关于各节点组件详情,请参见预置组件说明。
调试/运行:单击右上角运行,开始执行应用流。关于应用流运行时的常见问题,请参见常见问题。
执行后右侧打开运行对话面板,支持多轮对话调试。每条AI回复下方提供查看链路和复制操作。
查看链路:单击生成答案下的查看链路,查看Trace详情或拓扑视图。
Trace 详情页面分为左右两个面板。左侧查看链路面板展示调用链瀑布图,包含 rag-pfchen-0v1(CHAIN, 10.03s)→ index_lookup(TASK, 3.48s)→ llm(TASK, 6.54s)→ ChatCompletion(LLM, tokens:222, 6.53s)等 Span 及各自耗时与 token 用量,上方 INPUT/OUTPUT 区域显示请求体与响应的结构化数据。右侧Span详情面板显示选中 Span 的应用名、接口名、起止时间、spanId、状态码等属性,以及附加信息中的 input/output 内容。
5. 部署应用流
在应用流开发页面,单击右上角部署,将应用流部署为EAS服务。部署参数其余配置保持默认或根据实际需求进行配置,关键参数配置如下:
资源部署 > 实例数:配置服务实例数。本文部署仅供测试使用,因此实例数配置为1。在生产阶段,建议配置多个服务实例,以降低单点故障的风险。
专有网络 > VPC:配置Milvus实例所在的专有网络,或确保已选的专有网络和Milvus实例所在的专有网络已经互通。
更多部署详情,请参见应用流部署。
6. 调用服务
部署成功后,跳转到PAI-EAS,在在线调试页签下配置并发送请求。请求参数中的Key与应用流中输入节点中的"Chat 输入"字段一致,本文使用默认字段question。输入以下内容。
{
"question":"请根据最新的新闻报道,分析美国科技行业目前投资分管性如何,是否存在泡沫,给出是或否的具体回答"
}单击发送请求,右侧调试信息区域返回 Status Code: 200,Response Body 中包含 answer 字段,即模型对输入问题的回答结果。
更多调用方式(如API调用)及详细说明,请参见应用流部署。
开启联网搜索
如果您希望使用DeepSeek-R1模型,快速构建具备联网搜索与RAG(检索增强生成)功能的智能应用流,可以参见基于LangStudio&DeepSeek的RAG及联网搜索聊天机器人解决方案。