链载Ai

标题: 腾讯大模型应用演进之路:从 RAG 到 MCP 的技术实践 [打印本页]

作者: 链载Ai    时间: 2 小时前
标题: 腾讯大模型应用演进之路:从 RAG 到 MCP 的技术实践

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;color: rgb(0, 0, 0);font-size: 14px;text-align: justify;visibility: visible;line-height: 2em;">导读在 2024 年大模型应用元年的背景下,随着业务对大模型的深度应用及业界技术的不断迭代,腾讯太极机器学习平台在大模型应用支持方面取得新进展。本次分享由腾讯高级工程师赵喜生带来,主要围绕腾讯太极机器学习平台在大模型应用的场景、技术演进及落地实践展开,介绍从 RAG 到 GraphRAG,从 Function Calling 到 MCP 的技术发展路径。

今天的介绍会围绕下面五点展开:

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;visibility: visible;">1.腾讯大模型应用场景

2. RAG 技术原理及优化实践

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;visibility: visible;">3.GraphRAG 技术及应用

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;">4. Agentic 与 Function Calling

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;">5. MCP-Agent 应用开发新范式

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75em;">分享嘉宾|赵喜生 腾讯 高级工程师

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75em;">编辑整理|段志成

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75em;">内容校对|郭慧敏

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;text-align: left;line-height: 1.75em;">出品社区|DataFun


01


腾讯大模型应用场景


首先和大家分享下大模型在腾讯中的应用场景。


1.腾讯大模型应用场景


腾讯业务丰富多样,涵盖微信生态、内容生态、游戏、广告等多个领域,大模型在这些业务中的应用主要集中在以下几类场景:


2.大模型应用技术及发展


腾讯大模型应用技术主要包括模型精调、检索生成和Agent三大类,且在不断发展演进:


3.太极一站式大模型应用解决方案


接下来介绍太极平台如何以一站式方式支持大模型应用的开发与落地。太极平台是腾讯内部最大的机器学习平台,底层统一管理公司绝大多数GPU及存储资源,实现算力与任务调度。在此基础上构建的混元一站式平台,作为公司内部的集样本构建、大模型训练、大模型服务及大模型应用于一体的一站式平台,具备丰富的模型库,可接入文本、多模态、语音等各类模型。


该平台支持两大核心方向的应用:


目前,混元一站式平台已支持公司TEG、CDG、WXG、PCG、IEG、CSIG等各大BG的众多业务运行,为大模型应用的开发与落地提供了全面且系统化的一站式支持。


4.太极Agent应用解决方案发展演进


接下来分析太极Agent应用解决方案的技术发展与演进及其带来的变化。在内容检索生成方向,首先是RAG(检索增强生成)技术,其原理是用户发起查询(query)时,从外部知识库检索相关知识,大模型基于此参考进行回答。与模型微调(SFT)等方式相比,RAG能有效减少大模型的幻觉问题,同时保障知识更新的实时性。然而,当知识涉及长生命周期内容或复杂的人物、事件关系时,RAG便难以应对。为此,微软提出GraphRAG技术,通过引入图结构,利用知识图谱的实体关系网络实现多跳推理与复杂上下文建模,解决了RAG在复杂场景下的局限性问题。


在Agent技术方向,大模型本身仅具备内容理解与生成能力,缺乏执行外部工具的能力(即 “有大脑无手脚”)。为此,OpenAI提出Function Calling技术,使大模型能够理解用户问题及可用工具的模式(schema)描述(如工具作用、输入输出参数),从而将用户问题与工具进行映射。例如,用户查询天气时,调用天气预报工具并输入城市/编码、日期等参数以获取结果。尽管Function Calling为大模型增添了与外部交互的“手脚 能力,但它存在训练成本高的问题,且当模型训练效果不佳时,稳定性及对用户意图与工具的理解会出现偏差。


针对上述问题,去年11月Anthropic发布了MCP(开放标准化协议),该协议规范了大模型与外部工具的交互,清晰描述了双方交互的协议与接口。春节后,随着Manus通用智能体的出圈,MCP技术得到广泛推广。目前,各厂商正积极适配MCP技术以实现应用落地,腾讯的太极机器学习平台也正朝着这一方向持续演进。


下面,重点分享下RAG技术以及Agent相关技术。


02


RAG技术原理及优化实践


1. RAG技术介绍


接下来详细介绍RAG技术的原理,其主要包括数据准备与知识库构建、知识召回与生成增强两个阶段:


