生成式AI应用设计模式全面指南
作者: 吃果冻不吐果冻皮 来源: 吃果冻不吐果冻皮
在构建新事物时,我们都会遵循一些久经考验的方法、途径和模式。这句话对于软件工程人员来说非常正确,但对于生成式AI和AI本身来说,情况可能并非如此。对于生成式AI等新兴技术,我们缺乏有据可查的模式作为解决方案的基础。
在此,我们将根据对无数LLM生产实施的评估,分享一些生成式AI的方法和模式。这些模式的目标是帮助减轻和克服生成式AI实施过程中的一些挑战,如成本、延迟和幻觉。本文对于使用大型语言模型(LLM)构建应用提供了9个参考架构模式和思维模型。
生成式AI设计模式列表:
-
采用分层缓存策略进行微调
-
多路人工智能智能体专家小组
-
针对多项任务微调LLM
-
基于规则和生成的融合
-
利用LLM知识图谱
-
生成式人工智能智能体群
-
具有可组合性的模块化单体LLM方法
-
LLM的记忆认知方法
-
红蓝队双模式评估
1 - 采用分层缓存策略进行微调
在为大语言模型引入缓存策略和服务时,我们需要解决成本、冗余和训练数据等综合因素。
通过缓存这些初始结果,系统可以在后续查询中更快地提供答案,从而提高效率。一旦我们有了足够的数据,微调层就会出现转折,利用这些早期交互的反馈来完善更专业的模型。
这种专业化模型不仅简化了流程,还能根据特定任务调整人工智能的专业技能,使其在客户服务或个性化内容创建等对精确性和适应性要求极高的环境中发挥巨大作用。
对于新手来说,可以使用GPT Cache等预建服务,也可以使用Redis、Apache Cassandra、Memcached等常用缓存数据库自行开发。在添加其他服务时,请务必监控和测量延迟。
2 - 多路人工智能智能体专家小组
试想一下,在一个生态系统中,多个面向特定任务的人工智能生成模型(“智能体”)并行工作,处理一个查询,每个智能体都是其领域内的专家。这种多路复用策略可实现一系列不同的响应,然后将这些响应整合起来,提供一个全面的答案。
这种设置非常适合复杂问题的解决,因为问题的不同方面需要不同的专业知识,就像一个专家团队,每个人都在处理一个大问题的一个方面。
GPT-4 等大模型用于理解上下文,并将其分解为具体任务或信息请求,然后传递给较小的智能体。智能体可以是较小的语言模型(如Phi-2或 TinyLlama),这些模型经过特定任务的训练,可以使用特定的工具或通用模型(如GPT、Llama),具有特定的个性、上下文提示和功能调用。
3 - 针对多项任务微调LLM
在这里,我们同时在多个任务而不是单一任务上对大型语言模型进行微调。这种方法可以促进知识和技能在不同领域间的稳健转移,增强模型的通用性。
这种多任务学习对于需要以高度能力处理各种任务的平台尤其有用,例如虚拟助手或人工智能驱动的研究工具。这有可能简化复杂领域的训练和测试工作流程。
用于训练LLM的一些资源和软件包包括DeepSpeed和Hugging Face的 Transformer库中的训练功能。
4 - 基于规则和生成的融合
许多现有的业务系统和组织应用程序在某种程度上仍然是基于规则的。通过将生成性与基于规则逻辑的结构化精确性相融合,这种模式旨在产生既有创造性又合规的解决方案。
对于产出必须遵守严格标准或法规的行业来说,这是一个强大的战略,它可以确保人工智能保持在所需参数的范围内,同时仍能进行创新和参与。一个很好的例子就是为基于规则的电话IVR系统或传统(非基于 llm 的)聊天机器人生成意图和信息流。
5 - 利用LLM知识图谱
将知识图谱与生成式人工智能模型整合在一起,就能赋予它们以事实为导向的超能力,使输出结果不仅能感知上下文,而且更符合事实。
这种方法对于真实性和准确性要求极高的应用领域至关重要,例如教育内容制作、医疗咨询或任何错误信息可能造成严重后果的领域。
知识图谱和图谱本体(图谱的概念集)可以将复杂的主题或组织问题分解成结构化格式,帮助大型语言模型建立深层语境。还可以使用语言模型以JSON或RDF等格式生成本体。
可用于知识图谱的服务包括ArangoDB、Amazon Neptune、Azure Cosmos DB 和 Neo4j 等图数据库服务。还有更广泛的数据集和服务可用于访问更广泛的知识图谱,包括谷歌企业知识图谱API、PyKEEN Datasets和Wikidata。
6 - 人工智能智能体群
该模型从自然界的蜂群和鸟群中汲取灵感,采用了众多人工智能智能体,它们共同解决一个问题,每个智能体都有自己独特的视角。
由此产生的汇总输出反映了一种集体智慧,超越了任何单个智能体所能达到的效果。在需要广泛的创造性解决方案的情况下,或者在浏览复杂的数据集时,这种模式尤其具有优势。
例如,从多个 “专家 “的角度审查研究论文,或同时评估从欺诈到优惠等多个用例的客户互动。我们利用这些集体 “智能体”,将他们的所有输入组合在一起。对于大容量的蜂群,可以考虑部署Apache Kafka 等消息传递服务来处理智能体和服务之间的消息。
7 - 具有可组合性的模块化单体LLM方法
这种设计倡导适应性,其特点是模块化人工智能系统可以动态地重新配置,以实现最佳的任务性能。它就像一把瑞士军刀,每个模块都可以根据需要进行选择和激活,对于需要为不同的客户互动或产品需求量身定制解决方案的企业来说,它非常有效。
可以部署使用各种自主智能体框架和架构来开发每个智能体及其工具。示例框架包括CrewAI、PromptAppGPT、Langchain、Microsoft Autogen和SuperAGI。
对于一个销售模块化单体来说,可以是专注于潜在客户的智能体,一个处理预订的智能体,一个专注于生成信息的智能体,以及另一个更新数据库的智能体。将来,当专业人工智能公司提供特定服务时,就可以针对特定任务集或特定领域的问题,将模块换成外部或第三方服务。
8 - LLM的记忆认知方法
这种方法为人工智能引入了类似人类记忆的元素,使模型能够回忆并在以前互动的基础上做出更细微的反应。
这对持续对话或学习场景特别有用,因为人工智能会随着时间的推移形成更深刻的理解,就像一个专用的个人助理或自适应学习平台。 随着时间的推移,记忆认知方法可以通过总结关键事件和讨论并将其存储到矢量数据库中来实现。
为了降低摘要的计算量,可以通过较小的NLP库(如 spaCy)或BART语言模型(如果要处理大量信息)来利用摘要。使用的数据库是基于向量的,在检查短期记忆的提示阶段,检索使用相似性搜索来定位关键 “事实”。对于可工作的解决方案,可以采用类似模式的开源解决方案,名为MemGPT。
9 - 红蓝队双模式评估
在红蓝团队评估模式中,一个人工智能生成内容,而另一个人工智能对其进行严格评估,类似于严格的同行评审过程。 这种双模式设置非常适合质量控制,因此非常适用于对可信度和准确性要求极高的内容生成平台,如新闻聚合或教育材料制作。
这种方法可用于在复杂任务中用微调模型取代部分人工反馈,以模仿人工审核过程,并完善评估复杂语言场景和输出的结果。
总结
这些生成式人工智能的设计模式不仅仅是模板,而是未来智能系统赖以发展的框架。随着我们不断探索和创新,我们所选择的架构显然将不仅决定人工智能的能力,还将决定我们所创造的人工智能的特性。
这份清单绝不是最终清单,随着生成式人工智能模式和用例的扩展,我们将看到这一领域的更多发展。
历史文章: 2024年1月大模型文章集锦
更多AI工具,参考Github-AiBard123,国内AiBard123