人工智能软件系统架构-全-

人工智能软件系统架构(全)

原文:Architecting AI Software Systems

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

人工智能(AI)的时代已经到来。每天,人工智能技术几乎在生活的各个方面都影响着新的应用、扩展或改进。这些技术几乎完全体现在复杂的软件中。

构建复杂的软件是一个需要纪律性和系统性的努力工程。很多时候,当复杂的软件系统失败时,通常是因为系统的架构失败,而不是特定的算法或实现细节。存在构建复杂软件的最佳实践和经验教训。同时,也存在大量关于人工智能技术和实现的理论和实践参考文献。

对于如何构建以人工智能技术为核心的复杂软件,没有太多的参考文献。

作者的主要观点是,应用架构概念和实践是构建复杂人工智能软件的关键推动力。在接下来的篇章中,我们将讨论构建复杂人工智能系统所面临的挑战。您将了解如何将架构的教训应用于构建和指导软件系统的开发。

本书旨在平衡理论与实践:理论确保建议有据可依且易于理解,实践确保本书对您在当前和未来的实际应用有所帮助。本书是作者数十年的经验结晶,包含了宝贵的经验教训,无论是积极的还是消极的。人工智能时代已经到来;我们希望这本书能成为您工具箱中的另一件工具。

本书面向对象:

本书有三个主要受众:

  1. 对于希望扩展其构建以人工智能为中心的复杂软件系统知识的软件架构师或工程经理,本书提供了理论与实践的结合。书中的指导可以迅速用于构建项目关卡和团队任务。

  2. 本书对技术高管、首席技术官或工程副总裁有所帮助。本书提供了对主要系统开发活动的见解,高管还可以了解系统开发中的关键风险。通过了解如何构建人工智能赋能的系统,高管可以积极影响组织的战略如何融入最终系统。

  3. 本书可供有志成为人工智能架构师的人士学习领域知识。本书将提供架构的主要主题的见解,提供参考,并确定可以进一步专业发展的重点领域。

本书涵盖内容

第一章人工智能系统架构基础,概述了构建人工智能系统所面临的挑战和机遇。

第二章建筑学的案例,简要概述了建筑学作为一门学科,以及建筑师如何创造和适应工具来构建复杂结构。

第三章软件工程与架构,讨论了架构概念如何影响软件工程,以及如何使用这些概念来改进复杂软件的工程。

第四章AI 系统的概念设计,讨论了建筑师领导的最重要阶段之一,使用的工具以及创建的工件,以提供强大的概念设计。

第五章AI 管道的需求和架构,深入探讨了概念设计活动后的第一个方面,并为构建 AI 管道奠定了概念基础。

第六章设计、集成和测试,详细介绍了设计步骤、软件策略和模式的使用,以及架构对测试的影响的考虑。

第七章构建生成式 AI 系统——案例研究,提供了一个案例研究,说明如何为帮助台支持系统设计 AI 系统。

第八章洞察与未来方向,总结了本书的内容,并概括了我们希望您最想记住的关键点。

下载彩色图像

我们还提供了一份包含本书中使用的截图/图表彩色图像的 PDF 文件。您可以从这里下载:packt.link/gbp/9781804615973

使用的约定

本书使用了多种文本约定。

粗体:表示新术语、重要单词或屏幕上看到的单词。例如,菜单或对话框中的单词在文本中显示如下。例如:“从管理面板中选择系统信息。”

警告或重要提示看起来像这样。

小技巧和窍门看起来像这样。

联系我们

我们始终欢迎读者的反馈。

一般反馈:如果您对本书的任何方面有疑问或有任何一般性反馈,请通过电子邮件发送至customercare@packt.com,并在邮件主题中提及本书的标题。

勘误表:尽管我们已经尽最大努力确保内容的准确性,但错误仍然可能发生。如果您在这本书中发现了错误,如果您能向我们报告,我们将不胜感激。请访问www.packt.com/submit-errata,点击提交勘误,并填写表格。

盗版:如果您在互联网上遇到任何形式的我们作品的非法副本,如果您能提供位置地址或网站名称,我们将不胜感激。请通过mailto:copyright@packt.com与我们联系,并附上材料的链接。

如果您有兴趣成为作者:如果您在某个领域有专业知识,并且您有兴趣撰写或为书籍做出贡献,请访问authors.packt.com/

分享您的想法

一旦您阅读了《架构人工智能软件系统》,我们非常乐意听取您的意见!请点击此处直接访问亚马逊评论页面并分享您的反馈。

您的评论对我们和科技社区都非常重要,它将帮助我们确保我们提供高质量的内容。

第一部分

建筑基础

在本书的第一部分,介绍了架构概念如何影响软件系统。本部分将引导您了解第一章中的主要考虑因素。然后,在第二章中简要描述了架构的概述。最后,在第三章中,我们讨论了架构对软件工程的影响。

本部分包含以下章节:

  • 第一章, 人工智能系统架构基础

  • 第二章, 架构的必要性

  • 第三章, 软件工程与架构

第一章:人工智能系统架构的基本原理

公众对人工智能AI)的兴趣最近激增,尤其是随着生成式人工智能的兴起,引发了一股对全面人工智能解决方案的兴奋和需求。这种高度的兴趣不仅超越了技术爱好者和研究人员,还扩展到企业、政府和寻求利用人工智能的力量来解决现实世界问题并增强其能力的人。在这个环境中,人工智能系统的架构,它定义了其结构、组件和交互,在塑造有效人工智能解决方案的开发和部署中发挥着关键作用。

人工智能已成为一种变革力量,颠覆了行业,重塑了我们与技术以及周围世界互动的方式。在核心上,人工智能指的是模仿人类认知功能的计算模型,包括从数据中学习、识别模式、做出决策,甚至与环境交互。这项革命性技术跨越了广泛的范围,从简单的基于规则的系统到复杂的深度学习模型,每个都有其独特的应用和功能。

任何人工智能系统的一个主要方面是正在进行推理的结果需要相关且可信。为确保获得并保持信任,使用强大的架构至关重要。不仅需要设计技术,还需要考虑技术将被如何使用、管理和评估,以及涉及的利益相关者。利益相关者需要能够迅速定位问题、快速纠正模型参数,并以深思熟虑和迅速的方式部署更改。用更通俗的话来说,架构和支持过程可以描述为“安全栏”。如何使用安全栏非常具体,取决于将要使用人工智能技术的领域和用例。可以讨论的安全栏类别包括——例如,使用金丝雀来判断模型正确性,从已知的黄金标准出发;使用时间和数据流指标来判断模型性能;以及使用过滤器和稳健的数据质量检查,以确保只有一致且正确的数据进入系统。另一类安全栏是人类系统接口,例如用于分类错误的警报框架和监控器,使用故障排除工具,以及处理意外错误的预设协议。建模的书面程序或指导有助于在不需要调用模型开发者进行故障排除的情况下维护系统。

信任是系统成功的关键考虑因素,因此需要设计一个考虑这一点的系统。在许多方面,本书中描述的展示和经验教训旨在确保人工智能系统的信任。

本章从广义上强调了推动成功人工智能实施的 AI 架构考虑的关键方面。以下是主题:

  • 人工智能的简介和关键概念

  • 人工智能系统的组成部分

  • 人工智能技术和微服务

  • 人工智能系统和技术考量

  • 部署考量

充分利用本书 – 了解您的免费福利

解锁与您的购买一起提供的独家免费福利,这些福利经过精心设计,旨在加速您的学习之旅,并帮助您无限制地学习。

下面是您通过本书可以获得的内容快速概述:

下一代读者

| 下一代 Packt Reader 功能图图 1.1:下一代 Packt Reader 的功能示意图 | 我们基于网络的读者,旨在帮助您有效地学习,具有以下功能!多设备进度同步 多设备进度同步:在任何设备上无缝同步进度。高亮和笔记 高亮和笔记:将您的阅读转化为持久的知识。书签 书签:随时回顾您最重要的学习内容。深色模式 深色模式:通过切换到深色或棕褐色模式,以最小的眼部疲劳来集中注意力。 |

| --- | --- |

交互式 AI 助手(测试版)

| 交互式 AI 助手灰度图图 1.2:Packt 的 AI 助手的示意图 | 我们的交互式 AI 助手已经接受了本书内容的训练,以最大化您的学习体验。它具有以下功能!总结 总结:总结关键部分或整章内容。AI 代码解释器 AI 代码解释器:在下一代 Packt Reader 中,点击每个代码块上方的解释按钮,获取 AI 驱动的代码解释。注意:AI 助手是下一代 Packt Reader 的一部分,目前仍处于测试阶段。* |

| --- | --- |

免 DRM PDF 或 ePub 版本

| 免费 PDF 和 ePub图 1.3:免费 PDF 和 ePub | 通过以下购买时包含的优惠,无限制地学习!PDF 在任何地方学习,使用此书的免 DRM PDF 副本。ePub 使用您最喜欢的电子阅读器,通过此书的免 DRM ePub 版本学习。 |

| --- | --- |

|

现在解锁本书的独家免费福利

扫描此二维码或访问packtpub.com/unlock,然后通过书名搜索本书。确保是正确的版本。 | 解锁-01解锁 |

| 注意:在开始之前,请准备好您的购买发票。* |

| --- |

人工智能系统简介:构建智能的未来

人工智能系统是人工智能的体现,作为推动智能应用和服务运行的引擎。这些系统是复杂的结构,精心设计以执行各种任务,从图像识别和自然语言处理到自主决策和复杂问题解决。

人工智能系统的架构充当详细的技术蓝图,指定其结构组织和各个组件之间的精确交互。这些组件包括以下内容:

  • 硬件基础设施:通用处理用 CPU、并行计算用 GPU、张量运算用 TPU 以及专门的 AI 加速器

  • 软件框架:TensorFlow、PyTorch、JAX 和其他支持模型开发的库

  • 算法实现:机器学习算法、神经网络架构和推理引擎

  • 数据管道:ETL 过程、特征存储和数据管理系统

所有这些元素协同工作,使系统能够高效、可靠地实现其设计目标。

一个设计良好的人工智能系统实现了几个关键的技术要求:

  • 最佳性能:通过优化模型设计、高效资源分配和硬件感知实现,最大限度地提高计算效率,以提供响应迅速且准确的结果,同时最小化延迟。这涉及到优化的模型设计、高效的资源分配和充分利用可用计算能力的硬件感知实现。

  • 可扩展性:通过水平扩展(添加更多机器)和垂直扩展(添加更强大的机器)处理不断增长的工作负载和扩展的数据集,而不会降低性能。现代人工智能架构必须适应不断增长的数据量、用户基础和计算需求。

  • 效率:通过模型量化、知识蒸馏和优化的推理路径等技术,减少计算资源消耗、能源使用和运营成本。高效的 AI 系统在保持功能有效性的同时,最小化其资源占用。

  • 可靠性:确保在面临意外数据模式、输入变化或系统故障时,仍能以高可用性指标保持一致运行。这需要强大的错误处理能力、优雅降级能力和全面的监控系统。鉴于人工智能技术既可以是确定性的也可以是非确定性的,必须考虑允许人为干预。这种干预需要涵盖从简单监控到完整的测试基础设施套件。

  • 安全性:实施全面的数据保护措施,防御对抗性攻击、数据中毒和模型漏洞。人工智能系统必须保持数据机密性和完整性,并对传统网络安全威胁和特定于人工智能的攻击具有弹性。

  • 可解释性:提供对算法决策过程的透明可见性,支持合规性、用户信任和系统调试。现代人工智能架构必须在性能和可解释性之间取得平衡,以满足对人工智能透明度的日益增长的需求。

人工智能领域不断演变,新的架构和技术以惊人的速度出现。随着我们深入这个迷人的领域,我们将探讨各种人工智能系统、其基本原理以及正在塑造技术和社会未来多样应用。

什么是人工智能系统?

人工智能系统是一个计算模型或模型集合,旨在执行通常需要人类智能的任务。这些系统由算法和数据驱动,使它们能够从经验中学习、适应新信息并做出决策或预测。

图片 B19300_01_01

图 1.4:AI 技术栈

从实现的角度来看,人工智能系统通常由几个关键层组成:

  1. 硬件:包括 CPU、GPU、TPUs、全频谱存储和网络等计算资源

  2. 数据层:处理数据摄取、存储、预处理和特征工程

  3. 模型层:包含训练好的机器学习或深度学习模型

  4. 推理层:管理对新数据输入执行模型的操作

  5. 应用层:将人工智能能力集成到面向用户的应用程序中

  6. 监控层:跟踪系统性能、数据漂移和模型健康

人工智能系统可以分为两大类:

  • 窄人工智能(弱人工智能):这些系统被设计在有限领域内擅长特定任务。例如,图像识别软件、垃圾邮件过滤器和建议引擎。虽然它们可能在指定的任务上非常熟练,但它们缺乏在其他领域推广其知识的能力。

  • 通用人工智能(强人工智能):这是一个关于人工智能系统的理论概念,它拥有与人类相当的人工智能,并且能够执行人类能够完成的任何智力任务。它将具备推理、规划、解决问题、从经验中学习以及理解跨多个领域的复杂概念的能力。尽管通用人工智能仍然是一个遥远的目标,但在开发具有日益复杂能力系统的方面已经取得了重大进展。

计算机屏幕截图  AI 生成的内容可能不正确。

图 1.5:人工智能系统的分类

黑色背景上的放大镜  AI 生成的内容可能不正确。快速提示:需要查看此图像的高分辨率版本吗?在下一代 Packt Reader 中打开此书或在其 PDF/ePub 副本中查看。

图片 2下一代 Packt Reader以及本书的免费 PDF/ePub 副本包含在您的购买中。扫描二维码或访问packtpub.com/unlock,然后使用搜索栏通过名称查找此书。请仔细检查显示的版本,以确保您获得正确的版本。

图片 Unlock1

AI 基础设施的普遍影响:为各行业的智能解决方案提供动力

优秀的 AI 基础设施,包括支持 AI 应用程序的硬件、软件和网络,是 AI 在各个行业产生变革性影响的主要驱动力。该基础设施使 AI 模型、算法和框架的部署和扩展成为可能,释放它们的全部潜力以解决复杂挑战并交付创新解决方案。

  • 医疗保健

    • 加速医学图像分析:高性能计算集群和专用硬件加速器能够快速处理医学图像,促进更快、更准确的诊断。

    • 数据驱动洞察:可扩展的存储和处理基础设施使 AI 驱动的分析能够处理庞大的患者数据集,从而实现个性化的治疗方案和改善的患者结果。

    • 实时监控:基于云的 AI 基础设施能够持续监控患者的生命体征和其他健康数据,促进及时干预和主动护理。

  • 金融:

    • 鲁棒的反欺诈检测:分布式计算和实时分析平台赋予 AI 模型以更高的准确性和速度检测欺诈交易,保护金融机构和消费者。

    • 优化交易策略:高频交易算法利用低延迟网络和强大的计算资源,以精确和高效的方式执行交易,最大化回报。

    • 个性化金融服务:基于云的 AI 基础设施使得部署机器人顾问和其他 AI 工具成为可能,这些工具为个人提供定制化的财务建议和服务。

  • 自动驾驶汽车

    • 实时传感器融合:高吞吐量数据管道和边缘计算基础设施能够快速处理来自摄像头、激光雷达、雷达和其他来源的传感器数据,确保自动驾驶汽车能够及时做出决策。

    • 增强物体识别:在大型数据集上训练并在专用硬件加速器上部署的深度学习模型,能够准确可靠地识别环境中的物体。

    • 优化导航:基于云的地图和导航服务,结合车载 AI 处理,为自动驾驶汽车提供实时信息和指导,确保安全高效的导航。

AI 基础设施的持续发展和优化将在实现 AI 在各个行业的全部潜力中发挥关键作用。通过提供性能和可扩展的 AI 解决方案的基础,该基础设施有望改变我们的生活方式和工作方式。

AI 系统架构的关键组件

AI 系统本质上是由复杂结构设计的,旨在模拟人类认知能力,如学习、推理和问题解决。为了实现这些能力,AI 系统依赖于一个定义良好的架构,由多个相互连接的组件组成,每个组件在系统的整体运行中都发挥着关键作用。理解这些关键组件对于理解 AI 的内部运作和潜力至关重要。

  • 数据组件:数据是任何 AI 系统的生命线,是系统学习和改进的原始材料。数据可以存在于多种形式:

    • 结构化数据:以数据库和电子表格等预定义格式组织

    • 半结构化数据:部分组织的信息,如 JSON 或 XML 文件

    • 非结构化数据:原始信息,包括文本文档、图像、音频记录和视频文件

数据的质量、数量和相关性对人工智能系统的性能及其对新情况泛化的能力有重大影响。

  • 算法框架:算法是驱动人工智能系统的引擎,提供处理数据和生成智能输出的指令和逻辑。机器学习算法是人工智能算法的一个子集,使系统能够从数据中学习模式和关系,从而使其能够进行预测、分类或决策。生产级人工智能系统中的常见算法方法包括以下几种:

    • 传统机器学习:线性回归、随机森林、梯度提升和支持向量机

    • 深度学习卷积神经网络CNNs)、循环神经网络RNNs)、transformers 和图神经网络

    • 强化学习:Q 学习、策略梯度方法和 actor-critic 架构

算法的选取取决于具体的问题领域、可用数据特征和性能要求。

  • 模型架构:模型代表了人工智能系统中学习过程的最终成果。它们是从数据中提取的知识数学表示,封装了算法发现的模式、关系和洞察。这些模型可以是简单的,也可以是复杂的,这取决于任务的性质和所使用的算法。模型架构介于以下几种之间:

    • 简单线性模型:易于解释但功能有限

    • 集成模型:结合多个简单模型以提高性能

    • 深度神经网络:具有数百万或数十亿参数的复杂架构

训练完成后,模型用于对新、未见过的数据进行预测或决策。

  • 基础设施:基础设施组件包括提供人工智能系统运行所需的计算能力和环境的硬件和软件资源。关键基础设施元素包括以下几种:

    • 计算资源:高性能服务器、专门的 AI 加速器(GPU、TPU、FPGA)和分布式计算集群

    • 存储系统:用于训练数据和模型工件的高吞吐量、可扩展存储

    • 网络组件:用于分布式训练和推理的低延迟互连

  • 开发框架:如 TensorFlow、PyTorch 和 Hugging Face 等软件库,它们简化了人工智能的开发和部署。

理解这些关键组件及其相互作用为理解人工智能系统架构的复杂领域提供了坚实的基础。通过精心设计和优化每个组件,研究人员和工程师可以构建能够处理各种任务和应用的人工智能系统,从图像识别和自然语言处理到自动驾驶和药物发现。将人工智能能力集成到现有软件堆栈中需要深思熟虑的架构考虑,以成功引入智能并解决人工智能组件带来的独特需求。这些具体需求和架构方法构成了本书的核心焦点。由于人工智能系统的复杂性,部署方法的本性至关重要。下一节将讨论提供性能和模块化之间平衡的微服务架构的使用。

微服务架构:构建复杂人工智能系统的模块化方法

随着人工智能系统复杂性的增加,传统的单体架构可能会变得难以管理,从而阻碍开发速度和灵活性。微服务架构通过将这些复杂系统分解成更小、独立的微服务,提供了一个有吸引力的替代方案。每个微服务专注于特定的功能,并通过定义良好的 API 与其他服务进行通信。

微服务对人工智能的优势

  • 增强灵活性和敏捷性:团队可以独立开发、部署和更新每个微服务,使用每个任务最合适的技术和编程语言。这加速了开发周期,并允许更容易地进行实验和创新。

  • 提高可伸缩性:微服务可以水平扩展以满足特定需求,确保资源利用最优化。例如,处理图像处理的微服务可以独立于负责自然语言理解的微服务进行扩展。

  • 提高弹性和容错性:如果一个微服务失败,影响将局限于局部,最小化对整个系统的干扰。这增强了整体可靠性并简化了故障排除。

  • 技术多样性:微服务架构使团队能够利用每个任务的最佳工具,促进创新,并允许逐步进行技术升级。

微服务架构的挑战

  • 增加复杂性:管理众多服务和它们之间的交互需要强大的编排和监控工具。服务发现、负载均衡和故障处理成为关键考虑因素。

  • 通信开销:过度的服务间通信可能会引入延迟并影响整体性能。精心设计 API 和通信模式对于减轻这一问题至关重要。

  • 数据一致性:在分布式服务中维护数据一致性可能具有挑战性。可能需要采用最终一致性或分布式事务等策略来确保数据完整性。

现实世界示例:对话式 AI 微服务实现

为了说明微服务方法如何简化对话式 AI 解决方案,让我们考察一个实际例子,以展示这些原则如何付诸实践。本节探讨了一个对话式 AI 系统——如聊天机器人或虚拟助手——它使用具有 API 网关的四服务微服务架构构建。

四个核心微服务

图 1.6 展示了我们对话式 AI 系统的高级设计:

服务图示 AI 生成的内容可能不正确。

图 1.6:对话式 AI 微服务

架构由四个核心专业服务加上一个 API 网关组成:

  1. 语言理解服务:

    • 主要功能:意图分类、实体识别/提取和 NLP 模型的托管。

    • 数据和模型:引用一个或多个 NLP 模型数据库(例如,基于 transformer 的分类器)。

    • 关键交互:通过 API 网关接收用户的文本,确定用户的意图(例如,“检查账户余额”),并提取相关实体(例如,“日期”、“位置”、“产品名称”)。

  2. 对话管理服务:

    • 主要功能:负责对话流程的监控,处理会话状态,并协调对话的下一步。

    • 数据和状态:在专用的状态数据库中维护对话上下文。

    • 关键交互:异步记录对话事件并更新或检索会话细节以引导流程(例如,“问候”、“确认”、“下一步”)。

  3. 知识回应服务

    • 主要功能:检索相关信息并制定回应。这可能涉及查询知识库(例如,常见问题解答、产品信息)或组装基于模板的回复。

    • 数据和模板:在知识数据库中存储特定领域的知识,并使用模板或生成机制来创建回应。

    • 关键交互:从对话管理服务接收查询,找到或创作最佳回应,并将其返回以最终交付给用户。

  4. 对话分析服务:

    • 主要功能:处理日志和用于报告、可视化和更深入分析(例如,意图分布、用户满意度趋势)的使用度量。

    • 数据和报告:在单独的数据库中维护分析数据,用于仪表板或离线处理。

    • 关键交互:从对话管理服务和其他组件收集异步事件日志,以衡量性能、跟踪用户行为,并提供随着时间的推移可能改进系统的见解。

API 网关的作用

虽然不算作四个微服务之一,但API 网关是架构前端的必要组件。它执行以下操作:

  • 接收来自用户的请求(通过文本或其他渠道)

  • 初始化会话并将传入数据路由到语言理解服务

  • 将识别到的意图和更新传递给对话管理服务

  • 将来自下游服务的回复传递回用户

通过集中流量管理,API 网关强制执行一致的安全、节流和监控策略,同时保持每个微服务隔离和独立可扩展。

对话流程序列

为了说明这些微服务在典型用户旅程中的交互方式,图 1.7显示了它们在单个对话周期中的调用序列:

一个软件项目的图示,AI 生成的内容可能不正确。

图 1.7:系统组件之间的序列图

序列按以下步骤进行:

  1. 用户 API 网关:用户发送请求(例如,一条聊天消息)。API 网关(如果需要)初始化会话,并将消息转发到语言理解服务。

  2. 语言理解服务:

    • 执行意图分类和实体识别。

    • 将识别到的意图(例如,“CheckWeather”)和任何提取的实体(例如,日期,位置)返回到 API 网关。

  3. 对话管理服务:

    • 从 API 网关接收识别到的意图。

    • 将对话事件(异步)记录到对话分析服务。

    • 更新或检索会话状态(例如,用户的位置或最近的对话上下文)。

  4. 知识响应服务:

    • 一旦对话管理服务确定需要额外的数据(例如,天气信息,产品详情),它就会向知识响应服务发送一个查询

    • 此服务获取必要的信息或构建响应模板(例如,“您所在位置的天气晴朗,温度为 75°F...”)。

  5. 对话分析服务(异步日志):

    • 从对话管理服务(以及可能的知识响应服务)持续接收使用数据和对话日志。

    • 处理并存储这些日志以供未来报告(例如,月度使用仪表板,模型性能指标)。

  6. 回复用户:

    • 知识响应服务制定的答案通过对话管理服务(如果需要,进行最终会话更新)路由回,然后通过 API 网关返回。

    • 用户收到回复,交互结束。

微服务通信的关键方面

  • 同步与异步调用:

    • 必须立即返回请求的服务(例如,为用户生成响应)使用同步调用。

    • 日志或分析操作通常异步执行,以避免减慢核心对话循环。

  • 有状态与无状态组件:

    • 对话管理需要跟踪会话状态,而其他服务(例如,语言理解)通常从无状态设计中受益,以便于更简单的扩展。

    • 对话管理服务可能需要强大的状态管理解决方案,例如分布式缓存或数据库。

  • 服务自治:

    • 每个微服务都可以独立更新或替换,而不会影响系统中的其他部分。

    • 语言理解服务的 NLP 模型可能需要频繁重新训练。因为它是一个独立的服务,所以这些更新可以在不影响其他服务的情况下部署。

  • 数据隔离:

    • 服务管理自己的领域数据。对话管理存储对话状态,知识响应存储领域事实,分析维护交互日志。

    • 当有必要时,应将敏感用户数据限制在对话管理服务的状态存储中,以最小化整个系统中的暴露。

对话式人工智能微服务的实现考虑因素

  1. 独立扩展:

    • 语言理解服务可以根据传入的消息负载进行扩展或缩减(例如,针对高峰聊天流量进行水平自动扩展)。

    • 对话管理服务维护对话状态,可能需要不同的扩展策略。

    • 知识响应服务通常根据信息检索的复杂性进行扩展。

    • 对话分析服务可以单独扩展,特别是如果分析工作负载(如报告生成)在用户请求之外的时间激增。

  2. 延迟管理:

    • 对话式人工智能系统旨在实现近乎实时的交互。最小化服务之间的网络跳转和通信开销至关重要。使用轻量级通信协议有助于确保系统在扩展时表现良好。
  3. 故障隔离:

    • 如果一个服务失败(例如,知识响应服务离线),系统中的其他部分仍然可以处理其他任务或提供回退行为(例如,道歉响应或重定向到人工代理)。
  4. 监控和可观察性:

    • 强健的日志记录和可观察性实践对于确保系统在服务故障或减速时保持弹性至关重要。对话分析服务在跟踪系统健康和性能方面发挥着关键作用。

为什么对话式人工智能需要微服务?

将对话式人工智能系统分解为这四个专业服务,在可维护性可扩展性团队敏捷性方面带来了显著的好处。每个服务都可以独立演进,允许对 NLP 模型、对话流程和知识检索策略进行快速迭代,而不会在整个应用程序中引发“大爆炸”故障。

同时,对服务间通信的细致关注至关重要。如图所示,每个用户请求都会发生多次跳转。使用轻量级通信协议并区分同步和异步操作有助于保持系统响应性。

对话式 AI 的例子有力地说明了微服务方法如何实现灵活性、容错性和迭代创新的平衡。在这里学到的经验教训——例如,独立扩展关键服务、隔离数据以保障安全、确保优雅的故障模式——广泛适用于各种由 AI 驱动的解决方案。

这种现实世界的实现模式表明,尽管微服务增加了复杂性,但它们给 AI 系统带来的好处——尤其是那些需要频繁更新、可变扩展和组件级创新——通常在适当架构和实施的情况下,会超过所面临的挑战。

AI 系统的考虑因素

设计一个良好的 AI 系统架构需要仔细考虑几个关键因素。这些因素确保系统不仅能够有效运行,而且能够适应未来的需求和挑战。

可扩展性:处理增长的数据和模型复杂性

AI 系统经常遇到数据量增长和模型日益复杂的问题。可扩展性是指系统在不影响性能的情况下处理这种增长的能力。有效的策略包括以下内容:

  • 水平扩展:这涉及到添加更多计算资源以分配工作负载。例如,在云环境中,您可能需要部署额外的虚拟机或容器来处理增加的流量。Kubernetes 可以编排这些容器,确保工作负载均匀分布。

  • 垂直扩展:通过更强大的硬件增强现有资源。例如,升级服务器的 CPU 或 GPU、增加更多 RAM 或使用 SSD 代替 HDD 以提高 I/O 性能。

  • 分布式计算:利用 Apache Spark 或 Hadoop 等框架在多个节点上处理数据。这种方法将大型数据集分解成更小的块,可以并行处理,显著减少处理时间。例如,Spark 的弹性分布式数据集(RDDs)允许内存处理,这比传统的基于磁盘的处理要快得多。

性能:优化技术

