MLOps:构建生产机器学习系统的最佳实践(上)

简介: MLOps:构建生产机器学习系统的最佳实践

你可能已经听过很多次了,但只有一小部分机器学习模型投入生产。部署和运行机器学习模型对于大多数已经开始将ML应用于用例的行业来说都是一个挑战。在这篇文章中,我将分享一些MLOps的最佳实践和技巧,它们将允许您在生产环境中使用您的ML模型并正确地操作它。在我们开始之前,让我们讨论一下我们可能都知道的典型的ML项目生命周期。

ML项目生命周期

一个典型的ML生命周期可以概括为以下图表,主要由三个阶段组成。

640.png

在第一阶段,我们深入研究数据之前做好准备是很重要的。因此与业务专家一起,我们需要仔细定义我们的问题和业务目标!我们需要回答一些重要的问题,这些问题使我们能够对模型和生产线的设计进行培训和服务决策。例如:

理想的结果是什么?

我们的评估指标是什么?我们如何定义ROI?

成功和失败的标准是什么?

推理速度要求是什么?我们能否让每个功能都满足要求?…

在第二阶段,我们建立了我们的第一个ML模型,我们进行ML可行性研究。

我们使用第一阶段中定义的度量来证明ML业务价值。ML工程规则第1条的最佳实践是«保持第一个模型简单,并获得正确的基础模型»。最初的模型为我们的产品提供了最大的提升,所以它不需要一开始就成为最花哨的模型。

在第三阶段,我们进入生产阶段。这是本文的主要主题,因此我们将在接下来的小节中对此进行更详细的介绍。一旦我们的生产管道准备好并设计好了,我们便能够更快更有效地收集见解并迭代新想法。

数据科学家现在主要在做什么?

今天,大多数ML将机器学习模型投入生产的步骤都是差不读。作为数据科学家,它从ML用例和业务目标开始。有了这个用例,我们开始收集和探索来自不同数据源的相关数据,以理解和评估它们的质量。

640.png

一旦我们对数据有了感觉,我们就会开始设计一些我们认为对我们的问题感兴趣的功能。然后我们进入建模阶段并开始处理一些实验。在这个阶段,我们定期手动执行不同的实验步骤。对于每个实验,我们都要做一些数据准备,一些特性工程和测试。然后我们对我们认为特别有前途的模型或模型架构进行一些模型训练和超参数调优。

最后但并非最不重要的是,我们将评估所有生成的模型,针对准备好的测试数据集测试它们,评估不同的指标,查看性能,并将这些模型与其他模型进行比较,看看哪个模型最有效,哪个模型产生最高的评价指标。整个过程是迭代的,并且会一遍又一遍地手动执行,直到我们得到具有最佳性能的最漂亮的模型。

一旦我们获得了性能最好的模型,我们通常会把它放在某个存储中,然后把它扔给it和运营团队,他们的工作是将模型作为预测服务部署到生产环境中。

ML操作陷阱——这种方法有什么问题?

下面是上述方法的错误之处。

手动:这些步骤非常手动,每次都是从头开始编写的。每次数据科学家需要进行新的实验时,他都需要查看他的笔记本,更新它们并手动执行它们。如果模型需要用新的训练数据刷新,数据科学家需要再次手动执行他的代码。

耗时:此手工流程耗时且效率不高。

不可重用:在笔记本中编写的自定义代码只能由作者自己理解,不能被其他数据科学家或其他用例重用或利用。即使是作者自己有时也会发现,在一段时间后,很难理解他们的作品。

不可复现:复现性是指被重新创建或复制的能力。在机器学习中,能够复制精确的模型是很重要的。使用这里的手工流程,我们可能无法复制模型的旧版本,因为底层数据可能已经更改,代码本身可能已经被覆盖,或者依赖项及其确切版本可能没有被记录。因此,在出现问题的情况下,任何回滚到模型的旧版本的尝试都可能是不可能的。

