写点什么

LLM 智能体工程落地思考

作者:数由科技
  • 2024-08-01
    北京
  • 本文字数:6045 字

    阅读完需:约 20 分钟

LLM智能体工程落地思考

人工智能领域著名教授吴恩达在今年 3 月份红杉资本的人工智能峰会(AI Ascent)以及最近 Snowflake 峰会开发者日上都发表了关于 AI Agent(人工智能体)的演讲。演讲中,其分享了对 AI Agent 未来发展潜力的展望。认为 AI Agent 能够让人工智能胜任更多种类的任务,甚至可能比下一代基础模型带来更大的 AI 进展。

    关于吴恩达教授对 AI Agent 可能比下一代基础模型带来更大 AI 进展的观点,笔者无法判断。但 AI Agent 能胜任更多种任务,成为 AI 工程落地的重要手段的观点,笔者是深以为然的。去年业界在探索 LLM 工程应用场景时,逐渐聚焦到“检索增强生成(RAG)”和 “智能体(Agent)”两个方向上。RAG 的相关技术方案去年爆火,包括向量算法、向量库、Rerank 等技术得到了迅猛发展。但该技术只能做到初步激活客户的私有数据,利用 LLM 的总结归纳能力,完成垂域知识的问答。但这还远远不够,面对 LLM 不断进化所表现出的强大推理能力,业界希望 LLM 能够独立或辅助承担更多的工作。AI Agent 成为一个不二的选择,这也是它在 2024 年爆火的原因。

什么是 AI Agent

    AI Agent 是一种能够感知环境、自主规划、决策、执行动作以及不断学习、改进的智能实体。由于其具有对外部环境的感知和执行动作的能力,使其具备了可以胜任更多任务的可能。一般而言,LLM 被视为 AI Agent 的大脑,通过其强大的推理能力完成规划及决策。

LLM 赋能的 AI Agent 主要组成如下:



Ø  传感器(I/O Sensors)

感知外部环境,向 Agent 提供环境信息,触发 Agent 进行响应。

Ø  规划(Planning)

子目标分解:Agent 将大任务拆分为更小的可管理的子目标,使得可以有效处理复杂任务。

反思与完善:Agent 对历史动作可以自我批评和自我反思,从错误中学习并在后续步骤里完善,从而改善最终结果的质量。

Ø  记忆(Memory)

短期记忆:上下文学习即是利用模型的短期记忆学习。

长期记忆:为 agent 提供保留和召回长期信息的能力,通常利用外部向量存储和检索实现。

Ø  工具使用(Tools)

对模型产生响应时缺失的信息,Agent 采用调用外部 API 或执行代码来获取额外的信息,包括:实时信息,专有信息等。

智能体垂域工程落地面临的问题

AI Agent 的高速发展使我们可以预期到,未来它有能力解决和提升客户众多方面的工作效率。比如现在我们已经可以看到一些法律、金融、医疗类的智能体开始提供服务,并取得了一定的效果。但这些智能体受限于运营成本、算力成本等因素,目前更多是以公共服务的方式对外赋能。而这种服务方式无法满足客户的私有化部署需求。国内众多的大中型企业、政府、军队等,出于数据安全和政策要求,需要以私有化的方式来部署和应用 AI Agent。这将成为未来 AI Agent 落地最重要的场景。

可以预期,随着 LLM 参数规模的持续优化以及推理计算硬件成本的不断降低,私有化部署 AI Agent 将逐渐普及。客户的每个业务领域都可能有一个由垂域专业 LLM 支撑的 AI Agent;也可能会是由一个通用 LLM 做为基础,在不同业务领域构建出不同的 AI Agent。当然,不管 AI Agent 的实现形式是怎样的,工程落地都会面临一类通用的问题,就是如何使 AI Agent 与客户的环境相结合,从而完成与环境的信息交换。只有这样,AI Agent 才能真正贴合客户的需求为客户提供有价值的服务。

众所周知的是,当我们需要与客户的环境对接时,必然会产生定制开发的成本。成本的多少与客户环境的复杂程度及客户的需求正相关。而这部分成本对于软件服务企业来说,大概率是无法实现多项目功能复用,成本平摊的。那么这就意味着 AI Agent 的工程成本至少要与项目的预算基本持平才能够不断帮助客户实现 AI Agent 的垂域落地。

现实的情况是,近两年全球经济下滑,四处都在勒紧裤腰带发展。政府及企业的 IT 建设预算也是大幅缩水,之前预算充足,可以大幅投入开发人员满足客户定制化需求的局面将难以为继。但 AI Agent 发展所推动的客户应用需求将不断增长。因此,未来 AI Agent 相关的项目将持续涌现,但经费预算将远低于前些年。这将为提供 AI 应用服务的服务商提出挑战。即如何才能够在经费有限且需要大量定制化工作才能实现 AI Agent 工程落地的项目中获得利润?