在许多 AI 应用中,实时或近实时处理至关重要。优化性能的技术包括以下内容:

  • 硬件加速:利用 GPU 或 TPU 进行计算密集型任务——例如,TensorFlow 和 PyTorch 可以利用 NVIDIA GPU 中的 CUDA 核心来加速深度学习模型训练。

  • 并行处理:将任务划分为可以同时执行的小子任务。在 Python 中,可以使用如 multiprocessing 或 concurrent.futures 等库来并行化任务——例如,同时训练多个模型或并行处理不同的数据批次。

  • 算法优化:选择或设计计算复杂度较低的算法。例如,使用近似最近邻算法进行大规模相似性搜索,而不是计算成本高昂的精确方法。

可靠性:容错、错误处理和冗余

可靠性至关重要,尤其是在关键应用中。为确保系统正常运行时间和数据完整性,采用诸如容错、错误处理和冗余等策略:

  • 容错:即使某些组件失败,系统仍能继续运行。例如,在微服务架构中,如果一个服务失败,其他服务可以继续运行。可以使用 Netflix 的 Hystrix 等工具来实现断路器以管理故障。

  • 错误处理:设有机制来优雅地检测和纠正错误——例如,在代码中使用try-catch块来处理异常,并记录错误以供进一步分析。

  • 冗余:关键组件被复制以防止单点故障——例如,使用 RAID 配置进行磁盘存储或在云环境中部署服务以确保高可用性。

安全:数据隐私和模型鲁棒性

人工智能系统通常处理敏感数据,使安全性成为首要任务。以下是一些关键考虑因素:

  • 数据加密:保护静态数据和传输中的数据——例如,使用 AES 加密存储在数据库中的数据和使用 TLS 传输网络中的数据。加密方法的使用需要彻底考虑和测试,以确定对模型和系统性能的影响。

  • 访问控制:实施严格的授权和身份验证机制——例如,使用 OAuth 2.0 进行安全的 API 访问和基于角色的访问控制(RBAC)来管理权限。

  • 模型鲁棒性:防范可能操纵系统的对抗性攻击。例如,通过在正常和对抗性示例上训练模型来提高鲁棒性的对抗性训练技术,以及部署异常检测系统以监控数据输入中的异常模式。

数据建模:目录和本体

在人工智能领域,数据不仅仅是宝贵的资产,而且是构建智能系统的基石。由于人工智能模型严重依赖大量数据来学习和做出明智的决定,因此有效管理和组织这些数据变得至关重要。这就是数据目录和本体作为在人工智能架构中导航数据景观复杂性的不可或缺工具的用武之地。

目录作为元数据的集中存储库,提供关于人工智能系统内数据资产的综合信息。它们充当全面的索引,提供关于数据位置、模式、血缘、质量和其他相关属性的见解。通过以结构化和可访问的方式整合这些信息,数据目录使数据科学家、工程师和分析人员能够更深入地了解他们的数据资源,简化他们的工作流程,并确保数据治理。

概念模型为领域内的数据元素提供语义表示。它们可以帮助数据工程师理解数据元素是如何以及为什么相互关联的,并改进处理流程。概念模型还为数据科学家提供模型开发和更新的上下文。

已经讨论了人工智能系统的技术和功能属性。下一节将讨论在现代云环境中实现系统的不同方式。使用云技术确保可以根据实际需求轻松扩展人工智能系统,并为资源分配提供灵活性。

现代人工智能部署范式

随着人工智能系统的持续发展,新的部署范式已经出现,以解决特定的需求和用例。本节探讨了两种重要方法:云原生人工智能架构和边缘人工智能部署。

云原生人工智能架构

人工智能应用的复杂性和规模不断增加,导致云原生架构的采用。这些架构利用云计算平台的可扩展性、灵活性和成本效益,以实现人工智能系统的有效开发、部署和管理。在云原生架构中,人工智能组件被设计为在云环境中无缝运行,利用存储、计算和网络的专业化服务。

云原生人工智能架构的关键特性包括以下内容:

  • 容器化:使用 Docker 等技术将人工智能应用打包成轻量级、可移植的容器,确保在开发、测试和生产环境中的一致性。

  • 编排:Kubernetes 等容器编排平台管理跨主机集群的应用容器部署、扩展和操作。

  • 微服务:如前所述,将人工智能系统分解成更小、独立的微服务,可以更有效地利用资源并更容易进行扩展。

  • 无服务器计算:AWS Lambda、Azure Functions 和 Google Cloud Functions 等平台允许开发者专注于编写代码,无需担心底层基础设施,这对于事件驱动的 AI 工作负载特别有用。

  • 托管服务:云服务提供商提供专门的 AI 服务,例如完全托管的机器学习平台(例如,亚马逊 SageMaker、微软 Azure ML、谷歌 Vertex AI),这些服务简化了开发和部署流程。

  • 云原生与迁移: 云原生 AI 组件专门设计用于利用云环境的好处,例如自动扩展、无服务器计算和管理服务。与简单地将现有的本地 AI 系统“迁移”到云中而不进行架构修改相比,这种方法提供了更大的灵活性、可扩展性和成本效益。

数据湖和数据仓库在 AI 架构中的应用:数据驱动智能的基础

在人工智能领域,数据是创新和进步的基石。AI 模型依赖于大量数据,利用它来学习模式、做出预测并生成有价值的见解。然而,有效地管理和利用人工智能项目中涉及的大量数据需要专门的存储和管理解决方案。在此背景下,出现了两个突出的概念:数据湖数据仓库

数据湖:原始数据的巨大水库

数据湖作为广泛的存储库,以原始格式存储原始数据。它们旨在容纳来自不同来源的结构化、半结构化和非结构化数据。数据湖的灵活性使它们成为存储大量可能没有预定义目的或结构的数据的理想选择。

  • 关键特征:

    • 读取时模式: 数据湖在摄取过程中不强制执行严格的模式,允许数据类型和结构具有灵活性。模式在分析或处理期间定义,使用户能够适应不断变化的数据需求。

    • 成本效益的可扩展性: 数据湖可以轻松扩展以适应不断增长的数据量,这使得它们成为存储大量数据集的经济高效解决方案。

    • 支持多样化的数据: 数据湖可以处理各种数据,包括传感器读数、社交媒体流、日志文件等。

    • 适合探索性分析: 数据湖为数据科学家和分析师提供了一个肥沃的土壤,以探索数据、识别模式和生成假设。

  • 示例用例:

    • 一家电子商务公司可能会将点击流数据、客户评论和社交媒体互动存储在数据湖中,以进行后续分析和个性化工作。

    • 一个医疗保健组织可以使用数据湖来存储医学图像、电子健康记录和基因组数据,用于 AI 驱动诊断工具的研究和开发。

数据仓库:分析的结构化存储库

数据仓库是结构化的存储库,用于存放经过处理和整理的数据,将其转换为一致格式以进行分析和报告。可以构建和开发本体来组织和提供系统进入数据的语义结构。本体还提供了一种机制,通过使数据元素之间的关系明确,更好地管理和控制模型性能。

它们在促进高效查询和分析方面表现出色,对于商业智能和决策支持应用来说是不可或缺的。

  • 关键特征:

    • 写入时模式: 数据仓库在数据摄入期间强制执行预定义的模式,确保数据的一致性和完整性。

    • 针对查询优化: 数据仓库采用优化的数据结构和索引技术来加速数据检索和分析,从而实现更快的洞察。

    • 对结构化数据的支持: 数据仓库主要设计用于结构化数据,例如交易数据、客户信息和财务记录。

    • 适合商业智能: 数据仓库使组织能够生成报告、仪表板和可视化,以实现明智的决策。

  • 示例用例:

    • 一家金融机构可能会使用数据仓库来存储交易数据、客户信息和市场趋势,以进行风险评估和欺诈检测。

    • 一家制造公司可以利用数据仓库来分析生产数据、供应链指标和客户反馈,以优化运营和提高产品质量。

数据湖和数据仓库的协同效应

在许多 AI 架构中,数据湖和数据仓库相互补充。原始数据首先被摄入到数据湖中,在那里它经历清洗、转换和丰富。经过精炼的数据随后被转移到数据仓库中进行进一步分析和报告。这种协同方法使组织能够利用数据湖的灵活性进行数据探索,以及数据仓库的结构为决策支持,为数据驱动的 AI 应用构建一个坚实的基础。

云计算上的 AI:AI 的变革者

AI 和云计算的融合为寻求利用 AI 力量的组织开辟了新的可能性。云计算为开发、部署和扩展 AI 应用提供了一个可扩展、灵活且成本效益高的基础设施。通过利用云的能力,企业可以克服传统本地 AI 解决方案的限制,并加速创新。

基于云的 AI 的好处

基于云的 AI 为所有规模的组织提供了几个关键优势,使其成为有吸引力的选择:

  • 可扩展性: 云资源可以轻松扩展或缩减,以满足 AI 工作负载的波动需求。这种弹性使组织能够处理大量数据集、训练复杂模型以及处理大量数据,而无需投资和维护昂贵的硬件基础设施。

  • 灵活性: 云平台提供了一系列 AI 服务和工具,使组织能够根据特定需求选择最佳选项。这允许企业尝试不同的 AI 方法,快速迭代模型,并适应不断变化的需求。

  • 成本效益:基于云的人工智能可能比本地解决方案更具成本效益。组织只需为它们使用的资源付费,消除了在硬件和软件上进行前期资本投资的需求。此外,云提供商通常提供按使用付费的定价模式,这可以进一步降低成本。

通过利用基于云的人工智能的力量,组织可以解锁新的创新、效率和竞争力水平。

主要云人工智能平台:通过全面的工具集加速创新

主要云服务提供商已成为人工智能领域的关键参与者,提供了一系列全面的人工智能服务和工具,满足广泛的业务需求。这些平台为寻求在应用程序和工作流程中利用人工智能力量的企业和开发者提供了一个一站式商店。

关键云人工智能平台

  • 谷歌云人工智能平台(Vertex AI):这个统一的平台简化了整个机器学习ML)的生命周期,从构建和训练模型到在生产环境中部署和管理它们。Vertex AI 的 AutoML 功能简化了对于机器学习专业知识有限的用户的模型开发,而模型园地提供了一系列预训练模型,可供部署。Vertex AI Pipelines 编排复杂的机器学习工作流程,实现高效的实验和自动化。

  • 亚马逊 SageMaker:这是一个完全托管的服务,SageMaker 使用户能够大规模地构建、训练和部署机器学习模型。它拥有丰富的内置算法和框架,使得初学者和经验丰富的从业者都能使用。SageMaker 的可扩展性和与其他 AWS 服务的集成使其成为企业级人工智能解决方案的热门选择。

  • 亚马逊 Bedrock:这项尖端服务通过简单的 API 使领先的人工智能初创公司和亚马逊本身提供的基础模型FMs)的访问变得民主化。Bedrock 使开发者能够利用最先进的生成人工智能能力,而无需从头开始构建和训练复杂的模型。

  • 微软 Azure 人工智能:这个平台提供了一系列人工智能服务,包括预构建的用于计算机视觉、语音识别、自然语言处理和决策的人工智能模型。Azure 机器学习允许用户创建和部署自定义人工智能模型,而平台与其他 Azure 服务的广泛集成使其成为各种人工智能应用的灵活选择。

这些云人工智能平台为组织将人工智能融入其运营提供了强大且易于访问的方式,加速了创新并推动了商业价值。

摘要

在本章中,我们探讨了人工智能系统架构的基本原理,建立了一个全面框架来理解驱动智能系统的构建块。我们考察了核心组件——数据作为生命之源,能够实现学习的算法框架,封装智能的模型架构,以及提供计算资源的基础设施——以及如微服务这样的架构模式,它提供了模块化和灵活性。可扩展性、性能、可靠性和安全性等关键设计考虑因素被讨论为构建强大的人工智能系统的基本要素,这些系统能够随着需求的增加而增长,同时保持弹性和保护。

人工智能部署的格局正在迅速演变,云原生架构利用容器化、编排和无服务器计算来实现前所未有的效率。数据湖、数据仓库和数据目录之间的协同作用为数据驱动的智能奠定了坚实的基础,而主要的云平台则使复杂的 AI 能力更加民主化。随着我们向前发展,这些基础原则将指导开发既强大又可扩展、可靠和安全的 AI 系统——促进跨行业的下一代创新。

相关阅读

  • Bass, Len,Paul Clements 和 Rick Kazman. 软件架构实践:软件架构实践。Addison-Wesley,2012。

  • Weyns, Danny. 软件架构:原理与实践。麻省理工学院出版社,2021。

  • Hazelwood, Kim 等人. “从数据中心基础设施的角度看 Facebook 的应用机器学习。” IEEE 高性能计算机架构国际研讨会(HPCA),2018。

  • Sculley, D. 等人. “机器学习系统中的隐藏技术债务。” 神经信息处理系统进展,2015。

  • 美国国家标准与技术研究院。 “人工智能风险管理框架(AI RMF)。” NIST,2023。

  • Baheti, Priya R. 和 Helen Gill. “Cyber-physical Systems.” The Impact of Control Technology, 2011.

  • Patterson, David 等人. “碳排放和大型神经网络训练。” arXiv 预印本 arXiv:2104.10350,2021。

  • LeCun, Yann,Yoshua Bengio 和 Geoffrey Hinton. “深度学习。” 自然,2015。

  • Mao, Hongzi 等人. “使用深度强化学习的资源管理。” 第 15 届 ACM 网络热点话题研讨会论文集,2016。

|

现在解锁这本书的独家优惠

扫描此二维码或访问 packtpub.com/unlock,然后通过书名搜索此书。 | |

| 注意:在开始之前准备好您的购买发票。* |

| --- |

第二章:架构的案例

如果没有公共建筑,世界会是什么样子?建筑将随意建造,健康和安全法规可能无法实施,与市政实体的协调将不存在,由于建造者之间的协调缺乏基础凝聚力,实际建造时间会更长。建筑师,凭借愿景、目的、流程、工具和方向,确保建造出正确的系统。严格架构的系统还允许统一努力,并确保整个项目团队了解要建造的内容。

在复杂系统开发中也需要架构。一个复杂系统包含许多不同的工程领域,这些领域必须结合起来才能构建出一个单个领域无法独立完成的系统。所有团队之间都存在竞争需求和知识不完整。很多时候,甚至存在基本挑战,即不知道如何相互沟通。在复杂系统中,通常有不同的利益相关者,他们对最终系统的需求相互矛盾——架构师必须调解这些需求。

架构师的角色是制定统一愿景,指导技术上可行的设计,并实现符合预算目标和开发进度的系统创建。

架构师的角色起源于古代,对现代系统至关重要。在软件系统中,架构师的角色与民用建筑师一样关键。软件架构师执行关键功能,确保构建出正确的系统,并作为系统最终用户的首要倡导者。架构师还负责确保系统保持凝聚力。这是一个艰巨的任务。接受架构的角色和流程可以提高最终系统的质量和成功率。

架构失败的影响

为了开始讨论复杂软件架构,让我们进行一个快速的思想实验。

想象一下,你的团队被分配了一个任务,要构建一个应用程序,用于在网络上对数据存储进行查询并将结果返回给远程用户。现在,你的团队中有四位软件工程师:一位负责数据存储,一位负责服务层,一位将用户界面与数据存储应用程序集成,还有一位工程师负责用户界面。

这里是七种会损害项目成功的实践:

  1. 团队成员之间无方向的沟通和协调,因为通常没有共同的理解或参考点来统一行动

  2. 在没有需求验证的情况下,将所有工程假设视为同等有效

  3. 通过多数投票而非技术专长来做出设计决策

  4. 将客户沟通限制在用户界面工程师

  5. 将集成和测试视为可选活动

  6. 消除中间里程碑和审查检查点

  7. 仅将最终交付日期视为有意义的里程碑

在这种情况下,不会交付可用的软件。每个未完成的列表项都将被视为架构失败。这是一个简单的系统——当系统需求增长或领域变得更加具有挑战性时,架构的重要性就会凸显出来。AI 赋能的软件是异常复杂的软件。

本章将介绍架构的概念背景,如何用它来减轻失败,更重要的是,阐述正确的架构可以使人能够交付稳健的 AI 赋能软件的合理性。

本章我们将涵盖以下主要主题:

  • 构建学的起源

  • 架构师的角色

  • 持有愿景的人

  • 构建过程

  • 架构的语言

构建学的起源

建筑学这一职业的根源可以追溯到远古时代。建筑师这个词来自希腊语“arche”,意为第一,以及“techion”,意为建造者。因此,建筑师是那个将概念带到将服务于某一目的的系统的人。对于现代 AI 软件架构师来说,这意味着他们必须努力构建一个能够以算法方式正确做出决策或推理的系统。

古代建筑师为人类提供了古埃及的金字塔、纪念希腊化神祇的美丽结构,以及罗马的水渠等。埃及建筑师构思并领导了持续数千年的巨大结构的发展。他们在协调数千名工人以及使用数学来指导工艺和岩石的尺寸(需要正确切割和放置)方面发挥了关键作用,这些岩石需要以惊人的精度和对称性进行切割和放置,从而展示了数学和工程协调的掌握。希腊化时期的建筑师发展了建造具有美丽对称性的寺庙和结构的技术,利用设计模式和做出决策,尽管通常不是最优的,但结果是一个既美观又实用的系统。

他们还协调和指导了工艺和规划,以实现他们的愿景。这些结构规模巨大,其结构的稳固性和负载平衡使它们能够持续数千年。罗马建筑师建造了令人惊叹的斗兽场,规划了道路、寺庙和水渠。这展示了灵活性和具有指导复杂系统建造的工程深度。

水渠不仅展示了建造结构的指挥能力,还展示了利用流体动力学原理和高级工程将水输送到各自城市许多部分的能力。这种新型结构对城市产生了变革性的影响。水,作为人类必需的液体,不仅用于饮用,还用于清洁和娱乐,现在可以被人口享受和使用。

图片

图 2.1:建筑演变时间线

放大镜在黑色背景上,AI 生成的可能内容可能不正确。快速提示:需要查看此图像的高分辨率版本?请使用下一代 Packt Reader 打开此书或查看 PDF/ePub 副本。

下一代 Packt Reader以及此书的免费 PDF/ePub 副本包含在您的购买中。扫描二维码或访问packtpub.com/unlock,然后使用搜索栏通过名称查找此书。请仔细检查显示的版本,以确保您获得正确的版本。

从历史上看,架构师通常是推动最终系统愿景到开发的单一个人。架构师是整合力量,确保构建的组件能够结合并实现系统级效果。架构既是古老又是现代艺术的见解源于古老的格言,即最好的系统来自单一愿景,系统应展示某些关键属性和设计模式的使用。

随着现代时代的到来,特别是欧洲历史的文艺复兴时期,技术的持续和加速发展爆炸式增长,且没有减缓。在现代世界,我们见证了令人叹为观止的发展,如铁路、航海船只、大规模电力、汽车、飞机、雷达、电信、计算机、核能、太空飞行、医疗设备、卫星、互联网和个人智能手机。作为一个工程学科的初生儿,软件是一个关键系统。在进一步讨论之前,我想澄清,这是一本关于软件架构AI 赋能系统的书。因此,从现在开始,我将使用“系统”一词来指代软件系统

系统架构师连接用户需求和科技实施,通过学科协调、需求定义和开发监督来协调复杂项目。

在 AI 赋能系统中,架构师平衡传统软件关注点与专业挑战:

  • 数据管道管理和模型开发工作流程。

  • 在保持输出稳定性的同时,系统适应性。

  • 算法组件与软件基础设施的集成。

与通过图纸可视化的物理结构不同,软件架构需要多个视角:

  • 逻辑模型和功能规范。

  • 运营场景和用例。

  • 接口控件和服务协议。

  • 原型、模拟和分析。

现代复杂性需要架构团队与领域专家合作,同时保持单一责任架构师的明确决策权——避免基于委员会的设计决策的陷阱。

架构师的角色

架构师究竟交付了什么?一个贬义词是,他们只是文档创作者,因为他们提供规范、操作概念文档、建模图、白皮书和技术评估。这些都是架构过程和沟通工具的产物,引导后续的工程活动。思考和协作必须在创建相关且具有影响力的文档之前完成。

例如,如果数据库工程师只负责构建应用程序会发生什么?

没有统一的愿景,专家自然会根据他们的专业知识进行优化——数据库工程师优先考虑数据结构,而界面设计师则专注于用户体验。这种专业化需要中心角色来提供凝聚力。架构师平衡客户期望和技术要求,指导设计决策,并协调项目执行。

本节探讨了架构师的责任,提供了对角色范围和重要性的洞察。这个崇高的头衔承载着重大的责任。

从古代纪念碑到现代系统,架构师的功能保持一致:满足多样化的利益相关者,同时提供功能性解决方案。埃及金字塔建筑师在统治者颂扬与建设可行性之间取得平衡;现代建筑师同样在确保在预算和进度约束内适当实施的同时,协调竞争性优先事项。

平衡人工智能架构中的愿景和精确度

人工智能架构师必须同时作为战略家和技术分析师发挥作用。他们的双重责任要求在确定关键实施细节的同时,制定与价值一致的路线图,这些细节可能会损害系统完整性。

成功的架构师采用 5W+H 框架来连接宏观和微观视角:

  • Who:受人工智能系统影响的用户、利益相关者和角色。

  • What:目的、约束、技术、数据需求和计算复杂性。

  • Why:对需求、技术和实施决策的正当性。

  • When:交付时间表、再训练周期和集成里程碑。

  • Where:系统定位、数据源、执行环境和存储解决方案。

  • How:测试方法、集成方法、错误处理和性能指标。还有如何满足非功能性考虑,如安全性、隐私、历史数据存储和整体系统可观察性。

每项调查都必须通过成本、进度和性能的视角进行评估,同时解决合规性和安全约束。不存在通用的模板——有效的架构师应用情境启发式方法,从压倒性的复杂性中筛选关键细节。

人工智能系统和架构

人工智能赋能的系统在软件中实现。通过使用一系列模型、原型设计、审查和设计指导,架构可以改善工程努力。鉴于人工智能赋能系统的抽象性质,架构设计是一种风险降低活动,通过系统地包括许多视角并吸引利益相关者,以确保不犯第一级错误。架构师可以定义、指导和评估原型设计工作,以确保原型设计为项目增加价值。使用文档和演示文稿的审查确保在工程团队、利益相关者和最终用户之间有连贯的沟通。这些文档提供给客户,以证明工程努力被理解,并给客户机会影响项目方向。工程团队使用这些文档来协助执行各自的过程和活动。文档帮助项目规划者确定项目的范围和时间表以及预算。最后,这些文档是架构师用来定义和更新待建系统最终愿景的活文档。

架构师的角色要求他们执行以下任务:

  • 理解并定义对利益相关者的需求。

  • 开发模型、图表、图纸、文档和设计工件。

  • 与建设者或工程师沟通,以便建设者能够实际创建结构或系统。

  • 监督并可能领导系统的设计。

  • 协调和解决开发过程中出现的问题和问题。

  • 对已建成的系统进行最终验收。

随着技术的进步,对系统的需求呈指数级增长,因此使得架构师的角色变得更加重要。对于现代系统,在尽可能的范围内,需要深入到利益相关者的领域,例如客户、监管机构、合作伙伴,甚至内部员工。架构师必须知道如何利用新系统为客户创造价值。需要理解必须处理的多种约束,例如安全、合规性和监管约束。一个常见的情况是,许多软件系统失败并不是因为系统的任何部分没有正确构建或测试,而是因为构建了错误的系统。

架构师的主要工件种类繁多。架构师需要创建和裁决系统愿景文档,指导全面范围的模型,编写和沟通规范文档,协助设计审查,并为测试开发计划、验证流程以及最终系统验收提供指导。架构师的角色也与项目和项目执行交织在一起。

对于人工智能赋能的系统,架构师必须执行以下任务:

  • 明确沟通人工智能技术如何为利益相关者创造价值,定义使用和业务影响。

  • 使数据科学家能够构建需要强大数学和算法理解的复杂模型。标准软件图必须通过性能模拟、详细的决策映射和强大的状态机技术来增强。

  • 与人工智能工程师紧密合作,确保支持文档能够实现统一系统操作。人工智能工程师寻求整合机器学习模型。他们还负责构建满足非功能性要求系统,使得分析管道可扩展、可靠且可控。人工智能工程师还寻求开发与系统愿景一致的设计。人工智能工程师需要平衡各自的详细设计,以符合或与系统的整体愿景保持一致。

  • 确定系统在没有人为干预的情况下做出自主决策的关键非功能性需求、模式和策略。

  • 引导测试团队通过决策正确性验证,跨越各种输入,包括系统鲁棒性的非标准场景。

建筑师必须领导需求推导和用例开发,以确保围绕人工智能功能的支持系统被正确构建。

愿景的持有者

想象一下,你和你的两位朋友想要一起去吃午餐。在这个场景中,你最终决定去哪里,但你必须充分考虑你两位朋友的愿望。这个简单的决定可能会变得复杂:你们吃什么?在哪里吃?费用是多少?必须做出决定,但如何决定呢?在这种情况下,影响决策的其他考虑因素必须被提出来,比如生活方式、节俭、过敏和类似的因素。作为决策者,你必须制定一个决策,综合你朋友表达出的愿望和限制。作为做出决策的人,你必须制定一个愿景,协调你两位朋友的竞争需求,同时确保结果能够带来价值。这就是建筑师所做的事情。他们为系统制定一个愿景,然后根据这个愿景引导系统的建设。系统的愿景支撑着系统的许多方面,因此必须正确制定、传达并确保它满足利益相关者的需求。

对于人工智能系统,建筑师必须阐明技术如何为利益相关者创造价值,定义明确的企业影响和使用模式。他们的建模责任需要强大的数学理解,以创建性能模拟、决策映射和状态机,这些超出了标准软件图的范围。

建筑师与人工智能工程师合作,确保文档能够实现统一系统操作。他们确定非功能性需求和自主决策的架构模式,无需人为干预。

测试指南侧重于在多种输入和故障场景中进行决策正确性验证,确保系统健壮性。在整个开发过程中,架构师领导需求推导和用例开发,以正确集成 AI 功能与支持系统。

架构周期

架构周期是一个迭代过程,其中进行分析和综合以及评估以开发第一级概念。

分析活动包括分解系统需要提供的重大功能和子功能,识别对 AI 系统最相关的非功能性需求,以及识别可以用来判断系统性能或作为其他关键属性衡量标准的驱动指标或措施。其他关键属性的例子可以是成本限制、故障之间的时间、可用性指标等。

综合活动是一个创造性的过程,其中执行第一级设计以得出可行概念。这是架构师最初可以使用模式和策略来描述逻辑框架、识别必须执行以满足客户需求的过程,以及识别可以使用的技术的地方。

评估过程被执行以对不同的综合概念进行排序和优先排序。建模和系统分析可用于测试和理解不同概念的范围。如果评估中出现太多不确定性或困难,则可能进行原型设计以帮助这一阶段。可以使用决策矩阵。一旦定义了一组概念,那么最终一步是与所有相关利益相关者进行审查过程,但最终决定由利益相关者决定如何进行。

图片

图 2.2:架构周期

像架构师一样思考

一个常见的问题是人们如何像架构师一样思考?这是一种可以学习并随着经验而磨练的技能。如果一个人专注于某个领域或技术方法,这一点尤为重要。像架构师一样思考的主要主题是深入理解结构和过程如何影响系统的设计。例如,架构师应识别或发现系统的关键非功能性需求。系统如何满足最终目标或主要目标?在软件中,至少这需要开发、理解和评估功能、逻辑结构和行为过程。

在像架构师一样思考时,利益相关者至关重要,因为他们是接受系统并为其建设付费的人。通过与利益相关者的互动,无论是正式的还是半正式的,都可以获得参与和验证。

用于此的工具包括以下内容:

  1. 审查客户可能已经拥有的文档。

  2. 对该领域的市场研究。

  3. 客户竞争对手的检查或审查。

  4. 访谈、研讨会和专注会议。

  5. 快速原型设计,受限制的演示。

  6. 开发关键技术文档,并经过客户的审查和接受。

让我们用一个假设的例子来思考,就像是一个金融服务领域的建筑师。金融机构必须时刻警惕欺诈交易或欺骗行为。AI 的使用是这类用例的理想选择。对于建筑师来说,挑战在于从众多现有方法中选择合适的技术。深度网络在识别交易中的异常或异常模式方面非常有效,但深度网络不能提供识别交易所需的推理链,这是合规要求所必需的。符号方法在识别异常交易方面不如深度网络稳健,但它可以为将交易分类为异常提供推理链。

建筑师应该怎么做?考虑使用两种技术的逻辑结构。

在分析领域时,能够快速识别异常情况的速度是一个驱动因素。异常情况发现得越快,负面影响就能越快得到缓解。深度网络随后用作第一个过滤器,将异常条件标记出来,然后输入到使用符号方法的分类引擎中。

