易慧智能成立时间不长,背后依托的是易车公司 20 多年来积累的客户、数据以及行业经验。公司围绕智能体以及群体智能方向于今年初与清华大学自然语言处理实验室、面壁智能达成战略合作,结合他们先进的技术与易车的数据积累以及行业 Know-How,推出了面向 ToB 端的基于大模型的汽车行业群体智能解决方案以及相应的技术白皮书,白皮书中对于群体智能的整体方案有比较详细的解读。
一、群体智能解决方案概览
1. LLM 与 Agent
群体智能,与其紧密相关的两大模块为:LLM(大模型)和 Agent(智能体)。如果说 2023 年是大模型技术元年,那 2024 年应该是大模型应用的元年。目前最炙手可热的大模型应用应该是 Agent,它是一个能够自主完成目标的智能体,具有规划和执行的能力。用车类比的话,大模型的推出相当于汽车引擎的技术突破。而 Agent 就像一个整车,只有引擎是不够的,还需要配骨架、座位、方向盘才能搭载人从一个地方驶向另外一个地方。所以 Agent 是基于大模型之上包了个外壳,使它能够做一些具体的事情。
2. AI 传统工具 VS AI Agent
Agent 与传统人工智能的差别是什么呢?其差别在于传统工具是人定义好一个流程,比如要质检一通邀约客户到店的对话,我们首先需要行业专家去定义质检流程及质检项。人工智能在这个过程中能在某个质检项的检测中提升质检的准确率,但整个流程和质检规则实际上还是人类主导。而 Agent 是不需要人去干预,它自己做规划,包括判断通话流程是否专业,中间有哪些不合规的地方。所以 Agent 相对 AI 传统工具根本性的一个差别就是原来是以人为主导,现在则是以大模型 AI 为主导。
3. 超级个体 VS 群体智慧
那是不是可以认为有一个超级智能体就能解决所有问题?从人类社会、自然界角度来看,通过多个个体共同去完成一件事,往往能够比超级个体达到更好的效果,中国有句老话:三个臭皮匠,顶个诸葛亮,就是这个意思。自然界的例子是蚁群效应:整个蚁群能够根据环境变化快速进行调整,并不是依赖于既有的分工和流程。例如,当蚂蚁在同时发现食物后,会分别走两条路线回到巢穴,并释放信息素,最终整个蚁群会选择最近的路线去搬运食物,这个就是群体智慧的体现
当前学术界群体智能方向的进展也非常快,比如有个 paper 设计了一个实验,通过构造 2 个 Agent,去解决同一个问题,其中一个 Agent 扮演负责人,另外一个 Agent 扮演咨询师,他们通过多轮对话、启发、讨论的方式去把解决方案从 0 到 1 的打磨完善出来。这个最终的解决方案对比只用单一 Agent 生成的解决方案要更加专业。我们认为这是“智能的第二次涌现”,即群体智能。智能的第一次涌现是大模型,现在是多个 Agent 去交互碰撞,产生第二次智能。
两次智能涌现的本质是什么呢?第一次智能涌现是神经网络的神经元达到一定量级后产生了质变,大模型技术其实已经发展很多年了,包括最早 2018 年 Bert 本身也是大模型,之所以 GPT 带来革命性的影响,是因为其参数超过了一定量级,突破了 100 亿、1000 亿,甚至到 1 万亿,量变产生质变。第二次群体智能的涌现的本质是,当单体 Agent 足够多,各行各业都有专业的 Agent,如果把这些 Agent 都聚集起来,协同合作的去完成某项任务,这个过程中有可能会产生新的发现。我们预判接下来群体智能技术将会受到更多关注。
从实践上看也是会经历这样的过程,比如有一个具体任务,写行业报告,现在通过单智能体,可能需要准备一个非常复杂的 prompt,里面需要涵盖如何去写摘要,框架、调研、总结,每个篇章要去找数据支撑,然后完善篇章内容,整理成报告。这样一个任务用一个 Agent 是很难实现的。但是如果我们把任务进行拆分,比如设计 4 个 Agent,第一个 Agent 专注去做需求分析;第二个 Agent 去找素材和论据;第三个 Agent 把前面素材整理成报告;最后一个 Agent 审核校验。实际上现实中人们也是这么做的,用多个 Agent 实现,每个 Agent 只需要把一项技能在 Prompt 中描述清楚,把单个 Agent 的能力做到极致。所以在真正落地的时候,我们自然就会向群体智能方向走。从理论和实践上来看,群体智能一定是未来的一个发展方向。
4. 基于大模型的汽车行业群体智能业务架构
如上图所示是基于大模型的汽车行业群体智能整体的业务架构。主要分为三层:
最底层是 YiCPM 汽车行业大模型,它不是某一个具体的模型,而是多个大模型的集合,包括语言模型、图像模型、视频模型、语音模型等,考虑到大模型发展日新月异,一方面我们会积极拥抱和尝试技术领先的开源大模型,另一方面我们也会探索自研,自研还是往能交付的小参数模型方向走。因为几十亿、上百亿参数的模型成本太高,企业不会买单,所以为了降低交付成本我们主要在小模型方向进行探索。
中间层是整个解决方案的核心,智能体平台。我们与清华大学自然语言处理实验室、面壁智能公司合作,依托于 XAgent 和 AgentVerse 两个开源框架,构建了我们自研的 YiAgents 群体智能框架。
再往上是依托于这个框架的上层应用,主要是从营销场景出发找到的五个落地场景。
上图右侧是生态矩阵,数据和行业 know how 对于做大模型很关键,真正要解决行业具体的问题,需要行业的一些工具和能力,这是一个共创的过程。
二、Yi Agents 群体智能平台
1. 构建多智能体框架面临的关键问题
要设计多智能体的框架,会面临以下几个比较关键的问题:
- 要做群体智能,先得有单体的 Agent,再利用单体智能组合产生群体智能,对单智能体进行设计和划分,单体智能体划分得越明确,群体智能方案越好做。
- 有了多个单智能体之后,智能体们所在的环境也需要做定义,所有的智能体都在一个环境里面工作。
- 最后是多个智能体之间如何交流,需要定义他们之间的交流链,是串行的或者并行的,要考虑不同应用场景智能体间的通信方式。
2. 设计多智能体交互框架的四大关键要素
设计多智能体交互有四个关键要素:
- 基础设施:是否足够通用。
- 协作模式:需要支持多种协作模式,人类社会也是如此,比如有串行、并行,先串行再并行,两个智能体之间是合作还是竞争等等。
- 执行能力:需要有能够使用工具的能力。垂直领域的壁垒就在于其不是解决一个通用的问题,需要用行业特有的一些工具去实现。如果没有工具,就要能够创造工具。
- 人类参与:系统是否允许人类在执行过程中参与以及如何参与。
3. 技术框架
上图所示是白皮书里偏流程的技术框架,包括五个具体的技术点:
- 首先做目标和任务拆解,即任务分成几步,每一步骤怎么做。
- 拆解出的每一个任务,谁去做,这里需要有单体智能,每一个智能体要足够专业能去完成这个任务,这里涉及到智能体的技术。
- 多个智能体协作:多个智能体之间要有交流链和 workflow,它们之间是怎么交流的。
- context:即环境,多个智能体在一起需要共享和沉淀一些信息。
- 对齐技术:大模型的优势是很有创造性,但又可能容易产生幻觉,这是一对不可调和的矛盾,这两者之间要有一个 trade off。
多智能体技术框架按上述五个点拆解来讲。
(1)目标驱动的任务管理
群体智能如何保证多个单智能体都能完成任务?利用通用的群体智能框架,它让不同角色完成不同的任务。首先对任务进行规划,根据任务的 know-how 和经验知识,拆解成一个工作流,分配好任务需要多少角色去完成,每个角色干什么。任务规划完之后开始执行,Agent 需要按照任务规划的每一步骤去执行。Agent 的输入来自 prompt,因为大模型所有的输入都是 prompt, 为了让其通用化,需要把大模型 prompt 的 template 实例化。所以当需要执行一个任务时,流程执行到了哪个步骤,把该步骤的 prompt 实例化,然后去执行即可。最后是任务总结,目的是不断地反思以做得更好,可以迭代一轮或者迭代多轮,依据实际应用场景而定。
(2)LLM 驱动的智能体
群体智能的核心就是单体 Agent,而 Agent 的核心要素包括记忆、规划、感知、执行和使用工具的能力等。这些能力都是大语言模型提供的,上述架构也是当前 Agent 比较通用的技术,未来随着发展,会扩展记忆,记忆越多,能容纳的知识经验就更多,但是大模型上下文空间始终是有限的,因此会更多考虑扩展上下文长度,比如当前的 Kimi,如果空间仍然不够就会考虑压缩。
我们的底层框架是 XAgent,XAgent 在基础 Agent 框架基础上引入了自我反思的过程。类比人类也是如此,优秀员工和普通员工的差别在于优秀员工干完一件事自己就会总结反思。XAgent 框架在单体 Agent 的基础上加了两个循环,即内外循环,内循环是执行+自我反思,即任务执行完毕后自我反思这个结果是否满意,是否还能再优化。外循环是通过多轮反思实现整个迭代过程。
(3)多智能体协作
多智能体协作本质是一个 workflow,从一个 Agent 到下一个 Agent 要解决的最关键的问题是 prompt 实例化,即要把 Prompt Template 里面的占位符具体化。目前业内一般通过消息总线存储信息,比如从任务下达,任务拆解,到第一个 Agent 执行完,第二个 Agent 执行完、人类交互等所有这些信息都可以以 message 形式存在于消息总线里面,当某个 Agent 准备执行时,它的上下文就是当前消息总线里面的所有消息历史,Agent 可以自己分析现在处于哪个环节,累计产出了哪些中间成果,接下来干什么,所以协作的本质就是通过消息总线传递信息。如果信息复杂的话可以再用一个单独的 Agent 把信息进行提炼总结抽取,把 Prompt Template 实例化,这样每个 Agent 自然就能串起来。
(4)上下文交互
消息总线等同于上下文、全局变量、智能体执行的环境,消息总线可以用 message 队列简单实现。智能体执行过程中产生的所有信息都是 message,message 包含以下元素:
- 发送者:可能是用户发的,也可能是上一个 Agent 发的,还可能是系统发的。
- 接收者:要定义好一个 workflow,得知道下游是谁,谁能接收该消息,谁可以忽视。
- 消息类型:消息类型有很多,任务描述、Agent 输出结果、系统的状态等。
- 消息内容
(5)平衡自主性与一致性
大模型非常具有创造性,但问题是太让其自主发挥会出现幻觉、前后表述不一致等现象,所以需要考虑自主性和一致性的折中,当前阶段它还是离不开人的干预和反馈,需要不断的进化,找到一个平衡点。
群体智能框架的技术实现如上图所示:首先有一个 Planner 生成计划,然后分配任务给 performer 或叫 executor,来对每个 Agent 进行 Prompt Template 实例化,等所有 Agent 执行完毕后,由 Reviewer 对整个任务执行过程和结果进行复盘总结,依复盘情况可以执行多轮。
三、群体智能技术在行业中的应用
大模型为汽车行业带来的价值包括:
- 高效的流程管理
- 定制化的营销体验
- 增强用户服务感受
- 市场分析与预测
- 跨部⻔协作的促进
以营销场景为例,营销首先是要获客,获客后要做线索清洗,一般业内是根据 DCC 电话进行第一轮筛选,区分高意向、低意向客户,针对高意向客户直接邀约到店,低意向就开展后续的用户运营,比如通过加企业微信通过 IM 做一些转化,转换成高意向,再邀约到店,最后购车成交。
整个流程里衍生出来五个核心落地场景:
- 数智研究院:整个造车流程有新车设计、研发生产、新车发售、口碑反馈,行业调研、战略规划等等需要数据决策的环节,之前可能需要咨询公司专业人士去做,现在可以把它拆成几个 Agent 协作完成,比如业务分析、数据抓取、数据分析、报告整理和校对。
- 舆情运营:舆情运营比如说对于公关部门,有时候需要危机公关,我们可以帮助车企及时发现有风险的舆情能挽回很多损失。这部分需要监控主流社交媒体上的舆情数据,Agent 需要对评论做正向、负向、中性的判断评估,找到热点事件,评控引导舆论,并提醒厂商人员介入。
- 新媒体运营:主要用于生产营销素材,比如当前依赖人工生产短视频和海报,现在机器可以生成素材,生成后到社交媒体上投放,然后关注投放效果,查找数据并进行效果分析。
- 用户运营
- 集约 DCC
以用户运营为例的话,主要有以下 Agent:用户运营专员、质检专员、标注专员、建档专员等。
如上图中的案例,要邀约一个用户到店,首先提供一些用户信息,智能助手会给出一个工作流,这个任务需要 5 个步骤去完成。先给客户评级,接着生成邀约的开口话术,参照话术进行客户对话邀约。对话结束后进行建档,最后进行质检。全部流程都是自动执行的。
接下来按照流程逐一完成各个步骤。
整个任务完成之后,做复盘总结,自我反思是否存在漏洞,哪些环节可以改进。
(是否需要插入视频演示)
四、汽车行业群体智能技术生态
汽车行业群体智能生态包括 4 个部分:
1. 行业解决方案伙伴
需要依赖一些行业 know how,比如专业的调研报告、分析用户群体等,需要基于行业方法论。当前在某些具体场景,我们希望能够得到行业伙伴们提供的一些行业经验,并将其放入知识库。随着 Agent 积累的经验越来越多,其能力也会不断提升。
2. 行业数据伙伴
大模型本身差异不大,而影响其效果的核心还是数据。易车更多偏 C 端的数据,我们也希望获得一些车企经销商对话的语料,以及机构的行业咨询报告等,有了这些数据才能训练模型。
3. 大模型伙伴
我们系统底层模型是一系列语言模型、多模态模型的集合,我们会持续接纳业内专业的大模型,因为不同模型在不同任务上的效果是不一样的,不可能用一个模型解决所有问题。
企业侧模型选型,考虑到成本因素,未来还是将会向小参数量模型方向发展。
4. 行业工具伙伴
当前业内做 Agent 的企业很多,最终的壁垒有一部分会体现在行业工具上,比如营销场景需要托管企微、生成海报等,很多公司在某些领域已经深入,没有必要所有工具都自行研发,每一个环节应该由更专业的人去完成,才能最终把事做成做好。所以希望整个生态能够实现开放共赢。
各个企业贡献各自的力量,才能合作共赢,促进整个生态的发展。
五、总结和展望
技术的飞速发展,帮助我们站在了一个全新的视角,眺望汽车行业即将踏入的辽阔天地。在智能化的浪潮下,我们预见一个更加智慧、高效能、用户至上的汽车新时代正在加速到来。
未来大模型群体智能将帮助企业进一步降本增效,并开启用户运营新篇章,做到千人千面,进一步提升客户体验。在各大企业的创新与合作下,整个行业将共建智慧汽车新生态。
六、Q&A
Q1:技术框架关于任务的规划,如何把一个大的任务拆解成一个个小的子任务,如果拆分的力度过细,调用链就可能会比较臃肿,如果拆的力度过粗,子任务完成的正确率就会降低。在这方面是否有一些方法论或实际经验可以参考?
A1:这方面肯定是没有标准答案的,对 Agent 的定义,包括我们现在拆解一些行业场景,一件事是由一个 Agent 做还是三个 Agent 做也是没有标准答案的,需要通过实践去检验。从我的经验来讲:
- 第一点,planner 是非常重要的,对于某些任务来讲,它要有一些行业 know how 知识。比如一个行业报告,我们跟罗兰贝格、IBM 合作,他们给我们写出来一个命题到底该怎么拆、怎么做;
- 第二点,每个 Agent 的定义设计,要描述得足够清晰,每个 Agent 干什么,比如要用户运营,第一步,是一个评级专员,有了评级才有后面的针对不同的用户,才有不同的策略,这些信息一定要放到 Agent description 里面,给到 planner。提示越多它执行起来越简单。
- 第三点,一次规划可能达不到理想状态,要反复尝试,经过多轮调整,才能达到更好的效果。
以上是一些建议。
Q2:大模型 Agent 在舆情分析这块具体参与了什么样的工作,和传统的NLP 技术相比,其优势在哪里?现在很多 NLP 分析工作都已经被大语言模型替代掉。
A2:Agent 其实与大模型不在一个维度。原来 NLP 只是在解决某一个节点,某一个工作发挥了作用,比如分析舆情,要有一个情绪识别模型判断评论到底正向负向,是在研究其中一个事如何能做得更好。现在,大模型的厉害之处在于原来干一件事要训练一个模型,现在一个大语言模型可以把所有事情都做了,大大提高了效率。而 Agent 的作用是什么呢?比如舆情这件事首先得去监控全网的数据,定期收集这些数据,然后去分析,生成一些 action,比如简单的回复等等,有一些 todo 拆解。Agent 就是对一件事进行拆解,每一步完成不同的工作,从规划到执行自动化地完成整个任务。
Q3:多智能体架构如何利用外界信息形成一套反馈和调节机制?因为反思其实是内部的。
A3:反思还是需要借助消息总线,所有信息包括它自己生成的数据、外界给它的数据、人工的一些指令,都可以变成消息,然后放到消息池里,下一次 Agent 要具体的操作时,会有输入 prompt,可以从 Prompt 定义很多 context,包括实时消息,上一次做完的结果等。比如质检,刚开始没有任何知识,先质检了一轮后质检主管反馈有问题,就可以把这个信息反馈也加到 message history 里面,下一次质检就有上一次这个经验。并没有改变模型的参数而是把知识都沉淀到经验库里,这个经验库可以全部或者部分进入到 Prompt 中,如果上下文空间足够的话,全放进去,如果不够的话,可以通过抽取摘要进行提炼再加入进去。这就是反思的实现原理,没有改变模型参数,只是增加了上下文的经验数据。
Q4:现在已经把传统的工作流 Agent,后续它肯定还存在一些问题,那多智能体的这样一个系统迭代方向的衡量的标准怎么衡量的?
A4:多智能体处于一个比较前沿的阶段,受限于知识,它目前还只能处理有限的一些任务。后面经过自我学习,不断进化沉淀经验,其对于任务的覆盖能力会增强。所以整个数据飞轮反馈机制是至关重要的。另外,随着一些周边工具的积累,其能力边界也将得到拓展。
Q5:关于反思,内循环的那种反思可能更多的是将历史的一些经验数据带到下一次的上下文里面,如果有过多的较为庞杂的历史经验的话,会不会影响到最终的产出结果?目前对于反思是如何去评判的?我们人类的一些经验可能并不可靠,那机器提示自己的一些经验,该如何保证其正确性呢?
A5:针对第一个问题,很多数据是质量较差,而放到消息总线的经验库的应该是比较高质量的数据,把经验和知识提炼成一个高质量的经验库。精炼一方面也得通过人工的标注,比如离线的标注,或者通过大模型的帮助进行提炼,我们有一个数据标注训练师的 Agent,就是在做这件事。它也需要人工进行干预。
第二个问题,怎么评判反思的结果。设计这个产品的机制,在产品侧可能要预埋一些东西,比如一个对话,判断对话效果好不好,如果回答一个问题以后,后面客户又追问了好几次,那通常情况下首次回答的效果就是不够好的。再比如质检,要评判质检效果的好坏,很重要的标准就是评判完了客服没有异议。所以这其中涉及工程化的内容,把人类反馈融合到整个系统里并标记。除此之外,它不一定是自反思,也可以引入中介,比如再引入一个模型 GPT4,作为一个裁判,让它来判断。甚至可以引入多个裁判,最后投票选出来一个结果,我们一般做自反馈最好的方式是再引入它的 partner,它干任何事有个 partner 去对应找漏洞,然后触发两个人思辨,效果会比一个反思更好。
Q6:多个 Agent,每个Agent 里面有自己的 prompt,还有一些相关的设计。一是关于 prompt 内容的结构,二是 prompt 的内容,应该是跟领域或者您现在尝试的结构或者体系是有关系的。这部分是不是做了很多的尝试?
A6:Prompt 针对不同模型和不同的训练数据是不一样的。但 prompt 也会有一定套路,比如首先给背景、目标、听众,然后明确输出结果等等。
Q7:在这种套路下,每次出来的结果差别大吗?
A7:大模型运行多次的结果肯定是不一样的。当然你可以调节,让它尽可能别发散,那就是一个发散创新和不发散之间度的平衡,但即使不一样,也可以通过正则等抽出来一些核心关键点。
Q8:我们设计了多个 Agent 和不同的 prompt 结构,那是我们基于当前的 LLM 的底座的能力去设计的,会不会随着 LLM 技术的发展,我们在以前的 Agent 基础上面做的内容和生态就没办法继续了?
A8:随着各项技术的发展,原来代码肯定是要调整的,这是必然的。
Q9:长期来说,我们当前的工作是起个大早,是不是做了很多工作都是没有意义的?
A9:行业最后会积累下来一些不变的东西,比如沉淀下来的数据、行业知识经验库,还有工具,当你有了这些东西,有了知识和行业 know how,有了数据和工具,那么未来模型改变,我们也能够快速改造出一套新的系统。系统本身的价值远不如其背后的行业优质数据的价值更大。