文档

通过阿里云Milvus与PAI搭建高效的检索增强生成(RAG)系统

更新时间:

阿里云Milvus现已无缝集成于阿里云PAI平台,一站式赋能用户构建高性能的检索增强生成(RAG)系统。您可以利用Milvus作为向量数据的实时存储与检索核心,高效结合PAI和LangChain技术栈,实现从理论到实践的快速转化,搭建起功能强大的RAG解决方案。

背景信息

随着AI技术的飞速发展,生成式人工智能在文本生成、图像生成等领域展现出了令人瞩目的成就。然而,在广泛应用大语言模型(LLM)的过程中,一些固有局限性逐渐显现:

  • 领域知识局限:大语言模型通常基于大规模通用数据集训练而成,这意味着它们在处理专业垂直领域的具体应用时可能缺乏针对性和深度。

  • 信息更新滞后:由于模型训练所依赖的数据集具有静态特性,大模型无法实时获取和学习最新的信息与知识进展。

  • 模型误导性输出:受制于数据偏差、模型内在缺陷等因素,大语言模型有时会出现看似合理实则错误的输出,即所谓的“大模型幻觉”。

为克服这些挑战,并进一步强化大模型的功能性和准确性,检索增强生成技术RAG(Retrieval-Augmented Generation)应运而生。这一技术通过整合外部知识库,能够显著减少大模型虚构的问题,并提升其获取及应用最新知识的能力,从而实现更个性化和精准化的LLM定制。

RAG技术架构的核心为检索和生成。其中,检索部分采用了高效的向量检索引擎和向量数据库技术,例如基于开源库Faiss、Annoy以及HNSW算法优化构建的Milvus系统,极大地提升了对大规模数据进行快速检索和精确分析的能力。这样的设计使得RAG能够在必要时即时调用相关领域或最新信息,有效弥补了传统大语言模型的不足之处。

前提条件

使用限制

Milvus实例和PAI(EAS)须在相同地域下。

操作流程

步骤一:通过PAI搭建大模型知识库

  1. 部署对话模型推理服务。

    1. 进入PAI-EAS 模型在线服务页面。

      1. 登录PAI控制台

      2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

      3. 在工作空间页面的左侧导航栏选择模型部署>模型在线服务(EAS),进入PAI-EAS 模型在线服务页面。image.png

    2. PAI-EAS 模型在线服务页面,单击部署服务,在弹出对话框中,选择自定义部署,然后单击确定

    3. 部署服务页面,配置以下关键参数,其余参数可使用默认配置,更多参数详情请参见阿里云大模型RAG对话系统最佳实践

      参数

      描述

      服务名称

      您可以自定义。

      部署方式

      选择镜像部署AI-Web应用

      镜像选择

      PAI平台镜像列表中选择chat-llm-webui,镜像版本选择最新版本即可。

      运行命令

      使用通义千问-7b模型进行部署,对应命令如下所示。

      python webui/webui_server.py --port=8000 --model-path=Qwen/Qwen-7B-Chat

      专有网络配置

      在VPC下拉列表中,选择创建Milvus实例时的VPC、交换机和安全组。您可以在Milvus实例的实例详情页面查看。

    4. 单击部署,等待一段时间即可完成模型部署。

      服务状态运行中时,表明服务部署成功。

    5. 获取VPC地址调用的服务访问地址和Token。

      1. 单击服务名称,进入服务详情页面。

      2. 基本信息区域,单击查看调用信息

      3. 调用信息对话框的VPC地址调用页签,获取服务访问地址和Token,并保存到本地。

  2. 部署RAG服务并启动WebUI。

    1. PAI-EAS 模型在线服务页面,单击部署服务,在弹出对话框中,选择自定义部署,然后单击确定

    2. 部署服务页面,配置以下关键参数,其余参数可使用默认配置,更多参数详情请参见阿里云大模型RAG对话系统最佳实践

      参数

      描述

      服务名称

      您可以自定义。

      部署方式

      选择镜像部署AI-Web应用

      镜像选择

      PAI平台镜像列表中选择chat-llm-webui,镜像版本选择最新版本即可。

      运行命令

      修改运行命令为uvicorn webui:app --host 0.0.0.0 --port 8000

      对应配置编辑

      修改containersimage的后缀为chat-llm-webui:0.1.1-chatbot-milvus

      image

      专有网络配置

      在VPC下拉列表中,选择创建Milvus实例时的VPC、交换机和安全组。您可以在Milvus实例的实例详情页面查看。

    3. 单击部署,等待一段时间即可完成模型部署。

      服务状态运行中时,表明服务部署成功。

    4. 服务详情页面,单击查看Web应用,进入WebUI页面。

      您也可以在PAI-EAS模型在线服务页面,单击服务方式列下的查看Web应用,进入WebUI页面。

步骤二:在WebUI中使用Milvus向量检索

  1. 连接Milvus。

    如下图所示,您可以在RAG服务WebUI界面的Settings选项卡中,在Vector Store中选择Milvus,配置本系统的参数,并测试连接是否正常。

    image涉及参数配置详情如下表所示,其余参数可使用默认配置,更多参数详情请参见阿里云大模型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。取值如下:

    • True:删除同名的Collection,再创建新的Collection。如果不存在同名Collection,则直接进行创建。

    • False:保留现有的同名Collection,新加入的数据将追加到该Collection中。

    连接正常后Connection Info显示Connect Milvus success。

  2. 上传数据。

    如下图所示,您可以在RAG服务WebUI界面的Upload选项卡中,上传TXT或HTML类型的用户知识库文档。

    本文以PAI.txt例,当完成上传后,会显示Upload 1 files [ PAI.txt, ] Success!

    image

    您还可以在Milvus实例的实例详情页,单击右上角的Attu Manager,然后输入Milvus实例的用户名和密码,可以查看写入的数据和向量等信息。Attu的相关操作,请参见Attu操作指南

    image

  3. 向量检索。

    如下图所示,您可以在RAG服务WebUI界面的Chat选项卡中,选择Langchain(Vector Store + LLM),然后进行向量检索等一系列实验。

    image

相关文档

  • 本页导读 (1)
文档反馈