以下是一些需要提出的问题,以推动架构考虑:

  • 推动分类的推理是什么?一个长期未活跃的账户突然活跃?交易的大小?

  • 系统将要接收哪些数据?每秒的交易量?客户元数据?外部数据源?

  • 将使用的数据质量如何?需要进行哪些过滤和转换?系统需要一个公共时间戳吗?客户需要匿名化吗?

  • 系统如何影响客户的商业模式?这个系统会推动收入增长吗?它会降低成本吗?它符合合规要求吗?

  • 需要哪些计算硬件、软件和网络基础设施?

  • 设计是否直观?谁在使用它?初级员工?会计师?财务专业人士?运营人员?

  • 交付时间表是否与客户的资金能力和使用该技术的员工资源相匹配?

  • 解决方案能否满足成本和进度约束?

  • 将引入客户组织的新风险有哪些?系统会阻止交易吗?如果错过交易会发生什么?

在像建筑师一样思考时,可以获得全局视角,并区分可能产生重大架构影响的关键细节。

维护架构愿景

向利益相关者传达系统愿景是至关重要的,需要清晰地阐述利益、价值和潜在风险。架构师必须在整个开发过程中保持一致性——确保一致性,同时整合利益相关者的反馈并适应不断变化的需求。

尽管不可避免地会有变化,但架构师必须防止组件和接口的分歧,以保持连续性。利益相关者需要详细了解实施如何满足在预算和时间限制内的功能需求。

对于人工智能赋能的系统,愿景必须解决系统核心的算法决策问题。这包括定义适当的检查和平衡、建立严格的数据质量要求和可观察性,以及设计建立对自动化操作信任的人机交互。

在人工智能赋能的项目中,清晰地记录和传达系统愿景至关重要。这涉及到协作努力创建关键文档和视觉辅助工具,包括以下内容:

  • 操作概念文档:在人工智能项目中,这些文档尤为重要,因为它们描述了人工智能系统将在各种现实世界场景中如何运作以及如何与用户互动。

  • 高级用例图:对于人工智能系统,这些图非常重要,因为它们展示了人工智能与其环境和用户交互的不同方式,突出了自动决策和响应。

  • 逻辑和功能分解:在人工智能的背景下,这些分解有助于利益相关者理解底层人工智能架构以及不同的组件,如机器学习模型和数据处理单元是如何相互配合的。

  • 支持性叙述:这些叙述对于用可理解的方式解释复杂的 AI 功能和算法至关重要,帮助非技术利益相关者理解人工智能如何实现其预期任务。

  • 模型:逻辑数据模型工件、数据流图以及关于数据治理方法的指导。

图片

图 2.3:平衡利益相关者

图 2.3概述了架构师在制定愿景时需要平衡利益相关者可能提出的众多需求。为了有效地做到这一点,需要进行大量的沟通、图表和参与。对于人工智能赋能的系统,架构师通常承担最大的责任,能够沟通并解释系统的算法决策如何影响利益相关者。

现代系统架构

将人类送上月球并将他们带回地球的系统与先进的医疗设备、现代汽车和微处理器有什么共同之处?

它们是提供极其专业化的能力系统,在 20 世纪之前,这些能力是无法想象的。让我们短暂地偏离一下,看看现代系统开发的历史是如何导致架构的发展的。

第二次世界大战通过科学整合和协调工程催化了变革性的系统——通信、雷达、火箭和核技术。这种方法产生了数百项战后创新,彻底改变了现代生活。

今天的组织雇佣了系统架构师,他们像他们的民用同行一样,创造愿景、代表客户、推动复杂系统设计。随着航空航天、电子、医疗、核能和海军领域性能需求的增加,这一学科变得至关重要。

尽管工程专业各不相同,但集成开发的必要性仍然是普遍的。复杂系统需要跨多个团队和利益相关者的协调——通过架构模型、沟通和使不同学科朝着统一实施方向发展的工件实现统一。

对于本书的重点——具有人工智能功能的系统,架构师必须处理两个重要的考虑因素:

  • 人工智能组件的使用和影响旨在满足客户的需求和性能要求。

  • 人工智能组件通常根植于复杂的软件系统,因此与软件开发相关的风险并不简单。

对于复杂系统需要一个统一且一致的架构这一事实,实际上并不存在争议。值得讨论的是如何创建一个能够推动系统开发的架构。作者的一个核心观点是,严格的架构设计对于驾驭现代人工智能/机器学习系统开发和成功部署的复杂性是必要的。

软件开发的执行必须涉及从源文档中获取信息,以便界定范围、追踪需求、指导设计、允许集成,并最终进行测试。设计过程需要一个总的原理、目标和约束,以便构建系统、测试它并部署它。集成和测试团队需要了解要构建的内容,因此测试资源被分配并定义得很好。一系列相互关联的文档、治理模型和清晰的文档满足了项目关键利益相关者的许多需求。还必须存在显著的口头和领导力存在,以便能够在不同的技术团队之间导航,确保设计决策忠实于愿景,并提供指导以阐明规格和验证,确保给定的实现是正确的。正是通过文档、演示和沟通,架构师可以确保实现一个连贯的实施。

现在已经有了软件架构的标准,对于这个受众来说,最相关的是 IEEE 42010 系统和软件工程 – 架构描述。

人工智能架构的决策框架

构建人工智能系统需要一种结构化的决策过程,该过程平衡业务目标、技术可行性和伦理考量。架构师必须为选择适当的 AI 方法建立一个概念基础,尤其是在与大型语言模型、向量数据库和网页搜索集成等先进技术合作时。

选择正确的 AI 方法

在开发人工智能系统的架构愿景时,架构师必须评估哪种技术路径将最好地服务于业务需求。这些通常分为三类:

  • 传统机器学习模型: 这些适用于与结构化数据和工作定义明确的问题合作的系统,例如欺诈检测、预测性维护或客户细分系统。

  • 深度学习架构: 当处理需要复杂模式识别的非结构化数据时,例如图像识别、自然语言处理或音频处理,这些架构变得必要。

  • 具有检索增强生成的基座模型 (RAG): 这种现代方法利用了预训练的基座模型,并增强了特定领域知识检索系统。这些架构在知识密集型任务、对话界面和需要实时信息访问的系统方面表现出色。

在这些方法之间的选择不仅仅是技术决策,还必须由每个方法与整体系统愿景和利益相关者需求的契合度来指导。

图 2.4 展示了人工智能架构的结构化决策过程,展示了业务需求、数据特性和质量属性如何影响适当 AI 方法和基础设施的选择。该工作流程引导架构师定义需求、分析问题域、选择 AI 技术和配置基础设施,以产生一个统一的架构蓝图。

多维决策框架

为了确保架构师做出明智的决定,从而实现人工智能的成功实施,他们应该从三个关键维度评估架构选择:

业务一致性

  • 价值创造: 该架构将如何直接支持收入生成或成本降低?

  • 运营效率: 维护所选架构的持续运营成本是多少?

  • 风险概况: 这种方法是否引入了需要缓解的合规性、安全或伦理风险?

数据科学考量

  • 数据准备: 是否有足够的高质量数据来支持所选的方法?

  • 性能要求: 系统必须达到哪些准确度、精确度和召回率指标?

  • 模型演进: 架构将如何支持持续进行的模型更新和微调?

技术约束

  • 计算资源: 系统将需要多少处理能力、内存和存储?

  • 集成复杂性:AI 组件将如何与现有企业系统接口?

  • 实时要求:架构必须满足哪些延迟约束?

结构化决策过程

为了解决这些多维度的关注点,架构师应实施一个结构化的决策工作流程:

  1. 定义愿景和需求:建立明确的企业目标,并将它们转化为功能和非功能性需求。

  2. 评估数据景观:评估可用的数据源、质量问题、隐私和可能影响模型性能的潜在偏差。

  3. 架构选择:根据需求和数据评估,确定哪种 AI 方法在能力与限制之间取得最佳平衡。

  4. 基础设施规划:设计部署架构,考虑扩展需求、安全要求和性能约束。

  5. 原型和验证:开发概念验证实现,以在全面实施之前验证关键架构决策。

  6. 实施策略:创建一个包括监控和反馈机制的、涵盖开发、测试和部署的路线图。

这种结构化方法确保架构决策不是孤立做出的,而是作为一个连贯愿景的一部分,该愿景既关注技术卓越,也关注商业价值。

图片

图 2.4:AI 系统的架构决策流程

平衡创新与实用性

架构师必须在利用尖端 AI 能力和确保系统可靠性之间取得平衡。新颖的方法可能提供强大的功能,但也会引入实施挑战或运营不确定性。架构师应考虑以下因素:

  • 技术成熟度:所选技术是否已准备好投入生产,还是仍处于实验阶段?

  • 团队能力:组织是否有实施和维护所选架构的技能?

  • 回退机制:系统将如何处理 AI 组件故障或意外行为?

通过在结构化决策框架内系统地解决这些考虑因素,架构师可以开发出一个 AI 系统架构,它不仅满足当前需求,而且可以随着业务需求和 AI 技术的进步而发展。

软件架构的语言

软件架构通过工件、分析和综合来传达系统愿景,这些工件、分析和综合通过利益相关者的参与得到验证。架构师使用抽象来对组件、接口和功能进行组织,以进行技术规划和执行。

如《软件架构实践》中所述,三个基本架构工具构成了这种语言:

启发式方法通过基于经验的原则来降低复杂性:

  • 预测数据损坏和模型漂移

  • 理解数学限制和可接受的误差

  • 了解计算边界和数据流限制

策略解决特定问题:

  • 将数据存储操作限制为 CRUD 功能

  • 实施冗余控制以提高可靠性

  • 安全考虑,如基于角色的访问、加密和公钥基础设施

模式提供可重用的模板:

  • 层功能以管理复杂性

  • 结构化集成数据管道

尽管比传统工程学科出现得晚,但 AI 架构已成为关键,因为智能系统构成了操作基础,创造了商业价值,在实施选项中广泛传播,建立了人类信任,并促进了人机协作。

图 2.5显示了作者认为架构语言的主要方面的思维导图。

图片

图 2.5:架构语言

AI 系统的治理和合规性考虑

在开发 AI 赋能系统时,架构师必须解决不仅包括功能和性能要求,还包括治理、可解释性和合规性维度。这些方面代表了关键的“大局”关注点,这些关注点在系统的众多详细实施决策中体现出来。

AI 架构的治理框架

AI 治理包括确保道德和负责任的 AI 发展的政策、程序和监督机制。对于软件架构师来说,这意味着建立以下内容:

  • 偏差缓解策略:架构必须包含可衡量的机制来识别和缓解训练数据和模型输出中的偏差。这通常需要在管道中包含特定的模型验证组件。

  • 问责结构人工介入HITL)机制必须架构到关键决策路径中,尤其是在高风险领域。这意味着设计明确点,以便在不确定性下进行高价值决策的人类审查。

  • 数据来源跟踪:系统必须维护数据来源和模型版本的综合记录,并确保所有用于训练和推理的数据源都符合数据法规和使用权。

  • 可审计性组件:日志机制必须记录模型决策、推理数据和响应,以便进行回顾性审查和验证。

AI 架构设计中的可解释性

与行为确定的传统软件系统不同,AI 系统引入了非确定性元素,这需要为可解释性进行特殊的架构考虑:

  • 可解释性层:对于复杂模型,如深度神经网络,架构师应考虑提供特征归因的额外组件,使用户能够了解哪些输入对特定输出影响最大。

  • 置信度评分:AI 响应应包括置信度指标,以表明可靠性,这需要在架构中包含特定的测量组件。

  • 决策追踪:架构应能够记录人工智能管道中的中间步骤,以便进行模型行为的回顾性分析和调试。

  • 透明接口:用户界面应提供适当的环境信息,包括引用或对推理过程的解释。

法规合规性集成

架构师必须确保人工智能系统符合适用的法规,这可能包括以下内容:

  • 数据隐私要求:系统必须遵守 GDPR(欧盟)和 CCPA(美国)等法规,这可能需要特定的用户同意管理、数据访问控制和数据删除功能组件。

  • 特定行业法规:在医疗保健(HIPAA)或金融等领域,架构必须纳入特定领域的保障措施和文档。

  • 算法问责制:新兴法规要求人工智能系统可测试其偏差和公平性,要求架构师设计全面测试和验证。

实施考虑因素

考虑以下内容以在人工智能架构中实施治理:

  • 治理仪表板:应集成实时监控工具以可视化人工智能决策、标记异常并跟踪偏差指标。

  • 自动合规性测试:架构应包含验证机制,定期测试人工智能决策是否符合合规标准。

  • 联邦方法:在隐私问题至关重要的地方,考虑如联邦学习等架构模式,以保持敏感数据去中心化。

  • 以可解释性为首要设计:而不是将可解释性视为事后考虑,它应在模型开发阶段集成。

  • 变更控制:能够执行回滚、故障转移和决策管理,例如何时禁用非确定性决策。

通过在架构过程中早期解决这些治理方面的问题,系统将更好地满足技术要求和道德标准,最终为利益相关者带来更大的价值,并建立用户信任。

建模和仿真

就像许多其他学科一样,软件架构有其自己的工具、概念和语言。强大的 AI 架构工作需要一套稳健且文档化的模型。

我们将讨论与该领域相关的不同类型模型,然后给出一些它们如何应用于人工智能系统的示例。

什么是软件系统建模?

模型可以被视为任何可以用来推理待构建或已构建系统的工具、分析或图表。这影响了软件系统的实际设计、实现、集成、测试和部署。这里的模型采用非常广泛和通用的方式。例如,它不仅仅是软件工程社区中标准建模的发展。以下是一些例子:

  • 统一建模语言模型:例如类图、序列图和状态模型。

  • 决策树:一个关注算法决策的模型。

  • 系统功能图表建模:模拟业务和 n 平方图的流程。

  • 统计建模和数据描述技术。

  • 基于分析的模型:使用依赖于领域的数学模型来限制或限制 AI 技术的参数空间。例如,如果一个人正在开发车辆配送技术,那么限制道路上卡车速度的动力学模型是合适的。

  • 数据建模:开发实体关系模型、图模型和概念数据模型

  • 用户界面原型。

存在特定或更详细的模型,适用于构建 AI/ML 系统。这些模型在本质上更具有数学技术性。以下是一些例子:

  • 描述性统计工具,用于帮助理解 AI/ML 输出的数据输入、数据处理和结果,例如直方图、箱线图、相关图和相关矩阵。

  • 使用假设检验(p 值、统计显著性)是衡量性能或创建预期数据范围和数量的界限的考虑因素。这也有助于开发“断路器”——即控制逻辑,以确保输入数据和速率不会对 AI/ML 的性能产生不利影响。

  • 使用决策映射图或流程图来绘制可实现的控制路径。

模型和模拟在 AI/ML 系统中的作用

构建人工智能/机器学习系统的一个重要方面是使用模拟,合成数据类似于被摄入生产环境中的数据,而模拟本身也是某些模型的一种实现。模拟允许测试系统以查看实际的人工智能算法表现如何,同时也为了了解系统的性能。模拟开发不必过于复杂,但其复杂性应在一定程度上反映目标系统想要实现的内容。模拟需要自己的开发努力,并且应该从项目的开始阶段就开始。在许多方面,随着目标系统软件的开发,模拟也在增长。模拟既是一种测试工具,也是一种提出和验证设计选择工具。一个应用实例是使用已知错误的数据来评估管道的决策逻辑——例如,从低级、不可靠的温度传感器收集温度数据。人们还会使用合成数据来测试高交易领域的存储流程和内存管理,如在金融情况中看到的那样。合成数据的使用还可以在检测到模型漂移时评估模型更新,其中领域是动态的——比如在天气预报中。

下图是不同类型的 UML 图概述,这些图可以用来建模软件系统。并非所有图都需要创建,但应该进行定制工作。

图片

图 2.6:UML 图类型概述

建筑和接口

建筑师在技术基线之上工作。他们需要理解如何通过数据和控制信号使相互作用的组件进行集成。数据和控制信号的交换是通过各种接口实现的,从直接的应用到应用调用,从用户界面的命令到网络服务。由于建筑师具有更广阔的视角,他们在接口的创建、更新和退役方面是主要权威。

接口

最后关于接口的性质以及接口在软件工程中的作用的一些说明。在软件系统中,几乎所有所需的数据和功能很少都封装在一个代码库区域中。通常,为了满足子系统的需求,它需要从系统的另一部分获取数据。

通常,当查看软件系统的逻辑或功能模型时,连接线通常表示数据交换、决策流程或两者兼而有之。接口工程对于系统内聚至关重要,以确保某个开发团队需要更改关键功能部件时不会无意中导致架构其他部分的错误。此外,很多时候,一个系统认为的“原始数据”是另一个系统的“元数据”处理结果。确保系统内聚的机制是实施接口工程。接口工程需要确保数据在正确的时间、正确的地点、正确的以正确的方式和格式到达。与其他任何角色相比,接口应由架构团队控制和指导。

接口与人工智能

数据接口主要影响处理管道和算法决策组件。这个核心功能不能执行所有可能的验证和验证技术。因此,它必须信任发送数据的组件在格式、规模、时序和正确性方面符合接口设计。接口对于确保“模型集成”至关重要。也就是说,当做出算法决策时,输出驱动后续功能。接口工程确保决策意图得到正确执行,并且与整个系统的工程要求保持一致。

摘要

总之,有人提出,进行有系统和严格的架构设计是开发成功人工智能系统的推动因素。制定架构几乎肯定可以降低整体成本,让您能够按时完成并实现预期的最终性能。需要抵制那种由于时间压力过大,编码需要“立即”开始的诱惑。在下一章中,我们将结合这一更抽象的讨论,探讨它如何具体影响软件工程。

相关阅读

  • 巴斯,L.,克莱门茨,P.,& 卡兹曼,R. (2012). 软件架构实践。Addison-Wesley Professional。

  • 雷希特,E.,& 马伊尔,M. W. (2010). 系统架构的艺术(第 3 版)。CRC Press。

  • 韦恩斯,D. (2021). 软件架构:原理与实践。MIT Press。

  • 国际系统工程理事会。 (2015). INCOSE 系统工程手册:系统生命周期过程和活动指南(第 4 版)。Wiley。

  • 克鲁切滕,P. (1995). 架构蓝图——“4+1”视图模型软件架构。IEEE 软件,12(6),42-50。

  • 巴赫蒂,P. R.,& 吉尔,H. (2011). 网络物理系统。控制技术的影响,161-166。

  • 斯库利,D.,霍尔特,G.,戈洛温,D.,达维多夫,E.,菲利普斯,T.,埃布纳,D.,查德哈里,V.,扬,M.,克雷索,J. F.,& 丹尼森,D. (2015). 机器学习系统中的隐藏技术债务。神经信息处理系统进展,2503-2511。

  • Hazelwood, K., Bird, S., Brooks, D., Chintala, S., Diril, U., Dzhulgakov, D., Fawzy, M., Jia, B., Jia, Y., Kalro, A., Law, J., Lee, K., Lu, J., Noordhuis, P., Smelyanskiy, M., Xiong, L., & Wang, X. (2018). Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective. IEEE 国际高性能计算机架构研讨会(HPCA),620-629.

|

现在解锁这本书的独家优惠

扫描此二维码或访问packtpub.com/unlock,然后通过书名搜索此书。 | |

| 注意:在开始之前准备好您的购买发票。* |

| --- |

第三章:软件工程与架构

AI 赋能的软件在系统复杂性方面实现了重大飞跃。与遵循确定性规则的传统软件不同,AI 赋能的软件试图通过启发式算法手段模仿人类的决策、推理和目标寻求。在这个过程中,创造了多维复杂性,因此是一个非确定性系统。与传统软件工程相比,需要解决不同类型的问题。

这种复杂性以各种方式表现出来,从集成专门的机器学习组件到需要强大的数据处理管道,从处理模型不确定性到确保适当的人类监督。考虑来自 Gartner 的令人警醒的统计数据,到 2022 年,由于数据、算法或负责管理它们的团队中的偏差,85%的 AI 项目交付了错误的结果[1]。这突出了在 AI 系统开发中稳健架构的至关重要的意义。

为了理解我们讨论的复杂性的规模,考虑一下,截至 2021 年,Linux 操作系统有超过 30.34 百万行源代码(www.kernel.org)。Linux 驱动着数百万台计算机,从关键任务系统到爱好套件,由数千名工程师在几十年的时间里通过自我组织的团队构建。这样一个复杂的系统能够可靠地运行,是现代奇迹,这得益于稳定的模块化架构,它为系统开发提供了框架。

“复杂性是我们从事的业务,也是限制我们的因素。”

弗雷德里克·布鲁克斯,《人月神话》

软件架构与其他工程领域(如土木、航空航天和医疗)共享一些共同元素,尽管每个领域实施不同的模型、模式和分解。核心目标保持一致:确保构建正确的系统。对于复杂的软件,尤其是 AI 赋能的系统,采用严格的架构方法对于简化问题空间和通过抽象和建模范围技术解决方案至关重要。

在本章中,我们将探讨软件在 AI 系统中变得复杂的原因,概述减轻这些复杂性的架构过程和文档,并检查架构师在项目管理中的作用,以确保项目成功完成。

理解 AI 系统中的软件复杂性

在 AI 赋能系统中存在几种不同但相互依赖的软件复杂性类型。架构作为工具,通过建模来管理这种复杂性,帮助架构团队对系统进行推理,并为详细规范和团队沟通提供基础。

图片

图 3.1:AI 系统的软件开发生命周期

图 3.1所示,人工智能系统的开发过程遵循一个结构化的生命周期,始于概念开发,然后通过需求收集和架构开发,接着进入设计和开发阶段。开发完成后,流程继续进行集成、单元测试、系统测试,最后部署。这种系统方法通过确保在开发早期就解决架构考虑因素,有助于管理人工智能系统固有的复杂性。关于系统方法的优秀资源可以在INCOSE 系统工程手册 [5]中找到。作者认为,这种循环可以应用于不同的开发方法,无论是瀑布式开发还是敏捷方法。

集成复杂性

当开发团队必须整合他们没有创建或不受控制的代码库时,软件集成变得特别具有挑战性。这跨越了软件堆栈的多个层次,从操作系统内核到应用框架。这些不同的软件包对库、操作系统、版本和编程语言的依赖性各不相同。

对于具有人工智能功能的系统,利用开源或商业软件包中的核心算法比从头开始构建功能在经济上更有优势。我们可以在 TensorFlow、PyTorch 和 scikit-learn 等框架的广泛应用中看到这一点,它们提供了复杂机器学习算法的现成实现。因此,软件架构的其余部分通常需要适应以容纳这些组件。

案例研究:医疗保健人工智能集成

一家实施诊断辅助系统的医疗保健提供商在整合用于医学图像分析的预训练深度学习模型时面临了重大的集成挑战。该模型使用 TensorFlow 构建,需要特定版本的支撑库,这与医院现有的基于 Java 的基础设施相冲突。架构团队通过实施一个带有容器化组件的微服务架构来解决这个问题,使人工智能系统能够在隔离环境中运行,同时通过定义良好的 API 与现有系统进行通信。然而,也存在 API 管理的复杂性。这包括处理更新或修订的 API。这迫使 API 的版本控制和兼容性基于模型或应用的演变。

功能复杂性

自主决策或推理的需求引入了显著的功能复杂性。决策过程必须正确执行,以便系统能够实现其目标。这需要通过监控、警报和警报来实现稳健的检查,因为人类监督并不总是可用以确保决策的正确性。

当模型变得不正确或过时时,AI 技术还引入了模型重新训练和部署的要求。必须实施警报系统和断点,以便在系统运行不正确时允许人工干预。此外,广泛的日志记录对于实现检查、警报和诊断功能是必要的。

在涉及敏感数据的人工智能系统中,如医疗保健、金融或政府应用,隐私问题和大量日志数据的管理变得尤为重要。一个良好的架构系统必须包括数据匿名化、安全存储和对日志的受控访问机制。

技术复杂性

AI 算法对底层硬件提出了巨大的需求。算法的计算复杂性、数据预处理需求以及性能边际增加了硬件部署决策的复杂性。例如,训练大型语言模型如 GPT-3 大约需要 3.14 x 10²³ FLOPS 的计算能力[2],突显了现代人工智能系统的极端计算需求。

查询和数据处理的及时性要求引入了额外的挑战。在实时应用中,如自动驾驶汽车或金融交易系统,AI 组件必须在严格的时间约束内做出决策,这要求对整个处理管道进行仔细优化。

处理管道需要仔细考虑易失性内存和数据存储需求。例如,处理高分辨率图像的计算机视觉系统可能会生成数以千计的中间数据,这些数据必须被高效地管理。此外,网络安全要求通过监控、加密和日志记录需求增加了另一层复杂性。

随着人工智能系统从开发阶段过渡到生产阶段,可扩展性成为一个关键关注点。架构必须考虑到数据量、用户负载和计算需求的增加,通常需要分布式计算方法和基于云的基础设施。

验证复杂性

确保算法和测试用例的正确实现是人工智能系统中的独特挑战。与传统的软件不同,其输出是确定性的,AI 系统产生基于训练数据、初始化参数以及训练过程中引入的随机因素的概率性结果。

对于 AI 组件,理解和定义正常或意外的数据输入对于证明系统鲁棒性至关重要。这涉及到使用对抗性示例、边缘情况和分布外数据来测试,以确保系统在面对不熟悉的输入时也能适当行为。

虽然单元测试很有价值,但集成测试往往能揭示单元测试中遗漏的失败。一个更微妙的验证挑战在于确保所有逻辑路径和潜在的执行路径都得到了充分的测试,这在具有复杂决策边界的 AI 系统中变得指数级困难。

示例:计算机视觉中的验证

考虑自动驾驶汽车的行人检测系统。单元测试可能验证模型在测试数据集中以高精度正确识别行人的能力。然而,集成测试可能会揭示,当摄像头输入受到恶劣天气条件或异常照明的影响时,系统会失败。更令人担忧的是,对抗性测试可能会显示特定图案的衣物可能导致系统完全错过检测行人。稳健的验证必须考虑到所有这些场景。

人机界面复杂性

用户与 AI 功能之间的角色和交互必须清晰理解。这定义了信息、警告、警报和警报将在整个系统中如何激活、呈现和执行。

自动化层次的概念,由 Parasuraman 等人[3]提出,为理解人类用户与自动化系统之间责任划分提供了一个框架。即使是高度自主的 AI 系统,也需要人类进行配置、监督和干预能力。

如果用户命令与 AI 系统推荐之间出现冲突,系统必须具有明确的裁决协议。同样,用户在 AI 学习框架中参与模型更新或改进的方法也必须明确定义。

可解释性是 AI 系统中人机界面设计的关键方面。用户需要了解为什么 AI 系统做出了特定的推荐或决策,尤其是在高风险领域,如医疗保健、金融和法律应用。这需要精心设计解释机制,以弥合复杂数学模型与人类理解之间的差距。

实践中的架构

复杂的软件系统很少是从零开始构建的,架构师通常并不完全掌握所有相关的技术或领域专业知识。这需要将架构功能分散到一个小团队中,该团队通常包括图 3.2中提到的关键角色。

图 3.2:AI 项目团队的示例组织结构图

黑色背景上的放大镜 AI 生成的内容可能不正确。快速提示:需要查看此图像的高分辨率版本?在下一代 Packt Reader 中打开此书或在其 PDF/ePub 副本中查看。

下一代 Packt Reader以及本书的免费 PDF/ePub 副本包含在您的购买中。扫描二维码或访问packtpub.com/unlock,然后使用搜索栏通过名称查找此书。请仔细核对显示的版本,以确保您获得正确的版本。

图 3.2的组织结构所示,AI 项目团队通常由项目经理位于顶层,直接向他们汇报三个关键角色:首席架构师、专业工程师,如数据工程师、数据科学家、用户界面开发者、全栈开发者、DevOps 工程师、安全工程师、运营分析师、合规分析师和项目控制分析师。这种结构确保了在项目决策中给予架构问题适当的重视,首席架构师在将业务需求转化为技术规范中扮演着关键角色。以下是一些关键角色的概述:

  • 愿景持有者:这个角色专注于最终客户的需求,并通过技术文档、演示、图表和工作层面的会议传达愿景。对于 AI 系统,这个角色必须理解业务目标和 AI 技术的功能和限制。

  • 技术专家:这个角色提供对软件系统中所需主要组件的特定理解,包括数据库技术、中间件、用户界面设计、计算需求、网络和存储需求。在 AI 系统中,这种专业知识扩展到机器学习框架、模型部署技术和数据管理系统。

  • AI 工程师:这个角色理解数据科学或分析过程,以确保 AI 组件符合架构愿景,在技术约束范围内运行,并向最终客户提供价值。这包括对机器学习算法、数据准备技术和模型评估指标的了解。

领域知识和 AI/ML 工程角色应该紧密耦合,因为最终目标是让 AI/ML 技术为最终客户提供独特的价值。这些功能共同来记录和传达系统愿景。

