通过阿里云Milvus与PAI搭建高效的检索增强对话系统

news2024/11/27 12:47:17

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

背景信息

EAS简介

模型在线服务EAS(Elastic Algorithm Service)是一种模型在线服务平台,可支持您一键部署模型为在线推理服务或AI-Web应用。它提供的弹性扩缩容和蓝绿部署等功能,可以支撑您以较低的资源成本获取高并发且稳定的在线算法模型服务。此外,EAS还提供了资源组管理、版本控制以及资源监控等功能,方便您将模型服务应用于业务。EAS适用于实时同步推理、近实时异步推理等多种AI推理场景,并具备完整运维监控体系等能力。

更多信息,请参见EAS模型服务概述。

RAG简介

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

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

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

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

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

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

前提条件

  • 已创建Milvus实例,并配置了公网访问。具体操作请参见快速创建Milvus实例和网络访问与安全设置。

  • 已开通PAI(EAS)并创建了默认工作空间。具体操作,请参见开通PAI并创建默认工作空间。

使用限制

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

操作流程

步骤一:通过PAI部署RAG系统

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

    1. 登录PAI控制台。

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

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

      image

  2. PAI-EAS模型在线服务页面,单击部署服务

  3. 部署服务页面,选择大模型RAG对话系统部署

  4. 部署大模型RAG对话系统页面,配置以下关键参数,其余参数可使用默认配置,更多参数详情请参见大模型RAG对话系统。

    参数

    描述

    基本信息

    服务名称

    您可以自定义。

    模型来源

    使用默认的开源公共模型

    模型类别

    本示例以Qwen1.5-1.8b为例。

    资源配置

    实例数

    使用默认的1。

    资源配置选择

    按需选择GPU资源配置。例如,ml.gu7i.c16m30.1-gu30。

    向量检索库设置

    版本类型

    选择Milvus

    访问地址

    Milvus实例的内网地址。您可以在Milvus实例的实例详情页面查看。

    代理端口

    Milvus实例的Proxy Port。您可以在Milvus实例的实例详情页面查看。默认为19530。

    账号

    配置为root。

    密码

    配置为创建Milvus实例时,由您自定义的root用户的密码。

    数据库名称

    配置为已创建的数据库名称,例如default。

    Collection名称

    输入新的Collection名称。

    专有网络配置

    VPC

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

    交换机

    安全组名称

  5. 单击部署

    服务状态变为运行中时,表示服务部署成功。

步骤二:通过RAG WebUI上传知识库

  1. 配置RAG对话系统。

    1. 模型在线服务(EAS)页面,单击查看Web应用,进入WebUI页面。

    2. 配置Embedding模型。

      在RAG服务WebUI界面的Settings选项卡中,系统已自动识别并应用了部署服务时配置的向量检索库设置。

      • Embedding Model Name:系统内置四种模型供您选择,将自动为您配置最合适的模型。

      • Embedding Dimension:选择Embedding Model Name后,系统会自动进行配置,无需手动操作。

      image

    3. 测试向量检索库连接是否正常。

      系统已自动识别并应用了部署服务时配置的向量检索库设置,并且该设置不支持修改。您可以单击Connect Milvus,来验证Milvus连接是否正常。

  2. 上传知识库。

    在RAG服务WebUI界面的Upload选项卡中,可以上传知识库文档。

    1. 设置语义切块参数。

      通过配置以下参数来控制文档切块粒度的大小和进行QA信息提取:

      参数

      描述

      Chunk Size

      指定每个分块的大小,单位为字节,默认为500。

      Chunk Overlap

      表示相邻分块之间的重叠量,默认为10。

      Process with QA Extraction Model

      通过选中Yes复选框启动QA信息提取功能,系统将在您上传业务数据文件后自动抽取出QA对,以获得更好的检索和回答效果。

    2. Files页签下上传业务数据文件(支持多文件上传)。

      本文以唐诗三百首的poems.txt文档作为示例数据,您可以直接使用。

    3. 单击Upload,系统会先对上传的文件进行数据清洗(文本提取、超链接替换等)和语义切块,然后进行上传。

步骤通过RAG WebUI对话

