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

news2025/1/20 5:12:17

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等,欢迎前来探索体验。

(完)

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

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

相关文章

VUE 滚动到指定区域scrollIntoView

背景&#xff1a;当前 VUE 页面数据量很大&#xff0c;右侧出现滚动条, 进入该页面&#xff0c;页面定位到指定区域&#xff1b; 项目要求&#xff1a; 进入页面&#xff0c;定位到指定行&#xff08;红色标记&#xff09; 直接看效果&#xff1a; 代码demo&#xff1a; <…

堆的概念及结构

目录 堆的性质&#xff1a; 堆的实现 堆向下调整算法 堆的创建 堆的插入 堆的删除 堆的应用 堆排序 对比冒泡的优势&#xff1a; 代码 头文件 源文件 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元…

操作系统磁盘管理类问题

例题&#xff1a;在磁盘上存储数据的排列方式会影响1/0服务的总时间。假设每个磁道被划分成10个物理块&#xff0c;每个物理块存放1个逻辑记录。逻辑记录R1,R2....R10存放在同一个磁道上&#xff0c;记录的排列顺序如下表所示&#xff1a; 假定磁盘的旋转速度为10ms/周&#xf…

问界新M5交付,「975」组合站稳中国豪华智电定位

‍作者 |老缅 编辑 |德新 5月15日&#xff0c;问界新M5已正式开启全国用户交付。从网传图片可以看到&#xff0c;华为余承东以及赛力斯AITO问界BU总裁何利扬亲自出席了首批交车仪式。 4月23日&#xff0c;在不到1个月前&#xff0c;新M5发布。新M5共推出三款车型&#xff1a; …

Pikachu 靶场敏感信息泄露通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台&#xff0c;用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境&#xff0c;供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术&#xff0c;…

你好 GPT-4o!

你好 GPT-4o&#xff01; OpenAI公司宣布推出 GPT-4o&#xff0c;这是OpenAI的新旗舰模型&#xff0c;可以实时对音频、视觉和文本进行推理。 GPT-4o&#xff08;“o”代表“o​​mni”&#xff09;是迈向更自然的人机交互的一步——它接受文本、音频、图像和视频的任意组合作…

财富加速器!AI智能无人直播,矩阵操作引领您卖货、卖团购券、拓客,助力财富梦想实现!

财富加速器&#xff01;AI智能无人直播&#xff0c;矩阵操作引领您卖货、卖团购券、拓客&#xff0c;助力财富梦想实现&#xff01; 在当今数字化时代&#xff0c;AI智能技术正以惊人的力量催生新的商机&#xff0c;为经济增长注入源源不断的动力。如果您渴望实现财富梦想&…

go语言数组与切片

1.数组 数组 类型名是[n]elemetType&#xff0c;其中n是数组长度&#xff0c;elementType是数组元素类型。比如一个包 含2个int类型元素的数组类型可表示为[2]int。 数组一般在创建时通过字面量初始化&#xff0c;单独声明一个数组类型变量而不进行初始化是没有意义的。 packa…

Linux-CentOS-7忘记密码-修改登录密码图文详解

Linux-CentOS-7忘记密码-修改登录密码图文详解 1.重启系统&#xff1a; 在登录界面&#xff0c;选择要登录的用户并点击"Power"按钮&#xff0c;然后选择"Restart"或"Reboot"重新启动系统。 在系统启动时持续按下 “e” 键进入编辑模式。 2…

人工智能到底是什么玩意儿?

说实话&#xff0c;每次听到“人工智能”这个词&#xff0c;我都感觉像是在听天书一样。它似乎总是被包裹在一堆高大上的术语和概念里&#xff0c;让人摸不着头脑。但今天&#xff0c;我决定挑战一下自己&#xff0c;把这个问题搞个明白&#xff01; 首先&#xff0c;我得承认&…

通过gen_compile_commands.py产生compile_commands.json文件的方法