系统工程社区的一个普遍规则是,架构设计类型的努力应消耗大约 12-15%的项目资源[5]。虽然这最初可能看起来不具生产力,但这种前期工作可以节省时间并防止项目后期出现重大技术错误,尤其是在 AI 系统中,架构决策可能对系统性能、可维护性和可扩展性产生深远的影响。

软件复杂性控制方法

架构过程最明显的成果是与系统开发相关的相互关联的文档。这些包括操作概念文档、用例、活动图、逻辑图、非功能性需求规范、指标定义以及识别软件开发策略和模式。

构建架构

即使是最小的项目也应该开发一个操作概念CONOPS)文件,以证明 AI 系统的合理性并解释用户如何与之交互。CONOPS 文件应描述用户如何利用系统的 AI 方面,AI 将如何向客户展示,以及客户如何影响 AI 决策或输出。

本文件还将确定与系统相关的关键参与者以及 AI/ML 组件如何与他们交互(如果有的话)。CONOPS 文件应界定 AI 系统将与之接口的其他系统以及它如何适应更大的系统体系。推荐的标准是 IEEE 标准 1362-1998,“信息技术——系统定义——操作概念ConOps)文件指南。”

架构师开发的一组关键工件是通过统一建模语言UML)或系统建模语言SysML)的图表来描述系统。并非所有 UML 或 SML 图表都需要开发。

最常见的图表包括以下内容:

  1. UML 用例图:识别参与者、角色和创造价值的动作

  2. SysML 块定义图:捕捉系统的主要逻辑组件

  3. SysML 活动图:显示控制流的一般流程

  4. UML 状态转换图:捕捉系统状态和转换

  5. SysML 接口控制文档:定义组件之间的数据交换

  6. IDEF0 图:显示 AI/ML 决策的输入、目标、约束和输出

这些图表必须捕捉 AI/ML 功能的完整周期,包括决策过程。这些图表应捕捉主要逻辑决策、错误处理方法、模型维护、验证和再训练过程。此外,图表应显示人类交互和对整个系统的控制。它们应突出关键数据工程方面,包括数据清洗、转换和质量检查。

数据交换接口对于 AI 系统尤其关键,它定义了数据交换的执行方式,包括质量检查、数量、速率和格式。此接口管理和数据交换的服务级别协议是数据工程的一部分,确保系统可扩展、有弹性和在计算约束内运行。在接下来的章节中,将提供更多关于这些图表的细节和示例。

如 Bass 等人[4]所述,软件架构是由施加在系统上的非功能性需求驱动的。例如,可靠性、可扩展性和可用性。对于 AI/ML 系统,常见的非功能性需求包括以下内容:

  1. 可靠性:系统如何处理故障并保持运行

  2. 可解释性:系统如何解释其决策和建议

  3. 公平性:系统如何确保对用户群体进行公平对待

  4. 隐私性:系统如何保护敏感数据

  5. 适应性:系统如何随着数据模式的变化而发展

理解和定义 AI/ML 组件的这些需求对于成功开发系统至关重要。

集成与协同

复杂的 AI/ML 软件系统需要团队开发,在集成活动开始之前,需要建立稳健的集成方法。架构团队不需要完整的实现细节,但必须有效地指导过程。

四个主要的集成活动如下:

  1. 设计充分性评估:确定设计是否满足功能和非功能需求

  2. 非功能性需求评估:评估系统满足质量属性的程度

  3. 度量测量:关键系统性能指标的初步确定

  4. 接口验证:确保接口正确实施和使用

架构师必须了解不同的系统组件和数据工程如何影响整体系统。集成问题不可避免地会出现,架构师必须仔细评估系统范围内需求变更的影响。

例如,数据库查询响应时间的一个看似简单的变化可能导致 AI 组件接收不同步的数据,从而导致决策错误。架构师必须在开发早期阶段识别并解决这些依赖关系。

集成通常是首次测试非功能性需求。在开发生命周期早期解决架构级问题至关重要。后期架构变更可能对系统产生重大级联效应。集成还提供了首次测量关键系统指标和测试组件之间接口的机会。存在几种机制和流程有助于解决集成挑战。使用 DevOps 持续集成/持续部署CI/CD)技术可以自动测试新代码。这种自动化设置了步骤,在新代码开发和合并到配置的预生产系统基线时,预先定义的集成测试就会发生。DevOps 的使用还允许进行变更管理,以识别导致集成错误的基线更改区域。DevOps 流程的另一个优点是在出现问题或生产发布中的不期望行为时,可以回滚基线。

项目管理

尽管由于其他职责,架构师不应担任项目经理,但在项目管理中,架构师发挥着至关重要的作用。架构师为项目管理研究所定义的《项目管理知识体系指南》中规定的五大主要项目管理活动做出贡献:

项目启动

架构师帮助制定关键文档,包括目标、工作说明书、工作分解结构、进度表以及其他项目管理文档。他们明确工作范围,定义里程碑,并确定必要的资源,包括人员类型、努力程度和支持材料。根据项目规模或组织的工程文化,可能存在系统工程团队。如果这个团队存在,他们将与架构师紧密合作,确定关键特性和工作规划——例如,在敏捷开发方法中,他们帮助创建史诗和用户故事。

架构师还会对项目执行方法提供意见,例如敏捷或螺旋方法。

图 3.3:敏捷人工智能开发的看板

对于人工智能项目,像看板(如图 3.3 所示)这样的敏捷方法通常效果很好,允许在模型通过迭代不断优化和改进时,持续流动的任务和软件开发。看板将工作可视化在三个列中:待办(TO DO)表示尚未开始的任务,进行中(DOING)表示当前正在进行的任务,完成(DONE)表示已完成的任务。看板板的组织方法还有其他方式,有更多阶段。作者选择突出最基本类型的看板。任务可能发生在单个或多个执行周期中。在敏捷中,这被称为“冲刺”。

满足冲刺中“完成”标准的示例活动如下:

  1. 已经进行了代码审查

  2. 已经进行了单元测试

  3. 新代码已经通过 CI/CD 管道运行

  4. 人工验收测试

重要的一点是,一个功能可能需要跨越较长时间完成多个任务才能被认为是“完成”。使用文档和来自架构师的指导有助于跟踪和验证一个跨多个迭代的任务是“完成”的。

这个视觉管理工具帮助团队跟踪进度并识别开发过程中的瓶颈,这对于人工智能项目尤其有价值,因为任务可能具有不同复杂性和不确定性水平。

项目规划

在规划阶段,架构师会确定主要里程碑和里程碑完成所需的技术证据要求。他们帮助确定团队构成、努力分配和财务规划。架构师为架构团队建立报告要求和配置控制策略。

对于人工智能系统,规划必须考虑到模型开发的迭代性、算法性能的不确定性以及持续数据收集和质量保证的需要。

图 3.4:人工智能系统开发的临界路径分析

此规划过程通常涉及关键路径分析,如图 3.4 所示,它展示了不同的活动和依赖关系如何影响整体项目时间表。在这个网络图中,节点代表项目里程碑(编号 10 至 80),而边代表活动(标记为 A 至 I)及其相关持续时间(t=1 个月至 t=4 个月)。关键路径分析帮助项目经理和建筑师确定哪些活动必须按时完成以防止项目延误,以及哪些活动具有可利用的松弛时间,如果需要重新分配资源。

项目执行

在执行过程中,建筑师监督分配给其团队的工作项,并通过提供见解和澄清支持其他工程团队。他们帮助项目经理跟踪整体项目执行,并确保集成活动将产生一个连贯的系统。

建筑师作为解决技术冲突、明确需求和确保设计决策与整体愿景一致的关键资源。在人工智能系统中,模型精度、计算效率和可解释性之间的权衡必须仔细平衡,这一角色变得尤为重要。

监控与控制

对于监控与控制,建筑师提供对工程努力的质控和审查,向项目经理更新进度和资源利用情况。建筑师帮助解释技术进展并识别潜在风险,以防止其对项目结果产生影响。

在人工智能项目中,监控扩展到跟踪模型性能指标、数据质量和漂移检测,以确保系统在现实世界中的运行过程中继续满足要求。

项目收尾

在收尾阶段,建筑师确保测试和认证完成,在最终系统验证期间代表客户。他们与项目经理合作进行系统部署和交付,提供合同和工作说明书所需的关键工件。

对于人工智能系统,关闭活动可能包括模型维护流程的知识转移、监控工具的移交以及记录未来改进机会的文档。

案例研究:人工智能项目管理的实际应用

一家实施机器学习欺诈检测系统的金融服务公司面临重大的项目管理挑战。基于传统瀑布软件开发方法的初始项目计划未能考虑到模型开发的迭代性质以及与现有交易处理系统集成复杂性。

架构团队使用围绕三周冲刺的敏捷方法重构了项目,每个冲刺都专注于提高模型性能的特定方面,同时逐渐扩展集成点。敏捷方法的一个关键点是倡导以迭代的方式开发功能,以便从利益相关者那里获得快速而有力的反馈。此外,通过更早地交付可工作的代码,系统可以更快地进行测试和验证,从而减少总开发时间。他们使用合成数据进行早期集成测试,允许模型组件和系统接口的并行开发。这种方法使他们能够及早识别和解决集成问题,最终交付的系统通过 37%的欺诈损失减少同时满足所有合规要求。

作者并不打算仅仅提倡敏捷方法。瀑布机制的优点是:进行了稳健的需求收集,并且通过定义进度表和资源监督,项目控制更加紧密。此外,通常还会分配时间进行稳健的文档。敏捷方法的缺点是:没有考虑到主要功能或接口,敏捷方法可能会失去架构一致性。这发生在过多的并行开发使得执行冲突的主要设计决策时。尽管如此,我们认为,如本文所述的具有架构方面的敏捷方法在开发复杂 AI 系统方面更为有效。

摘要

在本章中,我们讨论了 AI 系统中算法决策引入的独特形式的软件复杂性。我们确定了这种复杂性的几个维度——集成、功能、技术、验证和人类界面——并解释了在开发项目早期应用架构流程和文档如何帮助管理这些挑战。

AI 赋能的系统不仅仅是传统软件加上一个 AI 组件;它们代表了一种本质上不同的系统类别,需要深思熟虑的架构来实现其潜力。在这些系统中,架构师的角色不仅限于技术设计,还包括项目管理、利益相关者沟通以及确保最终系统交付预期的价值。

随着我们继续阅读这本书,我们将基于这些基础概念来探讨特定的 AI 技术、实现示例以及详细的架构流程和开发工件。这些工具将使你能够成功导航 AI 系统开发的复杂性,并创建出利用 AI 能力有效的强大、有价值的解决方案。

作者认为,通过实践学习架构是最好的。随着进行更多的架构任务和项目,一个人可以磨练他们的技能。以下是一些在不同类型的系统上进行的练习,这些练习将有助于架构技能的发展。

练习

  1. 为 AI/ML 系统识别几个组件和流程架构产品。

  2. 研究并确定 CONOPS 和需求文档的使用和集成方式。

  3. 识别复杂网站的主要组成部分——例如亚马逊(Amazon)、谷歌地图(Google Maps)、Zillow 或其他需要集成许多组件的系统。

参考文献

  1. Gartner,“Gartner 称近一半的首席信息官计划部署人工智能”,2018 年 2 月。

  2. Brown, T.,等人,“语言模型是少量样本学习者”,神经信息处理系统进展,2020 年。

  3. Parasuraman, R.,Sheridan, T.B.,和 Wickens, C.D.,“自动化与人交互的类型和水平模型”,IEEE 系统、人、和网络-第 A 部分:系统和人类,第 30 卷,第 3 期,第 286-297 页,2000 年。

  4. Bass, L.,Clements, P.,和 Kazman, R.,“软件架构实践”,Addison-Wesley,2012 年。

  5. 国际系统工程委员会(International Council on Systems Engineering),“INCOSE 系统工程手册:系统生命周期过程和活动指南”,第 4 版,2015 年。

|

现在解锁这本书的独家优惠。

扫描此二维码或访问packtpub.com/unlock,然后通过书名搜索此书。 | |

| 注意:在开始之前准备好您的购买发票。* |

| --- |

第二部分

构建人工智能系统

书的第二部分将引导你了解更详细的解释、指南和经验教训,以构建具备人工智能功能的系统。本书的这一部分从概念设计开始,这是由架构师引领的最关键的阶段之一。本节最后几章更详细地探讨了架构师在从概念设计到系统测试过程中的角色。最后,一个案例研究被突出显示,这是一个真实且常见的挑战,其中具备人工智能功能的系统可以轻松地转化商业问题。

本节包含以下章节:

  • 第四章, 人工智能系统的概念设计

  • 第五章, 人工智能管道的需求和架构

  • 第六章, 设计、集成和测试

  • 第七章, 构建生成式人工智能系统——案例分析

第四章:人工智能系统概念设计

想象一下走进一家餐厅,服务员立即告诉你将吃什么,而不提供菜单、询问你的偏好或讨论你的预算——然而你仍然需要付钱。这样的餐厅很快就会失败。缺少了什么?客户参与以了解实际需求以及反馈机制。这种情况与复杂软件开发中经常发生的情况相似,尤其是在人工智能驱动的系统中[1]。

通过进行彻底的概念设计活动,我们降低了误解用户和利益相关者需求的风险。在此阶段开发出的工件为架构师提供了对系统最终目标和约束以及客户如何看待价值的视角。相反,这些工件允许客户具体化他们的目标,揭示主要隐含假设,与其他利益相关者沟通,并确信系统构建者理解他们的愿望。

B19300_04_01.png

图 4.1:系统工程“V”模型中的概念设计

黑色背景上的放大镜 AI 生成的内容可能不正确。快速提示:需要查看此图像的高分辨率版本吗?在下一代 Packt Reader 中打开此书或查看 PDF/ePub 副本。

2.png下一代 Packt Reader 和此书的免费 PDF/ePub 副本包含在您的购买中。扫描二维码或访问 packtpub.com/unlock,然后使用搜索栏通过名称查找此书。仔细检查显示的版本,以确保您获得正确的版本。

解锁 1.png

图 4.1所示,概念设计构成了系统工程“V”模型的基础。该模型显示了概念设计如何作为影响所有后续开发阶段的起点,以及系统最终如何根据这些初始概念进行验证。特别是对于人工智能系统,适当的概念设计对于降低由于数据依赖性而导致的错位成本呈指数级增加的风险至关重要。

本章的关键学习成果是理解概念设计是制定系统愿景的第一支柱。适当的概念设计可以降低构建错误系统的风险——由于人工智能系统的数据依赖性和复杂交互,这种风险随着人工智能系统的应用而呈指数级增加。

概念设计工件包括操作文档、场景和用例的概念。这个工件具有多重用途:它为最终用户和资助客户提供了一个讨论关键活动、目标、约束和性能预期的机制。它还成为指导整个工程“V”模型中系统开发的更详细技术活动的起点。

在本章中,我们将讨论以下内容:

  • 运作概念

  • 人工智能系统的业务案例

  • AI 赋能系统中的角色、场景和用例

运作概念(CONOPS)

如果在建造房屋时,没有计划来指导木匠构建结构,会发生什么?结果将是混乱不堪,几乎可以保证项目失败。构建复杂的软件系统,尤其是那些包含 AI 和 ML 组件的系统,并无不同。建筑师不仅必须为系统制定愿景,还必须对其进行彻底的文档记录,以便后续工作能够有效执行、协调和规划。

运作概念CONOPS)正是这样的文档。在概念设计中,CONOPS 充当即将构建的系统的初始定义。它为关键利益相关者提供了关于最终系统将做什么、应该表现得多好、关键约束以及不应该做什么的见解。

图 4.2:CONOPS 利益相关者关系图

图 4.2所示,CONOPS 文档作为连接不同利益相关者与开发团队的重要沟通桥梁。在左侧,包括最终用户、领域专家、合规官员、业务所有者和系统操作员在内的利益相关者提供需求和背景信息。在右侧,由系统架构师、数据科学家、ML 工程师和软件开发人员组成的开发团队接收与其角色相关的具体指导。中央 CONOPS 文档捕捉系统愿景、场景、用例和操作模式,促进双向信息流,确保一致性和共同理解。

以 AI 为中心的系统的 CONOPS

对于以 AI 为中心的系统,CONOPS 是您首先界定 AI/ML 技术如何创造价值的地方。AI 组件将如何增加收入、降低成本或改变运营?AI 系统将影响的职能组件和流程必须明确识别。AI 方面并非孤立存在——它们的接口和耦合功能需要清晰的识别和理解。

对于现代 AI 系统,这意味着定义和理解关键数据流,包括以下内容:

  • 数据摄取管道和来源

  • 数据预处理和特征工程需求

  • 模型训练、验证和部署工作流程

  • 推理过程和集成点

  • 持续学习的反馈循环

控制流程和执行过程必须被捕捉,以了解 AI 组件如何以及在哪里影响各种系统操作模式。IEEE 1362-2022 为开发以软件为中心的系统的 CONOPS 文档提供了一个良好的模板[1]。对 CONOPS 的彻底审查是必要的,因为许多后续工作都源于这一套工件。

理解当前系统

要构建一个新系统,首先了解当前或先前系统的局限性。新系统必须超越现有价值——无论是通过增加收入、降低成本还是改善对最终客户重要的其他方面。定义将要构建的内容需要描述当前系统。

需要突出的项目包括为当前系统利益相关者带来价值的现有流程。您需要识别所有利益相关者:用户、客户、支持人员、业务分析师、数据科学家、合规官员和管理层。AI 组件不可避免地影响新系统的所有利益相关者,因此理解当前系统如何影响这些利益相关者是推动新设计的关键。确定显示当前系统功能的指标。

以数据为中心的 AI 系统视图

对于以 AI 为中心的系统,数据是系统的核心。在这个阶段,确定当前系统中使用的核心数据源。关注支持当前系统的数据过滤、转换或处理。确定合规或监管要求,以确保新的以 AI 为中心的系统满足这些要求。以 AI 为中心的系统可能需要在这个领域替换、适应或创建新的功能。

描述当前系统的计算设计以及它是如何转换数据并得出推理或控制动作的。计算设计包括处理、存储和网络技术以及相关的性能规范。在现代 AI 系统中,这包括理解以下内容:

  • 当前模型架构及其局限性

  • 训练和推理基础设施

  • 数据存储和访问模式

  • 延迟需求瓶颈

  • 扩展能力和限制

  • DevOps 和 MLOps 实践

AI 系统的非功能性需求

以 AI 为中心的系统显著推动了系统的非功能性需求。通常使用架构策略和模式来满足非功能性需求。为了确保新的以 AI 为中心的系统能够一致或更好地替换、适应或引入新的策略和模式,必须理解当前系统的架构策略和模式。

尽可能地了解当前系统的局限性。这有助于获得对新系统的支持并指导其他技术活动。提供分析,并在可能的情况下,提供支持新系统优于被替换系统的经验证据。变革的理由应描述未实现的机会或当前系统如何因市场竞争而面临过时风险。例如,Atlassian 工具套件 Jira 和 Confluence 的扩展增加了协作和集成的功能。尽管这并不是功能增加的巨大飞跃。这些系统现在是行业公认和常用工具。一个更早的 AI 技术例子是当谷歌改变他们的广告定价模式,只有在链接被执行时,客户才会为在谷歌上的广告付费。这种简单的 CONOPS 变化对雅虎公司的商业模式产生了重大影响。

AI 系统的商业案例

关于复杂 AI 软件经常被问到的尖锐问题是:“AI 有多少价值?”

尽管应用 AI 技术以增加盈利的热情很高,但确保开发的软件系统符合预期需要明确优势和优势将如何体现。需要管理 AI 启用系统的软件复杂性,以便理解和减轻在满足成本和时间因素时产生的技术债务 [2]。

对于一个新系统,首先讨论并说明 AI/ML 技术将如何为组织带来益处 [3]。AI/ML 将如何增加收入、降低成本、使组织更高效或更安全,或改善其他价值指标?

图片 B19300_04_03

图 4.3:AI 商业价值矩阵

图 4.3 展示了一个 AI 商业价值矩阵,该矩阵有助于组织根据其实施复杂性和商业影响优先考虑 AI 创新项目。矩阵将潜在的 AI 应用分为四个象限:

  • 快速胜利(高影响,低复杂度):如电子邮件分类、客户细分、基本推荐系统、FAQ 聊天机器人和情感分析等应用,提供了显著的商业价值,且实施相对简单。

  • 战略投资(高影响,高复杂度):如欺诈检测系统、预测性维护、个性化医疗保健、自动驾驶汽车和先进的供应链优化等项目需要大量资源,但能带来高商业价值。

  • 低优先级(低影响,低复杂度):基本功能,如文档标记、简单的数据可视化、自动化报告、入门级分析仪表板和基本内部聊天机器人,尽管易于实施,但提供的商业影响有限。

  • 避免/重新考虑(低影响,高复杂度):例如,过于复杂的自动化简单任务、非关键决策的人工智能、低量问题的复杂解决方案、没有明确投资回报率的技术优先项目以及应用有限的实验性人工智能等项目应避免或重新考虑。

此矩阵为组织提供了一个战略框架,以评估和优先考虑其人工智能计划,确保资源分配到平衡技术可行性和商业价值的项目。

人工智能技术对商业运营的影响

人工智能技术从端到端影响整个系统。这种系统视角使得评估技术的局限性以及哪些标准操作或错误可能影响最终系统成为可能。

理解技术将影响到的性能指标或要求至关重要——特别是那些影响客户收入或支出的指标——这一点至关重要。现代人工智能系统通常影响以下方面:

  • 通过自动化提高运营效率

  • 通过高级分析提高决策质量

  • 通过个性化提升客户体验

  • 通过预测能力进行风险管理

  • 通过优化算法进行资源配置

  • 通过加速流程提高市场速度

图片

图 4.4:人工智能-人类交互谱系

图 4.4展示了人工智能-人类交互谱系,显示了从人类驱动到人工智能驱动的系统的连续性。这个谱系帮助组织构想其人工智能系统中预期的自主程度和人类参与度:

  • 手动操作:人类选择,人工智能观察(例如,传统工艺)

  • 决策支持:人工智能推荐,人类决策(例如,智能写作助手)

  • 共享控制:人工智能行动,人类确认(例如,人工智能-人类设计团队)

  • 监督自主:人工智能运行,人类监督(例如,高级驾驶辅助)

  • 完全自主:人工智能独立运行(例如,自动驾驶汽车)

了解您的 AI 系统在这个谱系中的位置对于定义适当的交互模型、建立控制协议和设定用户期望至关重要。它还有助于识别潜在风险,并根据人工智能自主程度确定适当的监督机制。

组织整合和人力资源影响

人工智能技术必须适应组织维护和开发框架。最后,明确说明对用户和人类的具体影响。人工智能技术不可避免地改变或调整人类执行的过程,包括以下方面:

  • 从手动任务到监督职能的岗位角色转变

  • 决策权限和责任的变化

  • 运营和维护的新技能要求

  • 修改后的工作流程和业务流程

  • 伦理考虑和透明度要求

  • 需要可解释性以符合监管要求 [4]

人工智能赋能系统的场景

在正确的环境中使用正确的工具会产生惊人的结果——想想米开朗基罗的凿子。相反,错误使用工具可能会带来灾难。考虑 Zillow 公司因错误使用指导其房屋翻新业务的 AI 模型而造成的超过 6 亿美元的巨额损失 [6]。

作为概念设计的一部分,概述用户的各种角色和责任。这些角色从外部客户到系统分析师、最终用户、系统开发人员和系统运维人员。人工智能技术的角色和影响要求架构师捕捉这些观点并在目标基线中进行调整。

创建有效的场景

角色文档应说明系统如何在相关场景中完成其使命和任务。为功能和非功能性需求定义一组初始的高层次指标。解决关键参与者和如何满足利益相关者的关注点。在操作概念中识别所提议系统的主要架构元素。

例如,确定系统将是集中式还是分布式,识别规范参与者、主要外部用户或需要集成的系统,以及任何硬约束,如监管或合规要求。场景和用例有助于具体理解系统必须做什么,并确定后续工程活动的依据。另一个重要方面是进行威胁建模场景,以确保系统在面对敌对行为和整个网络攻击范围时既安全又具有弹性。

图 4.5:人工智能系统成功指标框架

图 4.5 展示了一个涵盖三个基本领域的全面人工智能系统成功指标框架:

  • 技术性能:

    • 准确性指标:精确度、召回率、F1 分数、AUC-ROC

    • 性能指标:推理时间、吞吐量、延迟、资源利用率

    • 坚韧性指标:数据漂移韧性、错误率稳定性、对抗性鲁棒性、边缘情况处理

    • 可靠性指标:正常运行时间

  • 商业影响:

    • 财务指标:投资回报率(ROI)、收入影响、成本降低、总拥有成本(TCO)

    • 运营指标:流程效率、资源优化、时间节省、错误减少

    • 战略指标:竞争优势、市场份额影响、创新赋能、可扩展性

    • 采用指标:使用率

  • 用户体验和伦理:

    • 用户体验指标:用户满意度(CSAT)、系统可用性量表、价值实现时间、用户留存率

    • 公平性指标:人口统计学平等、平等机会、差异影响、交叉公平性

    • 透明度指标:可解释性得分、文档质量、特征重要性清晰度、决策可追溯性

    • 隐私和安全:数据保护得分

此框架确保人工智能系统在技术准确性之外得到全面评估,包括其商业价值和伦理影响。场景应参考这些指标来定义人工智能系统的成功标准。

场景中的人工智能技术使用

为了更好地理解技术的影响,需要有一定的背景。场景是定义背景的绝佳工具。场景从更广泛的角度描述了挑战和主要操作模式。以下是一些例子:

  • 人工智能驱动的推荐引擎将如何个性化客户体验

  • 预测性维护系统将如何分析传感器数据以防止设备故障

  • 自然语言处理系统将如何处理客户服务咨询

  • 计算机视觉系统将如何识别制造中的质量问题

一个场景可能描述客户如何使用系统在人工智能驱动的个性化电子商务网站上购买商品。或者,它可能概述医疗专业人员如何使用系统进行人工智能辅助医疗诊断。这些场景应捕捉与系统互动的主要参与者,确定关键功能,并概述评估系统性能的相关指标。

定义成功和约束

场景需要定义系统成功意味着什么,什么构成正常操作,以及什么会是故障条件。此外,场景应更详细地描述技术约束。

约束条件的例子可能包括精度要求、可接受的误报概率或最大推理时间限制。对于现代人工智能系统,约束条件可能还包括以下内容:

  • 不同人口群体的公平性和偏见指标

  • 对于高风险决策的可解释性要求

  • 数据隐私和安全标准

  • 模型漂移阈值触发重新训练

  • 高峰负载期间的资源利用率限制

  • 当信心阈值未达到时,应采取安全机制

这些场景不需要详尽无遗,但应该足够详细,以便主要利益相关者同意这些场景的正确执行表明系统操作成功。

人工智能系统用例

用例在原则上与场景非常相似,但它们更注重细节,以便能够指导实际的软件开发。这些图捕获了交互和更详细的功能以执行。以层次结构开发用例,其中第 1 级用例共同覆盖 CONOPS 的系统执行。从第 1 级用例中推导出低级用例。在用例中捕获详细的人机交互,以确保系统的正确操作和维护。

有效用例的结构

用例至少应包括以下内容:

  • 标题

  • 作者

  • 系统级和可追溯性

  • 主要参与者

  • 假设

  • 前置条件

  • 执行摘要

  • 成功的后置条件

  • 信息输出、警告、警报、警报和错误

  • 用例失败后的后置条件

  • 数据来源

  • 数据输出

用例可以明确预期的数据来源、频率、格式和质量。在系统架构的这个阶段,不需要非常详细地分解用例——而是关注突出系统主要正常操作阶段的用例。随着设计的进一步发展,它应该追溯到更高层次的用例。用例还有助于确定关键系统功能、非功能性需求和系统技术性能的指标和需求。

用户类别和人工智能交互

在此阶段正式定义用户类别。确定人工智能组件和所有不同的人类角色如何互动。确定每个角色需要的数据以及人工智能如何支持该角色。定义系统与不同角色之间的交互方式。使用自动化规模可以帮助更好地解释人工智能组件和人类角色的定义和构建。

智能化系统的操作模式

操作概念、场景和用例有助于定义系统的主要模式。对于每种模式,理解并记录人工智能组件将如何工作以及它们在整个系统中的支持需求。

图 4.6:人工智能系统的六个操作模式及其转换

图 4.6展示了人工智能系统的操作模式流程图,显示了六个关键操作状态及其转换:

  1. 配置模式:设置模型参数和接口

  2. 启动模式:系统的验证和验证

  3. 执行模式:正常操作和监控

  4. 维护模式:再培训和更新

  5. 恢复模式:处理故障和退化

  6. 关闭模式:优雅终止

该图显示了从配置到启动再到执行的正常流程路径(实线),以及计划维护或错误触发的恢复路径。虚线表示可选的重启路径。这个操作模式框架对于全面的 AI 系统规划至关重要,因为它确保在系统设计中解决了所有关键状态。