在RAG服务WebUI界面的Chat选项卡中,提供了多种不同的Prompt策略,您可以选择合适的预定义Prompt模板或输入自定义的Prompt模板以获得更好的推理效果。

配置LLM问答策略

配置Retrieval问答策略

配置RAG(Retrieval + LLM)问答策略

  1. 在RAG服务WebUI界面的Chat选项卡中,选择LLM

  2. 直接与LLM对话,返回大模型的回答。

    image

步骤查看知识库切块

Attu是一款专为Milvus向量数据库打造的开源数据库管理工具,提供了便捷的图形化界面,极大地简化了对Milvus数据库的操作与管理流程。下面,我们将使用Milvus的Attu工具,查看向量数据库的存储内容。

  1. 进入安全配置页面。

    1. 登录阿里云Milvus控制台。

    2. 在左侧导航栏,单击Milvus实例

    3. 在顶部菜单栏处,根据实际情况选择地域。

    4. Milvus实例页面,单击目标实例名称。

    5. 单击安全配置页签。

  2. 配置公网访问。

    1. 安全配置页签,单击开启公网

      image

    2. 输入当前服务器的公网访问IP地址或符合CIDR定义的IP地址段。

      多个IP条目以半角逗号(,)隔开,不可重复。您可以通过访问IP地址,获取当前服务器的公网访问IP地址。

      image

    3. 单击确定

  3. 访问Attu页面。

    1. 单击页面上方的Attu manager

      image

    2. 在弹出的对话框中输入所要访问的数据库、用户名和密码,单击连接,即可打开Attu管理页面。

      实例创建完成后,系统会自动创建一个名为default的默认数据库,并为您创建一个名为root的用户,该用户的密码由您在创建实例时自行设置。

      image

  4. 在Attu页面,您可以看到RAG服务自动创建的Collection。

    image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2201569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数学建模算法与应用 第8章 时间序列分析

目录 8.1 确定性时间序列分析方法 Matlab代码示例:移动平均法提取趋势 8.2 平稳时间序列模型 Matlab代码示例:差分法与ADF检验 8.3 时间序列的Matlab相关工具箱及命令 Matlab代码示例:ARIMA模型的建立 8.4 ARIMA序列与季节性序列 Matl…

【Golang】Go语言中缓冲bufio的原理解读与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Ubuntu关闭anaconda自动进入base虚拟环境

问题描述:安装好Anconda后,每次打开终端后都会自动进入到base的虚拟环境中去 直接使用通常情况下也不会有什么影响,但是为了避免,有以下两个方法: 1.使用conda deactivate #每次使用conda deactivate,退…

鸿蒙开发(NEXT/API 12)【ArkWeb接入密码保险箱】系统安全

网页中的登录表单,登录成功后,用户可将用户名和密码保存到鸿蒙系统密码保险箱中。再次打开该网页时,密码保险箱可以提供用户名、密码的自动填充。 手机使用场景 在网站中输入用户名、密码,登陆成功后,ArkWeb会提示将用…

线程池的核心参数——Java全栈知识(50)

线程池的核心参数 线程池核心参数主要参考ThreadPoolExecutor这个类的7个参数的构造函数 corePoolSize 核心线程数目maximumPoolSize 最大线程数目 (核心线程救急线程的最大数目)keepAliveTime 生存时间 - 救急线程的生存时间,生存时间内没有新任务,此…

前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)

前端Vue字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin) 引言 最近前端引入了UI给的思源黑体字体文件,但是字体文件过于庞大,会降低页面首次加载的速度,目前我的项目中需要用到如下三个字体文…

视频理解模型

LSTM 视频分解成图片帧分别进行特征提取,最后把提取到的特征放到LSTM网络里提取时序信息。 3D-ConvNet 把一组图片帧作为一个整体输入到3D卷积网络中,由于多了一个维度,参数变得多,模型变深,但当时没有大量的视频数…

PMP--冲刺题--解题--71-80

文章目录 14.敏捷--合规--测试无问题,安全团队却拒绝部署,则意味着可能存在某方面安全问题71、 [单选] 一个项目经理正在为一家政府所有的公司管理一个采用迭代方法的项目。第一个有用的生产发布由三次迭代组成。每次迭代都在测试环境中成功通过了客户代…