RAG技术具有以下优势:


通过这两个阶段的协作,RAG技术实现了利用外部知识增强大模型回答的质量与可靠性,为实际应用提供了更高效、准确的解决方案。


在腾讯内部,RAG技术尽管原理简洁,但应用颇为广泛,相当比例的业务正是基于该技术实现。深入剖析其检索环节,可分为两种匹配方式:一是query与doc的匹配,二是query与question的匹配。这一差异源于知识库组织形式的不同——知识库既可以是单纯的文档片段,也可以由question关联对应的doc构成。若为前者,当用户输入问题时,系统会计算query与doc的相似度;若为后者,则直接查询用户query与question的匹配关系。显然,知识库的构建过程与质量把控,是RAG项目成败的关键因素。实际应用中,我们借助离线或在线实时更新的方式,将原始文本知识库通过向量计算后存储至Vector DB,随后通过RAG技术召回相关文档,最终交由大模型生成回答,这便是RAG技术的基本原理。


2. RAG应用关键挑战


在RAG应用落地过程中,面临着诸多关键挑战,具体如下:


围绕这些问题,我们接下来了解下具体的解决方式。


文档解析部分,联合公司内部其他团队,打造了一个综合性模型,通过一系列编码过程来解析多种格式的内容输入。首先,利用视觉编码模型,以视觉化方式去理解文档,包括其结构和文字内容本身。接着,通过融合模型将编码后的内容进行融合,最后借助文本解码模型,把编码后的内容解码成纯文本,生成原始文本(raw text)。 实际使用中,这个模型优点显著。它能解析各种各样的文本元素,像图片、表格、段落、页眉页脚等都不在话下。应用场景也非常广泛,无论是发票、杂志,还是海报等都能处理。算法方面,它不是单一简单的算法,而是涵盖文档结构排版分析、文字OCR识别、表格识别等多种能力,非常全面。整体下来,在各类文本解析上能达到很高的准确率,这个水平在业内也是比较领先的。


解析完文档后,接下来就是文档切分。我们依据业务特性,提供了多种切分方式:


固定长度文本切分:


通过提供这些多样化的切分方式,用户可根据自身数据特点和业务需求灵活选择,以达到最佳切分效果。

在构建高质量知识库方面,我们采用大语言模型自动生成问答对的技术,主要包含以下三种方式:


通过这些离线知识扩充技术,有效解决了知识库构建中问答对不足或生成单一的问题,为RAG应用提供更丰富、高质量的知识基础。


在索引召回技术方面,团队采用自研的embedding模型,同时配备多个规格的embedding模型,用于对输入文本内容进行编码。此外,引入BM25技术,它是TFIDF(词频-逆文档频率)技术的改进版本,能够基于关键字实现匹配。因此,我们的召回技术主要包含两种方式:embedding召回和BM25召回。对于embedding召回,运用近似最近邻(Approximate Nearest Neighbor)检索技术,该技术可快速在向量数据库中召回与用户查询(query)的embedding最匹配的内容,有效提升检索效率。通过这两种召回方式的结合,实现更精准、高效的知识检索,为后续的内容生成提供可靠的信息支持。


接下来介绍更上层的方案——多路召回的rerank技术。一般来说,单路召回的内容可能无法全面覆盖用户的查询(query),这种情况下就需要多路召回技术。多路召回的概念更为广义,它并非局限于从多个向量数据库检索,而是可以通过多种方式进行召回,例如从向量数据库、其他搜索引擎,甚至是外部API调用等,这些都属于多路召回的范畴。


召回完成后,我们会基于一个rerank模型,对用户的query与召回的内容进行细粒度的重排。重排结束后,选取排名靠前(top)的结果,将这些经过排序的内容输入到大模型中,供其参考回答。通过这种rerank技术,能够使回答用户问题的效果和知识覆盖范围更加全面,确保更精准地满足用户需求。


最后讲讲如何回答用户问题。当召回内容后,需要精心调整Prompt,使其更好地理解用户问题并完成回答。具体实践中,要将Prompt定义清晰,包括明确角色、要求、输入输出格式,并添加一些示例,帮助模型更好地理解。从文档解析、分片,到最终的模型与Prompt,每一个环节都要保证高质量,如此才能实现RAG应用的高质量落地。有些用户可能认为,简单整合代码或模型后,模型就能良好回答问题,这其实是误区。在整个过程中,知识准备、文档切片方式等各个环节都做到位,才能达到理想效果。以上就是我们在RAG技术方面的介绍与应用落地的情况。


