通过阿里云的PAI基于开源LLM搭建RAG检索增强对话系统

2024-05-16 13:36

本文主要是介绍通过阿里云的PAI基于开源LLM搭建RAG检索增强对话系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5月9日参加阿里云AI云峰会活动,学习了下如何借助阿里云的PAI服务进行搭建RAG检索增加对话系统。

前提:

为了方便省钱,建议先通过免费的优惠圈,这样就可以先不花钱学习一下啦。开始实验之前,请务必打开 阿里云免费试用 - 阿里云,先后搜索“EAS”和“oss”,领取试用活动,如下图:

1. EAS简介

EAS(Elastic Algorithm Service)是PAI的模型在线服务平台,⽀持将模型部署为在线推理服务和 AI-Web应⽤。EAS提供了弹性扩缩容和蓝绿部署等功能,可以⽀撑您以较低的资源成本获取⾼并 发且稳定的在线算法模型服务。此外,EAS具备资源组管理和版本控制等功能,并且有完整运维监 控体系等能⼒。 针对AIGC和LLM的典型前沿场景,EAS提供了真正简化的部署⽅式,⽤户可以很⽅便地⼀键拉起 服务,包括RAG部署、ComfyUI部署、Stable Diffusion WebUI部署、ModelScope模型部署、 HuggingFace模型部署、Triton部署、TFserving部署等。

2. RAG简介

随着AI技术的⻜速发展,⽣成式⼈⼯智能在⽂本⽣成、图像⽣成等领域展现出了令⼈瞩⽬的成就。 然⽽,在⼴泛应⽤⼤语⾔模型(LLM)的过程中,⼀些固有局限性逐渐显现: 领域知识局限:

1)⼤语⾔模型通常基于⼤规模通⽤数据集训练⽽成,这意味着它们在处理专业垂 直领域的具体应⽤时可能缺乏针对性和深度。

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

3)模型误导性输出:受制于数据偏差、模型内在缺陷等因素,⼤语⾔模型有时会出现看似合理实 则错误的输出,即所谓的“⼤模型幻觉”。 为克服这些挑战,并进⼀步强化⼤模型的功能性和准确性,检索增强⽣成技术RAG(RetrievalAugmented Generation)应运⽽⽣。这⼀技术通过整合外部知识库,能够显著减少⼤模型虚构的 问题,并提升其获取及应⽤最新知识的能⼒,从⽽实现更个性化和精准化的LLM定制。

PAI-EAS⾃建了RAG系统化解决⽅案,提供了灵活可调的参数配置,⽤户可以通过WebUI 或者 API 调⽤RAG服务,定制⾃⼰专属的对话系统。RAG技术架构的核⼼为检索和⽣成。在检索⽅ ⾯,PAI-EAS⽀持多种向量数据库,包括开源的Faiss和阿⾥云的产品Milvus、ElasticSearch、Hologres、AnalyticDB for PostgreSQL。在⽣成⽅⾯,PAI-EAS⽀持丰富的开源模型,如通义千问、 Llama、mistral、百川等,同时⽀持ChatGPT调⽤。

3. 实践内容

通过本实验,您可以掌握使⽤PAI-EAS构建⼀个⼤模型RAG对话系统。整体流程⼤约花费20分 钟。您将学会:

1. 创建Milvus向量检索库实例

2. 使⽤EAS选择合适的模型和向量检索库,⼀键部署RAG服务

3. 使⽤RAG WebUI上传知识库⽂档,与⼤语⾔模型进⾏对话

4. 具体操作步骤

内容⼀:准备向量检索库

Milvus是⼀款云原⽣开源向量检索引擎,基于Faiss、Annoy、HNSW等知名库构建,并进⾏了优 化,实现了⾼可⽤、⾼性能、易扩展的特性,适于处理海量向量数据的实时召回。下⾯将以Milvus 为例,介绍向量检索库的准备。

1)进⼊EMR控制台,在左侧菜单栏选择 EMR Serverless - Milvus,点击【创建 实例】。

2)在创建页进行如下配置:2.1)选择合适的可用区、VPC、交换机。2.2)创建服务关联角色。

‒ 选择OSS存储,该存储需要设置标 签。

配置好之后,点击【⽴即购买】。进⼊到 确认⻚,点击【去⽀付】。在⽀付⻚,点 击【订购】。