qwt实现码流柱状图多色柱体显示

qwt实现码流柱状图多色柱体显示 1. 前言2. qt实现柱状图3.qwt基础说明3.1 qwt安装与使用3.1.1 下载qwt源码3.1.2 编译3.1.3 安装3.1.4 使用3.2 QwtPlotBarChart类3.2.1画图步骤3.2.2 specialSymbol3.3.3 barTitle4 BsBarChart定制4.1 每个柱体可以显示不同的颜色4.2 每个柱体可…

网络安全-IPv4和IPv6的区别

1. 2409:8c20:6:1135:0:ff:b027:210d。 这是一个IPv6地址。IPv6(互联网协议版本6)是用于标识网络中的设备的一种协议,它可以提供比IPv4更大的地址空间。这个地址由八组十六进制数字组成,每组之间用冒号分隔。IPv6地址通常用于替代…

大数据毕业设计选题推荐-B站热门视频数据分析-Python数据可视化-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Python 工具库每日推荐【Pillow】

文章目录 引言Python图像处理库的重要性今日推荐:Pillow工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:创建图像拼贴案例分析高级特性图像增强图像水印扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScript 设计模式 专栏,感兴…

数学建模算法与应用 第5章 插值与拟合方法

目录 5.1 插值方法 Matlab代码示例:线性插值 Matlab代码示例:样条插值 5.2 曲线拟合的线性最小二乘法 Matlab代码示例:线性拟合 5.3 最小二乘优化与多项式拟合 Matlab代码示例:多项式拟合 5.4 曲线拟合与函数逼近 Matlab代…

深入理解链表(SList)操作

目录: 一、 链表介绍1.1、 为什么引入链表1.2、 链表的概念及结构1.3、 链表的分类 二、 无头单向非[循环链表](https://so.csdn.net/so/search?q循环链表&spm1001.2101.3001.7020)的实现2.1、 [单链表](https://so.csdn.net/so/search?q单链表&spm1001.2…

系统架构师备考记忆不太清楚的点-信息系统-需求分析

霍尔三维结构 逻辑维:解决问题的逻辑过程 过程有明确问题、确立目标、系统综合、系统分析、优化、系统决策、实施计划 时间维:工作进度 这个纬度则是做工作计划的输出 有 规划阶段、拟定方案、研制阶段、生产阶段、安装阶段、运行阶段、更新阶段 知…

TiDB 优化器丨执行计划和 SQL 算子解读最佳实践

导读 在数据库系统中,查询优化器是数据库管理系统的核心组成部分,负责将用户的 SQL 查询转化为高效的执行计划,因而会直接影响用户体感的性能与稳定性。优化器的设计与实现过程充满挑战,有人比喻称这是数据库技术要持续攀登的珠穆…

Android SELinux——基础介绍(一)

Android 系统的安全策略是保护用户的隐私和数据不受侵害的重要保证,一个相对安全的计算环境对于确保移动设备的安全至关重要。随着新的威胁不断出现,Android 的安全策略也在不断发展和完善,以应对新的挑战。 一、概念介绍 1、SELinux SELin…

图像处理(一)——CMC特刊推荐

特刊征稿 01 期刊名称: Data and Image Processing in Intelligent Information Systems 截止时间: 提交截止日期:2024年11月15日 目标及范围: 感兴趣的主题包括但不限于: 先进的数据处理技术; 智能数据分析; 智能系统…

【论文阅读】DeepAC:实时六自由度目标跟踪的深度主动轮廓

Deep Active Contour for Real-time 6-DoF Object Tracking ICCV 2023 Project Page 【Question&Thinking】 解决的问题? RGB 视频的实时六自由度目标跟踪 现有的问题?提出的方法?达到的效果?存在的问题? Abst…

pnpm设置镜像源

# 查询当前使用的镜像源 pnpm get registry# 设置为淘宝镜像源 pnpm config set registry https://registry.npmmirror.com/# 还原为官方镜像源 pnpm config set registry https://registry.npmjs.org/参考链接 https://blog.csdn.net/weixin_45046532/article/details/139681…