人工智能(AI)和机器学习(ML)领域有着悠久的历史。在过去70多年里,机器学习从20世纪50年代的跳棋游戏程序逐步发展到能够在围棋中击败世界冠军的高级人工智能。近年来,诸如ChatGPT等生成式人工智能(Generative AI,GenAI)技术席卷整个行业,引发了公司高管和消费者的广泛兴趣,并承诺在药物研发、新媒体内容、财务报告分析和消费品设计等领域带来全新的业务变革。
在这一过程中,机器学习的技术基础设施也从用于小型实验和模型的单机/服务器,发展到能够训练、管理并部署成千上万个机器学习模型的复杂端到端ML平台。人工智能/机器学习领域的高速发展催生了许多新的专业角色,例如MLOps工程师、AI/ML产品经理、ML软件工程师、AI风险经理以及AI战略师,覆盖了广泛的行业。
机器学习解决方案架构(ML Solutions Architecture)是另一个相对较新的领域,在ML项目的端到端生命周期中正扮演着日益重要的角色,特别是在业务影响、科学复杂性和技术环境日益复杂的背景下。
本章将帮助你理解机器学习解决方案架构在整个数据科学生命周期中的位置。我们将探讨如何从创意阶段推动ML项目到生产阶段,以及企业在实施ML计划时面临的挑战,例如用例识别、数据质量问题和ML人才短缺等。最后,我们将简要介绍ML解决方案架构的核心关注领域,包括系统架构、工作流自动化以及安全和合规性。
本章主要内容:
- 机器学习与传统软件的区别
- 机器学习生命周期及其主要挑战
- 什么是ML解决方案架构?它在整个生命周期中的作用是什么?
完成本章后,你将了解ML解决方案架构师的角色,以及为支持端到端ML项目需要关注的业务和技术领域。本章旨在为初次探索这一领域的读者提供对机器学习生命周期的基础性介绍。经验丰富的ML从业者可以选择跳过这一基础性内容,直接进入更高级的内容。
更高级的部分从第4章开始,但许多技术从业者可能会发现第2章具有帮助,因为技术从业者通常需要更多的业务理解,来识别ML在不同业务和工作流中的应用领域。此外,第3章可能对某些从业者有益,因为它为ML算法的新手提供了入门介绍,同时也可以作为定期实践这些概念者的复习材料。
机器学习与传统软件的区别
在进入人工智能(AI)和机器学习(ML)领域之前,我花了许多年为大型金融服务机构构建计算机软件平台。我参与解决的一些业务问题包含复杂的规则,例如为投资银行交易进行可比分析选择公司,或者为来自不同数据提供商的公司标识符创建一个主数据库。为了解决这些问题,我们必须在数据库存储过程和应用服务器后端中实现硬编码规则。我们经常争论某些规则是否合理,是否适用于我们试图解决的业务问题。
当规则发生变化时,我们不得不重新实现这些规则,并确保更改不会破坏其他功能。为了测试新版本或变更,我们通常依赖人工专家对实现的业务逻辑进行详尽的测试和验证,然后才能上线。这是一个非常耗时且容易出错的过程,每次引入新规则或需要更改现有规则时,都需要大量的工程资源、根据文档规范的测试,以及严格的变更管理。在生产环境中,我们还经常依赖用户报告业务逻辑问题。当生产中出现问题时,有时我们不得不打开源码来排查问题或解释逻辑的工作原理。我常常问自己,有没有更好的方法来完成这些工作。
进入AI/ML领域后,我开始使用ML技术解决许多类似的挑战。借助ML,我不再需要设计那些需要深入数据和领域知识才能创建或维护的复杂决策规则。相反,我专注于收集高质量数据,并使用ML算法直接从数据中学习规则和模式。这种新方法消除了创建新规则(例如需要深入领域知识或避免人为偏见)以及维护现有规则的许多挑战。
在上线之前验证模型时,我们可以通过检查模型性能指标(如准确率)来评估其效果。虽然仍需要数据科学专家将模型指标与业务问题和数据集的特性进行解释,但不需要对所有不同场景进行详尽的手动测试。当模型部署到生产环境后,我们通过监控生产数据与用于模型训练的数据之间的显著变化,检查模型是否按预期运行。我们会定期收集新的、未见过的数据和标签来测试模型性能,以确保在面对新的生产数据时,模型的预测准确性依然稳健。
至于解释模型为何以某种方式做出决策,我们不再需要打开源码检查硬编码逻辑,而是依赖ML技术分析不同输入特征的重要性,从而了解哪些因素对ML模型的决策影响最大。
以下图展示了开发传统软件和训练ML模型两者之间流程差异的图示:
现在你已经了解了机器学习(ML)和传统软件之间的区别,是时候深入探讨ML生命周期的不同阶段了。
ML生命周期
我参与的一个早期ML项目是为一个主要联赛品牌开发的体育预测分析问题,这既充满了吸引力又具有挑战性。我需要思考一系列预测分析结果,看看是否可以用ML来解决这些问题。作为一名休闲观众,我对这项运动了解有限,既不清楚需要生成的分析内容,也不了解比赛规则的具体细节。我获得了一些示例数据,但完全不知道如何处理它。
第一步,我开始深入了解这项运动本身。我研究了比赛的复杂性,熟悉了不同球员的位置以及构成每场比赛和每次行动的事件细节。只有在掌握了这些新的领域知识后,数据才开始变得有意义。随后,我与利益相关者一起评估了不同分析结果的影响,并根据已有数据评估了建模的可行性。在明确理解数据后,我们确定了几个对业务影响最大的ML分析目标,并决定如何将它们集成到现有的业务流程中,以及如何衡量其影响。
接下来,我深入研究了数据,以确认哪些信息是可用的,哪些是缺失的。原始数据集包含许多无关的数据点,这些数据需要被移除,而相关数据点则需要被转换,以提供更强的模型训练信号。我基于几个选定的ML算法对数据集进行了处理和准备,并通过实验确定了最佳方法。当时,我缺乏工具来跟踪不同实验的结果,因此只能手动记录我所做的事情。经过几轮初步实验后,我发现现有数据不足以训练一个高性能模型。
因此,我决定构建一个自定义的深度学习模型,结合不同模态的数据,因为这些数据点具有时间依赖性,还需要额外的空间信息来进行建模。数据所有者提供了我所需的额外数据集,在更多实验、自定义算法的尝试、大量的数据准备和特征工程后,我最终训练出了一个符合业务目标的模型。
完成模型后,新的挑战开始了——将模型部署到生产环境中并实现其运营化,同时将其集成到现有的业务流程和系统架构中。我们进行了许多架构和工程讨论,最终为模型构建了一套部署架构。
从我的个人经验中可以看到,从业务构想到ML模型的生产部署涉及许多步骤。一个典型的ML项目生命周期遵循一个正式的结构,包括几个关键阶段:业务理解、数据获取和理解、数据准备、模型构建、模型评估以及模型部署。
由于ML生命周期的大部分是围绕不同数据集、特征和算法的实验过程,因此整个流程是高度迭代的。此外,需要注意的是,成功的结果并没有保证。数据的可用性和质量、特征工程技术(利用领域知识从原始数据中提取有用特征的过程)、学习算法的能力等因素都可能影响最终结果。
前图展示了机器学习(ML)项目的关键步骤,在接下来的章节中,我们将更详细地探讨这些步骤。
业务问题理解与机器学习问题定义
机器学习(ML)生命周期的第一阶段是业务理解。这一阶段需要明确业务目标,并定义可以衡量项目成功的业务指标。例如,以下是一些业务目标的示例:
- 降低运营流程成本:如文档处理等流程的成本优化。
- 缓解业务或运营风险:例如欺诈检测和合规性管理。
- 提升产品或服务收入:如通过更精准的目标营销、生成新洞察以改进决策、提升客户满意度等。
为衡量成功,可以使用具体的业务指标,例如:
- 业务流程中减少的工时数量;
- 检测到的真实欺诈案例数量的增加;
- 目标营销转化率的提升;
- 客户流失率的降低。
确保在这一阶段正确定义目标非常关键,因为这不仅为ML项目提供了充分的理由,还确保项目成果可以被成功衡量。
在定义了业务目标和业务指标之后,还需要评估业务问题是否可以通过ML解决。虽然ML有广泛的应用场景,但它并不是每个业务问题的最佳解决方案。
数据理解与数据准备
“数据是新的石油”这句话在机器学习(ML)领域尤为贴切。没有必要的数据,ML项目就无法推进。因此,ML生命周期的下一步是数据获取、理解和准备。
根据业务问题和ML方法,需要收集并理解可用数据,以确定是否拥有解决ML问题所需的数据类型和足够的数据量。例如,假设需要解决的业务问题是信用卡欺诈检测,那么所需的数据集可能包括历史信用卡交易数据、客户人口统计数据、账户信息、设备使用数据以及网络访问数据。随后,需要对数据进行详细分析,判断数据集的特征和质量是否足够支持建模任务。此外,还需决定数据是否需要标注,例如标注为“欺诈”或“非欺诈”。在这一阶段,可能需要根据数据质量进行大量的数据清洗和整理(数据整治),以生成适合用于模型训练和评估的数据集。
模型训练与评估
在建立了训练集和验证集后,数据科学家需要运行多次实验,尝试不同的ML算法和数据集特征,进行特征选择和模型开发。这是一个高度迭代的过程,可能需要多次进行数据处理和模型开发,才能找到算法和数据集的最佳组合,实现模型的最佳性能。
除了模型性能,还需要考虑数据偏差和模型可解释性等因素,以满足内部或监管要求。在将模型部署到生产环境之前,必须通过相关的技术指标(如准确率)验证模型质量。这通常通过保留数据集(也称为测试集)完成,用于评估模型在未见数据上的表现。
理解哪些指标适合模型验证至关重要,因为不同的ML问题和数据集会有不同的验证需求。例如:
- 文档分类的应用场景中,如果文档类型数量相对平衡,模型准确率是合适的验证指标。
- 欺诈检测的应用场景中,模型准确率则不适用。因为欺诈的数量较少,即使模型始终预测“非欺诈”,其准确率可能仍然很高,但实际效果却很差。
通过这些步骤,可以有效地评估和优化模型性能,为后续的生产部署提供保障。
模型部署
当模型经过充分训练和验证,并达到预期性能指标后,可以将其部署到生产环境和业务工作流中。在这里,主要有两个部署概念:
- 模型部署:将模型部署为供客户端应用程序使用的服务,用于生成预测结果。
- 预测工作流集成:将预测工作流集成到业务工作流应用程序中。
例如,在部署信用卡欺诈检测模型时,可以通过API托管模型以支持实时预测,或者将模型打包为可动态加载的形式以支持批量预测。此外,这一预测工作流还需要集成到业务工作流应用程序中,如实时交易欺诈检测、基于预测结果的决策自动化,以及提供详细欺诈分析的欺诈检测报告。
模型监控
机器学习生命周期并不在模型部署后结束。与开发者明确编码逻辑的软件不同,ML模型的行为并非完全确定。在生产环境中,模型的行为可能与训练和验证阶段有所不同。这可能是由于生产数据的特征或分布发生了变化,或是请求数据被潜在地操纵。因此,模型监控是部署后的一个重要步骤,用于检测模型性能退化(即模型漂移)或生产环境中的数据集分布变化(即数据漂移)。
业务指标跟踪
实际的业务影响需要作为一个持续的过程进行跟踪和测量,以确保模型能够带来预期的业务收益。这可能包括比较模型部署前后的业务指标,或者通过A/B测试比较有无ML模型参与的工作流之间的业务指标。如果模型未能实现预期的收益,则需要重新评估改进的可能性。这可能还需要将业务问题重新定义为一个不同的ML问题。
例如,如果客户流失预测未能提升客户满意度,可以考虑转而通过个性化的产品或服务推荐来解决问题。
机器学习的挑战
多年来,我在解决实际问题时使用了许多机器学习(ML)解决方案,同时也遇到了不同行业在ML应用过程中面临的各种挑战。
在ML项目中,我经常被问到同样的问题: “我们有很多数据——你能帮我们找出可以用ML生成哪些洞察吗?” 我将这些提问的公司归类为面临业务用例挑战的公司。无法为ML识别出明确的业务用例是许多公司面临的一大障碍。没有清晰定义的业务问题以及其价值主张和收益,ML项目的启动就会变得十分困难。
在与不同行业的公司沟通时,我发现与数据相关的挑战是一个常见的问题,包括数据质量、数据清单、数据可访问性、数据治理和数据可用性等方面。这些问题不仅影响数据匮乏的公司,也影响数据丰富的公司,且往往因数据孤岛、数据安全性和行业监管等问题而进一步加剧。
数据科学和ML人才短缺是另一个我从许多公司听到的主要挑战。总体而言,企业在吸引和留住顶尖ML人才方面面临很大困难,这是各行业的普遍问题。随着ML平台日益复杂,ML项目的范围不断扩大,其他与ML相关的职能需求也逐渐显现。如今,除了数据科学家,组织还需要专职的ML产品管理、ML基础设施工程和ML运维管理等角色。
根据我的经验,我还观察到,对ML解决方案的文化接受度是ML广泛采用的另一个重要挑战。有些人将ML视为对其工作职能的威胁,而对ML缺乏了解使他们不愿意在业务工作流中采用这些新方法。
ML解决方案架构这一实践旨在帮助解决ML中的一些挑战。在下一节中,我们将探讨ML解决方案架构及其在ML生命周期中的角色。
机器学习解决方案架构
在我最初以机器学习解决方案架构师(ML Solutions Architect)的身份与公司合作时,行业格局与现在大不相同。当时的重点主要集中在数据科学和建模上,问题的范围也较小。那时,大多数问题可以通过简单的机器学习技术解决。数据集规模较小,所需的基础设施要求并不高,ML计划的范围通常仅限于少数数据科学家或小团队。作为当时的ML架构师,我主要需要具备扎实的数据科学技能和一般的云架构知识即可完成工作。
近年来,ML项目的格局变得更加复杂和多面化,需要企业内部更多职能角色的参与。我的工作范围也扩大了,包括与业务高管讨论ML战略和组织设计,以便推动AI/ML在整个企业中的广泛采用。我需要为大型企业设计更复杂的ML平台,利用各种技术来满足严格的安全和合规性要求。ML工作流编排和运维已成为日益重要的讨论话题,同时越来越多的公司希望使用海量训练数据来训练大型ML模型。一些公司的ML模型训练和部署数量在短短几年内从几十个迅速增长到数万个。此外,注重安全性和高复杂度的客户也寻求关于ML隐私、模型可解释性以及数据和模型偏差等方面的指导。作为一名ML解决方案架构师,我深刻感受到,要在这一角色中取得成功所需的技能和知识已经发生了显著的演变。
在业务、数据、科学和技术的复杂环境中摸索前进可能是一项艰巨的任务。作为一名ML解决方案架构师,我亲眼见证了公司在整合这些元素时面临的挑战。在我看来,ML解决方案架构是一个不可或缺的学科,它充当了ML项目各组成部分之间的桥梁。根据我多年来在各类企业和不同行业工作的经验,我认为ML解决方案架构师在以下方面扮演了关键角色:
- 确定业务需求
- 开发针对这些需求的ML解决方案
- 设计运行这些解决方案所需的技术平台
通过与不同的业务和技术合作伙伴协作,ML解决方案架构师可以帮助公司充分挖掘数据的潜力,并从ML项目中实现切实的收益。
以下图示展示了ML解决方案架构涵盖的核心功能领域:
在接下来的章节中,我们将更详细地探讨这些领域:
- 业务理解:理解业务问题,并通过AI和ML实现业务问题的转化。
- ML技术的识别与验证:识别和验证适用于特定ML问题的ML技术。
- ML技术平台的系统架构:设计并实施ML技术平台的系统架构。
- MLOps:设计ML平台的自动化技术方案。
- 安全与合规:针对ML平台和ML模型的安全性、合规性以及审计考虑。
那么,让我们开始吧!
业务理解与ML转化
业务工作流分析的目标是识别工作流中的低效之处,确定ML是否可以用于消除痛点、提高效率,甚至创造新的收入机会。
设想一个场景:你被要求改善呼叫中心的运营。你知道存在需要解决的低效问题,但不确定从何入手。这时,业务工作流分析就派上了用场。通过分析呼叫中心的工作流,你可以识别出痛点,例如客户等待时间过长、客服人员知识不足,以及无法从通话录音中提取客户洞察。一旦确定了这些问题,你可以评估可用的数据以及需要改进的业务指标。
在这里,ML可以大显身手。例如,你可以使用ML构建虚拟助手以处理常见客户查询,转录音频记录以进行文本分析,并检测客户意图以推动产品交叉销售和追加销售。但是,有时需要调整业务流程以整合ML解决方案。例如,如果你希望通过通话记录分析生成产品交叉销售或追加销售的洞察,而业务流程中尚未建立利用这些洞察的机制,则可能需要引入一个自动化目标营销流程或销售团队的主动外呼流程。
ML技术的识别与验证
在列出ML选项后,下一步是验证这些ML方法背后的假设是否有效。这可能包括执行简单的概念验证(POC)建模以验证可用数据集和建模方法,使用预构建的AI服务进行技术POC,或测试ML框架。
例如,你可能希望测试使用现有的文本转录服务从音频文件中转录文本的可行性,或者为营销活动中的新产品转化率构建客户倾向模型。
需要注意的是,ML解决方案架构并不专注于开发新的机器学习算法,这更适合应用数据科学家或研究型数据科学家。相反,ML解决方案架构的重点在于识别并应用ML算法来解决各种ML问题,例如预测分析、计算机视觉或自然语言处理。此外,建模任务的目标并不是构建生产级模型,而是验证方法,以便全职应用数据科学家可以进一步开展实验。
系统架构设计与实施
ML解决方案架构师最重要的职责是ML平台的技术架构设计。平台需要具备支持ML生命周期各阶段以及不同角色(如数据科学家和运维工程师)的技术能力。具体来说,一个ML平台需要具备以下核心功能:
-
数据探索与实验
数据科学家使用ML平台进行数据探索、实验、模型构建和模型评估。平台需要提供以下能力:- 数据科学开发工具:用于模型创建和实验。
- 数据整理工具:支持数据探索和清洗操作。
- 源代码管理:用于代码版本控制。
- 包管理库:用于管理依赖库和工具包。
-
数据管理与大规模数据处理
数据科学家或数据工程师需要技术能力来摄取、存储、访问和处理大量数据,以便进行清洗、转换和特征工程。 -
模型训练基础设施管理
ML平台需要提供模型训练的基础设施,支持不同类型的计算资源、存储和网络配置,同时支持多种ML库或框架(如scikit-learn、TensorFlow和PyTorch)。 -
模型托管/服务
ML平台需要具备技术能力来托管和提供模型服务,用于实时预测、批量预测或两者兼顾。 -
模型管理
已训练的ML模型需要进行管理和追踪,方便访问和查询,并包含相关元数据。 -
特征管理
公用且可复用的特征需要进行管理,以支持模型训练和模型服务的使用场景。
ML平台工作流自动化
ML平台设计的关键方面之一是工作流自动化和持续集成/持续部署(CI/CD),这也被称为MLOps。机器学习是一个多步骤的工作流,自动化至关重要,包括数据处理、模型训练、模型验证以及模型托管。自动化设计的另一个方面是基础设施的自动化配置和自助服务能力。工作流自动化的关键组件包括:
-
流水线设计与管理
平台需要具备创建不同自动化流水线的能力,用于各种任务,例如模型训练和模型托管。 -
流水线执行与监控
平台需要支持运行不同的流水线,并监控整个流水线以及ML周期中每个步骤(如数据处理和模型训练)的执行状态。 -
模型监控配置
平台需要具备在生产环境中监控模型的能力,包括以下指标:- 数据漂移:生产环境中使用的数据分布与模型训练数据分布的偏差。
- 模型漂移:模型在生产环境中的性能与训练结果的性能下降。
- 偏差检测:ML模型在生产中是否重现或放大了对某些个体的偏见。
安全与合规
ML解决方案架构的另一个重要方面是敏感或企业环境中的安全性和合规性设计:
-
身份验证与授权
ML平台需要提供身份验证和授权机制,以管理对平台及其不同资源和服务的访问权限。 -
网络安全
平台需要配置多种网络安全控制,例如防火墙和IP地址访问白名单,以防止未经授权的访问。 -
数据加密
对于安全性敏感的组织,数据加密是ML平台设计中的另一个重要考虑因素。 -
审计与合规
审计和合规团队可能需要了解预测模型的决策依据、从数据到模型制品的溯源过程,以及数据和模型中是否存在偏差。ML平台需要提供以下功能:- 模型可解释性:解释预测模型如何得出决策。
- 偏差检测:识别数据和模型中的潜在偏差。
- 模型溯源:跨不同数据存储和服务组件追踪模型的来源和历史。
许多技术供应商已经建立了指导ML基础设施设计和实施的最佳实践,这是ML解决方案架构师实践的一部分。例如,Amazon Web Services(AWS)发布了机器学习镜头(Machine Learning Lens) ,提供了跨关键领域的架构最佳实践,如运营卓越、安全性、可靠性、性能、成本优化和可持续性。
遵循这些已发布的指南可以帮助从业者实施稳健且高效的ML解决方案。
总结
在本章中,我分享了作为机器学习(ML)解决方案架构师的一些个人经验,并概述了ML生命周期中涉及的核心概念和组件。我们讨论了ML解决方案架构师在整个生命周期中的关键职责。本章旨在帮助你理解成为一名高效的ML解决方案架构师所需的技术领域和业务领域知识。
通过这些基础知识,你应该对这一角色的广泛职责及其在成功交付ML解决方案中的重要作用有了更深的认识。
在接下来的章节中,我们将深入探讨ML在不同行业(例如金融服务、媒体和娱乐)中的各种应用场景,以进一步了解ML的实际应用。