阿里云向量检索 Milvus 版现已无缝集成于阿里云 PAI 平台,一站式赋能用户构建高性能的检索增强生成(RAG)系统。您可以利用 Milvus 作为向量数据的实时存储与检索核心,高效结合 PAI 和 LangChain 技术栈,实现从理论到实践的快速转化,搭建起功能强大的 RAG 解决方案。
背景信息
随着 AI 技术的飞速发展,生成式人工智能在文本生成、图像生成等领域展现出了令人瞩目的成就。然而,在广泛应用大语言模型(LLM)的过程中,一些固有局限性逐渐显现:
- 领域知识局限:大语言模型通常基于大规模通用数据集训练而成,这意味着它们在处理专业垂直领域的具体应用时可能缺乏针对性和深度。
- 信息更新滞后:由于模型训练所依赖的数据集具有静态特性,大模型无法实时获取和学习最新的信息与知识进展。
- 模型误导性输出:受制于数据偏差、模型内在缺陷等因素,大语言模型有时会出现看似合理实则错误的输出,即所谓的“大模型幻觉”。
为克服这些挑战,并进一步强化大模型的功能性和准确性,检索增强生成技术 RAG(Retrieval-Augmented Generation)应运而生。这一技术通过整合外部知识库,能够显著减少大模型虚构的问题,并提升其获取及应用最新知识的能力,从而实现更个性化和精准化的 LLM 定制。
RAG 技术架构的核心为检索和生成。其中,检索部分采用了高效的向量检索引擎和向量数据库技术,例如基于开源库 Faiss、Annoy 以及 HNSW 算法优化构建的 Milvus 系统,极大地提升了对大规模数据进行快速检索和精确分析的能力。这样的设计使得RAG能够在必要时即时调用相关领域或最新信息,有效弥补了传统大语言模型的不足之处。
前提条件
- 已创建 Milvus 实例,并配置了公网访问。具体操作请参见快速创建Milvus实例和网络访问与安全设置。
- 已开通 PAI(EAS)并创建了默认工作空间。具体操作,请参见开通PAI并创建默认工作空间。
使用限制
Milvus 实例和 PAI(EAS)须在相同地域下。
操作流程
步骤一:通过 PAI 搭建大模型知识库
- 部署对话模型推理服务。
- 进入 PAI-EAS 模型在线服务页面。
- 登录 PAI控制台。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入 PAI-EAS 模型在线服务页面。
- 在 PAI-EAS 模型在线服务页面,单击部署服务,在弹出对话框中,选择自定义部署,然后单击确定。
- 在部署服务页面,配置以下关键参数,其余参数可使用默认配置,更多参数详情请参见阿里云大模型RAG对话系统最佳实践。
参数 |
描述 |
服务名称 |
您可以自定义。 |
部署方式 |
选择镜像部署AI-Web应用。 |
镜像选择 |
在PAI平台镜像列表中选择chat-llm-webui,镜像版本选择最新版本即可。 |
运行命令 |
使用通义千问-7b模型进行部署,对应命令如下所示。
|
专有网络配置 |
在VPC下拉列表中,选择创建Milvus实例时的VPC、交换机和安全组。您可以在Milvus实例的实例详情页面查看。 |
- 单机部署,等待一段时间即可完成模型部署
当服务状态为运行中时,表面服务部署成功。 - 获取VPC地址调用的服务访问地址和Token。
- 单击服务名称,进入服务详情页面。
- 在基本信息区域,单击查看调用信息。
- 在调用信息对话框的VPC地址调用页签,获取服务访问地址和Token,并保存到本地。
- 部署 RAG 服务并启动 WebUI。
- 在 PAI-EAS 模型在线服务页面,单击部署服务,在弹出对话框中,选择自定义部署,然后单击确定。
- 在部署服务页面,配置以下关键参数,其余参数可使用默认配置,更多参数详情请参见阿里云大模型RAG对话系统最佳实践。
参数 |
描述 |
服务名称 |
您可以自定义。 |
部署方式 |
选择镜像部署 AI-Web 应用。 |
镜像选择 |
在 PAI 平台镜像列表中选择 chat-llm-webui,镜像版本选择最新版本即可。 |
运行命令 |
修改运行命令为 |
对应配置编辑 |
修改 |
专有网络配置 |
在 VPC 下拉列表中,选择创建 Milvus 实例时的 VPC、交换机和安全组。您可以在 Milvus 实例的实例详情页面查看。 |
- 单击部署,等待一段时间即可完成模型部署。
当服务状态为运行中时,表明服务部署成功。 - 在服务详情页面,单击查看 Web 应用,进入 WebUI 页面。
您也可以在 PAI-EAS 模型在线服务页面,单击服务方式列下的查看 Web 应用,进入 WebUI 页面。
步骤二:在 WebUI 中使用 Milvus 向量检索
- 连接 Milvus。
如下图所示,您可以在 RAG 服务 WebUI 界面的 Settings 选项卡中,在 Vector Store 中选择 Milvus,配置本系统的参数,并测试连接是否正常。
涉及参数配置详情如下表所示,其余参数可使用默认配置,更多参数详情请参见阿里云大模型RAG对话系统最佳实践。
参数 |
说明 |
EAS Url |
配置为步骤一:通过PAI搭建大模型知识库中获取的服务访问地址。 |
EAS Token |
配置为步骤一:通过PAI搭建大模型知识库中获取的服务Token。 |
VectorStore |
选择 Milvus。 |
CollectionName |
集合名称。您可以自定义。 说明 命名时,请尽量避免使用如"test"这类过于通用或常见的名称,以减少因名称冲突或系统保留字等原因引发的问题。 |
Host |
Milvus 实例的内网地址。您可以在 Milvus 实例的实例详情页面查看。 |
Port |
Milvus 实例的 Proxy Port。您可以在 Milvus 实例的实例详情页面查看。 |
User |
配置为 root。 |
Password |
配置为创建 Milvus 实例时,您自定义的 root 用户的密码。 |
Drop Old |
是否删除已存在的 Collection。取值如下:
|
连接正常后 Connection Info 显示 Connect Milvus success。
- 上传数据。
如下图所示,您可以在 RAG 服务 WebUI 界面的 Upload 选项卡中,上传 TXT 或 HTML 类型的用户知识库文档。
本文以PAI.txt例,当完成上传后,会显示Upload 1 files [ PAI.txt, ] Success!
。
您还可以在 Milvus 实例的实例详情页,单击右上角的 Attu Manager,然后输入 Milvus 实例的用户名和密码,可以查看写入的数据和向量等信息。Attu 的相关操作,请参见 Attu操作指南。
- 向量检索。
如下图所示,您可以在 RAG 服务 WebUI 界面的 Chat 选项卡中,选择 Langchain(Vector Store + LLM),然后进行向量检索等一系列实验。
向量检索 Milvus 版用户交流钉钉群