内容二:部署RAG服务

1)进⼊PAI控制台,左侧菜单栏选择模型在 线服务(EAS),点击【部署服务】。

2)在卡⽚列表中,选择【⼤模型RAG对话 系统】。

3)在创建页面进行以下配置

服务名称可以⾃定义填写。 ‒ 选择模型类别,本实验以Qwen1.5- 1.8b为例。服务名称可以⾃定义填写。 ‒ 选择模型类别,本实验以Qwen1.5- 1.8b为例。实例数选择1。 ‒ 选择资源配置,推荐选⽤ T4/V100/A10/GU30。 ‒ 推理加速保持默认即可。如下图:

进⾏向量检索库设置。数据库⽂件夹 名称可以⾃定义填写;访问地址和代 理端⼝可以在Milvus实例详情中查看 并填写(如图);账号是root,密码 是在创建Milvus实例时填写的密码; collection选择不删除。

‒ 注意选择与Milvus实例相同的VPC、交换 机。安全组选择默认即可。

点击部署即可。

注:模型在线服务 (EAS)服务是收费服务,按小时收费,请注意成本控制

内容三:通过RAG WebUI上传知识库

1)RAG服务部署成功后,单击服务⽅式列下的【查 看Web应⽤】,启动WebUI⻚⾯

2)第⼀个tab是RAG配置。⾸先要配置Embedding 模型。 ○ 连接成功,显示“Connect Milvus success” 6 / 10 Emebdding Dimension:根据模型,系统 会⾃动设置维度。

接下来,需要连接向量数据库。系统已⾃动带⼊ 了部署服务的配置设置,点击“Connect Milvus”。

3)第⼆个tab⽤于上传知识库。 ⾸先,设置以下两个参数来控制⽂档切块粒度的 ⼤⼩: ○ ○ 接下来,点击【Upload】直接上传示例数据, 或者拖拽上传⽂件后再点击【Upload】。

内容四:通过RAG WebUI对话

1)来到WebUI的第三个tab。 ⾸先选择【LLM】模式,询问模型“「XXX」的全⽂是什 么?”,其中XXX是你upload上传的内容关键字,让我们观察⼀下,在不使⽤向量 知识库的情况下,模型会如何回答。

2)接着我们选择【Retrieval】模式,该模 式会从向量数据库中检索并返回Top K 条相似结果。同样询问⼀样的问题,让 我们来看模型是否能正确检索出我们上 传的知识库内容。

3)最后,我们选择【RAG(Retrieval + LLM)】模式,继续询问。该模式会将 检索返回的结果与⽤户的问题输⼊⾄已 选择的Prompt模板中,送给⼤模型, 从中获取问答结果。

内容五:查看知识库切块

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

1)进⼊到Milvus详情⻚,点击【开启公⽹】

2)点击公⽹访问⽩名单后⾯的【编辑】。 打开https://myip.ipip.net/,查看⾃⼰的ip 地址,然后将ip加到⽩名单中,以半⻆逗 号(,)隔开。

3)点击【Attu Manager】,进⼊Attu管理⻚⾯ Milvus Database填写“default”,Milvus Username填写“root”,Milvus Password 填写我们在创建RAG服务时设置的密码 登录成功。

4)登录成功后,可以看到RAG服务⾃动创建 的collections,点击查看详情。

列表展现了我们上传的知识库数据, 能够帮助我们理解知识库是如何被切 ⽚和向量化的。从⽽可以调整切⽚⽅ 式。

5. 总结

本次体验了在PAI EAS上部署RAG服务,上传知识库,以及与模型进⾏对话。本⽂使⽤了简单的PAI介 绍⽂档,后续您可以根据需求,使⽤⾃⼰实际业务的知识库,来定制化您专属的问答机器⼈。 RAG WebUI提供了丰富灵活的配置,本实验采⽤了默认配置,您可以调节不同的参数,来优化问答 效果。RAG项⽬已经开源(GitHub),如果您有更多定制化需求,欢迎在此项⽬基础上进⾏⼆次开 发,在EAS上部署您修改后的RAG应⽤。 另外,EAS提供了丰富好玩的AI应⽤,如ComfyUI、Stable Diffusion WebUI等,欢迎前来探索体验。

(完)

这篇关于通过阿里云的PAI基于开源LLM搭建RAG检索增强对话系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995057

相关文章

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has