面向 AI 应用的低代码工具

    笔者认为面向 AI 应用的低代码工具可以成为回答上一节问题的一个可选的答案。但笔者这里所说的低代码平台非前两年爆火的面向 UI 应用开发的工具。因为这类低代码工具理论上可以降低任何场景的开发成本而不是特指于 AI Agent 的应用场景。

去年伴随着 LLM 兴起,出现了围绕 LLM 应用落地的开源框架 LangChain。该开发框架可以大幅提升 LLM 的应用落地效率。一经推出就得到了开发者的广泛关注和应用。但面对 AI Agent 的工程落地需求看,大量的数据整理、环境对接工作,即便使用了 LangChain 框架,定制开发工作量仍无法忽视。于是,去年下半年,开始陆续出现了一些以 LangChain 作为基础的低代码类 RPA 工具,如:Flowise,LangGraph 以及国内最近非常火的 Dify 等工具。这些工具的出现,进一步降低了 LLM 的应用成本和搭建 AI Agent 的成本。通过组件拖拽,可视化的构建数据处理流程和 AI 的应用逻辑,可降低对实施人员的编程能力要求,使得有经验的业务人员有机会参与工程落地;可更快速的调整及测试流程的逻辑,提升实施效率。

虽然 Flowise,Dify 等工具已经在很大程度上降低了 AI Agent 的实施成本。但在笔者看来,由于 AI Agent 应用场景的不确定性,仍存在大量 RPA 类工具无法满足的潜在开发工作。比如:这类 RPA 工具对于文本、图片等非结构化数据有较好的支持,但对于传统的结构化数据的支持能力就显得有所不足了。而经过了近 30 年的 IT 信息化建设,绝大多数客户都拥有相当规模的存量结构化数据。这些数据也一定会纳入 AI Agent 的应用场景中。因此,笔者认为一款能够更好的落地 AI Agent 的低代码工具应该至少包括以下几个特性:

Ø  全结构数据支持能力:能够同时支持结构化、半结构化以及非结构化数据的应用处理,这样才能串接各类数据并与 AI Agent 进行整合。这类工具从设计角度不应该是一个简单 RPA 工具,应该是一个数据科学工具,即应该采用类似 Kettle,StreamSet 等工具的技术路线,并将数据处理能力扩展到非结构化数据。这样就能够串接过去几十年的数据应用习惯并延伸至未来以 AI 模型应用的场景中了。

Ø  数据全生命周期支持能力:具备数据从采集、存储、处理、传输、交换到销毁六个阶段的全能力支持。由于无法明确 AI Agent 的应用边界。因此一个能够支持数据全生命周期阶段的工具将有可能更大范围的降低 AI Agent 的应用成本。

Ø  强大的 AI 模型整合能力:需要能够整合各类 AI 模型能力,而不仅限于 LLM 的整合能力。众所周知的是,LLM 在自然语言方面的工作能力已经让我们大开眼界,最近多模态模型进化出的能力更是进一步让我们唏嘘不已。但我们能看到的是,每一次惊叹背后都一笔无法忽视的能源和算力消耗。而且,我们并不是每一个任务都需要动用如此巨大能力的模型来应答,反而有些时候,一些小的专用 AI 模型能够带来更好的性价比。比如:分词、文本分类、翻译、OCR 识别、物体识别、语音转文字、文字转语音、基于业务的预测、分类、聚类等。目前 HuggingFace 网站上的近 80 万个各类 AI 模型是一个巨大的宝藏,整合这些 AI 模型的能力,能够让 AI Agent 变的更智能。

Ø  丰富多样的数据处理扩展能力:提供丰富多样的功能扩展手段,用以支持 AI Agent 在工程实施时需要对接的各类外部环境及业务功能。可以方便的扩展与各类存储计算系统的对接;支持通过算子组件、脚本、Rest 接口等方式扩展数据生命周期各阶段的功能支撑;支持在主流程中复用通过低代码方式编写的子流程,从而可以在工具内形成闭环的业务功能扩展能力。

