AI智能总结
页码 :2/223 页码 :3/223核心技术 页码 :4/223RAG+Agent:基于腾讯云ES与混元大模型构建专属AI助手01背景概述随着数据智能技术的不断发展,以大语言模型(LLM)驱动的AIGC为代表的内容生成技术已经成为企业数据智能能力中不可或缺的一部分,但传统的内容生成技术存在信息更新不及时、垂直领域知识匮乏、模型幻觉等问题,如何推进大模 型 在 各 行 业 、 各 业 务 场 景 落 地 是 各 方 普 遍 关 注 的 问 题 , 而 检 索 增 强 生 成(Retrieval-AugmentedGeneration,RAG)技术则为此提供了有效的解决方案,成为数据智能时代的一大趋势。RAG是一种结合了检索和大语言模型内容生成的技术方案,它通过引用外部知识库,在用户输入Query时检索出知识,然后让模型基于可信的知识进行用户回答。RAG具有较高的可解释性和定制能力,可大幅降低大语言模型的幻觉,适用于问答系统、文档生成、智能助手等多种自然语言处理任务中。本文将通过介绍腾讯云ES一站式RAG方案,演示如何通过结合腾讯云ES与混元大模型,快速构建RAG应用。 页码 :5/22302腾讯云ES一站式RAG方案腾 讯 云ES是 云 端 全 托 管 海 量 数 据 检 索 分 析 服 务 , 拥 有 高 性 能 自 研 内 核 , 集 成X-Pack,支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的Serverless模式。在自研内核方面,腾讯云ES依托腾讯内外部海量业务的运营经验,针对ES内核进行了成本、性能、稳定性、拓展性等方面的优化,是亚太地区开源贡献第一的团队,使用腾讯云ES您可以高效构建在线搜索、向量检索、日志分析、运维监控、智能问答等服务。在RAG方面,腾讯云ES支持了一站式向量检索、文本+向量混合搜索、倒数排序融合、与大模型集成、GPU高性能推理、字段级别权限控制等能力,同时针对查询性能做了大量优化,有效的提升了数据检索效率。 页码 :6/223当然,作为国内公有云首个从自然语言处理、到向量生成/存储/检索、并与大模型集成的端到端一站式技术平台,腾讯云ES也作为核心参编单位参与了由信通院组织的RAG标准制定,同时成为首个通过RAG权威认证的企业。03AI助手构建购买ES集群1、登录腾讯云ES控制台:https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fapi%2Fexplorer%3FProduct%3Dhunyuan%26Version%3D2023-09-01%26Action%3DChatCompletions(复制链接到浏览器打开)2、点击「新建」 3、产品类型选择为:通用版 页码 :8/2235、ES节点配置,测试环境可选择为ES.S1(2核4G),节点数为2,磁盘为通用型SSD,磁盘容量为20GB6、其余配置选择默认即可登录Kibana 页码 :10/2233、点击Kibana公网访问地址访问Kibana部署embedding模型集群购买完成后,前往Kibana部署Embedding模型、创建知识库索引与向量化管道1、开启「节点出站访问」,仅开启数据节点即可,如有专用主节点,仅开启专用主节点即可。(该功能为白名单,请联系工单处理)注:如需上传自定义模型或第三方平台(如Huggingface)模型,可参考文档:https://github.com/elastic/eland(复制链接到浏览器打开)2、登录Kibana之后,在左侧导航栏找到「MachineLearning」功能 页码 :11/2233、进入模型管理页面,并找到类型为「text_embedding」的模型4、如为未下载状态,选中模型,并点击「Addtrainedmodel」,本次演示我们使用「.multilingual-e5-small_linux-x86_64」模型 页码 :12/223 5、下载完成后,点击部署 页码 :13/2236、为快速体验,配置使用默认值即可创建索引与向量化管道1、点击进入「Devtools」 2、创建知识库索引index-name为索引名称,实际可按需命名 页码 :14/223 3、创建推理管道,该管道可用于写入数据时进行数据向量化 页码 :15/223 页码 :16/223上述管道,将字段「content、title」的内容,调用.multilingual-e5-small_linux-x86_64模型向量化之后存储到新的字段中。写入知识库数据通过BulkAPI批量写入数据,可将title、content、url的内容替换为您实际的知识库数据。 页码 :17/223调用混元大模型1、python文件命名为hunyuan.py2、安装相关库,参考如下,控制台链接:https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fapi%2Fexplorer%3FProduct%3Dhunyuan%26Version%3D2023-09-01%26Action%3DChatCompletions(复制链接到浏览器打开) 页码 :18/2233、获取SecretID、SecretKey,控制台链接:https://cloud.tencent.com/login?s_url=https%3A%2F%2Fconsole.cloud.tencent.com%2Fapi%2Fexplorer%3FProduct%3Dhunyuan%26Version%3D2023-09-01%26Action%3DChatCompletions(复制链接到浏览器打开) 页码 :19/223 智能问答系统构建1、安装streamlit2、获取ES访问地址用户名为elastic、密码在创建集群时设置,用本地mac测试时,可开启公网访问,实际生产时,建议使用内网访问地址3、运行如下代码(需与hunyuan.py在一个目录下) 页码 :20/223 页码 :21/223 在上述python文件的目录下,使用如下命令运行系统:生成的界面如下: 页码 :22/223 页码 :23/22304总结本文通过介绍腾讯云ES一站式RAG方案,演示如何通过结合腾讯云ES与混元大模型,快速构建RAG应用。腾讯云ES凭借其在传统PB级日志和海量搜索场景中积累的丰富经验,通过深度重构底层系统,成功地将多年的性能优化、索引构建和运营管理经验应用于RAG领域,并积极探索向量召回与传统搜索技术的融合之道,旨在充分发挥两者的优势,为用户提供更加精准、高效的搜索体验。未来,腾讯云ES将持续深耕智能检索领域,在成本、性能、稳定性等方面持续提升,帮助客户降本增效的同时实现业务价值持续增长,欢迎持续关注!腾讯云大数据将持续致力于为各行业客户提供轻快、易用,智能的大数据平台。 页码 :24/223揭秘万亿级日志与搜索平台核心架构巴黎赛事如火如荼,中国健儿在赛场上屡创佳绩。作为赛事转播的核心平台,国内头部视频媒体不仅提供了赛事直播,还推出了丰富的原创新媒体节目,平台涵盖赛程查询、选手信息、奖牌榜、社区互动等功能,日均承载万亿量级的日志写入与十亿量级的在线搜索,总存储规模达PB级。腾讯云ES基于自研内核优化和专家级服务,成功扛下重任,保障了平台的稳定运行。万亿级日志分析平台再大的流量也“打不崩”针对日志分析场景,腾讯云ES通过自研读写分离、存算分离、Serverless架构、 页码 :25/223查询并行化、定向路由等先进技术,实现冷热数据一体化搜索及弹性伸缩能力。其核心能力支撑了腾讯社交、内容、娱乐等众多业务,经历了海量应用的大规模实践考验,同时也服务了业界非常多有影响力的头部企业,帮助客户显著提升日志写入性能和稳定性,并降本30-80%。1.稳定高可用(高并发写入)平台作为赛事最核心的观看入口,写入量达千万级每秒,特别是在「樊振东对战张本智和」、「乒乓球女单决赛」、「乒乓球男单决赛」、「羽毛球男双决赛」等比赛中,写入流量一度突增1倍以上,高并发数据写入对底层服务稳定性提出了极大考验,一个稳定可靠的架构极为重要。腾讯云ES通过服务限流、异常容忍以及分布式线性扩展优化,帮助平台打造了固若金汤的健壮性架构。那么,我们在这个过程中是如何保障整个日志系统的稳定高可用的呢?在赛事从预热、到开幕式、再到开赛以来,业务的突发增长有时候来的很突然,无法在前期做有效的评估。社区中的很多基于开源ES自建的用户也遇到过类似的问题,由于没有预估到业务突发的增长,并且在业务层没有做好服务降级等机制,导致突发的写入流量打崩了整个集群,使ES服务甚至整个业务长时间不可用。那么,在类似场景中,腾讯云ES是怎样保障突增写入流量下集群的稳定性的呢? ES的写入流程中,用户的写入请求先到达一个数据节点,即协调节点。然后由该协调节点将请求转发给主分片所在节点进行写入,主分片写入完毕再由主分片转发给从分片写入,最后返回给客户端写入结果。右图是更细节的写入流程,而我们从堆栈中看到的写入请求堆积的位置就是在红色框中的接入层,节点挂掉的根因是协调节点的接入层内存被打爆。 页码 :26/223 页码 :27/223针对这种高并发场景,我们的优化方案是服务限流。除了要控制并发请求数量,还要精准地控制内存资源,因为内存资源不足是主要的矛盾。此外,限流方案要具备通用性,能作用于各个层级实现全链限流。在很多数据库使用场景中,会采用从业务端或者独立的proxy层配置相关的业务规则的限流方案,通过资源预估等方式进行限流。这种方式适应能力弱,运维成本高,而且业务端很难准确预估资源消耗。ES原生版本本身有限流策略,是基于请求数的漏桶策略,通过队列加线程池的方式实现。线程池大小决定了处理并发度,处理不完放到队列,队列放不下则拒绝请求。但是单纯地基于请求数的限流不能控制资源使用量,而且只作用于分片级子请求的传输层,对于接入层无法起到有效的保护作用。原生版本也有内存熔断策略,但是在协调节点接入层并没有做限制。我们的优化方案是基于内存资源的漏桶策略。我们将节点JVM内存作为漏桶的资源,当内存资源足够的时候,请求可以正常处理;当内存使用量到达一定阈值的时候,分区间阶梯式平滑限流。例如上图中浅黄色的区间限制写入,深黄色的区 间限 制查 询, 底部 红 色部 分作 为预 留buffer, 预留 给处 理中 的请 求 、merge等操作,以保证节点内存的安全性。 限流方案中的一个挑战是如何实现平滑限流。单一的阈值限流很容易出现请求抖动,例如请求一上来把内存打上去马上触发限流,而放开一点点请求又会涌进来把内存打上去。我们的方案是设置高低限流阈值区间,在这个区间中,基于余弦变换实现请求数和内存资源之间的平滑限流。当内存资源足够的时候,请求通过率为100%;当内存到达限流区间逐步上升时,请求通过率随之逐步下降;当内存使用量下降时,请求通过率也会逐步上升,不会一把放开。通过实际测试,平滑的区间限流能在高压力下保持稳定的写入性能。2.写入性能优化赛事的热度持续上涨,且在某些时段,出现突然的增长,例如在「樊振东对战张本智和」的比赛中,写入流量一度突增50%,接近1300万/秒的写入。在千万级TPS写入的考验下,腾讯云ES通过自研能力成功实现高并发写入,轻松应对高并发写入流量。 页码 :28/223 页码 :29/223定向路由策略:在具体介绍定向路由前,先分析日志场景的特点以及开源ES的劣 势 。 日志 场 景 一 般 写 多 读少 , 在 大 规 模 写 入与 存 储 的 场 景 下, 容 易 出 现 一 些100+节点的ES集群。为了均衡各个节点的写入压力,一个索引会设置上百个主分片,均匀分布在各个节点上,这种设置在一些异常场景中,容易出现写入拒绝并