配置模式

确定所需的模型参数并阐明人工智能组件获取它们的机制。配置并确保外部数据接口、数据来源和人类界面参数的可用性。提供日志或输出以确认人工智能组件启动就绪。对于现代人工智能系统,配置包括以下内容:

  • 模型版本控制和工件管理

  • 特征存储和预处理管道

  • A/B 测试基础设施

  • 监控和可观察性设置

  • 隐私保护机制

  • 超参数设置和优化策略

启动模式

在启动期间,人工智能组件提供与系统其余部分的集成状态。使用已知数据和预期输出运行测试,以确保人工智能组件正常工作。记录并积极沟通人工智能组件和系统已准备好执行。现代实践包括以下内容:

  • 金丝雀部署以限制初始曝光

  • 与现有系统并行的影子模式操作

  • 逐步功能推出

  • 自动验证基准数据集

  • 性能基线测量

  • 基础设施扩展验证

执行模式

收集系统性能(通常是机器学习指标)、操作计数和管道健康状况的统计数据,并捕获警告、警报、警报或故障以向用户或系统操作员报告。现代执行监控包括以下内容:

  • 实时模型性能仪表板

  • 漂移检测和异常监控

  • 特征重要性跟踪

  • 资源利用率监控

  • 服务延迟和吞吐量指标

  • 数据质量监控

维护模式

由于预期模型漂移或过时,模型通常需要基于分类或回归输出进行定期维护。定义如何将人工智能组件离线,以及其余管道(s)在没有此组件的情况下应如何执行。现代维护策略包括以下内容:

  • 由性能下降触发的自动重新训练管道

  • 冠军挑战者模型评估

  • 模型的持续集成/持续部署

  • 模型治理和审批工作流程

  • 用于可重复性的版本化数据集

  • 用于受控推出的 A/B 测试框架

恢复模式

在重大故障或非标准条件下,人工智能组件需要重新配置、测试,并准备重新部署到生产系统。根据恢复性质,可能需要重新训练模型,这需要冷备用策略。现代恢复方法包括以下内容:

  • 模型回滚功能

  • 具有快速切换功能的版本化模型注册表

  • 电路断路器优雅地失败到更简单的模型

  • 集成技术以减少对单个模型的依赖

  • 关键路径的缓存推理结果

  • 降级模式操作计划

关闭模式

在关闭期间,保存模型和日志操作以帮助系统重启。实施安全触发器,以确保管道组件不会因人工智能组件关闭而受到不适当的干扰。现代关闭考虑因素包括以下内容:

  • 对进行中的请求进行优雅处理

  • 状态化组件的状态保留

  • 清理终止资源密集型进程

  • 用于事后分析的最后遥测捕获

  • 带有依赖关系的协调关闭顺序

  • 正确释放云资源以控制成本

通过概念设计进行风险缓解

概念设计的作用也影响着整个系统开发的风险管理。概念设计确定了主要场景、相关用例、需求和要完成建模。还有全面的人工智能技术评估和选择。这项练习为系统开发者提供了一个全面的系统视角。这种全面的视角本身可以分解和分析各种风险维度。

图 4.7:概念设计活动如何减轻人工智能系统开发中的关键风险

图 4.7 展示了概念设计活动如何直接应对和缓解人工智能系统开发中的关键风险。图表将风险类别(橙色)映射到解决这些问题的特定概念设计活动(蓝色),从而降低项目风险(绿色):

  • 通过业务案例开发(减少 65-80%)缓解业务一致性风险

  • 通过 CONOPS 文档(减少 50-70%)解决技术可行性风险

  • 通过场景和用例(减少 60-75%)降低用户接受风险

  • 通过数据管道分析和运营模式规划(减少 55-65%)缓解集成和监管风险

图表展示了这些活动如何共同降低项目风险,从而减少开发过程中的变更,并使利益相关者的期望更加一致。这种强大的可视化展示了彻底的概念设计在降低人工智能项目风险中的可量化价值。

数据质量风险缓解

人工智能系统在本质上依赖于数据质量,这是传统软件所不具备的。CONOPS 应包括明确的数据质量要求和补救策略。常见的数据质量风险包括以下:

  • 不完整或存在偏差的训练数据

  • 系统间不一致的标识符跟踪

  • 随时间推移的数据漂移

  • 输入数据损坏或篡改

  • 隐私和安全漏洞

在概念设计阶段解决这些风险可以防止开发后期昂贵的补救工作。

利益相关者期望管理

人工智能系统的利益相关者通常对模型性能和能力有不切实际的期望。概念设计阶段应包括以下方面的利益相关者教育:

  • 人工智能系统的实际性能轨迹

  • 人工智能输出的概率性质

  • 持续监控和改进的需求

  • 性能维度之间的权衡(准确性对可解释性等)

  • 使用变更管理确保系统稳定性和变更记录

早期设定适当的期望可以防止后续的失望和项目重新评估。

集成风险缓解

人工智能系统很少孤立存在。它们必须与遗留系统、数据源和运营流程集成。概念设计应彻底解决以下问题:

  • 系统间的数据兼容性

  • 延迟要求与限制

  • API 规范和合同定义

  • 当 AI 组件表现不佳时的回退机制

在实施前早期考虑集成挑战可以防止在实施期间进行昂贵的架构修订。NIST 的AI 风险管理框架AI RMF)是帮助在 AI 系统开发中降低风险的优秀参考[5]。AI 失败的悲剧性例子是 2003 年的一次事件,当时美国爱国者电池的自主软件错误地将一架英国战斗机识别为威胁并将其击落,导致机上所有飞行员丧生。

案例研究:零售推荐系统

为了说明本章讨论的概念,让我们考察一个零售推荐系统的真实世界例子。一家大型电子商务零售商希望改进他们的产品推荐系统,以提高客户参与度和销售额。

CONOPS 开发

CONOPS 文档定义了 AI 推荐系统如何与现有的电子商务基础设施集成,包括以下内容:

  • 数据来源:客户浏览历史、购买历史、产品目录和库存系统

  • 性能预期:50 毫秒推荐生成延迟,转化率提高 15%

  • 限制:符合 GDPR,对营销团队的解释性

商业案例

商业案例量化了预期的收益:

  • 预计平均订单价值增加 12%

  • 购物车放弃率降低 8%

  • 通过个性化增强客户忠诚度

场景和用例

关键场景包括以下内容:

  • 浏览时的实时推荐

  • 电子邮件营销个性化

  • 库存感知推荐以防止推广缺货物品

浏览时的实时推荐是一个选择的场景,因为它迫使设计决策关注速度和模型复杂性。电子邮件营销个性化处理涉及使用自然语言处理和其他标识符正确生成名称,向客户展示他们正在获得定制化的体验。

库存感知推荐迫使技术要求处理最新的数据存储、查询复杂性、分析执行时间以及系统能够应对缺货物品的情况。

操作模式

推荐系统需要广泛的配置能力,包括以下内容:

  • 设置产品之间相似度分数的阈值

  • 配置特征权重以平衡近期、频率和货币价值

  • 与库存管理系统建立集成参数

  • 为新用户和产品定义冷启动策略

在正常操作期间,系统实施了以下功能:

  • 实时性能仪表板跟踪推荐的相关性

  • A/B 测试基础设施以持续评估算法变体和超参数

  • 当转化率低于定义的阈值时自动发出警报

  • 基于会话的推荐跟踪以捕捉短期意图

系统集成了强大的恢复机制:

  • 如果个性化失败,则回退到基于流行度的推荐

  • 在流量高峰期间自动切换到预计算的推荐

  • 电路断路器用于隔离故障组件,而不会对整个系统造成破坏

  • 优先考虑速度而牺牲个性化准确性的降级操作模式

实施挑战和经验教训

在开发推荐系统时,团队发现历史购买记录中存在重大的数据质量问题。客户 ID 在不同平台上的跟踪不一致,为构建准确的用户画像带来了挑战。概念设计不得不进行修订,以包括更健壮的数据清洗管道和身份解析机制。

市场团队最初期望推荐引擎能够立即达到人类水平的个性化准确度。系统架构师必须教育利益相关者关于人工智能系统现实性能轨迹的知识,解释模型精度如何随着更多数据和反馈随时间提高。

与现有电子商务基础设施的集成比最初预期的要复杂。遗留库存系统与实时推荐所需的数据模型和更新延迟有显著差异。团队修订了他们的架构方法,包括一个中间数据同步层,将推荐服务从遗留系统中解耦。

摘要

在本章中,我们探讨了概念设计对于人工智能系统至关重要的意义。概念设计阶段为所有后续的工程活动奠定了基础。对于人工智能系统来说,这个基础尤其关键,因为它们具有独特的特性:数据依赖性、学习行为、概率性结果以及人机交互的复杂性。

关键要点包括以下内容:

  • 理解所提出的系统将如何为最终客户带来价值

  • 理解 AI/ML 将为新系统提供什么

  • 确定新系统必须做什么,什么是有帮助的,以及新系统不能做什么

  • 从客户的角度识别性能和非功能性需求

  • 在面向客户和利益相关者的操作概念中记录见解,并使一般公众能够访问

  • 确定端到端系统的关键角色、参与者和用例,突出显示 AI/ML 组件的突出位置

当正确执行时,概念设计可以减轻人工智能系统开发中最重大的风险:构建错误的系统。通过在这一阶段投入足够的资源,组织大大增加了交付满足用户需求、实现业务目标,并在预期环境中安全有效运行的人工智能系统的可能性。

本章的内容必然是广泛的,因为每个软件系统、环境和客户都是独特的。在架构设计中的一个共同点是概念设计可以减轻许多风险。产生的工件构成了后续工程活动的基石,这对于具备人工智能的系统尤为重要,因为不匹配的成本可能非常高。

下一章将在此基础上构建,探讨概念设计工件如何指导详细需求、架构设计决策和人工智能系统实施策略的制定。

练习

  1. 人工智能商业价值矩阵应用

考虑你熟悉的行业(医疗保健、零售、制造业等)。为该行业识别四个潜在的 AI 应用,将每个应用放在人工智能商业价值矩阵的每个象限中(快速胜利、战略投资、低优先级、避免/重新考虑)。根据实施复杂性和业务影响因素来论证你的放置决策。

  1. 人工智能与人类交互场景开发

为一个位于人工智能与人类交互谱“共享控制”部分的 AI 系统创建一个详细的场景。你的场景应描述背景、主要角色、AI 组件责任、人类操作员责任和关键交互点。包括潜在的故障模式及其处理方式。

  1. 用例规范

为一个具备人工智能预测维护功能的系统中的维护模式操作编写一个完整的用例。遵循“有效用例结构”部分中概述的结构,确保包含所有 12 个必需元素。特别注意前置条件、后置条件和错误处理机制。

  1. 风险缓解规划

对于一个具备人工智能的医疗诊断辅助系统,在以下每个类别中识别三个具体风险:数据质量风险、利益相关者期望风险和集成风险。对于每个风险,描述你在概念设计阶段如何应对它,以防止实施过程中出现问题。

参考文献

  1. IEEE 计算机协会. (2022). IEEE 1362-2022: IEEE 信息技术 - 系统定义 - 操作概念(ConOps)文档指南. IEEE 标准协会. DOI: 10.1109/IEEESTD.2022.9767507

  2. Sculley, D., Holt, G., Golovin, D., Davydov, E., Phillips, T., Ebner, D., Chaudhary, V., Young, M., Crespo, J. F., & Dennison, D. (2015). 隐藏在机器学习系统中的技术债务. 神经信息处理系统进展,28,2503-2511. https://papers.nips.cc/paper/2015/hash/86df7dcfd896fcaf2674f757a2463eba-Abstract.html

  3. Amershi, S., Begel, A., Bird, C., DeLine, R., Gall, H., Kamar, E., Nagappan, N., Nushi, B., & Zimmermann, T. (2019). 软件工程与机器学习:一个案例研究. IEEE/ACM 第 41 届国际软件工程会议:软件工程实践 (ICSE-SEIP), 291-300. DOI: 10.1109/ICSE-SEIP.2019.00042

  4. Arrieta, A. B., Díaz-Rodríguez, N., Del Ser, J., Bennetot, A., Tabik, S., Barbado, A., García, S., Gil-López, S., Molina, D., Benjamins, R., Chatila, R., & Herrera, F. (2020). 可解释人工智能 (XAI):概念、分类、机遇与挑战,迈向负责任的人工智能. 信息融合, 58, 82-115. DOI: 10.1016/j.inffus.2019.12.012

  5. 国家标准与技术研究院. (2022). 人工智能风险管理框架 (AI RMF 1.0). 美国商务部. doi.org/10.6028/NIST.AI.100-1

  6. “Zillow iBuying: What Happened”,Robust Intelligence,观点 2021 年 11 月 16 日,www.robustintelligence.com/blog-posts/zillows-ibuying-failures

|

现在解锁这本书的独家优惠

扫描此二维码或访问 packtpub.com/unlock,然后通过书名搜索此书. | |

| 注意:在开始之前准备好您的购买发票.* |

| --- |

第五章:人工智能管道的需求和架构

机器学习模型开发在其实验和迭代性质上与传统软件工程有根本的不同。虽然软件工程师通常基于明确的规格设计系统,但数据科学家必须应对数据特性、特征相关性和模型行为固有的不确定性。这要求在模型创建、优化和验证方面采取系统且灵活的方法,以适应人工智能开发的独特挑战。

本章探讨了“人工智能管道系统”——目前企业人工智能中占主导地位的架构,它由利用互联人工智能模型的渐进处理阶段组成。这些管道构成了现代人工智能实施的骨架,使组织能够系统地开发、部署和维护大规模的人工智能能力。

人工智能系统很少作为独立模块运行;相反,它们通常嵌入到更大的软件生态系统中,并遵循结构化的开发和部署工作流程。本章详细探讨了开发和生产管道的架构和需求,特别强调了将模型从实验环境过渡到稳健的生产系统的关键过程[1][2]。

本章将提供以下方面的全面指导:

  • 创建有效的开发和生产管道所需的主要方面

  • 如何利用模块化架构来提高人工智能系统性能并满足关键的非功能性需求

  • 为人工智能系统专门设计的必要架构策略和模式

开发管道

架构源于需求,形成了一种递归模式,其中从初始需求中合成的组件本身又成为后续架构综合的需求。这种递归持续进行,直到系统构建者不能再有意义地影响相关的子组件,此时实现细节将优先考虑。

一个稳健的开发环境是测试和验证管道在生产发布之前的基础。全面的架构模型确定了系统中的主要组件、外部接口、用户参与点和数据需求。多个架构视图捕捉流程流和操作线程,展示了人工智能系统将如何系统地满足明确和隐含的需求[3]。

模块化设计显著提高了系统的灵活性和可维护性,尤其是在复杂的 AI 流程中。AI 流程中的每个阶段都应该是独立可验证的、可配置的,并且可扩展以适应不断变化的需求和技术进步。流程需要版本控制,并对其数据来源有清晰的追溯性。架构必须捕捉功能组件和非功能需求,如可扩展性、可靠性和可观察性,从而创建实施的整体蓝图。

图片

图 5.1:高级 AI 流程概述

在图 5.1 中,我们看到了 AI 系统中开发和生产流程之间的关系。左侧描述了模型构建和实验发生的开发流程,而右侧显示了操作模型部署和推理的生产流程。这种视觉表示突出了这些环境的并行性质及其关键互连。

开发流程由几个关键组件协同工作组成:

  • 开发数据存储作为训练和测试数据的存储库

  • 数据清洗过程确保数据质量和一致性

  • 模型构建测试环境提供模型训练和评估的基础设施

  • 模型注册表允许对模型进行版本控制和跟踪,包括模型中使用的参数

  • 开发结果存储库存储开发成果以供分析和比较

生产流程采用这种结构,并设计了用于操作使用的组件:

  • 生产数据存储维护操作数据

  • 类似的数据清洗过程确保生产数据质量

  • 模型执行提供推理发生的基础设施

  • 生产模型存储安全地存放已部署的模型

  • 操作存储组件实现全面的监控和管理

图 5.1 中的中心箭头展示了经过彻底验证后,模型如何从开发环境过渡到生产环境。两个流程共享相似的数据结构和处理方法(由顶部连接表示),以确保生产部署条件与开发环境非常相似,从而降低模型上线时出现意外行为的风险。

这些架构视图直接输入到系统分析活动中,确定哪些部分需要详细建模以驱动设计决策,并提供对预期性能指标的初步评估。它们还有助于识别所有 AI 系统组件的具体指标和数据需求,确保对功能和非功能需求进行全面覆盖。

在明确指定的架构到位后,可以有效地分配实施工作。团队通常沿着系统架构边界组织,使用配置控制的图表来传达整体愿景,促进跨团队沟通,并在项目演变过程中高效地引入新团队成员。

人工智能系统需要全面的需求工程,因为人工智能组件从不孤立存在,而是在复杂的技术生态系统中运行。需求必须全面指定数据工程方面、计算硬件需求以及更广泛系统如何摄取和执行人工智能生成的决策。

数据存储需求

数据存储作为管道的基础和事实来源,通常通过最小化处理来维护数据完整性。在设计这个关键组件时,必须解决几个关键考虑因素。

数据量和速度

理解预期处理的数据总量对于适当的基础设施规划至关重要。这包括对数据随时间增长和峰值处理需求的预测。同样,数据存储的数据速度要求必须明确指定,包括数据流模式和在整个操作周期中的预期变化。

数据格式和处理方法

需求必须解决结构化和非结构化数据类型,包括标准化和兼容性的规范。处理类型决策——无论是批量处理、流处理还是混合方法——对架构有重大影响,应由系统目标和性能要求驱动。

及时性和技术选择

处理速度要求和可接受的延迟必须根据业务需求明确定义。数据存储技术选择——无论是关系数据库、对象存储、图数据库还是专门的 AI 数据存储——应受系统目标和性能要求指导,而不是技术偏好。

非功能性需求和治理

存储冗余、复制策略和备份频率必须根据数据重要性和恢复目标建立。安全协议、治理框架和合规要求在降低风险和确保合规性方面发挥着关键作用,尤其是在敏感数据方面。

支持操作和专用存储

状态信息、监控能力和警报系统必须集成到数据架构中,以实现主动管理。现代人工智能系统越来越多地利用专用数据存储,包括用于相似性搜索的向量数据库、用于一致转换的特征存储以及结合数据湖灵活性和数据仓库结构的湖仓。

| 存储技术 | 领域考虑因素 | 合规性 |

| --- | --- | --- |

| 关系型 | 高一致性性能结构化数据 | 数据来源最新的记录 |

| 对象 | 非结构化数据存储速度最小索引灵活的数据架构 | 维护完整数据量的记录 |

| 关键值 | 灵活的架构需要快速查询搜索 | 快速恢复数据完整数据量的记录 |

| 图 | 查找速度简单数据模型可以模拟领域 | 数据来源快速数据摘要 |

| 向量 | 自然语言处理大型语言模型 | 数据关联训练数据集的证明 |

表 5.1:数据存储技术比较

算法开发组件

如前所述,构建人工智能系统的核心是构建预期能够做出决策的组件。将要做出的决策在很大程度上或几乎完全依赖于进入系统的数据。一个决策的好坏和有效性取决于所使用的数据。接下来的几节将描述可以用来确保最高质量的数据进入系统的关键任务。这些任务可能既繁琐又具有挑战性,因为对于初始系统开发,需要人工参与。尽管如此,对于进一步的系统开发,这些任务可以通过自动化的方式进行,包括检查和警报。

数据质量检查

理解数据质量对于有效地训练、调整和维护人工智能管道至关重要。质量检查应严格配置控制并经过测试,明确指定最低要求。这包括对数据完整性的全面评估,以确保记录具有所有必需字段的值,损坏检测以识别格式错误的数据,时间跨度规律性验证以保持时间一致性,格式验证以确认预期的数据结构,以及范围检查以验证字段值保持在预期的边界内。

现代质量控制方法还结合了自动验证,以检测数据漂移和异常,以及复杂的偏差测试方法,以主动识别和减轻潜在偏差,防止其影响模型性能。这些机制构成了在整个人工智能管道生命周期中维护数据完整性的基本基础。

数据转换

管道数据很少以机器学习模型可以直接使用的格式到达。数据转换使数据标准化并准备用于推理,其实现必须彻底理解、精确制定和严格检查。常见的转换包括在不同地理数据格式之间转换,标准化物理单位以实现一致表示,应用降维技术以提高模型效率,以及实施特征存储以确保开发和生产环境中的转换一致性。

高级转换方法结合了表示学习来自动发现有用的数据表示和数据增强策略以人工扩展训练数据集。这些转换必须在管道架构中被视为一等公民,并具有适当的版本控制和监控以确保一致性。

数据摘要

数据摘要具有双重目的:验证模型一致性并支持持续管道监控。有效的摘要包括全面的数据集统计(均值、中位数、变异度指标)、数据字段关联分析以识别关系、分布拟合以理解潜在模式,以及通过箱线图和交互式仪表板等技术进行可视化表示。

现代方法结合了分布中的异常检测以识别潜在的数据质量问题,以及相关性分析以理解特征关系。这些摘要提供了对影响模型性能的数据特性的关键可见性,应在管道生命周期中保持。

模型构建、调整和验证

模型构建应被视为一个持续迭代的流程,而不是一个终端任务,因为 AI 管道必须持续适应不断变化的数据模式和业务需求。管道架构必须支持可重复的训练、系统的调整和严格的评估,以确保随着时间的推移保持一致的性能。

图片

图 5.2:模型构建、调整和验证工作流程

图 5.2中,我们可以看到从初始数据采样到部署的模型开发的迭代性质。工作流程从数据采样以创建代表性子集开始,然后是数据质量验证、初始模型训练和根据既定指标进行性能评估。工作流程随后达到一个关键决策点:根据预定义的标准,性能是否可接受?如果不可以,则过程会回环进行细化,通过特征工程优化模型输入,以及通过超参数调整来调整模型配置。

一旦性能达到可接受的阈值,模型将通过验证未见数据来测试泛化能力,由未参与开发的人员进行独立验证以减少偏差,并通过正式的模型提交程序来为部署版本化最终模型。在整个过程中,维护全面的文档元数据,包括模型架构细节、训练数据来源、超参数设置和性能指标。

几个关键的基础设施考虑因素支持此工作流程:

配置控制

成功的 AI 管道在其生命周期中需要纪律性的跟踪,包括数据集的时间阶段和时标,全面的元数据参考和活动日志,以及用于版本控制的强大模型注册表。现代实现利用 Git、MLflow 或 DVC 等工具的实验跟踪平台,以保持开发过程的完整可追溯性。

机器学习性能

有效的管道需要明确理解预期的输出和处理时间,全面的性能指标(混淆矩阵、准确率、AUC),用于比较结果与预期的可视化工具,以及考虑公平性和可解释性的多指标评估方法。对模型漂移的持续监控对于保持长期性能至关重要。

计算基础设施

管道设计必须包括在目标计算基础设施上的彻底测试,以确保满足性能要求,基准测试存储和网络影响以识别潜在的瓶颈,以及在适当的地方实施量化剪枝等模型优化技术。现代实现通常结合硬件加速和推理优化以最大化效率。

规模处理

企业级管道需要用于在生产规模上测试模型的基础设施,与生产级流量模式相结合的全面负载测试,阴影部署能力以在新模型与现有系统并行运行,以及在不利条件下验证系统弹性的混沌工程方法。

模型调整和验证

模型通常需要系统性的微调来满足超出初始性能指标的全端系统需求。全面的验证应包括第二次检查,将测试数据与生产样本进行比较以验证一致性,由未参与开发的人员进行的独立审查以减少偏差,结果可视化以识别潜在的异常值,以及接口检查以确保与下游系统的兼容性。

高级方法结合了超参数优化技术以最大化性能,对抗性测试方法以识别潜在弱点,红队过程,以及可解释人工智能技术以增强模型透明度。这些验证过程确保模型在部署到生产环境时将可靠地执行。

代码提交和 DevOps

最后的开发步骤涉及将验证过的模型集成到预生产基线中。此代码将用于全面测试和预演,使用代表性的数据样本和生产数据来识别潜在的集成影响,在全面部署之前。

现代处理这一阶段的方案包括专门为机器学习工作流程设计的自动化 CI/CD 流水线,用于在不同环境中一致部署的容器化技术,用于可重复性的基础设施即代码实践,用于控制功能推出的功能标志,以及用于最小化过渡期间中断的蓝绿部署策略。

生产管道

生产管道代表了广泛开发工作和利益相关者期望的最终成果——在规划和开发期间必须持续履行承诺的运营“厨房”。本节提供了关于生产管道架构和技术要求的详细指导。

数据存储

许多管道问题可以追溯到对数据存储的要求或实现决策的误解。工程努力应从仔细考虑预期的输出特征开始:速度要求、质量阈值、时间约束和预期的接收者。

数据存储技术考虑因素包括具有不同优势和局限性的几个选项。

关系型数据存储在稳定的数据模型和最小的可扩展性担忧方面表现出色,提供强大的一致性保证和事务支持。对象存储处理不适合标准模式的多样化组件,允许轻松修改属性和快速水平扩展,但以牺牲一些一致性保证为代价。文档存储结合了对象存储的灵活性和模式结构,为半结构化数据提供了一个中间地带。图存储利用数学图结构来表示数据关系,为以图为中心的分析和关系查询提供卓越的延迟性能。

日志存储以最小处理将数据作为不可变的事件流处理,将分析负担转移到下游管道组件,同时提供强大的可审计性。现代专门存储,如向量数据库、特征存储和时间序列数据库,为特定的 AI 工作负载提供专用功能,通常为其目标用例带来显著的性能改进。

数据操作

数据存储必须通过几个关键操作能力来持续满足管道性能要求。

对数据速率和操作的全面基准测试确保基础设施可以在各种条件下处理预期的负载。灵活的架构和强大的报告功能使系统能够适应不断变化的需求,同时保持可见性。数据质量监控系统主动识别潜在问题,在它们影响下游流程之前。自动和半自动模式演变功能允许系统在不中断的情况下适应不断变化的数据结构。如果使用自动模式更改,则必须在架构级别有诸如警报、存档和版本控制等安全措施,以防止数据丢失。数据血缘跟踪提供了对数据如何在复杂的管道系统中流动的完整可见性。

数据清洗

此阶段精心准备数据以确保在生产环境中正确执行模型。关键方面包括完整性检查以验证数据在传输过程中没有被损坏或不完整,格式检查以确保值与预期的编码和格式规范匹配,以及一致性检查,该检查实施基于领域驱动的语义验证以验证逻辑有效性。

数据清洗作为构建对管道输出信心的基本质量关卡,尽管它有固有的局限性——在实际中检查复杂数据流中所有潜在问题几乎是不可能的。精心设计的清洗过程侧重于基于领域知识和历史错误模式的高影响验证。

数据转换

在模型执行之前的最后预处理步骤在各个维度上对数据进行归一化,包括时间戳、地理参考、术语标准和数值范围。这些转换应该经过彻底的测试和验证,以防止细微错误传播到模型执行。

现代转换方法包括用于在环境之间保持一致性的特征存储、用于生成鲁棒表示的迁移学习技术、基于神经网络的转换用于复杂模式提取,以及用于发现最佳表示的自动特征工程。

模型执行

在生产环境中,模型执行应被视为一个精心管理的黑盒,在操作期间不进行直接更新。关键运营方面包括以下内容。

运营状态监控

生产管道需要对数据流、处理时间和硬件性能进行全面的指标收集,以保持可见性。此状态信息应通过多个互补渠道呈现:用于快速评估的视觉仪表板,用于趋势分析的详细图表和图形,关键性能指标,用于故障排除的日志输出摘要,以及需要立即关注的性能问题的实时警报。

图片

图 5.3:生产推理执行金丝雀检查

一个黑色背景下的放大镜 AI 生成的内容可能不正确。快速提示:需要查看此图像的高分辨率版本?请在下一代 Packt Reader 中打开此书或在其 PDF/ePub 副本中查看。

下一代 Packt Reader以及此书的免费 PDF/ePub 副本包含在您的购买中。扫描二维码或访问packtpub.com/unlock,然后使用搜索栏通过名称查找此书。仔细检查显示的版本,以确保您获得正确的版本。

图 5.3中,我们看到如何在生产管道中实施金丝雀测试以监控模型健康。该图说明了从数据存储通过模型执行到顶部行中的结果存储的标准生产管道流程,底部行显示了金丝雀测试基础设施。该基础设施包括精心挑选的金丝雀记录,包含已知输入和预期输出,预期输出检查组件将实际模型输出与预期结果进行比较,以及当偏差超过阈值值时触发通知的监控警报。

这些金丝雀数据提供了一连串的验证,具有已知的输入和预期的输出,以验证持续模型的健康状况。与预期结果偏差触发警报,表明可能存在需要调查的模型漂移或管道问题。这个早期预警系统通过在问题对业务运营产生重大影响之前识别问题,有助于在生产环境中保持模型可靠性。