HuggingFists AI 应用开发平台

    HuggingFists 是一款由笔者团队开发的低代码 AI 应用开发平台。(该平台虽不是开源的,但社区版支持免费使用,可通过 Github 下载,地址:https://github.com/Datayoo)。有别于现在流行的 RPA 类低代码平台,HuggingFists 采用的是传统的数据科学工具的架构,即 HuggingFists 是面向数据集来处理的。因此,其天然能够兼容结构化与半结构化的数据处理场景。另外,HuggingFists 在设计上剥离了文件系统与文件的捆绑结构。将其转换为了输入和读取两大类算子。因此,对于以文件形式表达的非结构化数据也有了全面的接入能力。下面笔者简单罗列下 HuggingFists 系统的特性:

Ø  完善的数据源接入能力:能够支持数据库、文件系统、消息队列以及应用四类数据源,并可通过安装连接器插件扩展数据连接能力。提供了数据源管理界面,可对所有的数据源进行可视化浏览,方便使用者了解及简单管理数据。支持同一存储系统的不同版本的连接器,如:可同时支持 ElastiSearch7 和 ElasticSearch8 等。数据库除支持传统的关系数据库、文档数据库、数据仓库等外,围绕 AI 应用,还支持了向量库和图数据库。

Ø  直观易用的低代码编程模式:HuggingFists 采用了传统数据科学的低代码编程风格--算子(含端口)+数据连接的流程构建风格。但也有别于传统的数据科学工具,其编程风格更自由。多数情况下,HuggingFists 没有对算子端口的连接数做任何限制,可自由构建算子间的数据连接关系; 流程的定义态与执行态分离,在定义态点击端口,可以清晰知道各算子间的数据流入/流出结构。该功能如同函数声明中的入参与返回定义,方便使用者知道如何使用算子;执行态执行流程后,会记录每个算子的运行时长,每个端口输入/输出数据量;为了流程调试方便,HuggingFists 还提供了对流程的断点调试功能,方便使用者更方便的定位问题。此外,还提供了执行到当前算子、复制算子、为算子填写注释、多算子打包/拆包(流程复杂时,可用此功能将多个算子打包在一个容器算子中,使版面清晰)等。使用者不必担心流程的运行的效率,流程中的每个算子都以并行方式运行,可最大效率的处理流程中的数据。

Ø  流程复用与对外服务:HuggingFists 支持在主流程中引用一个子流程,即可以用算子编写一个类似函数的子流程,被其它流程调用。也可编写一个流程,将其配置到接口管理中,对外提供 Rest 风格的 API 调用。利用这种模式,可以使用 HuggingFists 系统对外提供数据访问服务。

Ø  丰富的 AI 模型集成能力:HuggingFists 是基于笔者团队早期的数据科学平台 Sengee 孵化出来的。项目孵化的主要成因就是为了能够使用低代码的方式访问到 HuggingFace 网站提供的各类模型。目前 HuggingFists 已经集成了 HuggingFace 网站的近二十种可用于自动化场景的 AI 任务接口,如:文本生成、文本分类、物体识别、音频转文字等。使用者可以直接使用部署在云端的 HuggingFace 模型,也可以将模型下载到本地,使用私有化部署的模型。除了对 HuggingFace 模型的支持外,HuggingFists 还支持了包括 OpenAI,Google,阿里,百度,腾讯在内的众多国内外厂商的云 AI 模型接口,方便搭建各类 AI 应用。

Ø  完善的数据处理扩展能力:HuggingFists 提供了完善的算子开发标准,依据此标准开发的算子可以通过算子库在系统中安装并应用。除此外,HuggingFists 提供了 Python 脚本算子、Javascript 算子,可通过这些算子扩展 HuggingFists 暂不支持的功能。最近,在将要发布的 HuggingFists 系统中,笔者团队扩展了数据服务功能。在该功能模块中,使用者可通过简单的配置,引入一个已经存在的外部 Rest API 接口。该接口可直接在流程中通过服务调用算子直接调用,进一步降低了数据处理能力的扩展成本。

Ø  多样的作业调度与派发:HuggingFists 提供了多种作业调度机制来满足不同应用场景的需求。其提供了即时、定时以及接口调度等不同的作业触发方式。“即时”作业表示立即执行一次作业;“定时”作业定义了作业的执行计划,定期自动化执行作业;接口调度作业可通过调度接口由外部系统调用触发作业的执行。执行作业的计算节点支持水平扩容,当算力不足时,使用者可通过扩展计算节点来扩充平台的计算能力。

除以上特性外,HuggingFists 还有很多方便使用的小功能,这里不一一列举了。下面是笔者整理的一些关于 HuggingFists 的介绍和学习资料,欢迎有兴趣的朋友下载试用。


用户头像

数由科技

关注

还未添加个人签名 2019-03-22 加入

还未添加个人简介

评论

发布
暂无评论
LLM智能体工程落地思考_人工智能_数由科技_InfoQ写作社区