大家在使用vscode查看linux源代码时&#xff0c;会有很多飘红处&#xff0c;而且函数的跳转非常不方便。所以linux给了一个脚本gen_compile_commands.py&#xff0c;此脚本类似ctags这样&#xff0c;产生相应的关联之类的数据库&#xff0c;方便函数及文件的跳转等等。非常好。…

每日一练 2024.5.16 (补 2024.5.15)

题目&#xff1a; 给定一个 正整数 数组 beans &#xff0c;其中每个整数表示一个袋子里装的魔法豆的数目。 请你从每个袋子中 拿出 一些豆子&#xff08;也可以 不拿出&#xff09;&#xff0c;使得剩下的 非空 袋子中&#xff08;即 至少还有一颗 魔法豆的袋子&#xff09;…

Docker mysql主从同步

1. 在主节点注册一个账号&#xff0c;用于子节点访问主节点 #mysql 1主2从&#xff0c;先创建主节点 ,注意 \ 后面不要带空格 docker run --name mysql-m \ -v /usr/local/mysql/data:/var/lib/mysql \ -v /usr/local/mysql/conf:/etc/mysql/conf.d \ -v /usr/local/mysql/log:…

20231911 2023-2024-2 《网络攻防实践》实践九报告

1.实践内容 1.1 缓冲区 缓冲区是内存空间的一部分&#xff0c;在内存中预留了一定的存储空间&#xff0c;用来暂时保存输入和输出等I/O操作的一些数据&#xff0c;这些预留的空间就叫做缓冲区。 1.2 shellcode shellcode是一段用于利用软件漏洞而执行的代码&#xff0c;也可以…

哪款桌面便签app能帮助我提升工作效率

作为上班族&#xff0c;我们每天都要处理大量的工作事项&#xff0c;从策划方案到处理邮件&#xff0c;每一个环节都需高效且有条不紊。在这样的工作环境下&#xff0c;提升效率显得尤为重要。而选择一款优秀的桌面便签app&#xff0c;无疑是提高工作效率的关键。 桌面便签app…

6-10 阶乘计算升级版

void Print_Factorial ( const int N ) {if(N<0){printf("Invalid input");return;} int nN;int a[10000]{};a[0]1; //0和1的阶乘都是1&#xff0c;同时又是用该个位去&#xff0c;所以初始化为1&#xff1b;int i,j;int len0;//当前数组所占的最大下标in…

多客开源】游戏陪玩系统,游戏陪玩源码,游戏陪玩语音社交源码运营版游戏陪玩平台源码/tt语音聊天/声优服务/陪玩系统源码开黑/约玩源码

介绍 我们针对陪玩app源码市场的发展趋势&#xff0c;整合市面上主流陪玩app应用功能&#xff0c;自主开发了多客陪玩系统源码&#xff0c;并可为客户提供全部原生陪玩源码&#xff0c;进行二次开发&#xff0c;打造适用于线上游戏陪玩、语音聊天、心理咨询、情感陪伴等业务场…

NOC初赛成绩,你们都查到了吗?

NOC大赛部分编程赛道要开始复赛了&#xff0c;2024信息素养大赛初赛及NOC复赛这篇就够了&#xff01;初赛结束后&#xff0c;很多家长和学生还没有查到是否晋级复赛&#xff0c;因为网站卡的出现了各种问题&#xff0c;主要集中在打不开&#xff0c;验证码错误等&#xff0c;根…

【数据分析实战】华住与锦江市场布局与未来趋势解析Python数据分析采集爬虫

文章目录 引言数据采集和展示数据采集数据预处理 数据分析与结果国内门店数量对比结果可视化结果分析 酒店平均房间数对比Code结果可视化结果分析 近六年开店数量对比结果可视化结果分析 写在最后 引言 随着旅游经济的持续发展&#xff0c;中国酒店行业正迅速壮大&#xff0c;…

基于51单片机的非接触式无线红外测温

基于51单片机的无线红外测温 &#xff08;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.采用红外温度传感器测温并用LCD1602显示&#xff1b; 2.按键为启动按键、保存按键、显示数据按键&#xff0c;可以实现对温度数值的控制…