作者:Vincent Koc翻译:高翊之
校对:陈超
本文约3000字,建议阅读6分钟
运用大语言模型(LLM’s)的参考架构模式和心智模型。
标签:生成式AI设计模式
AI模式的需求
在创建新事物的时候,我们都会依赖经过尝试检验的方法、途经和模式。这个说法适用于软件工程领域,但对于生成式AI和人工智能来说可能并非如此。对于像生成式AI等新兴技术,我们缺乏充分记录的模式来支持我们的解决办法。
在这里,基于我对大语言模型无数次生产实现的评估,我将分享一些生成式AI的方法和模式。这些模式是为了帮助缓解和克服生成式AI实现过程中的一些挑战,比如成本、延迟和“幻觉”。
模式名录
1. 分层缓存策略带来的模型微调
2. 专家小组——多路复用的AI代理
3. 多任务下的大语言模型微调
4. 规则导向与生成模型的融合
5. 利用知识图谱的大语言模型
6. AI代理群
7. 可组合的模块化大语言模型
8. 大语言模型的记忆认知构建
9. “红蓝”双模型的协作评估
1) 分层缓存策略带来的模型微调
这里为大语言模型引入缓存策略时,我们是为解决成本、冗余和训练数据上的组合问题。
通过缓存初始结果,系统可以在后续查询中更迅速地给予回答,提高效率。当我们有足够数据后,微调层开始发挥作用,运用早期交互的反馈,优化为更专用的模型。
这个专用的模型不仅精简了流程,而且将AI的专长适应于特定的任务,使其在客户服务和个性化内容创造等这些精确度和适应性至关重要的环境中更高效。
对于入门来说,可以使用GPTCache等预构建的工具,或者利用Redis, Apache Cassandra, Memcached等常用缓存数据库自己构建。在添加额外服务的时候,确保要监控和测量延时。
2) 专家小组——多路复用的AI代理
想象一个生态系统,其中有多个专注于特定任务的生成式AI模型(“代理”)。每一个都是其领域内的专家,并行工作来处理一次询问。这种多路复用的策略带来了多样化的响应,紧接着被整合以提供一个全面的答案。
这样的设置最适合于解决复杂问题,其中问题的不同方面需要不同的专业知识。它就像是一个专家团队,各自解决更大问题的其中一个方面。
这个模式用一个更大的模型,如GPT-4,来理解语境。它将其拆分成特定的任务或信息请求,来传递给较小的代理。代理可以是较小的语言模型,如Phi-2或TinyLlama。它们被训练完成特定任务,访问特定工具。代理也可以是如GPT, Llama等有着个性特征、语境提示词和函数调用的通用模型。
3) 多任务下的大语言模型微调
这里我们同时对大语言模型进行多任务而非单任务微调。这种方法促进了跨领域间的知识技能稳定迁移,增强了模型的通用性。
这种多任务学习对需要高能力胜任各种任务的平台尤其有用,比如虚拟助手或AI赋能的研究工具。它可能有助于简化复杂领域内训练、测试的工作流。
训练大语言模型的一些资源和包包括DeepSpeed, 以及Hugging Face上Transformer库的训练功能。
4) 规则导向与生成模型的融合
一些现存的商业系统和组织应用在一定程度上仍是基于规则的。通过融合生成特性与基于规则逻辑的结构化精度,这种模式旨在提出具有创造性且符合规范的解决方案。
对于产出要严格遵循标准或规定的行业而言,这是一种强大的策略。它确保AI在理想参数范围内的同时,仍能具有创造和吸引力。一个很好的例子是,它可以为基于规则的电话交互式语音应答系统(IVR系统)、或传统聊天机器人(不基于大语言模型),生成用户请求的回应和信息流。
5) 利用知识图谱的大语言模型
将知识图谱融合到大语言模型给予了它们以事实为导向的“超能力”,使输出不仅能感知上下文,而且更加符合事实。
这种方法在内容需要无条件真实准确的应用中非常重要,比如说教育内容创作,医疗建议或是任何错误信息会带来严重后果的领域。
知识图谱和图本体论(图的一组概念)将复杂的主题和组织问题拆解成结构化的格式,帮助大语言模型获得深入的上下文。你也可以利用语言模型生成JSON或RDF格式的图本体,这里是我为你们创建的示例提示。
可用于知识图谱的工具包括图形数据库,如ArangoDB、Amazon Neptune、Azure Cosmos DB和Neo4j。还有更广泛的数据集和服务用以访问更广泛知识图谱的工具,包括Google Enterprise Knowledge Graph API、PyKEEN Datasets和Wikidata。
6) AI代理群
受自然界中虫群畜群的启发,这个模型运用大量的AI代理共同解决问题,每方贡献独特的视角。
最终聚合成的输出结果反映了一种集体智慧的形式,超越了任何单个代理能达到的水平。在需要多样的创造性解决方案、或是处理复杂数据集的时候,这种模式尤为有利。
应用模型的例子可以是从多个“专家”视角来审阅一篇研究论文,或是一次性在多个用例中(从欺诈到报价)评估客户的互动。我们使用这些代理,并整合输出。对于大规模的群,你可以部署如Apache Kafka等信息服务,来处理代理和服务间的消息传递。
7) 可组合的模块化大语言模型
这个设计强调适应性,采用模块化的AI系统,可以为了最优任务表现进行动态重新配置。它就像有一把瑞士军刀,其中每一个模件都可以依需选择性地激活。这使得它在需要为不同顾客互动和产品需求定制方案的企业中非常高效。
你可以部署各种自主代理框架和架构来开发每个代理及其工具。示例框架包括CrewAI、Langchain、Microsoft Autogen和SuperAGI。
对于一个销售的模块化整体,设置的代理可以分别专注于开发潜在客户、处理预订、生成消息以及更新数据库。如果专业的AI公司在未来提供了特定的服务,你可以针对给定的一组任务或特定领域的问题,用外部或第三方服务替换某个模块。
8) 大语言模型的记忆认知构建
这种方法为AI引入了一个类似人类记忆的因素,使模型能够回忆,并基于之前的交互构建更精细的响应。
它对于持续的对话或是学习情境很有帮助,因为AI随着时间深化理解,很像一位专注的私人助理或者适应性的学习平台。随着时间推移,这种记忆认知的方法可通过总结、存储关键的事件以及讨论发展成一个矢量数据库。
为了控制总结的计算量,你可以权衡使用如spaCy等更小的NLP库,或在处理大量数据时使用BART语言模型。所用数据库是基于矢量的,并运用了相似性搜索来定位关键“事实”,以在提示词阶段检索短期记忆。如果对一个可行的解决方案感兴趣,可以看一个采取了相似模式的开源解决方法MemGPT。
9)“红蓝”双模型的协作评估
在“红蓝”双模型的协作评估模型中,一个AI生成内容,另一个AI对其进行批判性评估,就像缜密的同行评审过程。这个双模型的设定非常适用于质量控制,使它在可行度和准确性至关重要的内容生成平台中应用广泛,比如新闻聚合或教育材料制作。
这个方法可以用于将复杂任务中的部分人类反馈替换为经过精调的模型,用以模拟人工审查过程,并改进评估复杂语言场景和输出的结果。
总结
这些生成式AI的设计模式不仅仅是模板,而是未来智能系统发展的框架。随着我们的继续探索与创新,很明显,我们选择的架构定义了创造出的AI的能力以及本质。
这个清单绝不是最终版。随着生成式AI模式和用例的扩展,我们还会见证这个领域的发展。本文的灵感来源于Tomasz Tunguz发表的AI设计模式。
原文标题
Generative AI Design Patterns: A Comprehensive Guide
原文链接:
https://pub.towardsai.net/full-stack-data-scientist-2064db6fed98
编辑:于腾凯
校对:杨学俊
译者简介
高翊之,清华大学本科在读,喜欢数据科学人工智能相关方向,日常热爱运动与艺术,期待在数据派的大家庭里尽一份绵薄之力,共同探索数据的广泛应用~
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织