易出错:这个过程会导致很多错误,比如训练偏差,模型性能下降,模型偏差,基础设施崩溃……

  • 训练偏差:当我们部署模型时,有时会注意到模型的在线性能完全低于我们在保留数据集上预期和测量的性能。对于可操作的机器学习模型,这种现象非常常见。训练和线上渠道之间的差异会导致偏差。训练的偏差可能很难检测到,并且会使模型的预测完全无用。为了避免出现此问题,我们需要确保在训练和线上服务数据上都完成了精确的处理功能,随时监控训练和线上服务数据的分布,并监控模型的实时性能并将其与离线性能进行比较。
  • 模型衰减:在大多数情况下,数据配置文件是动态的,并且会随时间变化。当基础数据发生变化时,模型性能会下降,因为现有模式已不再是最新的。静态模型很少继续发挥作用。我们需要确保使用新数据定期更新模型,并监控所提供模型的实时性能以触发模型衰减。下图显示了部署的模型如何随时间衰减,以及不断需要用新模型更新模型。

640.png

  • 模型偏差:在医学和金融领域,人工智能可以协助进行医学诊断,或测试某人的贷款资格。这些应用程序看起来很实用,但是在此类系统中任何偏差的影响都可能是有害的并且造成严重的后果。因此,未来AI系统的一个重要特性是对所有人的公平性和包容性。因此对于任何机器学习模型,衡量跨敏感功能(性别,种族等)的公平性都非常重要。敏感功能取决于上下文。即使对于不敏感的功能,评估AI系统在不同子组上的性能也很重要,以确保在部署模型之前,我们知道所有表现不佳的子组。

640.png

  • 可扩展性:可扩展性在机器学习中很重要,因为训练模型可能需要很长时间,因此优化需要数周训练的模型是不可行的。例如模型太大以致无法容纳在训练设备的工作内存中。即使我们决定垂直扩展也要比水平扩展更昂贵。在某些情况下,数据量可能不大一开始可能不需要扩展性,但是我们应该考虑,如果通过连续训练我们期望接收的训练数据量是否会随着时间增加并可能产生问题。

机器学习系统的主要组成部分

在本节中,我们将描述ML系统的主要组成部分以及围绕它们的最佳实践,这将使我们避免上述陷阱。

提供集成的ML系统并在生产中持续运行的过程涉及以下步骤:

640.png

让我们详细讨论每个组件。

1、数据集成:

该组件通常位于用例的ML管道之外。在成熟的数据处理过程中,数据工程师应该优化连续的数据获取和转换,以不断地向组织内的不同数据分析实体提供最新的数据,这些实体期待发现数据驱动的见解和更好的决策

2、数据验证:

在这个组件中,我们的重点是验证输入到管道的数据。我们不能低估这个问题在ML系统中的重要性。无论采用何种ML算法,数据中的错误都可能严重影响生成模型的质量。正如一个流行的数据科学概念所说的“垃圾进,垃圾出”。因此,尽早发现数据错误是至关重要的。

无错误数据可以发挥的另一个作用是模型输出分析。这个组件允许我们正确地理解和调试ML模型的输出。因此,数据在ML系统中必须被视为头等公民,就像算法和基础设施一样。在ML管道的每次执行时,都必须对其进行持续监视和验证。

这个步骤也用于模型训练之前,以决定我们是否应该重新训练模型或停止管道的执行。

下面是数据验证组件的典型行为:

它计算并显示关于数据的描述性统计信息,它还可以显示连续数据跨度的描述性统计信息(例如,当前管道执行N和上次管道执行N-1之间的数据),以查看数据分布是如何变化的。

640.png

它可以推断出表示使用中的数据的数据模式。

640.png

检测数据异常。它应该检查数据集是否与预定义的经过验证的模式匹配。它应该检测连续数据跨度之间的数据漂移(即当前流水线执行N和最后流水线执行N-1之间的数据漂移),比如不同天数的训练数据之间的数据漂移。它还应该通过比较训练数据和在线服务数据来检测训练和线上的偏差。

640.png

在生产中,下面是一个示意图展示在通过不断的训练的情况下,视图如何生成关于新到数据的统计信息、验证它并生成异常报告:

640.png