实施这些金丝雀检查对于检测模型随时间发生的微妙漂移至关重要,可以识别影响模型性能的基础设施问题,建立对持续模型操作的利益相关者信心,并在不影响正常操作的情况下提供生产环境中受控测试的机制。

模型维护

持续监控过程确定何时根据数据集的变化、性能下降或业务需求的变化需要重新部署模型。这些过程应在模型稳定性的需要与纳入新数据和改进的好处之间取得平衡。

结果和最终用户存储

这些组件收集模型输出和相关元数据,作为下游系统和人类用户的接口。它们应提供强大的查询机制以实现灵活的数据访问,通过标准化 API 实现机器到机器的数据摄取,支持全面的可视化功能,维护输入和输出之间的可追溯性,为非技术用户提供适当的解释,并与商业智能平台无缝集成。

管道操作存储

此组件专注于管道生态系统的整体控制和维护,提供几个关键功能。

人工操作输入允许在必要时进行授权干预,由一个强大的警报框架支持,该框架根据严重性和影响优先排序通知。操作数据收集将管道遥测数据集中化,以便进行分析,管道日志可视化工具将复杂数据转换为可操作的见解。现代实现包括复杂的故障响应系统来管理中断,以及全面的合规性文档以满足监管要求。

图 5.4:管道操作存储可观察性

图 5.4中,我们看到了 AI 管道的可观察性架构的示意图。图中显示了顶部行中的主要管道组件(数据存储库数据清洗数据转换模型执行结果存储),每个组件都向中央的管道操作存储库发送遥测数据。这个集中式存储库收集日志、指标、警报和其他运营数据,输入到右侧显示的全面的可观察性堆栈

这种架构使得在管道组件之间进行复杂的性能相关性分析成为可能,允许操作员识别处理瓶颈,跟踪数据流通过所有系统组件,实时监控系统健康,具有全面可见性的故障排除,并分析历史性能趋势以指导优化工作。

一个强大的操作存储作为 AI 管道的神经系统,对于出现问题时进行反应性故障排除以及预防性性能优化以防止问题影响操作至关重要。

持续开发/集成

DevOps 方法允许在不干扰生产操作的情况下快速进行管道原型设计和测试。在 AI 环境中,“蓝金”部署概念特别有效:

  1. 一个管道在生产中运行,而另一个并行构建。

  2. 准备就绪后,测试管道连接到生产数据进行比较评估。

  3. 如果性能令人满意,它将无缝地成为新的生产管道。

图 5.5:AI 管道的 CI/CD – “蓝金”部署

图 5.5中,我们看到了 AI 管道的“蓝金”部署策略的示意图。图中显示了当前的生产管道()正在为实时用户提供服务,而带有新模型或更新的测试/预演管道()正在进行验证测试。全面的验证检查比较了两个环境之间的指标、A/B 测试结果和其他性能指标。

工作流程遵循特定的流程,其中代码更改触发持续集成/持续部署(CI/CD)管道,"黄金"环境执行新的模型版本,验证检查比较蓝金实现之间的性能,如果成功,黄金环境将过渡到生产状态,而先前的生产管道仍然可用作为紧急回滚的备用方案。

此方法确保在不会干扰生产操作的情况下安全测试新模型,在相同条件下直接比较当前和新的实现,当质量阈值得到验证时,受控过渡到生产状态,如果部署后发现问题,将提供简单的回滚机制。

现代机器学习操作(MLOps)实践通过实验跟踪来扩展这些能力,以维护开发历史,模型注册表用于版本控制,特征存储用于转换一致性,自动化测试框架用于质量保证,以及持续训练管道,该管道自动纳入新数据。

架构模式和策略

建筑学不仅超越了功能描述,还解决了决定现实世界系统成功的关键非功能性需求。软件策略(解决特定问题的第一级方法)和模式(解决复杂问题的策略组合)是复杂系统的基础构建块。

几种特定的架构模式专门支持人工智能管道的开发:

  • 管道和过滤器架构实现了顺序和并行处理,其中每个阶段转换数据并将其传递到下游,从而实现关注点的清晰分离并促进独立扩展

  • 分布式存储方法将数据分散到多个系统中,以改善性能、弹性和可扩展性,超越单节点限制

  • 黑板架构创建了一个共享的中间件存储库,具有基于拉的组件,使得灵活的处理工作流程和简化的组件交互成为可能

  • 服务导向将功能封装到松散耦合的服务中,通过定义良好的 API 进行通信,提高可维护性并使组件的独立演进成为可能

在这些模式中采用的关键策略包括以下内容:

  • Ping-echo 机制使组件能够查询其他组件以获取响应,验证连接性和基本功能

  • 心跳监控建立定期的信号,表明持续运行和管道健康,提供组件故障的早期预警

  • N 方投票实现共识机制,其中多个实体对行动进行投票,在不确定的情境中提高决策可靠性

  • 金丝雀测试通过将结果与已知良好参考进行比较,系统性地在全面部署之前识别模型漂移或错误

  • 版本化的模型和数据集使得在整个系统生命周期中实现全面的回滚能力和可追溯性

非功能性需求

一个关键概念是,软件系统的架构考虑因素是由非功能性需求驱动的。存在数十个非功能性需求。架构师的角色是理解客户的需求、业务案例和技术维度,以制定给定系统的关键非功能性需求。接下来讨论的非功能性需求是通常在系统中出现的重大需求。你不应该将这些视为唯一的需求,或者认为所有这些都必须使用,或者认为其他需求不能被识别。

可靠性

AI 管道必须通过多种机制确保系统在需要时可用:错误隔离以防止级联故障,对瞬时故障具有鲁棒性的消息基础设施,冗余和回滚机制以实现快速恢复,混沌工程实践以验证弹性,以及自动事件响应以最小化人为干预需求。

可维护性

支持持续模型开发和更新需要谨慎的架构决策:技术最小化以降低复杂性,组件之间定义明确的接口,微服务架构以实现独立演进,以及基础设施即代码实践以确保跨环境的可重复性。

可用性

有效的管道在组件之间提供一致的配置方法,具有集中信息访问的强大日志记录,所有工件都清晰的版本控制,用于监控和管理的直观图形界面,以及允许数据科学家在受控框架内独立操作的自我服务平台。

摘要

构建 AI 管道需要在数据管理、模型开发、基础设施设计和软件集成实践之间进行谨慎的协调。综合管道架构包括并行开发管道(用于模型创建和测试)和生产管道(用于部署和交付价值),通过定义明确的过渡过程连接。

成功实施的关键考虑因素包括以数据为中心的设计,专注于具有特定工作负载适当特性的存储,模块化架构,具有定义明确且可独立验证的组件,通过全面的数据检查和转换进行的质量保证,对所有管道组件的监控和可观察性,DevOps 集成以实现快速迭代和受控部署,非功能性需求驱动架构决策超越基本功能,以及嵌入在管道环境中的治理和合规框架。

一个成功的管道必须满足 AI 模型训练和推理的功能性需求,以及确定实际操作成功的可扩展性、可观察性和治理等非功能性需求。现代 AI 系统越来越多地采用 MLOps 实践,在创新和灵活性以及生产稳定性之间取得平衡,为持续发展创造可持续的框架。

架构最终必须支持技术卓越、业务价值交付、用户采用和负责任的 AI 实践——这是一个多方面的挑战,需要既具备技术专长又具有战略眼光才能成功应对。随着系统的大部分概念设计已经就绪,我们现在将转向讨论实现的关键步骤。在下一章中,我们将讨论设计、集成和测试。

练习

  1. 列出 AI 开发管道的三个关键组件,并描述它们在模型生命周期中的相应角色。

  2. 描述 AI 系统中功能性和非功能性要求之间的基本区别,并提供每个类别的示例。

  3. 解释配置控制如何有助于在整个 AI 管道中提高模型可靠性和可重复性。

  4. 比较批处理和流式架构在管道需求、优点和局限性方面的基本差异。

  5. 确定对受监管行业中的 AI 组件最关键的非功能性需求,并解释其重要性。

  6. 解释在 AI 系统中使用如管道-过滤器等架构模式的好处,并提供一个具体的实现示例。

  7. 在 AI 环境中,为不同的数据存储技术制定全面的函数性和非函数性需求。

  8. 研究并总结优秀需求规格说明的属性,特别是针对机器学习系统。

参考文献

  1. Kreuzberger, D., Kühl, N., & Hirschl, S. (2022). 机器学习操作(MLOps):概述、定义和架构。IEEE Access,10,66631-66648。

  2. Mäkinen, S., Skogström, H., Laaksonen, E., & Mikkonen, T. (2021). 谁需要 MLOps:数据科学家寻求实现的目标以及 MLOps 如何帮助?IEEE/ACM 首届 AI 工程研讨会 - AI 的软件工程,109-112。

  3. Kästner, C., & Kang, E. (2020). 为 AI 赋能系统教授软件工程。ACM/IEEE 第 42 届国际软件工程会议:软件工程教育与实践,45-48。

|

现在即可解锁此书的独家优惠

扫描此二维码或访问packtpub.com/unlock,然后通过书名搜索此书。 | 解锁-01解锁 1 |

| 注意:在开始之前,请准备好您的购买发票。* |

| --- |

第六章:设计、集成和测试

我们是如何将莫扎特和贝多芬的作品称为杰作的?这是否仅仅是由阅读乐谱的人决定的?当然不是——当我们真正听到音乐时,我们才认可这些作曲家的才华。同样,虽然一个建筑可能构思得很好,但在实施之前它仅仅是一个纸面上的艺术品。

本章提供了关于架构如何支持人工智能系统开发的各个阶段(设计、集成和测试)的实际见解。我们专注于生产管道,因为开发管道通常是特定领域的,并不适用于生产环境。

在本章中,我们将讨论以下内容:

  • 设计基础

  • 系统模式和状态识别

  • 逻辑组件定义

  • 系统策略和模式

  • 集成方法

  • 测试

设计基础

设计是在特定配置下定义组件、它们之间的关系和流程,这些配置与底层架构相一致。让我们从主要工件(包括需求、用例、模式、策略和战术)中探索最相关的设计。

需求

构建生产管道需要定义管道必须满足的要求。存在几个需求类别,共同确保系统满足生产级操作所需的功能性和非功能性方面。

性能需求

性能需求集中在事务、量、转换和处理执行时间上。这些指标为可接受的性能设定了明确的阈值,并为最佳操作设定了追求目标:

| 指标 | 描述 | 阈值 | 目标 |

| --- | --- | --- | --- |

| AP-1 | 数据清洗的总时间 | 30 秒/GB | 10 秒/GB |

| AP-2 | 数据转换的总时间 | 30 秒/GB | 10 秒/GB |

| AP-3 | 执行模型的时间 | 10 秒 | 5 秒 |

| AP-4 | 写入结果存储的时间 | 5 秒/GB | 3 秒/GB |

| AP-5 | 写入最终用户存储的时间 | 5 秒/GB | 3 秒/GB |

| AP-6 | 数据存储事务 | 10,000 事件/秒 | 20,000 事件/秒 |

| AP-7 | 机器学习模型准确度 | 0.88 | 0.94 |

| AP-8 | 机器学习 曲线下面积AUC) | 0.9 | 0.95 |

| AP-9 | 更新管道操作的时间 | 1 秒 | 0.5 秒 |

| AP-10 | 重配置到安全配置的时间 | 1 秒 | 0.5 秒 |

| AP-11 | 模型在人口统计学群体间的公平性 | 90% 平等性 | 95% 平等性 |

| AP-12 | 模型可解释性得分 | 0.7 | 0.8 |

| AP-13 | 模型对输入扰动的鲁棒性 | ±10% 准确度变化 | ±5% 准确度变化 |

非功能性需求

非功能性需求关注管道的持续运行能力。这些需求确保系统在其整个生命周期中保持弹性、响应性和可靠性:

| 指标 | 描述 | 阈值 | 目标 |

| --- | --- | --- | --- |

| NF-1 | 可用性 - 运行时间 | > 99.9% | > 99.99% |

| NF-2 | 错误恢复时间 | < 1 分钟 | < 30 秒 |

| NF-3 | 没有单点故障 | N/A | N/A |

| NF-4 | 更新管道的时间 | < 3 分钟 | < 1 分钟 |

| NF-5 | 检测故障的时间 | < .5 秒 | < .1 秒 |

| NF-6 | 部署安全补丁 | < 600 秒 | < 180 秒 |

| NF-7 | 报告管道健康更新 | < 10 秒 | < 5 秒 |

| NF-8 | 模型漂移检测延迟 | < 1 小时 | < 10 分钟 |

| NF-9 | 特征管道隔离 | N/A | N/A |

安全要求

安全考虑必须包括模型安全。现代人工智能系统面临超越传统软件的独特安全挑战,包括模型提取攻击和对抗性输入:

| 度量 | 描述 | 阈值 | 目标 |

| --- | --- | --- | --- |

| SEC-1 | 管道应使用公钥基础设施进行外部接口 | N/A | N/A |

| SEC-2 | 管道应记录所有用户在管道中执行的操作的时间、日期和执行情况 | N/A | N/A |

| SEC-3 | 所有硬件都应能够在不干扰管道操作的情况下更新安全补丁 | N/A | N/A |

| SEC-4 | 管道应保护模型免受对抗性攻击 | N/A | N/A |

| SEC-5 | 管道应实施数据访问控制以防止未经授权的数据访问 | N/A | N/A |

| SEC-6 | 管道应监控模型提取攻击 | N/A | N/A |

合规要求

管道操作通常自动化流程和决策,需要特定的合规措施。随着人工智能系统越来越多地做出或影响高风险决策,合规性成为关键的设计考虑因素:

| 度量 | 描述 | 阈值 | 目标 |

| --- | --- | --- | --- |

| CP-1 | 管道应仅允许授权用户查看客户的个人信息 | N/A | N/A |

| CP-2 | 所有财务交易都应存档 | N/A | N/A |

| CP-3 | 所有财务识别信息在静止状态下都应加密 | N/A | N/A |

| CP-4 | 所有财务识别信息在使用时都应加密 | N/A | N/A |

| CP-5 | 所有模型决策都应保持完整的审计跟踪 | N/A | N/A |

| CP-6 | 所有模型版本都应在模型注册表中记录,并带有血缘关系 | N/A | N/A |

| CP-7 | 管道应支持模型治理审查工作流程 | N/A | N/A |

行为者和用例

在检查高级用例时,生产管道的复杂性变得明显。人工智能管道系统涉及多个利益相关者之间的交互,每个利益相关者在整个生态系统中都扮演着特定的角色和责任。

图 6.1:人工智能管道系统:用例图

图 6.1展示了 AI 管道系统中关键角色和主要用例之间的交互。该图显示了四个主要角色:主要处理数据摄取和模型再训练的数据分析师;负责监控、报告生成和安全补丁的管道开发团队;专注于安全补丁管理的安全官;以及消费模型预测的用户。相互关联的用例展示了这些角色如何跨越系统功能边界进行协作。

此用例图作为理解系统范围和角色责任的基础。每个椭圆形代表系统所需的一个独立功能部分,而连接线表示哪些角色与每个功能进行交互。对于系统架构师来说,这种可视化有助于建立清晰的边界并识别可能需要组件进行通信或共享资源的潜在区域。

在 AI 管道系统中确定的关键角色如下:

  1. 数据分析师:负责数据准备、特征工程和模型验证

  2. 输出用户:模型预测和洞察的消费者

  3. 管道开发团队:构建和维护管道基础设施的工程师

  4. 运维团队:确保系统日常可靠性的专业人士

  5. 管道开发团队消费者:向开发团队提供需求的利益相关者

  6. 站点可靠性工程师:维护系统稳定性和性能的专家

  7. 模型验证者:验证模型准确性和公平性的专家

  8. 安全官:负责保护系统资产和数据的专业人士

  9. 合规官:确保遵守监管要求的专家

一个全面的用例模板应包括上下文信息以指导实施和测试。该模板通常包括用例标识符、使用行为动词的描述性标题、详细上下文、主要角色识别、前提条件和后续条件、主要成功场景、潜在扩展、使用频率估计、跨团队的所有权分配以及相对优先级以指导实施顺序。

系统模式

设计过程必须捕捉反映 AI 系统可能占据的各种操作状态的系统模式。现代 AI 系统需要复杂的状态管理来处理不同操作模式之间的转换。

图 6.2:系统模式状态图

放大镜在黑色背景上,AI 生成的可能内容可能不正确。快速提示:需要查看此图像的高分辨率版本?请使用下一代 Packt Reader 打开此书或在其 PDF/ePub 副本中查看。

下一代 Packt Reader随书附赠下一代 Packt Reader以及本书的免费 PDF/ePub 副本。扫描二维码或访问packtpub.com/unlock,然后使用搜索栏通过名称查找此书。请仔细检查显示的版本,以确保您获得正确的版本。

解锁 1

图 6.2 综合展示了人工智能管道在不同操作状态之间的转换过程。中心的执行模式(以绿色显示)代表正常操作,各种转换路径连接到专门的操作模式。蓝色状态(监控学习影子)代表系统在保持服务的同时执行额外功能的操作变体。黄色更新状态表示系统正在进行维护或修改,而红色降级状态代表功能受损的错误条件。橙色配置状态通常在从降级状态手动干预后出现。

此状态图在设计过程中具有多重作用。首先,它帮助工程师理解在系统实现中必须明确处理的哪些转换。其次,它建立了从错误状态恢复到正常操作的道路。第三,它为操作团队提供了一个当系统行为偏离预期时的故障排除心智模型。

现代人工智能系统通常实现以下操作模式:

  • 执行模式是系统的基本操作状态,其中系统处理传入的请求并使用部署的模型生成预测或洞察。这代表了系统的正常、稳态操作。

  • 监控模式专注于观察系统行为、模型性能和数据质量,而不必做出改变。此模式使持续评估管道的健康和有效性成为可能。

  • 学习模式在模型使用新数据更新或进行超参数调整时激活。在此状态下,系统可能会为训练过程分配额外资源,同时保持推理能力。

  • 影子模式允许新模型在生产模型旁边运行,而不会影响用户界面输出。这允许在不会影响生产的情况下,比较不同模型在真实世界条件下的性能。

  • 降级模式代表系统继续运行但功能或性能降低的状态。这可能在组件故障或资源限制期间发生,需要优雅降级策略。

  • 更新模式发生在系统组件被修改、替换或增强时。在此状态下谨慎管理对于在升级期间最小化服务中断至关重要。

  • 配置模式代表系统设置或重新配置,通常需要专门的访问和验证程序来确保更改不会损害系统完整性和安全性。

我们现在将转向逻辑建模的开发,我们试图直观地捕捉主要系统组件及其相关关系。

块定义图

以管道架构作为起点,我们定义了开发管道的关键组件。每个组件都解决特定的功能需求,同时贡献于整体系统能力。

图片

图 6.3:管道系统的块定义图

数据清洗

数据清洗功能确保进入管道的数据质量最高。在生产人工智能系统中,数据质量直接影响模型性能和系统可靠性。现代实现包括自动化的数据验证管道,可以检测模式违规和格式不一致;具有识别异常值和潜在错误值的异常检测框架;以及应用预定义规则以标准化、归一化或纠正问题数据点的数据质量强制机制。

数据清洗组件通常包含反馈循环,随着时间的推移不断改进,从数据问题的模式中学习,以预测和解决常见问题。这些系统必须在彻底性和性能考虑之间取得平衡,因为过度清洗操作可能会在高吞吐量环境中造成瓶颈。

数据转换

数据转换功能处理传入的数据流,为人工智能模型做准备。这个关键的管道阶段将清洗后的数据转换为适合模型消费的格式。当代人工智能系统可能实施特征存储,以集中计算特征并允许多个模型之间特征的重用,自动化的特征工程能力可以从原始数据中发现和生成相关特征,以及将结构化或非结构化数据转换为适合深度学习模型的维度向量空间的服务。

有效的数据转换组件维护训练和推理管道之间的转换一致性,确保模型在两种情况下都遇到相同的特征分布。它们通常还提供版本控制功能,以跟踪转换逻辑随时间的变化,从而实现可重复性和便于调试。

机器学习模型

机器学习功能处理输入数据以生成推论、回归或其他数据摘要。作为人工智能管道的分析核心,该组件不仅包括模型本身,还包括支持其部署和操作的基础设施。生产级实现包括模型注册集成以进行版本控制和谱系跟踪,复杂的 A/B 测试框架,它允许对模型变体进行受控实验,以及可解释性组件,这些组件提供了对模型决策的见解。

成熟人工智能系统中的模型组件提供一致的接口,从而抽象出实现细节,允许在不影响下游消费者的情况下交换不同的算法或方法。它们还包含监控钩子,这些钩子公开性能指标和内部状态信息,以提供操作可见性。

管道操作

管道操作功能从其他管道部分收集状态并可视化管道操作。该组件作为人工智能管道的神经系统,提供可观察性和控制能力。现代 MLOps 平台通过自动警报系统扩展基本监控,这些系统可以检测异常或性能下降,自我修复能力可以在无需人工干预的情况下解决常见问题,以及复杂的可视化,帮助操作员理解复杂的系统行为。

管道操作组件必须在全面监控与性能影响考虑之间取得平衡,因为过度的仪器化可能会产生开销。它们通常实现可配置的日志级别和采样策略来管理这种权衡,同时在需要时仍能提供可操作的见解。

结果存储

结果存储提供模型结果和索引的中心点。该组件既是模型预测的输出目的地,也是一个历史存储库,它支持分析和审计功能。现代实现包括特征归因存储,它捕捉了哪些输入特征对特定预测影响最大,决策解释日志记录了推理链或置信水平,以及与商业智能平台的集成,使利益相关者能够从聚合的预测数据中提取见解。

有效的结果存储实现必须在性能考虑与保留策略之间取得平衡,通常实施分层存储策略,在高性能存储中维护最近的结果,同时在更具成本效益的解决方案中存档旧数据。它们还通常实现访问控制,限制敏感预测数据仅对授权用户开放,同时允许适当的分析访问。

系统策略和模式

软件策略和模式推动整体软件架构向一致的设计发展。策略是一个一般原则,而模式是这个原则的具体实现。它们共同提供设计指导,帮助架构师实现所需的质量属性。这里描述的概念得到了详细阐述,并来自 Bass 等人编写的优秀参考书[1]。

关键属性

两个特别重要的高级属性是可维护性和可用性,分别解决系统随时间演化和对故障的恢复能力。

维护策略和模式

可维护性包括系统适应变化、进行测试、适应新需求和支持配置管理的能力。这个质量属性分解为几个战术领域:

  1. 可修改性侧重于通过组件隔离、抽象和标准化接口等策略最小化变更成本。在人工智能系统中,这可能表现为明确分离的数据处理、模型训练和推理管道,它们可以独立发展。

  2. 可测试性通过内省点、测试工具和沙盒环境实现有效的验证。人工智能系统受益于专门的测试性功能,如模型版本控制、预测解释和数据集版本控制,这些功能支持可重复评估。

  3. 适应性允许系统在不进行重大重工作的前提下适应不断变化的环境或需求。技术包括插件架构、功能开关和配置驱动的行为。在人工智能环境中,这可能包括模型架构抽象层,允许在不修改管道的情况下进行算法交换。

  4. 可配置性提供了在不更改代码的情况下改变系统行为的机制。这通常涉及外部化配置、参数管理系统和动态重新配置能力。人工智能系统通常通过模型超参数管理和功能标志系统来扩展这些功能。

可用性策略和模式

可用性关注系统在需要时提供服务的功能,侧重于防止、检测和从故障中恢复。这个质量属性集中在以故障为中心的策略上:

  1. 故障检测涉及监控、心跳和异常处理,以确定组件何时偏离预期行为。人工智能系统通常实施针对概念漂移、数据质量问题以及模型性能退化的专门检测。

  2. 故障恢复包括冗余、回滚和优雅降级等策略,有助于系统在故障后恢复到操作状态。在人工智能管道中,这可能包括模型回退机制、预测缓存、人工干预和自动化重新训练工作流程。

  3. 故障预防侧重于通过输入验证、资源隔离和事务完整性控制来避免故障。AI 特定的预防策略包括对抗样本检测、鲁棒特征处理以及在部署前的模型验证。

AI 系统的基本模式

几种架构模式在 AI 系统设计中特别有价值,每个都针对特定的质量属性挑战。

图片

图 6.4:防波板模式可视化

图 6.4展示了 AI 系统中最关键的弹性模式之一。在左侧,我们看到一个没有防波板的系统,单个组件的故障(组件 B)会触发整个系统的级联故障,因为错误在没有检查的情况下传播。在右侧,相同的组件故障发生,但保持在它的隔离边界内,允许系统的其余部分继续正常工作。

从海军建筑中借鉴的防波板模式,其中船只被分成隔舱以防止单个破损导致整个船只沉没,涉及将系统组件分区以防止故障级联。这个可视化展示了组件周围的隔离边界如何限制故障的“爆炸半径”,从而实现优雅降级而不是完全的系统故障。现代实现可能包括容器化、带有断路器的服务边界或进程隔离技术。

对于处理关键工作负载的 AI 系统,在实现高可用性架构时,防波板变得至关重要。它们在模型服务基础设施中尤其有价值,在那里,有问题的模型不应影响其他模型或共享资源。

除了防波板之外,还有几个其他模式在 AI 系统中非常有价值:

  • 面向服务的模式通过将功能组织成具有良好定义接口的独立服务来启用可扩展性。这允许在不破坏现有组件的情况下添加新功能。在 AI 系统中,这可能表现为独立的功能服务、模型服务和解释服务,它们可以独立发展。

  • 平衡模式通过在多个资源之间分配负载来防止过载并确保性能的一致性。AI 系统通常会对计算密集型操作,如训练和推理,实施专门的平衡策略,并考虑到硬件加速的需求。

  • 失败重试模式通过适当的回退策略实现重试逻辑,以处理瞬态故障。这在分布式 AI 系统中特别有价值,因为网络分区或资源竞争可能导致暂时不可用。

  • 节流模式通过限制处理速率或并发操作来控制资源利用率。在 AI 环境中,这有助于管理如专用硬件上的推理或特征检索的数据库访问等昂贵的操作。

  • 电路模式(也称为断路器)监控故障条件,并在故障超过阈值时暂时禁用操作。这防止了在恢复期间系统过载,并在部分中断期间允许优雅降级。

  • N 方投票控制模式将决策权限分散到多个组件中,对于关键操作需要达成共识。在 AI 系统中,这可能表现为多个算法必须就预测达成一致性的集成模型,或者数据质量联合验证。

现代 AI 系统也发展了专门的模式来解决独特的挑战:

  • 特征存储模式集中计算和存储特征,在训练和部署过程中实现一致的特征定义,同时减少冗余计算。这种模式支持跨多个模型的特征重用,并提供了一个监控特征漂移的中心点。

  • 冠军-挑战者模式(也称为 A/B 测试)允许对新模型与当前生产模型进行受控评估。这种模式使得在管理风险的同时,能够基于数据驱动决策来更新模型。

  • 影子部署模式在新模型与生产模型并行运行,捕获用于比较的预测,而不实际用于决策。这提供了无操作风险的现实世界性能数据。

  • 漂移检测模式持续监控输入和输出的分布,以确定模型因条件变化而变得不那么有效的时间。这种模式使得在性能显著下降之前进行主动的模型更新成为可能。

  • 可解释性包装器模式通过添加关于预测理由的可解释信息来增强模型输出。这满足了透明度要求,同时允许使用复杂模型。

  • 金丝雀部署模式逐渐将越来越多的流量路由到新模型版本,通过有限的暴露于潜在问题来逐步验证。这有助于在模型性能显著下降之前进行主动的模型更新。

我们现在将讨论转向集成与测试,在这一过程中,系统的许多相互作用的组件被汇集在一起,以实现一个统一的系统。

集成与测试

尽管架构师在集成中不扮演主要角色——主要由实施工程师完成——集成问题不可避免地会出现。架构师被咨询以帮助进行设计变更,同时保持系统概念完整性。

集成类型

存在几种集成方法,每种方法在 AI 系统开发中都有其独特的优势和挑战。

图片

图 6.5:集成方法比较

图 6.5 提供了四种常见集成策略的视觉比较。自上而下的方法(蓝色)从主模块开始,逐步集成较低级别的组件,允许早期验证高级架构概念。自下而上的方法(绿色)从最小的组件开始,向上构建,确保在系统级集成开始之前有良好的测试基础。

并行方法(橙色)发展独立的集成流,最终在最终集成点合并,使团队能够分布和并行开发。最后,“大爆炸”方法(紫色)试图同时集成所有组件,这简化了规划,但一旦出现问题时,会引入显著的调试挑战。

