通过阿里云的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等,欢迎前来探索体验。

(完)

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

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

相关文章

QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem

QT在场景中利用freetype实现独立的文字绘制子类QxFreeTypeTextItem,继上一章节讲过qt中如何编译freetype Qt编译和使用freetype矢量字库方法https://blog.csdn.net/wangningyu/article/details/138927379#QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览…

【SpringBoot】SpringBoot3-基本介绍

目录 环境基本介绍pom.xml启动器依赖管理机制分析为什么导入starter-web所有相关依赖都导入进来?为什么版本号都不用写?自定义版本号第三方的依赖 总结 自动配置机制理解默认的包扫描规则配置默认值按需加载自动配置总结 自动配置流程问题流程步骤流程总…

Python数据分析与数据可视化 概念

考试题型: 一、填空题(1分*10) 二、程序代码填空(1分*20) 三、读程序写结果(10分*4) 四、程序设计(10分*1) 五、问答题(20分*1) 考试范围&#x…

沃尔玛自建自养号测评的优势,提升产品排名的新选择

在沃尔玛平台上,产品排名和销量的提升对于卖家而言至关重要,而产品测评则是实现这一目标的有效途径。然而,市场上对于测评的需求激增,随之而来的是寻找测评服务的种种困难和风险。因此,越来越多的卖家选择自建自养号测…

cdn引入vue的项目嵌入vue组件——http-vue-loader 的使用——技能提升

最近在写MVC的后台,看到全是jq的写法,但是对于用惯了vue的我,真是让我无从下手。。。 vue的双向绑定真的很好用。。。 为了能够在cdn引入的项目中嵌入vue组件,则可以使用http-vue-loader了 步骤1:下载http-vue-loader…

使用TerraScan静态扫描KubernetsIaC文件

terrascan https://github.com/tenable/terrascan Terrascan 是基础架构即代码的静态代码分析器。Terrascan 允许: 将基础架构作为代码无缝扫描,以查找错误配置。监控已配置的云基础架构,以查找引入终端安全评估漂移的配置更改&#xff0…

10个必备功能跨境电商ERP开发全指南

跨境电商平台开发是当前电商行业的热门话题。随着全球贸易的不断发展,企业越来越关注并重视跨境电商ERP系统的开发和应用。在本文中,我们将深入探讨跨境电商ERP开发的必备功能,为您呈现全面的指南。 1. 跨境订单管理 跨境电商平台需要具备全…

go语言中Print,Printf和Println的区别

Print是Golang的fmt包中的内置函数,使用其操作数的默认格式打印格式并写入标准输出; Println是Golang的fmt包中的内置函数,用于在结尾处打印带有新行的消息到控制台。它需要零个或多个任意类型的参数,并使用空格分隔它们&#xff…

CST电磁仿真软件什么是Schematic?三维模型和电路协同仿真【小白必学教程】

什么是Schematic? 使用CST Design Studio进行的各种分析! Schematic 进行三维仿真时,有时需要将3D模型和电路图放在一起进行仿真分析。比如需要天线和匹配电路协同仿真,两者构成完整的电路图可以系统地分析In/0ut特性。按下3D工作界面下方…

docker本地(非公网)搭建gpt-4-all 和 GPTS 多模态对话页面(支持Chat Gpt4o「omni」)

文章目录 GPT-4o简介API-key的获取Linux环境部署gpt-4-all 和 GPTS 多模态访问测试 GPT-4o简介 新模型 GPT-4o,其中的「o」代表「omni」(即全面、全能的意思),这个模型同时具备文本、图片、视频和语音方面的能力 API-key的获取 …

在Ubuntu22.04搭建xfce远程桌面

由于Ubuntu22.04云服务器(带GPU)只开放部分端口,某些服务(如nacos)有Web前端需要访问,但是相应的端口并没有开放,只有SSH端口可以使用。于是,就在Ubuntu22.04上安装xfce桌面环境&…

JavaScript对象设计哲学:八种模式塑造高效代码

🔥 个人主页:空白诗 文章目录 一、引言 🚀二、Object 构造函数 🧱📌 基本用法📌 重要性📌 实际应用案例 三、对象字面量 📘📌 定义属性📌 定义方法&#x1f4…

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现: 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性,并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…

如何修改照片的dpi值?在线图片更改dpi快捷方法

不少小伙不知道如何去改变图片分辨率,因为能用的到分辨率dpi的地方也不多,但是当我们在求职、考公或者是打印照片的时候,就经常看到会要求图片分辨率为300dpi以上了,本文将分享一款图片处理工具,它能快速完成修改图片分…

Vue3专栏项目 -- 三、使用vue-router 和 vuex(上)

前面我们开发了两个页面的组件,现在我们需要把它们分成几个页面了,那么一个网页多个页面我们都熟悉,针对不同的url渲染不同的html静态页面,这是web世界的基本工作方式。 有时候我们点击一个东西,地址栏的路由跳转&…

DOS学习-目录与文件应用操作经典案例-dir

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.使用 三.练习 一.前言 dir是"directory"(目录)的缩写,它主要用于展示某个磁盘上的全部或特定文件目录。在DOS操作系统中&#…

【前段】开发五子棋小游戏全流程

使用前端技术开发五子棋小游戏 在这篇博文中,我们将详细介绍如何使用HTML、CSS和JavaScript开发一个简单的五子棋小游戏。我们将展示如何初始化棋盘、处理用户交互以及实现胜负判定。特别是,我们将着重介绍胜负判定的逻辑实现。 完整代码我放在了这里&a…

push to origin/master was rejected解决方案之一

如果你是git小白,并且其他帖子的方法都不行,可以一试 在你的远程库(我这个是gitee)设置中的邮箱设置里不勾这个选项 然后就没有然后了。

宣布推出 Search AI Lake 和 Elastic Cloud Serverless 以扩展低延迟搜索

作者:来自 Elastic Ken Exner 今天,我们很高兴地宣布 Search AI Lake 和 Elastic Cloud Serverless。 Search AI Lake 是一种针对实时应用程序进行优化的开创性云原生架构,它将扩展的存储容量与低延迟查询以及 Elasticsearch 强大的搜索和 AI…

视频监控平台智能边缘分析一体机视频存储平台打手机检测算法

智能边缘分析一体机的打手机检测算法是一种集成了先进图像处理、计算机视觉和人工智能技术的解决方案,专门用于实时监测和识别监控场景中的打手机行为。 在提到“打手机检测算法”时,可能是指一种能够识别和检测使用手机行为的算法。这种算法可以应用于多…