赞
踩
在本文中,我们提供了构建端到端 GenAI 应用程序的主要架构组件和蓝图,这些应用程序已经准备好投入生产使用。当您开始实施和设计这些基于 llm 的应用程序时,我想要强调几个关键考虑因素。
用于选择目标架构中的 GenAI 组件的 AI 成熟度:您需要确定您在 AI 成熟度谱系中处于何处,以及为了实现支持您生成式应用程序的业务用例而应该处于何处的位置。因此,您不一定需要每一个这些架构组件来构建每一个应用程序;根据您的项目、业务线或组织的成熟度,您可以在这些架构组件中进行选择。每个这些架构组件都可以通过我们在这里提供的模式进行构建。请记住,模式生成架构,在这种情况下生成微架构或用于设计和构建您的 llm 应用程序的特定部分所必需的架构组件。我将另外提供一个生成式 AI 成熟度模型,以帮助您确定您的 llm 成熟度和复杂性处于何种位置,以便成功实施这些应用程序。
在该架构构建块内选择模式。假设您决定您需要提示工程、选择后端 LLM(例如 Google Gemini)来为您的模型提供服务,并且您需要检索增强,从而有效地实现了成熟度的第三级(有关详细信息,请参阅我们的生成式 AI 成熟度模型)。重要的是要记住,即使您现在知道您的目标成熟度水平是构建一个第三级检索增强生成能力应用程序,也有许多方法可以实现架构的 RAG 组件。因此,我们将这个组件视为一个可以以不同复杂程度设计和实现的模式。让我在这里给您提供更详细的分解。rag 可以实现为基本的 RAG、中级 RAG 或高级 RAG 或自动化 RAG。因此,即使您知道您的目标成熟度水平是该架构构建块,您仍然需要决定实现该模式的实现细节。在本文中,我们将仅对基本水平进行详细介绍,而在随后的文章中,我将对每个架构构建块进行更详细的介绍。
预测性 AI、生成性 AI 和数据管道都是公平竞争对手。重要的是要注意,生成性 AI 将包括传统的预测性 AI,以及数据摄入、清洗、网格、管道等。模式在传统软件工程意义上生成架构。随着生成式 AI 的出现和普及,重要的是要将该领域视为一组模式,其中包括特定上下文和一组特定的力量或权衡和考虑的问题解决对。在应用模式(即模式的解决部分)之后,总会产生后果:在问题空间中,并不是每一个力量都会通过应用该架构组件的模式得到解决。因此,一些力量将无法解决,您仍然需要应用其他模式或技术来解决问题空间中的这些力量。在这里,我们提供了一个结果后果部分和其他可能有用的模式的参考。这里我们详细介绍了一些模式,其他一些是司空见惯的并且相当直观的,因此您可以在文献中寻找参考资料以实现它们。
因此,有了这一系列初始考虑之后,让我们深入研究 Jedi 参考架构的每一个架构构建块,并从模式的角度来一般性地探讨它们,然后再从模式的角度来看待它们。
GenAI 参考架构:用于设计端到端生产级 GenAI 应用程序的模式
对话式用户界面。对话式界面利用自然语言处理来实现类似人类的交互。Ram 等人于 2020 年发表的一篇论文 [1] 讨论了对话式 AI 的进展,突出了诸如迁移学习和强化学习等技术,以改进对话系统。该论文强调了自然和上下文感知交互对增强用户体验的重要性。
个性化。UI 个性化涉及将界面定制为个人用户的偏好和需求。2019 年 Kocaballi 等人的一篇论文[2]探讨了个性化在基于人工智能的健康干预中的作用。作者讨论了个性化界面如何改善用户参与度和对人工智能驱动的建议的依从性,从而实现更好的健康结果。
通过 Google 的 Vertex AI 平台,您实际上可以构建一个用户体验,无需代码或低代码交互,以及明显的全代码(基于 API)交互。我们有我们的代理构建平台,可以帮助您实现复杂的搜索、对话和应用,并在您自己的专有数据中立即执行检索增强,这些数据基于您自己的企业存储库和数据,无论是结构化数据还是非结构化数据。可以使用 Vertex AI 搜索和 Vertex AI 对话来实现构建基于代理的应用程序,支持对话代理,如客户代理、员工代理、数据代理等。
问题/挑战
背景/上下文
考虑/权衡
解决方案
我们建议开发统一功能的复杂用户界面。例如,一个允许用户搜索企业数据、与对话代理进行交互以获取指导,并为开发人员构建和测试人工智能解决方案提供空间的界面。这个统一的界面提高了用户体验和生产力。
解决方案细节
解决方案涉及集成先进的搜索算法和自然语言处理。基于自然语言的搜索使用户能够使用对话查询查找信息。对话代理协助用户完成任务,并通过对话提供指导。这些功能增强了用户体验并减少了复杂性。
产生的后果
相关模式
对话 UI:该模式侧重于通过对话代理创建自然和类似人类的交互。它涉及设计理解和响应用户查询的对话系统,模拟一次对话。[7]
个性化:将 UI/UX 定制为个别用户涉及根据用户的偏好、行为和需求定制界面。这创造了更直观和吸引人的体验,提高了用户满意度。[8]
模板化:提示模板提供了一个结构化的方法来指导 AI 模型。2021 年刘等人的一篇论文[3]提出了一个基于提示的学习框架,用于自然语言处理任务。作者演示了设计良好的提示模板如何显著提高了模型在各种基准测试中的性能,凸显了有效提示工程的重要性。
问题/挑战
策略工程涉及理解任务和期望输出。使用提示数据增强等技术设计和优化提示模板。通过使用不同的提示评估模型性能来进行测试,以确定最有效的方法。
策略工程最佳实践:扩展
1. 清晰具体
2. 提供上下文
3. 分步指导
4. 少样本学习
5. 思维链提示
6. 思维树提示
7. 思维概要提示等
8. ReAct(Reason-Act)框架
9. DSPy策略工程模板化
DSPy是一个编程基础模型框架。它允许用户通过将程序的流程与每个步骤的参数分开来构建复杂系统。这通过模块和优化器实现。模块是程序的构建块,指定输入和输出。优化器是可以调整程序的提示和权重的算法。DSPy可用于编译程序,这意味着它可以通过创建有效的提示和更新权重来提高程序的质量。
10. 迭代测试和优化:
考虑调整:
温度: 调整模型设置中的“温度”参数,以控制输出的随机性。较低的温度产生更集中的响应,而较高的温度鼓励创造性。
Top-k抽样: 将模型限制为在每个生成步骤中选择前k个最有可能的词,平衡创造性与连贯性。
模型选择: 为任务选择正确的模型。一些模型擅长特定任务,如代码生成或创意写作。
提示长度: 尝试不同长度的提示。尽管详细的提示通常是有帮助的,但过长的提示有时会让模型感到困惑。
结果后果
相关模式
模板化:提示模板提供了一种结构化的方法,确保一致性和有效性。模板指导提示的创建,提高了效率和性能。
模型微调:策略工程与模型微调密切相关,因为两者都旨在优化模型性能。策略工程侧重于输入优化,而微调则调整模型参数。
是的,这就是检索增强生成(RAG)。它可以使用一系列技术,包括基础 RAG、中级 RAG、高级 RAG 来应用。在这篇文章中,我们将只涵盖基础 RAG。
RAG 的主要主题是数据丰富化:RAG 利用数据丰富化和增强来提高提示的质量。Lewis 等人在 2021 年的一篇论文中提出了一种检索增强生成的方法用于问答[5]。作者演示了如何从外部知识源中检索相关段落可以显著提高生成答案的准确性和信息量。
环境感知是 RAG 的一个关键目标。RAG 通过使用额外数据增强提示来提高模型的环境感知。Guu 等人在 2020 年的一篇论文中介绍了一种知识增强语言模型,该模型从知识库中检索并整合相关信息。作者展示了这种方法如何提高模型生成相关环境和事实准确响应的能力。
RAG(检索,增强,生成)在生成之前检索和整合相关的额外数据来增强提示。这确保模型可以访问更广泛的上下文,从而提高输出质量。
解决方案细节:
数据丰富化:RAG 是一种数据丰富化形式,通过检索和整合额外数据来增强输入。这提高了模型的理解能力和输出质量[7]。
环境感知:通过使用额外数据增强提示,RAG 提高了模型的环境感知能力。这使模型能够生成考虑更广泛上下文的响应[8]。
通过 API 向用户或系统提供 AI 模型的服务能够实现与应用程序的无缝集成。Zaharia 等人在 2019 年的一篇论文中讨论了在规模化部署机器学习模型时的挑战和最佳实践[7]。作者强调了对于 AI 能力的高效可靠服务的重要性。
服务网格架构有助于部署和管理微服务,包括 AI 服务。Amershi 等人在 2020 年的一篇论文中探讨了服务网格在 MLOps 中的作用,强调了它们在可观察性、流量管理和安全性方面对 AI 部署的好处[8]。
实现一个服务层,托管 AI 模型并通过 API 暴露其功能,允许应用程序访问和集成 AI 能力。
解决方案细节:
在批处理和在线服务之间进行选择:
批处理服务涉及向模型提供大量数据,并将输出写入表中,通常作为定期作业。
在线服务通过端点部署模型,使应用程序能够发送请求并以低延迟接收快速响应。
利用 Amazon、Microsoft、Google 和 IBM 等公司提供的工具和服务简化部署过程。
考虑使用自动化工具来创建机器学习模型服务的工作流程。
模块化:模块化的人工智能组件增强了适应性和可重用性。Li 等人于 2021 年发表的一篇论文 [9] 提出了一种模块化深度学习框架,使得可以组合可重用模块来执行各种任务。作者展示了模块化如何提高 AI 模型在不同领域间的灵活性和可迁移性。
系统集成:将人工智能解决方案与现有系统集成对于实现无缝采用至关重要。Paleyes 等人于 2020 年发表的一篇论文 [10] 讨论了将机器学习模型集成到生产系统中的挑战和策略。作者强调了标准化接口和健壮的集成管道对于成功的人工智能部署的重要性。
通过开发模块化组件和连接器扩展和精炼人工智能解决方案,使其能够与不同的系统集成。
在各种环境和用例中持续评估人工智能解决方案的性能。
采用适应性人工智能解决方案,可以从新数据中学习并随着时间的推移不断改进自身,从而在进行更新时消除了大量编程和手动编码的需求。
利用持续学习范式使人工智能系统更高效、可扩展和可持续。
利用数据科学人员帮助解析数据集中的见解,并提供后续预测、建议和预期结果。
准备和调整数据与模型是开发有效人工智能解决方案的关键方面。高效的数据管道在这一过程中起着至关重要的作用,因为它们能够实现必要的数据清洗、集成和特征工程任务。Polyzotis 等人于 2019 年发表的一篇论文 [11] 对机器学习中的数据管理挑战进行了全面调查,强调了数据管道在人工智能工作流程中的关键作用。除了数据准备之外,超参数优化是改善模型性能的另一个关键步骤。
Li 等人于 2020 年提出了一种基于贝叶斯优化的高效超参数优化框架,展示了自动调整如何显著提高模型准确性并减少手动工作量。此外,对预训练模型进行微调以适应特定任务或领域已被证明是提高模型性能的有效方法。
Howard 和 Ruder [4] 在 2020 年的一篇论文中介绍了微调语言模型的技术,展示了区分性微调和倾斜三角学习率如何显著提升下游任务的性能,同时最小化计算成本。通过专注于数据和模型准备的关键方面,人工智能从业者可以为各种应用开发更准确、更高效和更贴合的解决方案。
以下是子模式。
数据管道: 高效的数据管道对准备数据供 AI 模型使用至关重要。Polyzotis 等人于 2019 年的一篇论文 [11] 对机器学习中的数据管理挑战进行了调查。作者讨论了各种数据清洗、集成和特征工程技术,并强调了数据管道在 AI 工作流中的关键作用。
超参数优化: 调整超参数对优化模型性能至关重要。Li 等人于 2020 年提出了一种基于贝叶斯优化的高效超参数优化框架。作者展示了自动超参数调整如何显著提高模型准确性并减少手动工作量。
模型微调: 微调指的是将预训练模型调整到特定任务或领域。Howard 和 Ruder [4] 在 2020 年的一篇论文中介绍了微调语言模型的技术,如区分性微调和倾斜三角学习率。作者展示了微调如何显著提高模型
合成数据生成: 合成数据生成涉及创建人工数据,模仿真实数据的特征和统计特性。这个过程依赖于能够捕捉真实数据中存在的基本模式、分布和关系的算法和模型。通过生成合成数据,研究人员和开发人员可以增强现有数据集,填补数据空白,并创建新的训练场景,否则这些都是仅靠真实数据无法实现的。
在微调LLMs中合成数据生成的重要性
数据增强: 真实世界的数据集通常存在类别不平衡或某些情景的代表性有限。合成数据生成可用于通过创建新示例来增强训练数据集,从而平衡类别分布并覆盖代表性不足的情况。这导致更健壮和泛化的LLMs,能够在各种任务和情境中表现良好。
数据隐私和安全: 在许多应用中,真实世界的数据可能包含敏感或可识别个人的信息(PII)。合成数据生成允许研究人员创建保留了真实数据的基本统计特性的数据集,同时确保了隐私和安全。通过在合成数据上训练LLMs,大大降低了暴露敏感信息的风险。
探索罕见或危险情景: 真实世界的数据可能缺乏罕见或危险事件的示例,这使得训练LLMs以有效处理这类情况变得具有挑战性。合成数据生成使得可以创建在现实生活中难以或不可能收集到的情景,例如极端天气事件、事故或网络攻击。通过在训练过程中向LLMs暴露这些合成情景,增强了它们理解和应对这类事件的能力。
成本和时间效率: 收集和标注大量真实世界的数据可能是一项耗时且昂贵的过程。合成数据生成通过自动化数据创建过程提供了一种经济高效的替代方案。这使得研究人员和开发人员能够快速迭代和尝试不同的训练场景,从而实现更快的模型开发和改进。
定制和控制: 合成数据生成提供了对数据特征高度定制和控制的能力。研究人员可以微调数据生成模型的参数,创建满足特定要求的数据集,例如控制生成示例的多样性、复杂性或难度。这使得可以针对特定应用或领域有针对性地微调LLMs。
伦理考虑
虽然合成数据生成提供了显著的优势,但必须考虑与其使用相关的伦理问题。合成数据应该被负责任和透明地使用,确保它不会延续真实数据中存在的偏见或误导。此外,验证合成数据的质量和代表性是至关重要的,以确保它与旨在模拟的真实世界数据的特征保持一致。
问题/挑战
背景/背景
考虑/权衡
解决方案
通过确保适当的格式化、清理和结构化,为机器学习调优准备数据。
通过微调,为特定行业领域和用例定制人工智能模型。
解决方案细节:
利用数据准备工具,例如OpenAI的CLI数据准备工具,对数据进行验证、建议和重新格式化,以符合微调所需的格式。
确保数据集涵盖各种主题、风格和格式,以使模型能够在不同情境下生成连贯且具有上下文相关性的输出。
提供足够数量的高质量训练示例,最好由人类专家审查,以提高微调模型的性能。
增加示例数量以获得更好的性能,因为更大的数据集通常会导致模型质量的线性增加。
结果后果
相关模式
反馈循环能够基于用户交互持续改进 AI 模型。Breck 等人在 2021 年的一篇论文[13]中讨论了反馈循环在负责任的 AI 开发中的重要性。作者强调,整合用户反馈如何帮助发现和减轻 AI 系统中的偏见、错误和意外后果。
在生产环境中监控 AI 模型对于维持性能和检测异常至关重要。Klaise 等人在 2020 年的一篇论文[14]中提出了一个连续监控机器学习模型的框架。作者讨论了实时检测概念漂移、性能下降和数据质量问题的技术。
随着 AI 系统在关键领域的部署越来越多,其输出的相关性和准确性直接影响其有用性和社会影响。
实施评估和验证机制,评估 AI 输出的质量、性能和偏见,将其基于额外的数据和验证。
解决方案细节
利用自动化监控系统检测 AI 模型中的偏见、漂移、性能问题和异常,确保其正常和合乎伦理的功能。
建立性能警报,及时干预当模型偏离其预定义的性能参数时。
实施反馈循环以解决用户的挫败感,保持其参与度,引导他们朝向准确性,防止他们陷入困境。
多智能体系统(MAS)已经成为设计和实施复杂 AI 系统的强大范例。在 MAS 中,多个智能体相互交互和协作,解决超出单个智能体能力的问题。Dorri 等人在 2021 年的一篇论文[19]中全面调查了多智能体系统在 AI 中的应用,讨论了它们的应用、挑战和未来方向。作者强调了协调、沟通和决策在 MAS 中的重要性,强调它们在解决大规模、分布式问题中的潜力。
MAS 中的一个关键挑战是确保智能体之间的有效合作。Xie 等人在 2020 年的一篇论文[20]中提出了一个新颖的合作多智能体强化学习框架,使智能体能够根据其他智能体的行动学习和调整策略。作者展示了这种方法如何在复杂、动态环境中提高性能和鲁棒性。
MAS 的另一个重要方面是处理不确定性和不完整信息的能力。Amato 等人在 2019 年的一篇论文[21]中讨论了多智能体系统中分散决策下不确定性的挑战和机会。作者提出了各种技术,例如部分可观察马尔可夫决策过程和博弈论方法,用于模拟和解决 MAS 中的决策问题。
多智能体系统已在各个领域得到应用,包括机器人技术、自动驾驶车辆和智能电网。通过利用多个智能体共同工作的力量,MAS 可以实现更具韧性、适应性和可扩展性的 AI 解决方案。随着 AI 系统复杂性的不断增加,多智能体系统在塑造人工智能未来方面可能会发挥越来越重要的作用。
在 Google Cloud,我们最近(2024 年 4 月)宣布了 Agent-builder 和对基于代理的设计和开发的支持。
多智能体系统已经成为设计和实施复杂 AI 系统的强大范例。在 MAS 中,多个智能体相互交互和协作,解决超出单个智能体能力的问题。
大型语言模型(LLMs)在自然语言理解和生成方面表现出色。然而,随着任务的复杂性和对专业知识的需求增加,利用 LLM 中的多智能体系统可以导致更高效、更有效的解决方案。
设计有效的多智能体系统涉及解决诸如智能体之间的协调、沟通和决策等挑战。确保合作并处理不确定性和不完整信息对
将多智能体系统整合到LLM中会面临挑战,例如协调多个专业化语言模型、实现智能体之间的有效沟通和知识共享,以及确保生成的输出连贯性。
考虑因素/权衡
多智能体系统的复杂性与其解决大规模分布式问题的能力之间存在权衡。在个体智能体的自主性与协调合作的需求之间取得平衡对于实现最佳性能至关重要。
在LLM中实施多智能体系统需要在专业化专长的好处与智能体之间的协调和沟通开销之间取得平衡。找到合适的平衡对于优化性能并保持生成语言的流畅性和连贯性至关重要。
解决方案
开发利用多个智能体共同解决复杂问题的多智能体系统。实施有效的协调、沟通和决策技术。
在本博客中,我们仅涵盖基础知识,并将在随后的博客中提供有关多智能体系统的模式语言的详细信息。敬请关注。
为LLM开发一个多智能体架构,允许多个专业化语言模型进行协作和知识共享。实施有效的通信、协调和决策技术,以实现无缝集成和最佳性能。
解决方案细节
利用合作式多智能体强化学习框架,例如谢等人提出的框架[20],使智能体能够根据其他智能体的行动学习和调整策略。
应用部分可观察马尔可夫决策过程和博弈论方法,如阿马托等人讨论的那样[21],来模拟和解决多智能体系统在不确定性和信息不完整情况下的决策问题。
利用多智能体系统在各个领域(如机器人技术、自动驾驶车辆和智能电网)中的潜力,开发更具弹性、适应性和可扩展性的人工智能解决方案。
基于LLM的智能体
利用分层多智能体框架,高层智能体协调下层专业智能体的行动,确保生成输出的连贯性和一致性。
实施通信协议,允许智能体共享相关信息,如上下文、意图和生成的输出,实现有效的协作和知识共享。
运用联邦学习和迁移学习等技术,使智能体能够相互学习,并高效地适应新任务和领域。
结果影响
多智能体系统使得AI解决方案能够比单个智能体更有效地解决复杂的分布式问题。通过促进智能体之间的协调、沟通和决策,多智能体系统可以提高性能、鲁棒性和适应性,适用于动态环境。
LLM中的多智能体系统使得生成的语言输出更具连贯性、相关性和专业性。通过利用多个专业智能体的专长,LLM可以更有效地解决复杂任务,提高性能和用户体验。
相关模式
分散控制:多智能体系统通常采用分散控制架构,允许智能体自主做出决策,同时与其他智能体协调以实现共同目标。
群体智能:多智能体系统可以表现出群体智能,即智能体之间的简单互动导致系统层面上复杂、智能的行为出现。
模块化架构:LLM中的多智能体系统可以采用模块化架构实现,其中每个智能体是一个具有特定功能的独立模块,便于扩展和适应新任务。
协作学习:多智能体LLM中的智能体可以进行协作学习,共享知识并相互学习,以提高其个体和集体的性能。
将多智能体系统整合到大型语言模型中为生成高质量、专业化的语言输出打开了新的可能性。通过促进多个专业智能体之间的有效协调、沟通和知识共享,LLM可以更高效、更有效地解决复杂任务,为更先进和智能的基于语言的应用铺平道路。
道德人工智能:治理人工智能系统涉及确保符合道德原则和法规。弗洛里迪等人在2021年的一篇论文中提出了一个道德人工智能治理框架[15]。作者讨论了透明度、问责制和公平性在AI开发和部署中的重要性,强调治理在促进负责任的AI实践中的作用。
合规管理:合规管理确保人工智能系统遵守法律和监管要求。Bughin等人在2020年的一篇论文[16]探讨了人工智能的监管环境,并讨论了管理合规风险的策略。作者强调了需要积极的合规管理来应对围绕人工智能的不断发展的法律和伦理框架。
问题/挑战
背景/背景
考虑/权衡
解决方案
实施一个负责任的人工智能治理层,其中包括无偏见的安全检查、复述检查和监督机制。
解决方案细节
建立跨学科治理政策和框架,涉及来自技术、法律、伦理和商业领域的利益相关者,以指导人工智能的发展并解决风险。
确保人工智能系统尊重和维护隐私权、数据保护和安全,以保护个人信息。
实施机制持续监控和评估人工智能系统,确保遵守伦理规范和法律法规。
利用具有实时更新和直观健康评分指标的可视化仪表板,轻松监控人工智能系统的状态和性能。
结果后果
相关模式
持续部署:MLOps实现了人工智能模型的持续部署,允许快速更新和改进。Alla和Adari在2020年的一篇论文[17]讨论了MLOps的原则和实践,强调了持续集成和部署(CI/CD)管道对于高效的模型更新和发布的重要性。
实时监控:实时监控对于确保生产中人工智能模型的性能和可靠性至关重要。Sambasivan等人在2021年的一篇论文[18]中展示了对监控机器学习系统中挑战和最佳实践的研究。作者讨论了实时监控的重要性,用于检测和缓解问题,确保人工智能模型的顺畅运行。
问题/挑战
背景/背景
考虑/权衡
解决方案
精心设计一个集成和监控数据、预测和生成式人工智能组件的持续集成和部署(CI/CD)管道。
解决方案细节
采用MLOps方法增加数据科学家、工程师和IT专业人员之间的协作,加速模型开发和生产。
利用自动化测试和验证实践提高机器学习工件的质量,并在ML项目中实现敏捷原则。
将MLOps应用于整个机器学习生命周期,从模型生成和编排到健康、诊断、治理和业务指标。
结果后果
相关模式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。