每种方法都有其独特的权衡。自上而下的集成提供了对架构问题的早期可见性,但需要为不完整的组件创建复杂的存根或模拟。自下而上的集成建立在经过充分测试的组件之上,但会延迟系统级测试。并行集成使团队能够分布,但引入了协调挑战。大爆炸集成简化了规划,但一旦多个集成问题同时发生,会复杂化调试。

现代人工智能系统通常采用混合方法,结合多种策略的元素。例如,一个团队可能会为单个管道组件使用自下而上的集成,同时为独立的数据处理和模型服务管道应用并行方法。在许多开发环境中,持续集成实践在很大程度上取代了这些离散方法,自动化构建和测试管道在组件演变过程中持续集成组件。

集成 harness

集成 harness 作为生产管道的数字孪生,为组件测试和集成验证提供受控环境。有效的 harness 实现了几个关键功能,以支持人工智能系统的集成。

首先,它们提供模拟数据输入和组件交互的机制,允许开发者模拟各种场景而不影响生产系统。它们通过受控环境隔离模块性能,使得对 AI 组件至关重要的资源利用率和时间特性能够精确测量。

集成 harness 还测量数据存储和读写模式,在它们影响生产系统之前识别潜在的瓶颈或不效率。它们支持数据完整性测试,无需完整管道集成,允许数据驱动的验证独立于组件开发进行。

对于并行工作的团队,集成 harness 定义了存根接口,允许针对不完整的依赖进行开发。它们还在管道中提供特定的日志点,便于在集成活动期间进行调试和性能分析。

现代 AI 系统通过以下专门能力扩展了这些传统的工具概念,包括确保开发和生产一致性的容器化环境、模拟模型服务器(无需完整模型即可模拟推理行为)、生成具有已知特征的逼真测试数据的合成数据生成器、维护版本化工件的特征存储和模型注册库,以及允许并行比较替代实现的影子部署能力。

测试类型

需要的测试数量和类型取决于机器学习系统的关键性、复杂性和合规性要求。AI 系统需要超越传统软件验证的专门测试方法。

图片

图 6.6:测试范围图

图 6.6 展示了 AI 管道组件的全面测试覆盖矩阵。矩阵将系统层(从UI/用户界面基础设施)与测试类型(功能性能安全合规性公平性集成)相对应。每个单元格指示特定的测试类型是否适用于该系统层。

这种可视化突出了 AI 系统测试中的几个重要模式。首先,它表明所有系统层都需要多种测试类型——没有单一的测试方法足以满足任何组件。其次,它揭示了某些测试关注点(如公平性)主要适用于管道操作、模型处理和数据管理,但不适用于 UI/API 层或基础设施。第三,它强调集成测试跨越所有系统层,反映了 AI 系统的相互关联性。

测试范围图作为测试策略的规划工具,帮助团队确保系统层和品质属性的综合覆盖。它特别有助于识别测试覆盖的差距或可能需要专门测试方法的地方。

需求测试

需求测试验证系统实现了预期的关键功能。对于 AI 系统,这包括传统软件验证之外的几个专门领域。

模型准确性和性能指标验证确保系统使用适当的评估指标(如精确度、召回率、F1 分数或均方误差)满足指定的预测能力阈值。跨不同群体的公平性测试验证模型在不同人口统计群体中表现一致,避免差异影响或算法偏差。

健壮性测试检查系统对输入变化的抵抗能力,包括可能使模型混淆的对抗性示例或扰动。可解释性能力测试验证系统能否提供适当的透明度,关于其决策过程,尤其是对于高风险决策。

数据隐私保护测试确认在整个管道中敏感信息得到适当的保护,在需要时实施适当的访问控制和匿名化。道德考量测试评估系统是否符合定义的道德指南或原则,确保与组织价值观和社会期望保持一致。

用例和场景测试

用例和场景测试模拟系统在实际操作中的表现,验证端到端功能而不是孤立组件。对于 AI 系统,这包括反映其独特操作特性的专用场景。

模型性能测试在不同输入分布下考察系统如何处理各种数据配置文件,包括边缘情况和异常模式。自动重新训练工作流程验证确保模型更新过程正确运行,无需人工干预即可维持模型质量。

特征管道执行测试验证数据转换过程是否正确准备输入以供模型消费,并适当处理缺失值、异常值和分类编码。模型监控行为验证检查系统如何检测和响应漂移、性能下降或其他操作问题。

在负载下的优雅降级测试确保系统即使在请求量接近或超过容量限制时也能保持可接受的性能,必要时可能利用回退模型或缓存预测。

负载测试

负载测试在现实或压力条件下测试整个技术范围,在它们影响生产系统之前识别瓶颈和性能限制。对于 AI 管道,几个专门的负载测试场景尤其相关。

在并发请求下的推理延迟测试衡量了当多个用户或系统同时请求预测时,模型服务性能的变化。使用大数据集进行训练吞吐量测试评估系统处理训练数据的效率,识别潜在的优化以提升计算效率。

大规模特征计算测试考察数据转换过程如何处理大量或高速到来的数据。在线学习场景测试验证系统在同时处理传入数据和更新模型时的表现。批处理性能测试在非交互式环境中处理大量数据时的效率。

模型预测测试

模型预测测试验证模型输出与模型创建过程中的输出相匹配,确保开发和生产环境之间的一致性。这个测试类别包括针对 AI 系统的几个专门方法。

对抗性测试检查模型在故意设计成导致错误预测的输入下表现如何。概念漂移模拟测试了模型如何响应逐渐变化的数据分布,这些分布类似于它们可能在生产中随时间遇到的情况。

反事实测试评估模型预测与“如果...会怎样”场景的对比,在这些场景中,输入特征被系统地变化,以理解决策边界和模型敏感性。基于数据子群体的切片测试检查了数据特定段落的模型性能,识别特定用例或用户组的潜在弱点。

集成一致性检查验证了在集成架构中组合的多个模型能够产生适当协调的输出,且没有矛盾或不一致。

数据质量测试

数据质量测试确保管道对输入数据中的错误和损坏具有弹性。这个测试类别对于 AI 系统尤为重要,因为数据质量直接影响模型性能和系统可靠性。

自动化模式验证测试验证了传入数据符合预期的格式和类型约束。数据漂移检测测试验证了监控系统是否正确识别输入分布与训练数据显著变化的情况。缺失值处理测试检查了管道如何处理不完整的数据,确保优雅地处理而不会导致系统故障。

异常值处理测试验证了对可能不成比例地影响模型行为的极端值的适当处理。数据血缘跟踪测试确认系统维护有关数据来源和转换的适当元数据,支持可审计性和调试。

错误和故障恢复测试

错误和故障恢复测试确保系统在面对组件故障或意外条件时具有弹性。对于具有高可用性要求的 AI 系统,一些专门的测试方法相关。

模型回退机制测试验证了当主要模型失败或表现不佳时,系统可以切换到替代模型。特征管道隔离测试确认了单个模型在特征计算中的失败不会影响共享该管道的其他模型。模型注册表故障转移测试验证了如果主要注册表不可用,系统可以从替代来源检索模型。

电路断路器行为验证检查系统如何检测和响应持续故障条件,包括适当的服务禁用和恢复程序。组件故障下的优雅降级测试确保系统即使在某些组件不可用或表现不佳的情况下也能保持核心功能。

合规性测试

合规性测试确保在系统实施过程中不会忽视法律规范和需求。对于具有监管影响的人工智能系统,这一测试类别变得尤为重要。

模型治理工作流程验证确认审批和文档流程符合组织和管理要求。针对受保护群体的偏差测试检查模型行为是否存在基于敏感属性(如种族、性别或年龄)的潜在歧视。

高风险决策的可解释性测试验证系统可以为具有重大后果的决策提供足够的透明度。审计跟踪完整性测试确认系统捕获了所有必要的问责制和监管审查信息。

数据隐私和保护措施测试验证在整个管道中适当处理敏感信息。监管文档生成测试确认系统可以生成符合合规目的所需的报告和披露。

用户界面测试

用户界面测试关注操作员和利益相关者使用的界面在理解系统行为和结果方面的有效性。对于人工智能系统,需要验证几种专门的界面类型。

模型监控仪表板测试评估操作员是否可以通过可视化界面有效地理解模型健康和性能。可解释性可视化工具测试确认利益相关者可以通过特征重要性或决策逻辑的适当可视化表示来解释模型决策。

警报分级界面测试检查操作员识别、优先排序和响应系统警报或异常的有效性。模型比较工具测试验证允许并行评估不同模型或模型版本的接口。

数据质量监控显示测试确认数据问题已有效传达给相关利益相关者。模型行为调试工具测试验证开发人员和数据科学家可以有效地调试意外的模型输出或性能问题。

持续开发和集成

持续集成对于开发健壮的机器学习管道操作至关重要。现代人工智能系统通过解决其独特的开发特性,扩展了传统的 CI/CD 实践。

自动化模型验证管道确保模型在部署前满足质量阈值,包括准确性、公平性和鲁棒性检查。特征验证测试验证数据转换产生预期的分布和格式,保持训练和服务的连贯性。

数据质量门通过自动验证传入数据是否符合定义的质量标准,防止生产系统受到问题数据的污染。模型性能回归测试将新模型与现有基线进行比较,以确保在某些领域的改进不会以其他领域的降级为代价。

A/B 测试框架允许对模型变体进行受控实验,收集性能数据以指导部署决策。金丝雀部署自动化逐渐增加新模型的流量,同时监控问题,实现风险管理的推出。回滚机制在部署后出现意外问题时提供对先前版本的紧急恢复。

../../Downloads/CICD.jpg

图 6.7:持续集成和持续部署管道

摘要

本章通过设计、集成和测试,探讨了从架构概念到功能人工智能系统的关键旅程。就像一个音乐作品在表演之前保持理论状态一样,人工智能架构必须通过深思熟虑的设计决策、系统化的集成方法和全面的测试策略来实现其预期的价值。

设计基础部分阐述了需求、用例和系统模式如何构成将架构愿景转化为具体组件的基础。用例图(图 6.1)展示了不同利益相关者和系统功能之间的复杂交互,而系统模式状态图(图 6.2)映射了人工智能系统在其生命周期中必须导航的操作状态。

块定义图详细说明了人工智能管道的核心组件——数据清洗、数据转换、机器学习模型、管道操作和结果存储——每个组件都针对特定的功能需求,同时为系统的整体能力做出贡献。这些组件必须考虑到它们各自的责任以及它们之间的协作交互。

系统战术和模式提供了实现质量属性(如可维护性和可用性)的经过验证的方法。隔舱模式可视化(图 6.4)展示了架构决策如何直接影响系统弹性,展示了隔离边界如何防止可能损害整个系统的级联故障。

集成方法比较(图 6.5)揭示了自上而下、自下而上、并行和大规模策略之间的权衡,突出了现代人工智能系统通常采用针对其特定开发环境的混合方法。集成工具提供受控环境,用于在生产部署之前验证组件交互。

测试范围图(图 6.6)展示了一个跨系统层的测试类型综合矩阵,强调人工智能系统需要多方面的验证策略,以解决功能性正确性、性能、安全性、合规性、公平性和集成问题。针对需求、用例、负载条件、模型预测、数据质量、错误处理、合规性和用户界面的专门测试方法共同确保系统质量。

在从架构到实现的整个演变过程中,架构师的角色仍然至关重要——不是作为主要实施者,而是作为概念完整性的守护者,确保设计决策和实施权衡与系统的架构愿景和质量属性相一致。随着人工智能系统变得越来越复杂和重要,这种架构指导变得越发必要,以创建不仅按指定方式运行,而且在生产环境中提供持久价值的系统。

在下一章中,我们将深入研究一个案例研究,旨在将本书中讨论的许多概念聚焦起来。

练习

  1. 为数据摄入块图创建类图。

  2. 为模型执行组件的输入和输出开发数据流图。

  3. 为可维护性非功能性需求开发块图。

  4. 为可用性非功能性需求开发块图。

  5. 选择三个用例和参与者,并完全开发这些用例。

  6. 定义一组测试,以展示数据摄入和模型执行中的故障和错误处理。

  7. 描述如何模拟高数据负载以进行管道负载测试。

  8. 第五章中选择两个用例,并确定如何定义测试。

  9. 定义两个测试,以确保管道数据质量部分正确运行。

  10. 对于您的领域,定义一个测试,以确保符合性要求将得到满足。

  11. 设计一个测试,以验证机器学习模型是否满足不同人口统计群体中的公平性要求。

  12. 为在高风险决策环境中验证模型可解释性能力制定测试计划。

  13. 设计一个监控系统,用于检测和警报生产中的模型漂移。

参考文献

  1. Bass, L., Clements, P., & Kazman, R. (2021). 软件架构实践(第 4 版)。Addison-Wesley Professional。

|

现在解锁此书的独家优惠

扫描此二维码或访问packtpub.com/unlock,然后通过书名搜索此书。 | |

| 注意:在开始之前准备好您的购买发票。* |

| --- |

第七章:构建生成式 AI 系统 – 一个案例研究

在本书中,我们探讨了 AI 系统架构的核心原则,重点关注管理复杂性、确保可扩展性和将 AI 技术集成到企业软件中。我们研究了软件工程最佳实践,如模块化设计和结构化数据管道,如何帮助优化 AI 赋能系统。我们还讨论了将 AI 应用与利益相关者期望保持一致、实施有效设计模式和采用适应不断变化的数据和业务需求的迭代开发周期等挑战。案例研究和现实世界示例提供了一个结构化框架,以平衡技术精度和灵活性。

本章最后将重点关注生成式 AI 和大型语言模型(LLMs)作为案例研究,探讨将架构最佳实践应用于现实世界 AI 部署。我们将逐步介绍一个由 LLM 驱动的客户支持知识管理系统设计,包括检索增强生成(RAG)、搜索能力和自适应学习。通过分析关键组件,如 AI 代理、向量数据库和网页搜索集成,我们将将这些技术连接到基础架构策略,包括模块化、数据管道效率和云可扩展性。此示例提供了一个从高级业务目标到经过验证的 AI 系统的清晰路径。

本章将涵盖以下主题:

  • 框架一个公司设计其知识平台并调查使用生成式 AI 的潜在可能性的问题

  • 如何将公司的需求转化为数据科学目标

  • 解释可能的架构选择

  • 为公司的知识平台设计以 LLM 为中心的解决方案

  • 如何量化以生成式 AI 为中心的设计质量

到本章结束时,你将拥有一个结构化、实用的理解,了解如何在企业环境中有效地设计和部署生成式 AI,重点关注可扩展性、合规性和长期可持续性。

商业挑战:知识管理危机

TechSolve,我们的案例研究 ERP 提供商,服务于制造、零售和医疗保健行业的多元化企业客户,面临着重大的知识管理挑战,这不仅威胁到运营效率,也威胁到客户关系:

  • 知识生态系统碎片化:关键信息散布在 12 个以上的孤岛系统中,包括遗留文档、现代维基、支持票据和通信平台。

  • 资源利用效率低下:支持工程师有 60%的时间在寻找信息,而不是将专业知识应用于解决客户问题。

  • 机构知识侵蚀:关键见解和故障排除智慧随着经验丰富的员工离职而流失,估计有 15%的关键知识未记录。

  • 延长响应时间:客户解决方案时间已延长至平均三天,显著超过服务等级协议(SLAs),并危及七位数的企业客户关系。

  • 服务质量下降:一个自我强化的循环,其中疲惫的工程师提供下降的服务质量,进一步增加工单数量和客户不满。

财务影响是显著的:TechSolve 估计这些低效率每年导致 320 万美元的损失,包括额外的人力需求、生产力下降和客户流失。更令人担忧的是,灵活的竞争对手利用人工智能提供更优越的客户支持体验,从而产生了竞争优势。

愿景:通过生成式 AI 实现转型

为了应对这些挑战,TechSolve 的执行团队设计了一个全面的生成式 AI 实施计划,利用大型语言模型(LLMs)在整个组织内转型知识管理:

  • 统一知识框架:将来自多个存储库的信息整合到一个跨格式、位置和部门的单一语义索引中。

  • 索引工作原理:连接器从维基共享驱动器电子邮件存档工单记录PDF聊天记录中提取非结构化内容。每个项目都经过标准化、扫描文件的 OCR 处理、去重和规范 URL 分配。内容被分割成段落大小的跨度,嵌入并存储在具有丰富元数据的向量数据库中,例如来源作者产品版本创建日期敏感性标志PII 标签。刷新是每晚的工作,并在可用的情况下执行更改数据捕获。

  • 基于事实的 AI 响应:实施 RAG 以将答案锚定在经过验证的来源,同时保留 LLMs 的合成能力。

  • 情境智能:提供一个理解领域术语、技术关系和隐含知识需求的对话界面。

  • 自适应学习系统:创建一个自我改进的平台,使用用户反馈和用法模式来优化提示、检索策略和工具选择。

  • 结构化知识连接器:整合交易系统以获取可信事实。只读适配器连接到CRM(例如,Salesforce)、ERP(例如,SAP)和ITSM(例如,ServiceNow)以检索权限、产品配置、账户状态、案例历史和 SLAs。访问通过行级安全、API 速率限制和缓存或计划同步来强制执行。数据以类型化工具调用参数化 SQL 视图的形式暴露给代理,以便答案可以引用文档和系统事实。

初始原型利用 LangChain 代理来协调工具之间的检索和生成[4],语义搜索和 Web 集成提供当前的外部背景[3][7]。这种架构实现了多步推理,可以在最小的人为干预下导航复杂的支持场景。原型包括两个管道:一个用于维基、电子邮件、PDF 和票据的无结构索引器,以及用于 CRM 和 ERP 的结构化适配器,使代理能够在单个引用响应中将引用文档与实时系统事实相融合。

“这不仅仅是实施一个 AI 聊天机器人。我们从根本上重新构想了机构知识在我们组织中的流动方式,打破了数十年来积累的壁垒,”TechSolve 的首席技术官 Sarah Chen 说。

对齐业务和技术目标

TechSolve 的生成式 AI 系统的成功实施需要高级业务目标与具体技术能力之间的仔细对齐。这一对齐过程确保了所有利益相关者——从执行领导到工程团队——都共享一个统一的成功愿景,并具有明确的绩效指标。通过将业务需求转化为具体的数据科学和工程目标,TechSolve 创建了一个指导项目生命周期中决策的框架,从初始架构设计到部署和持续改进。

数据科学目标

这些业务目标转化为五个数据科学目标,与 AI 风险管理指南[2][5]中的可审计性、可解释性和置信度报告相一致。建立这些可量化指标使 TechSolve 的数据科学团队能够系统地评估模型性能,并将技术实施决策与整体业务战略相一致。以下目标将 TechSolve 的业务需求转化为可衡量的技术目标,为数据科学团队提供明确的方向:

  • 高相关性检索:在给定查询中识别最相关的知识片段时达到 85%的精确率,对技术内容与程序内容有专门的指标。

  • 上下文理解:在识别用户意图方面达到 90%的准确率,包括隐含的知识需求、技术背景和查询重构要求。

  • 响应生成质量:在生成的响应中将不准确率限制在 5%以下,对技术规范和兼容性指南有严格的事实性要求。

  • 可解释性:确保所有系统响应都包含清晰的来源引用和置信度水平,从查询到最终响应保持审计轨迹。

  • 持续改进:实施学习机制,根据使用模式和明确反馈,每月显著提高系统性能 1-2%。

这些目标为模型选择、训练方法、评估框架和系统架构奠定了基础,同时提供了明确的发展指标,以实现更广泛的企业成果。

架构:核心组件和工作流程

开发一个企业级生成式 AI 系统需要 TechSolve 将多个专业组件集成到一个统一的架构中。本节探讨了使分散的知识库转化为一个统一、响应迅速的系统,能够以准确和一致的方式处理复杂支持查询的技术基础。

系统概述

TechSolve 的生成式 AI 架构以 LangChain 为中心,这是一个协调多个 AI 组件(而不仅仅是简单的 LLM 交互)的编排框架。系统实现了一个智能代理,它战略性地管理用户查询,确定要使用的工具,并按顺序执行以获得最佳结果。

图 7.1:AI 查询处理工作流程:将 LLM 与向量搜索和网页数据集成

黑色背景上的放大镜  AI 生成的内容可能不正确。快速提示:需要查看此图像的高分辨率版本吗?请使用下一代 Packt Reader 打开此书,或在 PDF/ePub 副本中查看。

下一代 Packt Reader以及此书的免费 PDF/ePub 副本包含在您的购买中。扫描二维码或访问packtpub.com/unlock,然后使用搜索栏通过名称查找此书。请仔细检查显示的版本,以确保您获得正确的版本。

图 7.1中显示的工作流程说明了用户查询如何通过系统流动,LangChain 代理通过将查询引导到适当的工具来协调整个过程:向量检索以访问知识库,网络搜索以收集外部信息,或直接到 LLM 进行处理。在生成响应后,一个反馈循环根据用户交互持续改进系统。

关键组件

现在,我们将深入了解使该系统运行的具体架构组件。每个组件都在将用户问题转化为准确、有帮助的响应中发挥着至关重要的作用。让我们从操作的“大脑”开始,逐步了解处理搜索和数据检索的辅助技术。

LLM:认知引擎

现在,我们将深入了解使该系统运行的具体架构组件。每个组件都在将用户问题转化为准确、有帮助的响应中发挥着至关重要的作用。让我们从操作的“大脑”开始,逐步了解处理搜索和数据检索的辅助技术。

LLM 作为中央认知引擎,解释查询,制定检索计划,整合知识库数据,并构建连贯的响应。TechSolve 实施了一种分层方法:

  • 主模型:OpenAI 的 GPT-4.1,用于需要复杂推理任务、对技术概念有深入理解、故障排除工作流程以及细微的客户需求。

  • 辅助模型:GPT-4o mini 负责处理常规查询,在保持高质量响应的同时,比 GPT-3.5-Turbo 具有显著的成本效率。

  • 回退模型:在 API 故障期间操作或处理具有特定安全要求敏感数据的场景中,内部部署 Llama 2 70B。然而,在本地部署 70B 参数模型需要大量的基础设施。组织需要考虑 GPU 内存需求、将模型量化到 4 位或 8 位精度以减少资源使用,以及平衡能力与硬件约束的参数剪枝技术。许多公司发现,较小的模型,如 7B 或 13B 变体,在提供足够的回退性能的同时,大幅降低了硬件成本和复杂性。

这种多模型架构保留了最大灵活性,防止了供应商锁定,同时允许随着技术格局的发展采用新兴的语言模型。这个设计的关键是抽象层,它标准化了模型之间的输入和输出,允许根据查询复杂性、成本考虑或特定的合规性要求进行无缝切换。

检索系统(向量数据库):知识库

向量数据库是 TechSolve 知识架构的骨干,它使数百万个文档片段之间的语义搜索成为可能。向量数据库通过 RAG(结合外部知识与生成[3])来定位响应,TechSolve 选择 Pinecone 作为主要向量存储,因为它具有可扩展性、托管服务模型以及对生产工作负载的强大支持。

然而,Qdrant 等替代选项也可能很有价值,尤其是在成本优化或对模型调优有精细控制优先级的场景中。Qdrant 提供了一条开源路径,具有强大的定制功能,这可能对那些更喜欢在管理自己的基础设施方面有更多灵活性的组织有吸引力。

不论是哪个特定平台,核心设计原则保持不变:嵌入被高效地生成、索引和检索,以在准确的组织知识中定位 LLM。

  • 嵌入框架:利用 OpenAI 的 text-embedding-ada-002 模型将文档片段的意义转换为 1,536 维向量。这个过程捕捉了文本的“语义本质”,有效地在庞大的思想地图上为每个概念提供一个数值坐标。具有相似意义的文档将具有接近的坐标,这使得系统即使在措辞不同的情况下也能找到相关信息。

  • 向量存储:采用 Pinecone 作为主要向量数据库,16 百万个文档块分布在六个不同的索引中,这些索引针对不同内容类型进行了优化

  • 混合检索:结合向量相似性搜索与 BM25 关键词匹配,以平衡语义理解与词项特异性

  • 元数据过滤:通过过滤 14 个不同的元数据字段来提高检索精度,包括文档年龄、作者专业知识水平、内容类型和相关性评分

该系统构成了 RAG 的基础,TechSolve 的实施通过将 AI 输出定位到具有明确溯源跟踪的验证、权威知识源,已证明在减少幻觉方面至关重要,降低了 87%。

除了 RAG 之外,一些组织也探索了上下文感知生成CAG)。虽然 RAG 侧重于通过外部来源来定位答案,但 CAG 优化了模型内部使用上下文的方式。这种方法可以减少冗余检索调用,降低查询成本,并提高响应效率,使其在性能和成本控制为高优先级的场景中成为一个有价值的补充。

网络搜索整合:实时信息访问

为了解决所有预训练语言模型固有的知识截止限制,该架构集成了网络搜索整合:

  • API 集成:通过一个自定义包装器利用 Google 可编程搜索引擎,该包装器管理速率限制、缓存和结果过滤

  • 来源可信度:实施了一个自定义排名算法,优先考虑官方文档、验证论坛和原始研究等权威来源

  • 内容提取:利用专门的抓取技术从搜索结果中提取干净、相关的内容,同时保留归属

  • 结果综合:在将关键见解纳入最终响应之前,应用文本摘要技术进行提炼

此组件提供实时信息访问,确保对快速发展的主题(如软件更新、新兴问题和社区开发解决方案)的响应保持最新,同时在内部知识库存在空白或过时信息时作为后备机制。

从静态模型到动态代理

TechSolve 架构的一个关键进步是从基本的 LLM 实现到复杂的基于代理系统的演变。这种转型从根本上扩大了 AI 解决方案在解决复杂企业需求方面的能力和自主性。

LangChain 将孤立的语言模型转化为企业级代理,这些代理展示了远超直接 API 访问能力的复杂能力:

  • 分布式知识访问:无缝检索和综合来自多个存储库的任务关键信息,将结构化数据库查询与无结构化文档检索集成

  • 会话持续性:在扩展的多轮交互中保持连贯的记忆,保留上下文而不重复,并适应不断变化的需求

  • 顺序推理:将复杂问题分解为可管理的子任务,追求仅通过直接提示无法实现的跨步骤推理路径

  • 工具利用:根据上下文需求动态调用专用功能,包括计算器、代码解释器和结构化 API 调用

  • 决策透明度:提供明确的推理痕迹,记录工具选择、信息评估和综合方法,以实现治理和可审计性

这种基于代理的架构从根本上推动了人工智能系统在复杂组织中的运作方式。虽然传统模型在狭窄的预测任务上表现出色,但 LangChain 代理在知识综合、流程自动化以及跨结构化和非结构化企业数据的跨步骤推理方面展现出新兴的能力。除了推理和预测之外,这些代理还能够通过动态选择工具、执行工作流程和协调行动来实现既定目标。

LangChain 代理工作流程

代理现在是现代人工智能实现的核心部分,因为它们使系统能够在多个工具和数据源之间进行推理。然而,代理的参与程度对性能和结果的确定性有重大影响。为了在灵活性可靠之间取得平衡,许多组织增加了护栏——限制和验证检查,有助于保持响应的一致性并符合业务需求。

在 TechSolve 的系统内,工作流程遵循六个关键阶段,将用户查询转化为可操作的见解。

用户查询输入

用户提交自然语言查询,范围从简单的 factual 问题(“版本 4.2 的兼容性矩阵是什么?”)到复杂的技术查询(“为什么在多货币交易后库存调整模块可能会失败?”)。每个查询都会经过初步预处理,包括以下内容:

  • 实体提取,识别产品组件、版本和技术概念

  • 意图分类,确定查询是否寻求事实信息、程序指导或问题诊断

  • 消歧检测,识别需要澄清的潜在歧义

智能路由

代理应用复杂的推理来确定最佳处理路线和工具序列:

  • 对于直接的事实查询,可能会触发直接的向量检索

  • 对于复杂的故障排除场景,可能会启动一个结合检索、推理和可能网络搜索的多步骤过程

  • 对于模糊的查询,可能会在继续之前生成澄清子问题

这种动态路由为每个查询创建定制的处理管道,利用 LLM 的推理能力来编排一系列针对特定信息需求的操作。

上下文增强

对于知识密集型查询,代理查询向量数据库以丰富 LLM 提示,包含相关的上下文数据:

  • 先进技术,如混合检索,结合语义相似性和关键词匹配

  • 元数据过滤根据最近日期、权威性和相关性标准限制结果

  • 多阶段检索先进行初步广泛搜索,然后进行专注的细化

  • 重新排序算法优化最终选择的知识片段

这些技术确保从权威文档、历史案例和先前交互中优化信息选择,为 LLM 提供生成准确、有帮助的响应所需的精确上下文。

网络搜索(条件性)

当内部知识不足时——尤其是对于最新更新或新兴问题——代理执行有针对性的网络搜索:

  • 自动重新表述查询以优化搜索引擎的相关性

  • 执行具有战略范围限制的搜索(例如,特定站点的查询)

  • 根据来源可信度和内容相关性过滤和验证结果

  • 在将其整合到响应上下文之前提取和总结关键信息

