【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

大模型应用的 10 种架构模式

  • 2024-03-27
    北京
  • 本文字数:3371 字

    阅读完需:约 11 分钟

大小:1.65M时长:09:36
大模型应用的 10 种架构模式

在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重要技能。然而,当我们转向大模型应用和人工智能领域,情况可能会有所不同。面对新兴技术,例如生成式 AI,我们尚缺乏成熟的设计模式来支撑这些解决方案。


作为一位老码农,我在这里整理总结了一些针对大模型应用的设计方法和架构模式,试图应对和解决大模型应用实现中的一些挑战,如成本问题、延迟问题以及生成的不准确性等。


1. 路由分发模式


当用户输入一个查询时,该查询会被发送到控制中心,而控制中心则扮演着对输入进行分类的角色。



如果查询是可以识别的,那么它会被路由到小语言模型进行处理,这通常是一个更准确、响应更快且成本更低的操作。然而,如果查询无法被识别,那么它将由大型语言模型来处理。尽管大型语言模型的运行成本较高,但它能够成功返回更多种类型查询的答案。通过这种方式,人工智能产品可以在成本、性能和用户体验之间实现平衡。

2. 大模型代理模式


想象一个生态系统,其中多个专门针对特定任务的生成式 AI 模型各自作为其领域内的专家,并行工作以处理查询。这种多路复用模式能够生成一系列不同的响应,然后将这些响应整合在一起,形成一个全面的答案。



这样的设置非常适合复杂的问题解决场景,在这种场景中,问题的不同方面需要不同的专业知识,就像一个由专家组成的小组,每个专家负责处理更大问题的一个方面。


更大的模型(如 GPT-4)负责理解上下文,并将其分解为特定的任务或信息请求,这些任务或信息请求被传递给更小的代理。这些代理可能是较小的语言模型,它们已经接受过特定任务的训练,或者是具有特定功能的通用模型,如 GPT、Llama、上下文提示和函数调用。


3. 多任务微调模式


在这种架构模式中,我们对大型语言模型进行了微调,使其能够同时处理多个任务,而非仅仅针对单个任务。这是一种跨领域知识和技能迁移学习的方法,大大增强了模型的多功能性。



这种多任务学习方法对于那些需要应对各种复杂任务的平台来说尤其有用,例如虚拟助理或是人工智能驱动的研究工具。这极大地简化了面向复杂领域的训练和测试工作流程。


在训练大型语言模型(LLM)时,我们可以利用一些资源和软件包,如 DeepSpeed,以及 Hugging Face 的 Transformer 库。

4. 面向微调的分层缓存策略模式


我们将缓存策略和相关服务引入到大模型应用架构中,可以成功地解决成本、数据冗余以及训练数据等组合问题。



通过储存这些初始结果,系统能够在后续查询中迅速提供答案,从而显著提高了效率。当我们累积了足够的数据后,微调层级将启动,利用早期交互的反馈,进一步完善一个更为专业化的模型。


专有大模型不仅简化了操作流程,也使人工智能专业知识更好地适应特定任务,使其在需要高度精确性和适应性的环境中,如客户服务或个性化内容创建,表现得更为高效。


对于刚入门的用户,可以选择使用预先构建的服务,如 GPTCache,或者使用常见的缓存数据库,如 Redis、Cassandra、Memcached 来运行自己的服务。在向混合服务中添加其他服务时,一定要记得监控并测量延迟情况。


5. 混合规则模式


许多现行的商业系统和企业应用在一定程度上仍然依赖于基于规则的架构。通过将大模型与基于规则的逻辑结合,我们能够融合结构化的精确性,旨在创造出既富有创意又遵循规范的解决方案。



对于那些必须严格遵守标准或法规的行业或产品而言,这是一个非常有效的架构模式,它确保了人工智能在保持创新的同时,仍能遵守既定的理想参数。例如,这种架构可以应用于生成电话 IVR 系统或基于规则的传统(非 LLM)聊天机器人的意图和消息流。

6. 知识图谱模式


将知识图谱与生成型人工智能模型结合,赋予了它们面向事实的超级能力,使得输出不仅具有上下文情境,而且更加符合事实。



对于要求内容真实性和准确性不容忽视的应用来说,这种方法至关重要,比如在教育内容创作、医疗咨询或任何误导可能带来严重后果的领域。