03


GraphRAG技术及应用


1.RAG局限性


接下来我们看看GraphRAG的应用。比如现在问个问题:“孙悟空的如意金箍棒是怎么来的?” 从知识层面看,金箍棒是太上老君用九转镔铁炼制,大禹治水时用来测江河深浅,治水后成为东海定海神针,最后东海龙王把它给了孙悟空。这涉及到很长的上下文。在小说或剧情场景中,简单的片段召回无法回答这类问题,需要对整个章节甚至全部内容有更深入的理解才能解答。这时就会发现,普通的RAG技术难以做到这一点,因为它在处理复杂长上下文及实体关系推理时存在局限。


2.GraphRAG:基于图的检索增强方法


在RAG技术难以应对复杂长上下文问题时,我们就会引入GraphRAG技术。这其实是很自然的,因为在大模型出现之前,自然语言处理中Graph技术就是很重要的一部分,所以随着大模型发展,我们很自然地将这两者关联起来。简单来说,GraphRAG与RAG技术的使用流程非常一致。首先是建索引,也就是把知识以图(Graph)的形式表示出来;第二部分是召回(retrieval)阶段,将用户的query在图知识库中关联上下文进行检索;最后让大模型进行回答。


应用Graph技术后,它展现出诸多优势:对长上下文的理解更出色,知识整合能力更强,面对如“奥巴马的妹妹的老公是谁”这类复杂问题时,推理能力显著提升。此外,和RAG技术类似,它也具备很强的可解释性。


业务里的具体应用:就拿《长相思》电视剧剧本来说,我们在原版基础上对剧中人物进行构建,通过GraphRAG技术给剧本做图索引,构建知识库。整个过程是这样的:首先对文档进行切片,切完片后,用一个专门生成图的prompt,让大模型从这些切片(chunk)里提取其中的关系、实体以及它们之间的联系。最后生成人物、事件、地点等实体,还有实体间的关系,比如谁和谁是兄妹关系,谁和谁是情敌关系,另外还有局部社区聚合后的community report(社区报告)以及embedding(向量化)表示。这样一来,在图(Graph)里知识的表示方式更复杂,而且通过多种形式组织起来。


应用了Graph之后,在剧情或角色扮演类的场景中,就能解决RAG技术的一些不足。比如问“你是谁?你母亲是谁?你的整个故事是怎样的?”这类问题时,就不是单纯从某一章节片段找知识,而是从人物发展的整个生命周期,以及该人物和其他人物的关系等方面去全面回答,这样就能更准确、更全面地回应用户的问题了。


04


Agentic与Function Calling技术


1.Agent应用及技术原理


接下来我们进入第二部分的应用,也就是Agent和MCP这一块。之前咱们看了RAG和GraphRAG技术,它们主要用在问答场景中,根据用户问题,参考检索到的知识来回答。但还有另一种场景,能不能让大模型帮我们做事呢?比如给大模型一个任务,让它安排一次出行计划,这个计划有时间、预算、天气等约束条件。这时就会用到Agent技术。Agent具备思考、观察和执行的能力。思考是指理解和规划用户的问题,执行(action)是调用外部工具,观察(observation)是根据工具执行结果进一步思考下一步行动,通过这样一步步迭代,最终完成用户的任务。


上图是基于大语言技术的Agent被引用最广泛的一种定义方式。它其实是一种高级的AI系统,能够基于复杂的上下文进行顺序性理解,还可以思考、记忆回答的上下文,并且能使用外部工具,最终完成复杂的问题。所以从这里看,它具备规划(plan)功能、记忆能力,以及执行外部工具的能力。


2.Function Calling在太极中的实现及应用案例


在太极平台中,Function Calling的实现是这样的:我们设计了一个精巧的prompt,让模型执行COT(思维链),根据用户需求和工具执行等输入,输出类似plan、action等结构化数据格式。


举个例子,当用户发起一个查询(query),比如“帮我定一张明天的票”,planner(核心大模型)会先思考。此时模型发现信息不完整——订什么类型的票(飞机票还是火车票)?从哪个城市到哪个城市?于是模型会通过反复反问、确认,让用户补充更完整的信息。经过多轮交互,当模型认为信息足够时,就会调用外部工具,执行查询或订单相关操作。如果操作中出现错误,它还有重试机制。最后,当所有任务都完成,模型就可以给用户最终的回答了。整个过程就是在太极平台中基于Function Calling的实现,通过这样的方式让大模型更智能地完成用户任务。