这种条件性增强确保了即使底层知识景观发生变化,系统也能保持最新,弥合内部文档与现实世界发展之间的差距。

响应生成

在收集了全面上下文的情况下——可能包括内部知识、网络搜索结果和对话历史——代理将此信息输入到 LLM 中进行综合:

  • 生成直接针对用户查询并以适当细节和复杂性回答的响应

  • 保持与组织标准一致的专业术语

  • 提供明确的源归属,以便在需要时进行验证

  • 根据内容类型优化信息格式(例如,将程序作为步骤,兼容性作为表格等)

结果是连贯的响应,它整合了多个知识来源,同时保持了自然、有帮助的语调,这使得 LLM 在知识传递方面特别有效。

反馈循环

精细的反馈机制捕捉显式评分和隐式信号:

  • 用户通过点赞/踩和可选评论提供直接反馈

  • 交互指标跟踪哪些响应导致后续问题而非解决

  • 使用模式识别有效和有问题的响应模式

  • 定期进行 A/B 测试,比较不同的提示策略和检索方法

这个持续学习周期使检索策略、提示方法和工具选择逻辑的系统化改进成为可能。在实践中,这通过诸如具有人类反馈的强化学习(RLHF)等技术实现,其中用户评分用于调整模型行为,以及基于先前成功和失败的提示迭代优化。这些方法共同创造了一个改进周期,随着时间的推移稳步增加系统价值。

技术基础设施

TechSolve 的生成式 AI 知识系统部署需要一个强大、可扩展的技术基础设施,能够处理企业级工作负载,同时保持性能、可靠性和安全性。本节描述了支持系统操作的基础计算和编排技术。

云计算架构

TechSolve 实施了平衡可扩展性和法规遵从性的混合云架构:

  • 主要环境:利用托管 Kubernetes 服务进行核心处理组件的 Azure 云基础设施

  • 次要系统:在本地部署处理具有严格数据居住要求的受监管医疗保健客户数据

  • 开发/测试:容器化环境,无论部署目标如何都能实现一致的开发

  • 灾难恢复:跨区域复制,具备自动故障转移功能,并保证 15 分钟的 RPO

这种战略方法在满足 TechSolve 繁多客户群的各种法规和性能要求的同时提供了最大的灵活性。

虽然这种混合方法平衡了可扩展性和合规性,但成本管理是一个重要的考虑因素。在托管云服务上运行核心工作负载可能导致更高的运营费用,尤其是在使用量不可预测地扩大时。另一方面,为了符合对受监管数据的严格数据居住要求,需要在前端投资硬件、持续维护和专门人员。为了减轻预训练模型的知识断档效应,系统使用具有可信度过滤的目标网页搜索[7]。TechSolve 采用了一种成本优化策略,包括自动扩展策略、为可预测工作负载预留的云实例以及资源监控以识别未充分利用的计算资源。这些措施有助于确保在不出现成本无序增长的情况下满足合规性和性能目标。

端到端系统架构

为了全面了解 TechSolve 的实施情况,本节检查了完整的系统架构,展示了各个组件如何集成为一个统一的整体。这种端到端视角说明了用户界面、应用程序逻辑和底层数据基础设施之间的关系,这些共同提供了知识管理解决方案。

完整的系统架构遵循三层模型,如图 7.2 所示。它分离了关注点,同时确保组件之间无缝交互:

图 7.2:端到端系统架构:Web、移动和 API 访问 AI 驱动的知识服务

客户端层:用户访问和体验

在最高层,客户端层作为所有用户交互的入口点:

  • Web 界面: 适用于桌面和移动设备的技术支持环境中的响应式设计

  • 移动应用: 用于现场支持场景的原生 iOS 和 Android 应用

  • API 访问: 用于与票务系统和自定义工具集成的 REST 和 GraphQL 端点

  • 安全层: 完整的 HTTPS 实现,包括证书固定和高级认证

表示层:界面编排

中间层包含表示层,作为 Kubernetes 集群实现:

  • 编排 Web 应用: 管理用户界面状态和交互的 React/Node.js 应用

  • API 网关: 基于 Kong 的统一入口点,提供请求路由、速率限制和认证

  • WebSocket 服务: 支持实时通信,支持流式响应和输入指示

  • 内容分发网络(CDN)集成: 全球 CDN,最小化静态资源的延迟

应用层:业务逻辑

核心处理发生在应用层:

  • 查询处理服务: 管理请求解析、意图分类和响应生成

  • 向量数据库服务: 促进知识库之间的语义搜索功能

  • 嵌入服务: 将自然语言转换为向量表示

  • 分析服务: 通过数据聚合和可视化提供洞察

  • 工作流引擎: 协调复杂支持场景的多步骤流程

数据层:信息存储和检索

架构的基础是数据层:

  • 向量数据库: Pinecone 实现,支持高效的相似性搜索

  • 文档存储: 管理非结构化内容的 MongoDB 存储库

  • 操作数据库: 处理事务数据的 PostgreSQL 系统

  • 日志/监控: ELK 堆栈捕获系统性能指标和用户交互

外部服务:扩展功能

系统集成了专门的第三方解决方案:

  • OpenAI API: 提供高级语言理解和生成能力

  • Google Search API: 使信息检索超越内部知识

  • Microsoft Entra ID: 管理企业身份验证和授权

  • Twilio: 启用关键响应和更新的短信通知

  • Elastic APM: 在技术堆栈中提供应用性能监控

用户交互模式

虽然技术架构提供了基础,但 TechSolve 系统的最终价值是通过与用户的互动实现的。本节探讨了典型的流程和工作模式,展示了支持工程师和其他利益相关者如何与系统互动,以高效地解决客户需求。

为了说明不同的利益相关者如何与系统互动,TechSolve 的架构师记录了关键的使用场景,捕捉了常见的流程。

用例:查询解决

这个主要工作流程代表了与 TechSolve 知识系统最常见的互动模式。面对复杂的客户问题时,支持工程师利用 AI 系统快速访问组织知识库中的相关信息,从而实现比以前通过手动搜索更快、更准确的解决方案。

主要角色:支持工程师

次要角色:AI 系统

工作流程:

  1. 支持工程师通过 SSO 进行身份验证,并导航到 AI 助手界面。

  2. 他们输入一个详细的查询,描述客户的技術问题。

  3. 人工智能系统通过 LangChain 代理处理查询,检索相关的知识块。

  4. 如果需要,系统从 Google 网络搜索中收集补充数据以获取最新更新。

  5. LLM 综合了一个全面的响应,并明确引用了来源。

  6. 支持工程师审查推荐,可能进行修改。

  7. 最终的响应附加到客户工单上,所有互动都记录下来以供训练。

变体:

  • 如果系统信息不足,它会提示进行澄清或建议知识差距。

  • 对于敏感的客户数据,系统使用具有增强安全性的本地处理路径。

  • 当访问受限制的信息时,适当的授权检查可以防止未经授权的披露。

图片

图 7.3:TechSolve 知识系统序列流:端到端查询处理管道

业务影响

任何技术实施的真正成功衡量标准在于其可衡量的业务成果。本节分析了 TechSolve 通过其生成式 AI 知识系统实现的量化结果,考察了在运营效率、客户体验、财务表现和组织文化方面的改进。

为确保这些结果被准确测量,TechSolve 建立了一个全面的测量框架。首先,他们捕捉了部署前的六个月基线数据。运营指标,如解决时间,是从他们的支持票务系统(Jira)中提取的。客户体验数据,如净推荐值(NPS)和满意度评分,是通过自动后交互调查收集的。财务数据,如每张票的成本,是通过结合运营数据与财务部门的成本模型计算得出的。最后,系统自身的分析服务数据被用来跟踪使用模式和知识贡献。所有这些信息都被汇总到一个中央分析仪表板中,以进行持续的比较分析。

TechSolve 对该架构的实施在多个维度上取得了变革性的成果:

运营转型

TechSolve 的实施在支持运营效率上产生了戏剧性的改进,改变了工程师日常工作的方式,并显著加快了客户的价值实现时间:

  • 解决加速: 平均解决时间从 3 天减少到 4.7 小时(减少了 84%)

  • 工程师生产力: 工作日中用于搜索信息的时间从 60%减少到 26%

  • 能力提升: 支持团队在仅增加 8%人员的情况下,处理了 27%的票量增长

  • 知识民主化: 高级工程师和初级工程师之间的绩效差距减少了 62%

客户体验

客户满意度指标显示显著改善,因为客户体验到了更快、更一致、质量更高的支持互动:

  • 满意度指标: 部署后的 9 个月内,NPS 上升了 37 分

  • 首次接触解决率: 通过增强知识访问,比率从 34%提高到 71%

  • 一致的质量: 客户满意度评分的变异性降低了 58%

  • 响应一致性: 响应中的技术准确性率从 82%提高到 97%

财务成果

通过多个财务指标验证了实施的商业案例,这些指标证明了成本节约和收入增长:

  • 支持经济性: 每张票的成本降低了 31%,超过了最初的 25%目标

  • 续订影响: 企业客户续订率同比增长 9%

  • 扩展收入: 来自现有客户的交叉销售和升级销售收入增长了 14%

  • 投资回报率实现: 系统在全面部署后的 7.5 个月内实现了投资回报

文化演变

除了可衡量的业务成果外,该系统还催化了重大的组织文化转变,进一步放大了其影响:

  • 知识共享: 员工贡献的文档增加了 143%

  • 协作提升: 跨职能知识交流增加了 68%

  • 创新加速:通过改进知识流动,将新功能的上市时间缩短了 22%

  • 人才吸引:内部调查中技术支持工作满意度评分提高了 41 分

关键架构原则

除了具体的实现细节之外,TechSolve 的经验产生了适用于各种企业环境的宝贵架构原则。本节提炼了这些对系统成功有贡献的核心设计模式,为组织提供了一个可以适应其自身生成式 AI 计划的框架。

TechSolve 的实施体现了可以在多个领域应用的三个基本设计原则。

检索增强生成(RAG)

RAG 代表了应用 AI 的一个范式转变,结合了知识数据库和生成能力的优势:

  • 幻觉减少:基于验证过的来源进行输出,通过减少 87%的事实错误来确保准确性

  • 动态知识:允许在不重新训练模型的情况下更新信息,保持与业务环境演变的关联性

  • 透明来源:为生成内容提供清晰的归属,建立信任并允许验证

  • 效率优化:通过将模型复杂性集中在合成而不是记忆上,减少计算需求

此模式对于拥有大量专有知识的企业尤其有价值,允许它们在保持准确性和合规性的同时利用生成式 AI。

图片

图 7.4:从业务目标到技术实现:TechSolve 的 AI 性能框架

自适应查询路由

此架构模式根据以下查询特征实现智能工作负载分配:

  • 分层处理:根据复杂度将查询路由到适当的资源,从简单的检索到复杂的推理

  • 成本优化:通过将计算资源与实际需求相匹配来最小化支出

  • 响应优化:根据查询的紧迫性和重要性平衡速度和彻底性

  • 回退管理:当主要信息来源不足时,实施优雅降级策略

通过将处理方法与查询需求相匹配,这一设计原则在多种使用场景中最大化了系统效率和响应质量。

反馈驱动的学习

该架构通过综合反馈集成实现系统性的改进:

  • 多渠道输入:捕获显式评分、隐式信号和运营指标以指导优化

  • 受控实验:利用 A/B 测试来评估检索和生成的替代方法

  • 性能监控:跟踪关键指标,包括准确性、延迟和满意度,涵盖系统组件

  • 持续适应:实施自动和手动优化周期,逐步增强能力

这个学习生态系统确保系统随着时间的推移变得越来越有价值,适应不断变化的信息需求和演变的语言模式。

摘要

这个案例研究展示了知识管理领域的生成式 AI 架构如何转型企业信息系统。通过将高级大型语言模型与结构化检索机制相结合,组织可以将分散的知识集中到统一、可访问的框架中 [3][6][7]。

TechSolve 的实施展示了精心设计的具有分层组件、稳健的数据管道和反馈驱动的改进机制的 AI 架构如何提高支持操作并提升客户满意度 [1]。

关键见解:通过检索增强将 AI 响应在验证的组织知识中定位,保持清晰的数据来源,并建立持续的反馈循环 [3][5][2]。

这些架构模式超越了知识管理,广泛应用于企业应用,为平衡创新与治理、可扩展性与可靠性的人工智能集成提供了蓝图 [1]。

随着生成式人工智能的持续成熟,这里概述的架构原则将继续作为将技术潜力转化为可持续业务转型的基本指南 [1][5]。

参考文献

  1. 巴斯,伦,保罗·克莱门茨,和里克·卡兹曼。“软件架构实践:软件架构师实践。”Addison-Wesley,2012。

  2. 刘易斯,格蕾丝。“开始使用 NIST 人工智能风险管理框架。”SEI 博客,卡内基梅隆大学,2023。

  3. 高建峰,等。“用于知识密集型自然语言处理任务的检索增强生成。”神经信息处理系统进展,2020。

  4. LangChain. “代理。”LangChain 文档,2023。

  5. 美国国家标准与技术研究院。“人工智能风险管理框架(AI RMF)。”NIST,2023。

  6. 博马萨尼,里希,等。“关于基础模型的机会与风险。”arXiv 预印本 arXiv:2108.07258,2021。

  7. 赵威新,等。“大型语言模型综述。”arXiv 预印本 arXiv:2303.18223,2023。

|

现在解锁本书的独家优惠

扫描此二维码或访问 packtpub.com/unlock,然后按书名搜索。 | |

| 注意:在开始之前准备好您的购买发票。* |

| --- |

第八章:洞察与未来方向

我们已经阐述了如何构建具备 AI 功能的系统。构建具备 AI 功能的系统是一个挑战。对于系统存在很高的期望,并且软件系统很可能是复杂的。软件开发工作失败有几种方式;这些包括未能理解关键需求、技术未按预期表现、系统设计错误,以及计算、存储或数据流被误解。失败的一个主要驱动因素是,如果输出不一致、错误或根本不合理,人类可能会失去对系统的信任。具备 AI 功能的系统具有这些风险,加上算法复杂性,对异常情况敏感,以及数据输入可能偏离。AI 系统失败的一个关键驱动因素是用户对系统提供的结果失去信任或信心不足。具备 AI 功能的系统必须从一开始就构建,以便它们将利用 AI 技术。这些系统必须解决在完整推理或控制周期中无需人类参与的决定。作者提出,架构概念和实践提供了一种机制来驯服复杂性并确保构建正确的系统,并且构建正确。

架构

架构师的角色既古老又现代。这个角色跨越了许多构建复杂系统的领域。现在人们听说在半导体、航空航天、软件、设备、自主系统、机器人等领域都有架构师。已经提出了使用架构概念来交付具备 AI 功能的软件系统的案例。实施有纪律的架构流程提供了对最终系统的连贯愿景。它还确保了正在构建正确的系统。这是通过为关键利益相关者提供时间和空间,一个机制来沟通他们的需求、愿望和担忧来实现的。架构师团队还负责提供文档。这些文档提供了一个机制,使技术团队从需求工程师、系统工程师、软件工程师和测试人员之间的努力保持一致。从整体的角度来看,架构师确保实施平衡的设计和适当的缓解措施。

如果从这本书中只能学到一条教训,那就是建筑师必须识别、沟通、记录并确保设计方案满足系统的非功能性需求。几乎可以肯定的是,满足最终系统非功能性需求的设计会影响 AI 的实现,反之亦然。

架构师对于工程执行和最终系统的构建至关重要。架构师抽象并通常进行系统分区,以使软件开发能够在团队间执行,从而实现努力的一致性。软件工程团队需要文档来了解他们各自的系统部分如何融入整个系统。架构师开发的文档应包括书面文档和建模图。书面工件至少应包括操作概念、需求规范和关键用例。建模图应包括逻辑块、活动、序列、接口、用例和状态机图。最后,还应有一个物理计算、存储和网络硬件及其规格的图。架构师还必须与项目和项目管理人员合作,以提供项目控制、范围、进度和资源管理的信息。架构师提供见解和反馈,以告知项目管理任务。

构建 AI 赋能的系统

我们讨论了软件工程对于成功系统部署的重要性。截至本文撰写时,AI 系统主要在软件中实现。因此,需要应对经典的软件工程风险。强调指出,所使用的 AI 模型或技术很可能不是从头开始开发的。存在许多开源软件库或参考资料,可以用来构建系统的关键组件。在成功构建的系统中,一个关键推动因素是加快系统开发,以便有更多时间进行开发、原型设计、测试和学习。

系统和 AI 的使用非常具体于组织、领域和利益相关者的需求。认为可以简单地复制或更新为另一个领域构建的先前系统是幼稚的。

指出,系统的整体复杂性驱动了软件开发风险。采用纪律性的方法和软件构建方法可以减轻开发风险。我们强调了集成风险及其缓解方法的作用。集成工作需要被考虑并持续关注。

最后,强调了架构师在项目管理中的作用。很多时候,开发团队和小组是围绕软件架构本身组织的。

架构师提供了关于系统构建得如何以及关键项目里程碑是否按预期水平和成本进度发生的见解。他们还在告知项目人员需求方面发挥作用。

数据工程

在这个数据分析与科学新时代的一个主要见解是,系统的有效性取决于数据的质量。这个真理适用于模型的训练和配置、推断、验证过程和生产数据。这导致了新的工程子专业的出现:数据工程师。

数据工程师必须处理整个数据生态系统的规模、速度、多样性和来源。数据工程领域仍处于早期阶段。这些活动现在被认可为工程子专业,而不仅仅是“数据处理”。当工程师构建一个系统时,架构的概念和流程就会凸显出来。数据工程工作需要确定数据量、处理需求、存储容量和网络基础设施。这些分析影响了对所需硬件和软件工具的计划。

在架构设计过程中,必须考虑数据质量的作用。数据质量涵盖完整性、格式和一致性。我们讨论了架构师需要确保通过主动手段或后备能力迅速解决数据质量问题和问题。值得注意的是,数据质量问题往往会导致错误或不一致,这可能会影响系统做出的推断的信任度。

重复一遍,数据工程过程的关键组件需要对数据集本身和计算特性有第一手了解,以便执行模型。

数据分析和模型

人工智能系统的核心是学习组件——系统“智慧”所在之处。将合适的技术与客户目标相匹配是推动技术团队实施的关键。很多时候,一个架构必须能够支持不同类型的技术来解决特定问题:匹配相关技术到客户领域的重要性,以及可视化的重要性,以及架构应该如何用于捕捉模型性能指标。

处理模型质量监控对于帮助故障排除和系统监控非常重要。使用金丝雀和稳健的黄金标准测试至关重要,以确保由模型驱动的决策是正确的。

作者们非常自信,将会创造和部署更多技术。架构师的责任是设计和构建能够应对这种不确定性的稳健系统。有志于成为人工智能架构师的人应该直面这一挑战。

概念设计

正如我们在整本书中所述,架构师定义了将要构建的系统的概念基础。概念设计捕捉了待建系统的抽象、功能、参与者以及流程。概念设计和其相关的成果应指导推理、澄清、沟通和规划,这些是实际系统开发的基础。我们强调了概念设计的一些关键方面是使系统能够清晰地传达其合理性和新系统应提供的价值。概念设计记录了当前系统的局限性。它还记录了需要克服的挑战和需要实现的机会。

如前所述,概念设计活动应确定系统的重大目标和 AI 的使用方式。在这一阶段,架构师需要平衡新系统的众多利益相关者。一个关键考虑因素是系统的最终用户以及新系统将如何影响他们。概念设计还应告知系统开发的非技术方面,例如成本和进度限制。

实现这些目标已知和真实的方法是使用场景和进行需求工程流程。这些流程应在项目一开始就完成,并在系统开发过程中重新审视。通过重新审视需求工程流程,可以捕捉学习和反馈的影响,并进一步指导开发。场景的发展和需求工程必须涉及所有利益相关者,以降低遗漏或误解关键需求的风险。

并非所有系统开发工作都是相同的。一些项目可能只有几位工程师,而有些项目可能需要多达几十位甚至更多工程师,但无论项目规模大小,文档的价值是恒定的。文档可以包括简单的 PowerPoint 幻灯片、电子表格、完整的企业级绘图工具和需求管理数据库。这些文档也应在一个配置控制机制下进行管理,因为它们可能是项目的一个正式合同交付成果。

概念设计以一系列成果告终:

  • 操作概念文档:本文件从用户的角度描述了将要构建的系统。它捕捉了系统旨在帮助实现的关键业务目标和目标。它概述了支撑系统开发的重大约束和假设,以及用于评估系统性能和接受度的指标和属性。

  • 需求规范:本文件使用传统的需求工程流程,包括客户需求收集、研讨会、头脑风暴、建模和仿真、原型设计和原型制作,来描述操作系统需要执行的所有许多方面,以确保其成功构建。

  • 模型图:这里的关键图包括用例图、逻辑结构、行为图、物理分配和接口定义。这一套工件提供了对需求规格说明的洞察,并有助于系统设计工作。这些图还使人们能够初步了解系统将如何运行。

  • 技术发展计划:本文件详细说明了需要实现的项目能力和相关的进度门控。

设计、集成和测试

我们试图传达的一个关键主题是,架构师的角色并不止于概念设计。作为一名架构师,一个人会被其构建的内容以及系统的性能如何所评判。一个成功的系统是满足客户众多需求并实现其预期价值的系统。在这一阶段,过渡到实际开发,软件工程发生。架构师扮演的一个关键角色是确保设计实现了关键的非功能性或质量要求。

我们讨论了使用策略和模式来构建软件。在解决现有的设计挑战时,使用策略和模式已被证明是非常强大的。我们提出的策略和模式是作者发现的有帮助的。我们认为使用策略和模式有助于管理复杂性并改善工程团队之间的沟通。使用模式并非严格的要求。在构建复杂的软件时,每个系统、用例、领域和客户都是不同的,因此策略和模式的使用留给架构师自行判断。

一旦软件以代码的形式实现,集成和测试的需求就变得突出。集成应该有计划地进行,并且要及时。很多时候,系统级效应是在集成时首次实现的。集成挑战必须从整体角度解决。一个工程师可能认为的微小更改可能对系统的另一部分产生重大影响。集成也是团队内部和团队之间潜在摩擦出现的地方。如前所述,正是在这里,架构师的大局观和愿景可以用来确保集成修复不会与软件系统相矛盾或妥协。

最后,在开发活动结束时,架构师会审查测试计划和测试结果。

在现代软件开发实践中,应该有一种持续测试的文化。这确保了错误和误解能够尽快被发现。等待某个特定时间点或事件进行测试的想法是灾难的配方。测试应该覆盖系统的多个层次、测试接口和负载测试,以确保设计和实现是正确的。架构师独特地确保构建了正确的系统。

人工智能和架构的未来方向

人工智能系统和高级软件将继续重新定义许多领域。将会有许多新的机会被识别出来,其中人工智能技术可以以新的或新颖的方式使用。在大型规模和我们的许多生活领域构建人工智能系统才刚刚开始。软件开发未来的方向应该着眼于帮助涉及推理和控制决策的系统需求工程。为人工智能系统开发提供稳健的建模和仿真标准将有助于指定系统的整体质量和可靠性。

未来设计过程的一个推动因素包括人类既是系统功能的使用者也是贡献者。此外,对于人工智能系统的策略和模式的使用需要更好地定义和给予更多的具体性。需要定义稳健的策略,并捕捉设计如何受到以人工智能为中心的模式的冲击。我们还需要解决软件开发本身现在正受到人工智能技术的影响的问题。这些新的开发工具功能强大,可以节省时间,并提供有趣的见解,但它们不能取代建筑师所进行的认知思考。

展望未来,人工智能代理将承担比简单自动化更多的任务。随着大型语言模型和生成式人工智能的持续进步,这些代理正成为能够进行推理、从经验中学习并与其他系统协调以实现复杂目标的数字合作伙伴。在不久的将来,我们可以期待看到跨行业的代理网络,改善工作流程、支持决策并增强人类能力。这本书不仅旨在帮助您构建今天的智能系统,还旨在让您为参与塑造未来的智能系统做好准备。

展望未来

本书概述了一系列概念、洞察和经验教训。掌握这一领域的最佳方式是通过实践——实践操作概念、定义用例、进行需求收集、建模、设计活动、进行测试以及与客户合作。学会成为一名合格的建筑师是困难的,并且没有保证正确的指南或流程。我们希望这本书可以作为发展个人架构知识和直觉的参考。成为建筑师的道路就像稳步攀登一座永无止境的山——但这恰恰让风景变得更加美好。

祝好运。勇往直前,构建影响我们所有人的系统!

第九章:解锁您书籍的独家权益

您的这本书包含以下独家权益:

新一代 Packt 阅读器

AI 助手(测试版)

免版税 PDF/ePub 下载

如果您尚未解锁,请使用以下指南进行解锁。此过程只需几分钟,并且只需完成一次。

如何通过三个简单步骤解锁这些权益

步骤 1

准备好您购买此书的购买发票,因为在步骤 3中您将需要它。如果您收到的是纸质发票,请用手机扫描它,并准备好作为 PDF、JPG 或 PNG 格式。

如需更多帮助查找您的发票,请访问www.packtpub.com/unlock-benefits/help

注意:您是否直接从 Packt 购买了这本书?您不需要发票。完成步骤 2 后,您可以直接跳转到您的独家内容。

|

步骤 2

扫描此二维码或访问packtpub.com/unlock。| |

| 在打开的页面(如果您在桌面端,将类似于图 X.1),通过书名搜索这本书。请确保您选择了正确的版本。网页截图 AI 生成的内容可能不正确。图 X.1:桌面端 Packt 解锁着陆页面 |

| --- |

步骤 3

选择您喜欢的书籍后,请登录您的 Packt 账户或免费创建一个新账户。登录后,上传您的发票。它可以以 PDF、PNG 或 JPG 格式,且大小不得超过 10 MB。按照屏幕上的其余说明完成此过程。

|

需要帮助?

如果您遇到困难需要帮助,请访问www.packtpub.com/unlock-benefits/help获取有关如何查找发票及其他信息的详细 FAQ。以下二维码将直接带您到帮助页面:| |

注意:如果您仍然遇到问题,请联系 customercare@packt.com。

packtpub.com

订阅我们的在线数字图书馆,即可全面访问超过 7,000 本书籍和视频,以及行业领先的工具,帮助您规划个人发展并提升职业生涯。如需更多信息,请访问我们的网站。

为什么订阅?

  • 使用来自 4,000 多名行业专业人士的实用电子书和视频,节省学习时间,多花时间编码

  • 通过为您量身定制的 Skill Plans 提高学习效果

  • 每月免费获得一本电子书或视频

  • 完全可搜索,便于轻松访问关键信息

  • 复制粘贴、打印和收藏内容

在 www.packtpub.com 上,您还可以阅读一系列免费技术文章,订阅各种免费通讯,并享受 Packt 书籍和电子书的独家折扣和优惠。

您可能还喜欢的其他书籍

如果您喜欢这本书,您可能对 Packt 的其他书籍也感兴趣:

领域驱动重构

Alessandro Colla, Alberto Acerbis

ISBN: 978-1-83588-910-7

  • 了解如何识别系统组件的边界

  • 应用如边界上下文和通用语言的策略模式

  • 精通构建聚合和实体的战术模式

  • 发现主要的重构模式并学习如何实现它们

  • 识别复杂代码库中的痛点并解决它们

  • 探索事件驱动架构以实现组件解耦

  • 掌握编写验证和保持架构完整性的测试的技能

使用 Python 的清洁架构

Sam Keen

ISBN: 978-1-83664-289-3

  • 以 Pythonic 的方式应用清洁架构原则

  • 实施领域驱动设计以隔离核心业务逻辑

  • 在 Python 环境中应用 SOLID 原则以提高代码质量

  • 结构化项目以实现可维护性和易于修改

  • 为清洁架构的 Python 应用程序开发测试技术

  • 重构遗留 Python 代码以符合清洁架构原则

  • 使用清洁架构设计可扩展的 API 和 Web 应用程序

Packt 正在寻找像你这样的作者

如果你有兴趣成为 Packt 的作者,请访问 authors.packt.com 并今天申请。我们已经与成千上万的开发者和技术专业人士合作,就像你一样,帮助他们与全球科技社区分享他们的见解。你可以提交一般申请,申请我们正在招聘作者的特定热门话题,或者提交你自己的想法。

分享你的想法

现在你已经完成了 架构人工智能软件系统,我们非常想听听你的想法!如果你从亚马逊购买了这本书,请点击此处直接进入亚马逊评论页面并分享你的反馈或在该购买网站上留下评论。

你的评论对我们和科技社区非常重要,并将帮助我们确保我们提供高质量的内容。

posted @ 2026-07-27 16:27  绝不原创的飞龙  阅读(22)  评论(0)    收藏  举报