目录
相关文章
|
1月前
|
人工智能 算法 网络安全
基于PAI+专属网关+私网连接:构建全链路Deepseek云上私有化部署与模型调用架构
本文介绍了阿里云通过PAI+专属网关+私网连接方案,帮助企业实现DeepSeek-R1模型的私有化部署。方案解决了算力成本高、资源紧张、部署复杂和数据安全等问题,支持全链路零公网暴露及全球低延迟算力网络,最终实现技术可控、成本优化与安全可靠的AI部署路径,满足企业全球化业务需求。
|
4月前
|
人工智能 自然语言处理 安全
通过阿里云Milvus与PAI搭建高效的检索增强对话系统
阿里云向量检索Milvus版是一款全托管的云服务,兼容开源Milvus并支持无缝迁移。它提供大规模AI向量数据的相似性检索服务,具备易用性、可用性、安全性和低成本等优势,适用于多模态搜索、检索增强生成(RAG)、搜索推荐、内容风险识别等场景。用户可通过PAI平台部署RAG系统,创建和配置Milvus实例,并利用Attu工具进行可视化操作,快速开发和部署应用。使用前需确保Milvus实例和PAI在相同地域,并完成相关配置与开通服务。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署通义千问 QwQ-32B 模型,阿里云 PAI 最佳实践
3月6日阿里云发布并开源了全新推理模型通义千问 QwQ-32B,在一系列权威基准测试中,千问QwQ-32B模型表现异常出色,几乎完全超越了OpenAI-o1-mini,性能比肩Deepseek-R1,且部署成本大幅降低。并集成了与智能体 Agent 相关的能力,够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署 QwQ-32B,本实践带您部署体验专属 QwQ-32B模型服务。
|
2月前
|
存储 人工智能 自然语言处理
基于QwQ-32B+Hologres+PAI搭建 RAG 检索增强对话系统
本文介绍如何使用PAI-EAS部署基于QwQ大模型的RAG服务,并关联Hologres引擎实例。Hologres与达摩院自研高性能向量计算软件库Proxima深度整合,支持高性能、低延时、简单易用的向量计算能力。通过PAI-EAS,用户可以一键部署集成大语言模型(LLM)和检索增强生成(RAG)技术的对话系统服务,显著缩短部署时间并提升问答质量。具体步骤包括准备Hologres向量检索库、部署RAG服务、通过WebUI页面进行模型推理验证及API调用验证。Hologres支持高性能向量计算,适用于复杂任务的动态决策,帮助克服大模型在领域知识局限、信息更新滞后和误导性输出等方面的挑战。
|
2月前
|
人工智能 自然语言处理 API
Hologres × PAI × DeepSeek 搭建 RAG 检索增强对话系统
本文介绍如何使用PAI-EAS部署基于DeepSeek大模型的RAG(检索增强生成)服务,并关联Hologres引擎实例。Hologres与阿里云自研高性能向量计算软件库Proxima深度整合,支持高性能、低延时的向量计算能力。通过PAI-EAS,用户可以一键部署集成了大语言模型和RAG技术的对话系统服务,显著缩短部署时间,并提高问答质量。部署步骤包括准备Hologres向量检索库、部署基于DeepSeek的RAG服务、通过WebUI进行模型推理验证,以及通过API调用进行模型推理验证。Hologres还提供了特色功能支持,如高性能向量计算等。
|
3月前
|
机器学习/深度学习 数据采集 人工智能
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。
|
3月前
|
人工智能 自然语言处理 搜索推荐
云上玩转DeepSeek系列之三:PAI-RAG集成联网搜索,构建企业级智能助手
本文将为您带来“基于 PAI-RAG 构建 DeepSeek 联网搜索+企业级知识库助手服务”解决方案,PAI-RAG 提供全面的生态能力,支持一键部署至企业微信、微信公众号、钉钉群聊机器人等,助力打造多场景的AI助理,全面提升业务效率与用户体验。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
4月前
|
SQL 存储 人工智能
DMS+X构建Gen-AI时代的一站式Data+AI平台
本文整理自阿里云数据库团队Analytic DB、PostgreSQL产品及生态工具负责人周文超和龙城的分享,主要介绍Gen-AI时代的一站式Data+AI平台DMS+X。 本次分享的内容主要分为以下几个部分: 1.发布背景介绍 2.DMS重磅发布:OneMeta 3.DMS重磅发布:OneOps 4.DMS+X最佳实践,助力企业客户实现产业智能化升级
306 3
DMS+X构建Gen-AI时代的一站式Data+AI平台
|
2月前
|
机器学习/深度学习 传感器 数据采集
基于机器学习的数据分析:PLC采集的生产数据预测设备故障模型
本文介绍如何利用Python和Scikit-learn构建基于PLC数据的设备故障预测模型。通过实时采集温度、振动、电流等参数,进行数据预处理和特征提取,选择合适的机器学习模型(如随机森林、XGBoost),并优化模型性能。文章还分享了边缘计算部署方案及常见问题排查,强调模型预测应结合定期维护,确保系统稳定运行。
298 0

热门文章

最新文章