知识图谱及其本体能够将复杂主题或问题分解成结构化格式,为大型语言模型提供深层上下文基础。我们甚至可以借助语言模型,以 JSON 或 RDF 等格式创建本体。


可用于构建知识图谱的图数据库服务包括 ArangoDB、Amazon Neptune、Google Dgraph、Azure Cosmos DB 以及 Neo4j 等。此外,更广泛的数据集和服务也能用于访问更全面的知识图谱,包括开源的企业知识图谱 API、PyKEEN 数据集以及 Wikidata 等等。

7. 智能体蜂巢模式


智能体蜂巢架构模式运用了大量 AI Agent,这些代理共同协作以解决一个问题,每个代理都从各自独特的视角出发进行贡献。



由此产生的综合结果展示了一种集体智慧的体现,其效果超越了任何一个单独的 AI 个体所能达到的成果。在需要大量创新解决方案的场景中,或者在处理复杂的数据集时,这种模式尤其有效。


例如,我们可以利用多个 AI Agent 来共同审查一篇研究论文,整合他们的所有数据和观点。对于处理能力要求较高的蜂巢系统,我们可以考虑部署消息队列服务,比如 Apache Kafka,以便更好地处理代理和服务间的消息传递。

8. 智能体组合模式


该架构模式强调了灵活性,通过模块化的人工智能系统,能自我重新配置以优化任务性能。这就像一个多功能工具,可以根据需求选择和激活不同的功能模块,对于需要为各种客户需求或产品需求定制解决方案的企业来说,这是非常有效的。



我们可以通过使用各种自主代理框架和体系结构来开发每个 Agent 及其工具,例如 CrewAI、Langchain、LLamaIndex、Microsoft Autogen 和 superAGI 等。


通过组合不同的模块,例如一个 Agent 可以专注于预测,另一个处理预约查询,还有一个专注于生成消息,最后一个 Agent 来更新数据库。将来,随着专业 AI 公司提供的特定服务的增多,我们可以将一个模块替换为外部或第三方服务,以处理特定的任务或领域的问题。

9. 记忆认知模式


这种架构为人工智能引入了类似于人类记忆的元素,允许模型回忆并基于过去的交互进行学习,从而产生更细腻的反应。



这对于正在进行的对话或学习场景非常有用,因为随着时间的推移,人工智能会形成更深的理解,就像一个专业的个人助理或者在线机器学习平台。随着时间推移,记忆认知模式能够将关键事件总结并储存到一个向量数据库中,进一步丰富 RAG 系统。


为了保持汇总计算量的合理性,我们可以通过使用更小的自然语言处理库来进行汇总和摘要。所使用的是向量数据库,并在提示阶段进行检索,以检查短期记忆,并通过最近邻搜索来定位关键的“事实”。有一个遵循这种模式的开源解决方案是 MemGPT。

10. 双重安全模式


围绕大型语言模型(LLM)的核心安全性至少包含两个关键组件:一是用户组件,我们将其称为用户 Proxy 代理;二是防火墙,它为模型提供了保护层。



用户 proxy 代理在查询发出和返回的过程中对用户的 query 进行拦截。该代理负责清除个人身份信息(pII)和知识产权(IP)信息,记录查询的内容,并优化成本。


防火墙则保护模型及其所使用的基础设施。尽管我们对人们如何操纵模型以揭示其潜在的训练数据、潜在功能以及当今恶意行为知之甚少,但我们知道这些强大的模型是脆弱的。


在安全性相关的技术栈中,可能还存在其他安全层,但对于用户的查询路径来说,Proxy 代理和防火墙是最关键的。

没有结束


老码农认为,这些大模型应用的架构模式不仅仅是一种范式,很可能成为未来智能系统赖以成长的框架。随着我们们继续探索和创新,还会涌现出很多新的架构模式,而且这里的 10 个架构模式以及新涌现的架构模式可能成为人工智能服务的表现形态。


20 年前,当我第一次阅读《设计模式》一书的时候(参见《三本书影响一个人》一文),爱不释手,如今,老码农开始持续探讨并实践 AI 应用,本文中的这些架构模式是老码农自己命名的,不妥之处请大家斧正。我希望能够持续更新本系列,也希望对此有兴趣的朋友联系我, 共同研究探索,致力于大模型应用的架构模式。


 作者简介:

曹洪伟,百度 DuerOS 原首席布道师,渡鸦科技原 CTO,目前任联想诺谛智能首席架构师,从事基于大模型的应用系统研发。20 多年软硬件产研经验,拥有 50 多项国内外专利,著有《BREW 进阶与精通》,《一书读懂物联网》和《深入分布式缓存》的联合作者,《持续架构》《精益 DevOps》《语音优先》《计算机网络问题与解决方案》《区块链应用开发实战》《基于混合方法的自然语言处理》等书的共同译者,日常维护着公众号 wireless_com 和 CSDN 同名博客。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2024-03-27 16:404503

评论 1 条评论

发布
用户头像
总结的不错
2024-03-29 08:30 · 浙江
回复
没有更多了

LifseaOS 悄然来袭,一款为云原生而生的 OS

阿里巴巴云原生

阿里云 云原生 操作系统 LifseaOS

阿里云发布云原生加速器,携手生态企业拥抱数字时代

阿里巴巴云原生

阿里云 云原生 企业 合作伙伴 创投

恒源云(GPUSHARE)_云GPU服务器如何使用VSCode?

恒源云

人工智能 深度学习

驴行千里不洗沙尘,尚硅谷Spark性能调优教程发布

编程江湖

大数据 spark

Redis为什么需要强一致?技术揭秘秒杀活动如何限流

华为云开发者联盟

redis 开源 华为云 强一致 MySQL组件

带你了解AKG正反向算子注册+关联流程

华为云开发者联盟

算子 AKG 正向算子 反向算子 算子注册

微服务的灾难:拆的很爽,但服务太小...

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

为何每次用完ThreadLocal都要调用remove()?

热爱java的分享家

Java 程序人生 编程语言 经验分享

彻底搞懂访问者模式的静态、动态和伪动态分派

Tom弹架构

Java 架构 设计模式

分区丢失导致文件丢失?巧用EasyreCovery找回!

淋雨

数据恢复

数据可视化界的小公主:cutecharts,入门+实战应用

老表

Python 数据可视化 11月日更 实战案例 cutecharts

安全稳定高效节约的云运维软件哪个好?咨询电话多少?

行云管家

云计算 公有云 混合云 云管平台 云运维

“低代码”是什么?低代码平台如何助力企业实现数字化转型?

优秀

低代码

Aeron是如何实现的?—— Ipc Publication

BUG侦探

Aeron Ipc Publication

会声会影编辑面板常用功能介绍

懒得勤快

群雄“逐鹿”风采显露:2021信创“大比武”鲲鹏赛道总决赛火热来袭

科技热闻

JAVA应用生产问题排查步骤

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

微帧Film Grain编码技术,致敬电影胶片颗粒的独特魅力

微帧Visionular

视频编解码

Go语言学习查缺补漏ing Day6

Regan Yue

Go 语言 11月日更

Linux一学就会之Linux环境搭建并安装VMware虚拟机

学神来啦

Linux centos 运维 vmware

论文解读丨无参数的注意力模块SimAm

华为云开发者联盟

卷积神经网络 视觉 注意力模块 SimAm 神经元

帧彩视界之Pseudo HDR:为普通SDR设备用户提供HDR体验

微帧Visionular

视频编码 HDR

工具 | 一条 SQL 实现 PostgreSQL 数据找回

RadonDB

数据库 postgresql RadonDB

几个高效做事的法则,让你的一天有 25 小时

程序员鱼皮

Java c++ 效率 大前端 高效

CRM与ERP之争,谁能在“企业数字化转型”的趋势中胜出?

优秀

低代码 CRM ERP

3分钟搞定 web人脸识别登录,这样式爱了

程序员小富

Java 编程 人脸识别 springboot 毕业设计

用户增速与体验质量并存,博睿数据携阿里云发布双十一电商网站用户体验报告

博睿数据

青海西宁市正规等保测评公司名单汇总-行云管家

行云管家

网络安全 等级保护 等保测评 过等保

微信和QQ这么多群,该如何管理好友关系?

Tom弹架构

Java 架构 设计模式

The Data Way Vol.6|我不是开发者,但我依然向往开源

SphereEx

开源 开发者 播客 ShardingSphere SphereEx

又一次漏洞复现与分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

大模型应用的 10 种架构模式_生成式 AI_曹洪伟_InfoQ精选文章