企业宣传,产品推广,广告招商,广告投放联系seowdb

简单了解大模型 智能体 传统软件工程思维依然适用 LLM

说到大模型应用的理想态,我相信很多人都可以想到《钢铁侠》里面的贾维斯,可以根据环境、天气、对手火力等情况,给钢铁侠提供决策指导或者自主决策。

大模型Agent就是人们希望借助大模型实现的类似于贾维斯一样智能助手能力,它具备环境感知能力、自主理解、决策制定以及行动执行的能力。

在实现Agent架构过程中,有很多思维方式和传统软件工程思维是相似的。

软件工程是对物理世界的逻辑映射,所以面向对象思想大行其道(领域驱动的内核也是面向对象)。

Agent架构,则是面向目标的架构,通过感知、思考、行动的紧密结合,完成复杂任务。

智能体(Agent)是一个可以自主思考,理解用户需求,还能进行任务拆解,通过调用外部工具扩展自身能力的大模型应用。

主要包含以下几部分:推理规划、获取存储记忆、调用外部工具、执行推理动作。

感知组件:是Agent与外部世界互动的桥梁,负责收集和解析环境数据,就像自动驾驶车辆的雷达、摄像头、传感器等感知元器件。

记忆组件:记忆分为长期记忆和短期记忆,允许Agent对记忆的存储和检索。短期记忆如客服的多轮对话,长期记忆的如存储用户特征,业务数据等,通常借助向量数据库实现快速存取。

工具使用:Agent通过调用外部工具增强自身能力。一般是各种工具或者API、插件等。

行动组件:是Agent执行任务的具体行为,完成对环境的响应。比如一个智能家居控制系统,可以根据环境湿度、光度调节家中照明。

在具体落地上看,智能体(Agent)是一套工作流,比如可以用coze或者dify以工作流的方式搭建一个智能体,每个编排节点都是调用的外部的API(类似于function call)。

比如UC伯克利打造的端侧Agent,slogan就是“为函数调用而生!”

也可以和RAG结合,Agent通过RAG获取专业知识,如专业数据、学术报告、行业报告等,增强智能体知识的广度和深度。

比如一份财报分析Agent,可以自动完成数据收集、分析、报告生成,技术上包括架构设计、Prompt设计、数据获取、RAG检索、LLM处理、报告生成等。

实现Agent,可以借助如LangChain或者LlamaIndex主流大模型基础组件,里面已经对大模型、文档加载器、向量数据库、嵌入模型等做了抽象封装,可以极大简化开发过程。

但结合到具体业务之下扩展性较差,难以和企业中现有的IT系统进行低成本集成,也可以选择自建Agent架构的方法。

在Agent架构落地上,其实和传统的软件架构非常像。

最简单的思路,你可以将大模型视为一个高内聚的存储与检索基础服务。

比如,当用户通过Prompt发起一个需求时,一个路由组件对Prompt进行推理解析,以及意图分拆,并将不同的意图任务路由分发到不同的专有小模型上(可能是通过特定数据微调过的模型)。

如果需要进行更复杂的任务拆解,可以将路由模块中的任务推理模块单独拆出来,然后将各种专有模型的答案汇总,生成一个较为全面的答案。

如果想要提升请求响应的速度和解决模型幻觉和推理慢的问题,可以在架构中引入缓存或者向量数据库。

因为有了缓存,后续类似Prompt的检索答案生成速度就很快了。

上面几种架构面对的都是较为简单的场景需求,但它们也算是Agent,一个标准的Agent应该是包含规划、执行、观测、重新规划几部分的。

对于用户输入的Prompt,Agent首先做规划,将需求拆解成若干子任务,然后对每个子任务分别执行,同时对每一步执行过程和结果进行观测,如果出现观测不合格的情况,就重新规划-执行,直到观测结果合格生成答案。

更复杂的Agent架构,是将以上几种模式组合起来。

随着大模型越来越成熟,很多问题幻觉、成本问题陆续被解决了。

学习和掌握大模型也不再需要特别专业的知识了,掌握基本的微调基本上可以满足业务需求,基本上你可以把他当做一个存在和检索中间件使用了。

在了解和落地大模型应用过程中,越来越发现传统的软件工程的价值并不是消失,反而变大了。

因为软件工程思想,本质上是一种工程思维,是一种以合理抽象、低成本扩展为核心的建模思想,大模型再强大,目前也只能是工具属性,作为整个数字化、智能化业务架构中的一环,软件工程思维,可以非常直观的让你知道大模型应该嫁接在哪里,以及如何更好的发挥大模型的价值。

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender