前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大模型应用的10种架构模式

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

作者头像
半吊子全栈工匠
发布于 2024-04-03 12:44:57
发布于 2024-04-03 12:44:57
3.4K0
举报
文章被收录于专栏:喔家ArchiSelf喔家ArchiSelf

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

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

1.路由分发模式

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

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

2.大模型代理模式

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

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

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

3.多任务微调模式

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

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

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

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

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

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

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

对于刚入门的用户,可以选择使用预先构建的服务,如 GPTCache,或者使用常见的缓存数据库,如 RedisCassandra、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应用,本文中的这些架构模式是老码农自己命名的,不妥之处请大家斧正。我希望能够持续更新本系列,也希望对此有兴趣的朋友联系我, 共同研究探索,致力于大模型应用的架构模式。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 喔家ArchiSelf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
R语言估计时变VAR模型时间序列的实证研究分析案例
上述症状数据集包含在R-package 中,并在加载时自动可用。加载包后,我们将此数据集中包含的12个心情变量进行子集化:
拓端
2020/11/19
8940
R语言估计时变VAR模型时间序列的实证研究分析案例
R语言状态空间模型和卡尔曼滤波预测酒精死亡人数时间序列|附代码数据
本文介绍了状态空间建模,其观测值来自指数族,即高斯、泊松、二项、负二项和伽马分布。在介绍了高斯和非高斯状态空间模型的基本理论后,提供了一个泊松时间序列预测的说明性例子。最后,介绍了与拟合非高斯时间序列建模的其他方法的比较。
拓端
2023/05/31
3950
使用R语言进行时间序列(arima,指数平滑)分析
您要分析时间序列数据的第一件事就是将其读入R,并绘制时间序列。您可以使用scan()函数将数据读入R,该函数假定连续时间点的数据位于包含一列的简单文本文件中。
拓端
2020/08/04
5.3K0
使用R语言进行时间序列(arima,指数平滑)分析
R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析|附代码数据
最近我们被客户要求撰写关于向量自回归(VAR)的研究报告,包括一些图形和统计输出。
拓端
2023/09/07
6070
Python时间序列分析全面指南(附代码)
时间序列是在规律性时间间隔上记录的观测值序列。本指南将带你了解在Python中分析给定时间序列的特征的全过程。
算法进阶
2023/08/28
1.7K0
Python时间序列分析全面指南(附代码)
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格|附代码数据
时间序列分析是统计学中的一个主要分支,主要侧重于分析数据集以研究数据的特征并提取有意义的统计信息来预测序列的未来值
拓端
2022/12/21
1.5K0
Stata广义矩量法GMM面板向量自回归PVAR模型选择、估计、Granger因果检验分析投资、收入和消费数据|附代码数据
最近我们被要求撰写关于广义矩量法GMM的研究报告,包括一些图形和统计输出。 面板向量自回归(VAR)模型在应用研究中的应用越来越多。虽然专门用于估计时间序列VAR模型的程序通常作为标准功能包含在大多数统计软件包中,但面板VAR模型的估计和推断通常用通用程序实现,需要一些编程技巧。在本文中,我们简要讨论了广义矩量法(GMM)框架下面板VAR模型的模型选择、估计和推断,并介绍了一套Stata程序来方便地执行它们。
拓端
2023/08/09
7290
时间序列预测任务的模型选择最全总结
如果你正在处理时间序列数据,那么就跟云朵君一起学习如何根据预测性能来比较和选择时间序列模型。
数据STUDIO
2023/02/24
5.6K0
时间序列预测任务的模型选择最全总结
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格|附代码数据
最近我们被客户要求撰写关于ARIMA-ARCH / GARCH模型的研究报告,包括一些图形和统计输出。
拓端
2023/01/30
1.3K0
R语言分布滞后线性和非线性模型(DLMs和DLNMs)分析时间序列数据
本文演示了在时间序列分析中应用分布滞后线性和非线性模型(DLMs和DLNMs)。Gasparrini等人[2010]和Gasparrini[2011]阐述了DLMs和DLNMs的发展以及时间序列数据的实现。本文描述的示例涵盖了时间序列数据DLNM方法的大多数标准应用,并探讨了DLNM包用于指定、总结和绘制此类模型。尽管这些例子在空气污染和温度对健康的影响方面有具体的应用,但它们很容易被推广到不同的主题,并为分析这些数据集或其他时间序列数据源奠定了基础。
拓端
2021/09/29
2.8K0
测试时间序列的40个问题
时间序列预测与建模在数据分析中起着重要的作用。时间序列分析是统计学的一个分支,广泛应用于计量经济学和运筹学等领域。这篇技能测试文章是为了测试你对时间序列概念的了解程度。
磐创AI
2020/07/10
1.5K0
测试时间序列的40个问题
R语言分布滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模应用|附代码数据
在本文中,环境应激源往往表现出时间上的滞后效应,这就要求使用足够灵活的统计模型来描述暴露-反应关系的时间维度。在此,我们开发了分布式滞后非线性模型(DLNM),这是一个可以同时代表非线性暴露-反应依赖性和滞后效应的建模框架。这种方法是基于 "交叉基准 "的定义,这是一个双维的函数空间,它同时描述了沿预测空间和其发生的滞后维度的关系形状
拓端
2022/12/28
8520
R语言分布滞后线性和非线性模型(DLM和DLNM)建模|附代码数据
本文说明了R语言中实现分布滞后线性和非线性模型(DLM和DLNM)的建模。首先,本文描述了除时间序列数据之外的DLM / DLNM的一般化方法,在Gasparrini [2014]中有更详细的描述。
拓端
2022/11/04
1.1K0
R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据|附代码数据
此分析的目的是构建一个过程,以在给定时变波动性的情况下正确估计风险价值。风险价值被广泛用于衡量金融机构的市场风险。我们的时间序列数据包括 1258 天的股票收益
拓端
2023/07/07
4040
向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列|附代码数据
最近我们被客户要求撰写关于向量自回归(VAR)模型的研究报告,包括一些图形和统计输出。
拓端
2023/07/18
2800
分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响|附代码数据
分布滞后非线性模型(DLNM)表示一个建模框架,可以灵活地描述在时间序列数据中显示潜在非线性和滞后影响的关联。该方法论基于交叉基的定义,交叉基是由两组基础函数的组合表示的二维函数空间,它们分别指定了预测变量和滞后变量的关系。本文在R软件实现DLNM,然后帮助解释结果,并着重于图形表示。本文提供指定和解释DLNM的概念和实践步骤,并举例说明了对实际数据的应用
拓端
2022/12/02
8280
R语言状态空间模型和卡尔曼滤波预测酒精死亡人数时间序列
状态空间建模是一种高效、灵活的方法,用于对大量的时间序列和其他数据进行统计推断(点击文末“阅读原文”获取完整代码数据)。
拓端
2023/08/31
2190
R语言状态空间模型和卡尔曼滤波预测酒精死亡人数时间序列
R语言广义相加模型 (GAMs)分析预测CO2时间序列数据|附代码数据
这基本上就是具有 光滑函数的广义线性模型(GLM)的扩展 。当然,当您使用光滑项拟合模型时,可能会发生许多复杂的事情,但是您只需要了解基本原理即可。
拓端
2022/11/09
2K0
R语言分布滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模应用|附代码数据
在本文中,环境应激源往往表现出时间上的滞后效应,这就要求使用足够灵活的统计模型来描述暴露-反应关系的时间维度。在此,我们开发了分布式滞后非线性模型(DLNM),这是一个可以同时代表非线性暴露-反应依赖性和滞后效应的建模框架。这种方法是基于 "交叉基准 "的定义,这是一个双维的函数空间,它同时描述了沿预测空间和其发生的滞后维度的关系形状 ( 点击文末“阅读原文”获取完整代码数据******** ) 。
拓端
2022/10/27
7030
R语言使用ARIMAX预测失业率经济时间序列数据|附代码数据
在大数据的趋势下,我们经常需要做预测性分析来帮助我们做决定。其中一个重要的事情是根据我们过去和现在的数据来预测未来。这种方法我们通常被称为预测
拓端
2023/01/10
1.3K0
推荐阅读
R语言估计时变VAR模型时间序列的实证研究分析案例
8940
R语言状态空间模型和卡尔曼滤波预测酒精死亡人数时间序列|附代码数据
3950
使用R语言进行时间序列(arima,指数平滑)分析
5.3K0
R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析|附代码数据
6070
Python时间序列分析全面指南(附代码)
1.7K0
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格|附代码数据
1.5K0
Stata广义矩量法GMM面板向量自回归PVAR模型选择、估计、Granger因果检验分析投资、收入和消费数据|附代码数据
7290
时间序列预测任务的模型选择最全总结
5.6K0
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格|附代码数据
1.3K0
R语言分布滞后线性和非线性模型(DLMs和DLNMs)分析时间序列数据
2.8K0
测试时间序列的40个问题
1.5K0
R语言分布滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模应用|附代码数据
8520
R语言分布滞后线性和非线性模型(DLM和DLNM)建模|附代码数据
1.1K0
R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据|附代码数据
4040
向量自回归(VAR)模型分析消费者价格指数 (CPI) 和失业率时间序列|附代码数据
2800
分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响|附代码数据
8280
R语言状态空间模型和卡尔曼滤波预测酒精死亡人数时间序列
2190
R语言广义相加模型 (GAMs)分析预测CO2时间序列数据|附代码数据
2K0
R语言分布滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模应用|附代码数据
7030
R语言使用ARIMAX预测失业率经济时间序列数据|附代码数据
1.3K0
相关推荐
R语言估计时变VAR模型时间序列的实证研究分析案例
更多 >
LV.4
南京银行数据中心项目经理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档