此语言为机器翻译,尚未经过人工审核。

人工智能 · 文章

机器学习模型如何被训练、优化和部署

发布:

要点

机器学习模型通过三个主要阶段构建:使用梯度下降等算法在标注数据上进行训练,通过超参数调优和针对留置测试集的验证进行优化,以及作为API、批处理任务或边缘嵌入式服务部署到生产环境。每个阶段之后都进行持续监控,当性能漂移时可以触发重新训练。

此版本是原文(English)的机器翻译。 阅读原文

每个机器学习系统,从垃圾邮件过滤器到大型语言模型,在到达用户之前都要经历相同的大致阶段:数据被准备好,在这些数据上训练一个模型,其性能被测量和调优,最后它被发布到一个实时环境中并持续被监控。云服务提供商和工程团队将这个过程称为ML生命周期,无论模型是一个小型分类器还是一个十亿参数网络,其机制基本相同。

训练:模型如何从数据中学习

根据Google Cloud的架构文档,生命周期始于数据处理:团队进行探索性数据分析以理解数据的结构,清理数据,将其分为训练集、验证集和测试集,并进行特征工程使数据格式适合模型使用。只有在完成这些准备工作后,数据科学家才开始实现算法和训练。

对于神经网络,训练依赖于两种相关联的技术,如GeeksforGeeks所解释的:前向传播,网络处理输入数据以产生预测,以及损失函数,用于测量该预测与真实标签的偏差程度。反向传播然后通过使用链式法则逐层计算每个内部参数对该误差的贡献。梯度下降使用这些计算得到的梯度来调整每个参数,使其朝着减少损失的方向移动。这个前向传播/反向传播/更新的循环在多个时期内重复,直到模型收敛到损失函数的最小值,根据GeeksforGeeks。

优化:调优和验证模型

单独的训练不能保证得到可用的模型。Google Cloud的文档指出,团队在已实现的算法上进行超参数调优以获得最佳性能,调整学习率、批大小或时期数等设置,而不是模型自己学习的参数。Google关于管理ML项目的开发者文档补充说,这个实验阶段是团队测试不同特征组合、超参数值和模型架构的地方,通常要运行数百个实验才能找到可行的组合。

一旦候选模型存在,它就在留置测试集上进行评估——即模型在训练期间没有见过的数据——以产生质量指标。IBM将这一步描述为使用准确性和公平性等指标在未见过的数据上评估性能。然后将模型与基准进行验证:Google Cloud的文档声明这确认了模型的预测性能优于定义的阈值,然后才被允许移向部署。

部署:将模型投入生产

部署是验证后的模型开始对真实数据进行预测的阶段。Snowflake的文档将模型部署定义为受管理的释放验证后的模型,连同其依赖项和推理逻辑,进入生产环境,其中它可以被版本化、执行、监控和必要时回滚。

Google Cloud和Snowflake都描述了可比较的一组部署模式,总结如下。

常见的ML部署模式
模式工作方式典型用途
在线/实时微服务通过REST API公开模型,以低延迟同步返回预测欺诈检测、推荐
批处理模型根据计划或由管道事件触发对大量记录进行评分报告、定期评分任务
无服务器/异步模型在事件触发时运行,结果在稍后检索而不是立即返回峰值或长运行的工作负载
边缘/嵌入式模型直接在本地或移动设备上运行,而不是中央服务器离线操作、数据本地性需求

Snowflake指出每种部署方式都有权衡:实时服务需要仔细处理延迟、可用性和扩展性,而批处理系统更容易管理但受评分计划运行频率的限制。边缘部署降低了延迟并将数据保持在本地,但使得跟踪哪个模型版本在许多分布式设备上运行变得更困难。

监控、漂移和重新训练

部署不是流程的终点。IBM指出持续监控追踪生产中的模型性能,检测准确性漂移等问题,并生成警报以实现快速干预,并可以触发用更新数据的重新训练。Snowflake同样将监控和漂移检测列为核心部署职责,同时还有回滚规划——用于在新模型表现不佳时回滚到较早模型版本的预定义触发器和所有权结构。

Google Cloud的文档将其视为成熟度谱。在自动化程度最低的水平上,每一步——从数据准备到部署——都是手动的,这是早期项目和不频繁发布的典型。更成熟的设置添加了验证数据和模型并检测漂移的自动化管道,最自动化的设置集成了持续集成和交付,使得实验、测试、部署和监控作为连接的、主要自动化的阶段运行。

生命周期背后的工具

IBM对这一实践(称为MLOps)的概述列出了团队在每个阶段通常依赖的工具类别:用于构建和训练模型的机器学习框架,如TensorFlow和PyTorch,用于版本控制的Git,用于自动化管道步骤的CI/CD平台,如Jenkins或GitLab CI/CD,以及用于在AWS、Azure或IBM Cloud等云基础设施上编排训练、部署和监控的专用MLOps平台,如Kubeflow或MLflow。

MLOps是一套旨在为构建和运行机器学习模型创建装配线的实践。

— IBM

常见问题

训练和优化机器学习模型有什么区别?
训练是将模型的参数拟合到数据的过程,通常通过前向传播、损失计算和基于梯度的更新来完成。优化是指调优超参数——在训练前选择的设置,如学习率或批大小——以改进已训练模型的性能,根据Google Cloud的文档。
超参数调优实际上调整什么?
它调整在训练期间不从数据中学习的设置,如学习率、批大小或训练时期数,目标是找到产生最佳性能模型的组合,根据Google的开发者文档。
模型如何部署到生产环境?
验证后的模型与其依赖项和推理逻辑一起打包,并作为实时API、批处理评分任务、无服务器触发器或边缘设备上的嵌入式模型发布到生产环境,根据Snowflake的文档。
部署的模型在发布后为什么需要监控?
生产数据模式可能随时间变化,降低模型的准确性——这是IBM称为漂移的现象。持续监控检测这种性能下降,并可以触发用更新数据的重新训练以恢复性能。
在整个ML生命周期中通常使用什么工具?
IBM列出用于训练的框架如TensorFlow和PyTorch,用于版本控制的Git,用于管道自动化的Jenkins或GitLab CI/CD,以及用于在云平台上编排训练和部署的Kubeflow或MLflow。

来源

  1. Google Cloud — MLOps: Continuous delivery and automation pipelines in machine learning
  2. IBM — What is MLOps?
  3. Snowflake — What Is Model Deployment in Machine Learning?
  4. Google Developers — ML development phases
  5. GeeksforGeeks — How Does Gradient Descent and Backpropagation Work Together?

本文由人工智能撰写,发布前已通过自动来源核查。如发现错误,请申请更正。 申请更正或回应 · 我们如何制作

相关文章