接下来看一个应用实例,在与腾讯云合作的业务场景中,涉及合作伙伴及交付等业务。我们借助Function Calling技术,实现了“一句话完成工作”的便捷操作,例如查看任务执行历史、创建任务等。最终,我们将这种能力集成到产品中,用户只需通过一句话就能触发这些操作。在执行过程中,Function Calling会自动筛选并调用合适的基础组件来完成相应工作。这便是Function Calling在实际业务中的一个典型应用。


05


MCP-Agent应用新范式


最后了解下,MCP新技术引入后,对Agent应用范式的影响。


1.MCP技术及生态


先看MCP协议,它的全称是Model Context Protocol(模型上下文协议),这里的“上下文”更多指模型与外部工具交互的上下文。从图示中可以看到,重点是模型与外部工具的交互部分,通过MCP协议的定义,能让这种交互以更标准化的方式执行外部工具。 具体看MCP技术的组成:


执行过程中,MCP client与server之间通过标准输出或流式SSE等协议交互,MCP server则对接外部工具、资源(如文件系统、数据库)、prompt等。 需要补充的是,MCP host不仅指安装了MCP应用的程序,还包括应用所在的主机。比如,当应用需要调用浏览器或进行文件系统操作时,就会用到主机上的系统应用或文件系统。所以,MCP host的范围涵盖了应用、主机及主机上的资源(文件系统、其他应用等)。

现在详细看一下MCP在Agent执行中的运作流程:当用户发起问题时,大模型本身仅有“大脑”(理解能力),而无“手脚”(执行外部工具的能力)。处理用户请求时,MCP负责为模型赋予“手脚”。具体步骤如下:


这一过程设计精妙,通过自然语言或文本描述动作,多次迭代调用大模型,依据其输出决定执行工具或结束工作。如此一来,Function Calling更明确,各厂家在标准化的function描述下优化模型,使调用外部工具的流程更加统一规范,展现了MCP处理用户query时完整且有序的技术调用链路。


MCP技术给开发范式带来的变化。在MCP出现前,若想让大模型具备调用外部工具的能力,每个厂商都需在自身应用中分别实现不同厂家工具的调用,同时描述工具的schema。这引发了一些问题:一方面,相同工具在不同厂家的调用实现需各自进行,且技术与方式各异,导致使用效果差异较大;另一方面,应用开发者调用这些工具时,对工具的熟悉度和特性理解可能不够全面。


而MCP出现后,情况有了显著改变。首先,工具的提供者不再是应用开发者,而是真正的服务提供者,他们可通过MCP方式开放自己的服务。以往业界通常以API方式暴露服务,如今有了新选择——MCP server,这在AI大模型时代,相当于提供了一种类似API的全新服务对外开放形式。对比传统的function calling,其差异在于MCP构建了服务或外部工具与大模型之间的接口。当这个接口和桥梁确定后,后续工作便是让大模型更好地兼容该协议,同时各厂家能在MCP上开放自身服务。这便是MCP为Agent应用及开发带来的范式转变。


接着了解下MCP的技术生态系统。右边这张图是a16z公司发布的MCP市场地图。从图中能看到,一般关注这几个部分:


从过去半个月到一个月的情况看,MCP生态发展极为迅速。应用支持越来越多,各个厂商纷纷拥抱MCP(前段时间OpenAI也宣布支持),能MCP化的服务也日益丰富,整个生态系统正不断壮大。


2.太极MCP平台架构及发展思考


了解完MCP生态后,再来了解下MCP server在太极平台的应用。MCP应用很多是桌面端的,但企业内部应用场景不同,安全和风险管理要求更高。在太极平台,我们从MCP server开发和MCP应用两部分来实现。


这就是我们在企业内部对MCP协议的支持与实现,既满足企业安全需求,又方便开发与应用。


对MCP发展的思考:MCP是个很新的技术,我们以乐观积极的态度对待它。如果MCP发展得好,会带来哪些变化呢?


这样用户无需在各个应用间切换,通过指令在一个入口完成复杂业务。虽然从商业化角度,厂商可能有能力壁垒,但从技术发展和未来改变看,值得这样思考。

以上就是本次分享的内容,谢谢大家。







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5