通过阿里云 Milvus 与 PAI LangStudio快速搭建DeepSeek RAG解决方案

更新时间:
复制 MD 格式

大语言模型通常缺乏企业私有数据或实时信息的支持,而检索增强生成(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中。本文针对金融、医疗场景提供以下示例语料:

    • 金融新闻:数据为PDF格式,主要内容为公开新闻网站上的新闻报道。

    • 疾病介绍:数据为CSV格式,主要内容为维基百科上的疾病介绍。

使用限制

Milvus实例和通过PAI LangStudio创建的Embedding服务、LLM服务须在相同地域内。

1. 部署LLMEmbedding模型

本文以快速开始 > ModelGallery中部署的模型服务为例,后续创建连接时也会基于此处的模型服务进行创建。

  1. 前往快速开始 > ModelGallery,分别按场景选择大语言模型Embedding分类,并部署指定的模型。本文以DeepSeek-R1-Distill-Qwen-7Bbge-m3 通用向量模型为例进行部署。

    更多部署详情,请参见模型部署及训练。如果您想完整体验DeepSeek模型,请选择DeepSeek-R1DeepSeek-V3,详情请参见一键部署DeepSeek-V4、DeepSeek-R1模型

  2. 前往任务管理,单击已部署的服务名称,在服务详情页签下单击查看调用信息,分别获取前面部署的LLMEmbedding模型服务的VPC访问地址和Token,供后续创建连接时使用。

2. 创建连接

本文创建的LLMEmbedding模型服务连接基于快速开始 > ModelGallery中部署的模型服务。更多其他类型的连接及详细说明,请参见连接配置

2.1 创建LLM服务连接

  1. 进入LangStudio,选择工作空间后,在连接模型服务页签下,单击新建连接

  2. 创建通用LLM模型服务连接。单击EAS服务,从弹出的抽屉中选择已部署的LLM服务,会自动填充base_urlapi_key

    服务提供方选择PAI-EAS模型服务,选择EAS服务后,模型名称会自动填充(例如DeepSeek-R1-Distill-Qwen-7B),Tool Call根据模型能力选择不支持支持

2.2 创建Embedding模型服务连接

2.1 创建LLM服务连接,创建通用Embedding模型服务连接。其中base_urlapi_key分别对应1. 部署LLMEmbedding模型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应用流

  1. 进入LangStudio,选择工作空间后,在应用流页签下单击新建应用流,创建RAG应用流。

    新建方式 区域选择 从模板新建,在 选择模版 区域选中 RAG 模板,然后填写 名称、选择 运行时 和设置 工作路径

  2. 单击右上角创建运行时并进行配置。

    重要

    专有网络配置参数:请选择前提条件中创建Milvus实例时的专有网络,或确保已选的专有网络和Milvus实例所在的专有网络已经互通。

  3. 开发应用流。

    应用流包含四个节点依次串联:开始节点(输入参数 chat_historyquestion)→ 知识库检索大模型节点结束节点(输出参数 answer)。

    应用流中的其余配置保持默认或根据实际需求进行配置,关键节点配置如下:

    • 知识库检索:在知识库中检索与用户问题相关的文本。

      • 知识库索引名称:选择3. 创建离线知识库中创建的知识库索引。

      • Top K:返回Top K条匹配的数据。

    • 大模型节点:使用检索到的文档作为上下文,与用户问题一起发送给大语言模型,生成回答。

      • 模型设置:选择2.1 创建LLM服务连接中创建的连接。

      • 对话历史:是否启用对话历史,将历史对话信息作为输入变量。

    关于各节点组件详情,请参见预置组件说明

  4. 调试/运行:单击右上角运行,开始执行应用流。关于应用流运行时的常见问题,请参见常见问题

    执行后右侧打开运行对话面板,支持多轮对话调试。每条AI回复下方提供查看链路复制操作。

  5. 查看链路:单击生成答案下的查看链路,查看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&DeepSeekRAG及联网搜索聊天机器人解决方案