在 Google Cloud 上实现机器学习的最佳做法

本文档介绍了在 Google Cloud 上实现机器学习 (ML) 的最佳做法,重点关注了基于数据和代码的自定义训练模型。我们提供了一些有关如何在整个机器学习工作流中训练自定义模型的建议,其中包括关键操作和一些深入内容的链接。

下图提供了本文档中涉及的机器学习工作流中各个阶段的高级概述,其中包括:

  1. 机器学习开发
  2. 数据处理
  3. 实现训练
  4. 模型部署和投放
  5. 机器学习工作流编排
  6. 工件组织
  7. 模型监控

Google Cloud 上的机器学习工作流

本文档并未详尽列出所有建议;其目标是帮助数据科学家和机器学习架构师了解在 Google Cloud 上使用机器学习所涉及的活动范围,并进行相应的规划。虽然使用推荐的工具和产品中提到了 AutoML 等机器学习开发替代方案,但本文档重点介绍自定义训练模型。

在按照本文档中的最佳做法操作之前,我们建议您先阅读 Vertex AI 简介

就本文档而言,假设:

  • 您主要使用 Google Cloud 服务;本文档未介绍混合和本地方法。

  • 您计划收集训练数据并将其存储在 Google Cloud 中。

  • 您具备机器学习、大数据工具和数据预处理方面的中级知识,并且熟悉Cloud StorageBigQueryGoogle Cloud 基础知识。

如果您刚开始接触机器学习,请参阅 Google 的机器学习速成课程

下表列出了本文档所述的机器学习工作流的每个阶段的推荐工具和产品:

机器学习工作流步骤 推荐的工具和产品
机器学习环境设置
机器学习开发
数据处理
实现训练
模型部署和投放
机器学习工作流编排
工件组织
模型监控

Google 提供 AutoMLBigQuery ML 作为 Vertex AI 自定义训练模型解决方案的预构建训练例程替代方案。下表提供了有关何时使用这些选项或 Vertex AI 的建议。

机器学习环境 说明 在以下情况下选择此环境...
BigQuery ML BigQuery ML 将数据、基础架构和预定义的模型类型整合到一个系统中。
  • 您的所有数据都包含在 BigQuery 中。BigQuery 机器学习需要表格数据。
  • 您可以熟练使用 SQL。
  • BigQuery ML 中提供的模型集能够处理您尝试解决的问题。
AutoML(在 Vertex AI 上下文中) AutoML 为图片分类和表格回归等常见问题提供训练例程。几乎会为您处理训练和投放模型的所有方面,如选择架构、超参数调节和预配机器。
Vertex AI 自定义训练的模型 利用 Vertex,您可以运行自己的自定义训练例程,并在无服务器架构上部署任何类型的模型。Vertex AI 通过提供超参数调节和监控等其他服务,让您更轻松地开发模型。请参阅选择自定义训练方法
  • 您的问题与此表中列出的有关 BigQuery ML 或 AutoML 条件不符。
  • 您已在本地或其他云平台上运行训练,并且需要在平台之间保持一致性。
  • (可选)您使用的是 TensorFlow Extended。TensorFlow Extended Trainer 和 Pusher 步骤都支持在 Vertex AI(训练部署)上运行这些步骤。

机器学习环境设置

使用 Notebooks 进行实验和开发

无论您使用何种工具,我们都建议您使用 Notebooks 进行实验和开发,包括编写代码、启动作业、运行查询以及检查状态。借助 Notebooks,您能够以一种简单、可重现的方式访问 Google Cloud 的所有数据和人工智能 (AI) 服务。

Notebooks 还提供开箱即用的安全软件和访问模式。常见做法是自定义 Google Cloud 属性(例如网络和 Cloud Identity and Access Management)以及与笔记本关联的软件(通过容器)。如需了解详情,请参阅与 Vertex AI 交互的工具将笔记本与 Vertex AI 搭配使用

如需详细了解 Notebooks 管理,请参阅使用 Notebooks 进行实验

为每个团队成员创建一个 Notebooks 实例

为您的数据科学团队的每个成员创建新的 Notebook 实例。如果某位团队成员参与多个项目(尤其是具有不同依赖项的项目),我们建议您使用多个 Notebooks 实例,将每个 Notebooks 实例视为虚拟工作区。请注意,您可以在 Notebooks 实例未使用时将其停止。

帮助保护 Notebooks 中的个人身份信息

为确保 Notebooks 的安全,请参阅 Notebooks 安全蓝图:保护个人身份信息数据指南,该指南提供了有关如何应用数据治理和安全政策的明确指导信息,可帮助保护包含个人身份信息 (PII) 数据的 Notebooks。另请参阅 GitHub 中随附的可部署蓝图

在同一项目中存储准备好的数据和模型

您可以在存储模型的 Google Cloud 项目中存储准备好的数据,以便 AI 项目可以访问建模所需的所有数据集。这样有助于确保可再现性不会中断。但是,组织的不同部分可能会将其数据存储在不同项目中,并且机器学习模型依赖于不同项目中的原始数据可能是必需的。

优化性能和费用

如何提高机器学习工作负载的性能和降低费用是一个全面主题,不在本文档的讨论范围内。请参阅有关机器学习的性能和费用优化的最佳做法

使用 Python 版 Vertex SDK

使用 Python 版 Vertex SDK,这是一种 Python 方式,将 Vertex AI 用于端到端模型构建工作流,该方式可与您偏好的机器学习框架(包括 PyTorch、TensorFlow 和 scikit-learn)无缝搭配使用。

机器学习开发

机器学习开发涉及准备数据、实验和评估模型。解决机器学习问题时,通常需要构建和比较许多不同的模型,以找出最合适的模型。

通常,数据科学家使用不同的架构、输入数据集、超参数和硬件来训练模型。数据科学家通过查看聚合性能指标(如测试数据集的准确性、精确率和召回率)来评估生成的模型。最后,数据科学家会根据特定的数据子集评估模型的性能。

在这个过程中获得成功的研究人员往往是有条理地采用自己的方法、设定明确假设、一次进行一项更改,并围绕着最终结果收集一组可靠的指标。

准备训练数据

用于训练模型的数据可以源自任意数量的系统,例如,来自在线服务系统的日志、来自本地设备的映像或从 Web 抓取的文档。

无论数据的来源如何,都可以从源系统提取数据并转换为针对机器学习训练进行优化的格式和存储(不同于正在运行的来源)。如需详细了解如何准备训练数据以与 Vertex AI 结合使用,请参阅准备数据

在 BigQuery 中存储表格数据

如果您使用的是表格数据,我们建议您根据 BigQuery 对项目结构的建议,将所有数据存储在 BigQuery 中。在大多数情况下,您也可以将已处理的中间数据存储在 BigQuery 中。为了实现最大速度,最好存储具体化数据,而不是使用视图或子查询来训练数据。

使用 BigQuery Storage API 从 BigQuery 读取数据。下表列出了可让您更轻松地使用 API 的 Google Cloud 工具:

如果您使用的是... 使用以下 Google Cloud 工具
TensorFlow 或 Keras 适用于 BigQuery 的 tf.data.dataset reader
TFX BigQuery 客户端
Dataflow BigQuery I/O 连接器
任何其他框架 BigQuery Python 客户端库

在 Cloud Storage 上存储图片、视频、音频和非结构化数据

将这些数据以大型容器格式存储在 Cloud Storage 上。这适用于分片式 TFRecord 文件(如果您使用的是 TensorFlow)或 Avro 文件(如果您使用的是任何其他框架)。

将许多单独的图片、视频或音频剪辑组合成大型文件,因为这可以提高 Cloud Storage 的读写吞吐量。目标文件大小至少为 100mb,且分片数量在 100 到 10000 个之间。

如需启用数据管理,请使用 Cloud Storage 存储分区和目录对分片进行分组。如需了解详情,请参阅什么是 Cloud Storage?

对非结构化数据使用 Vertex Data Labeling

您可能需要人工为您的数据添加标签,尤其是在涉及非结构化数据时。使用 Vertex Data Labeling 来完成这项工作。您可以租用自己的标签添加者,使用 Google Cloud 的软件来管理其工作,也可以使用 Google 的内部标签添加者执行任务。如需了解详情,请参阅请求为数据加标签

将 Vertex Feature Store 与结构化数据结合使用

在使用结构化数据训练模型时,无论您在何处训练该模型,都请按照以下步骤操作:

  1. 搜索 Vertex Feature Store 以确定现有特征是否满足您的要求。

    1. 打开 Vertex Feature Store,然后进行搜索,看看是否已存在与您的用例相关的特征,或是否涵盖您希望传递给模型的信号。

    2. 如果 Vertex Feature Store 中包含您想要使用的特征,请使用 Vertex Feature Store 的批量投放功能为您的训练标签提取这些特征。

  2. 创建新特征。如果 Vertex Feature Store 中不包含您所需的特征,请使用数据湖中的数据创建新特征。

    1. 从数据湖中提取原始数据并编写脚本,以执行必要的特征处理和工程。

    2. 联接从 Vertex Feature Store 提取的特征值和您在数据湖创建的新特征值。合并这些特征值会生成训练数据集。

    3. 设置定期作业以计算新特征的更新值。确定某项特征非常有用并且您希望将其投入生产后,设置一个按所需频率定期计划的作业,以计算该特征的更新值并将其提取到 Vertex Feature Store。通过向 Vertex Feature Store 中添加新特征,您将自动获得一种在线投放特征的解决方案(针对在线预测用例),并且能够与组织中可针对其各自机器学习模型从特征中获取价值的其他人共享该特征。

如需了解详情,请参阅 Vertex Feature Store

避免将数据存储在块存储中

避免将数据存储在块存储中,例如网络文件系统或虚拟机 (VM) 硬盘。这些工具比 Cloud Storage 或 BigQuery 更难管理,并且往往在调整性能时会面临挑战。同样,请避免直接从 Cloud SQL 等数据库中读取数据。而是将数据存储在 BigQuery 和 Cloud Storage 中。如需了解详情,请参阅 BigQuery 的 Cloud Storage 文档加载数据简介

使用 Vertex TensorBoard 直观呈现实验

开发模型时,您可以使用 Vertex TensorBoard 查找并比较特定实验,例如根据超参数。Vertex TensorBoard 是一种企业级代管式 Vertex TensorBoard 服务,采用经济实惠的安全可靠解决方案,使数据科学家和机器学习研究人员能够无缝跟踪、比较、和分享他们的实验。Vertex TensorBoard 支持跟踪一段时间内的实验指标(例如损失和准确率)、直观呈现模型图以及将嵌入内容投影到较低维度空间,等等。

在 Notebooks 中针对小型数据集训练模型

对于小型数据集或较大数据集的子集,在 Notebooks 实例中训练模型可能已足够。将训练服务用于较大数据集或分布式训练可能会有所帮助。此外,如果按时间表或为响应更多数据到达而执行训练,则我们还建议使用 Vertex 训练服务对训练进行生产化,即使在较小数据集上也是如此。

使用超参数调节最大限度提高模型的预测准确率

为了最大限度地提高模型的预测准确率,请使用超参数调节,这是 Vertex Training 提供的一种自动模型增强功能,它利用 Google Cloud 的处理基础架构在训练模型时测试不同的超参数配置。超参数调节无需在多次训练运行过程中手动调整超参数,即可达到最优值。

如需详细了解超参数调节,请参阅超参数调节概览使用超参数调节

使用 Notebooks 评估和了解模型

使用 Notebooks 来评估和了解模型。除了 scikit-learn 等内置库外,Notebooks 还提供了 What-if Tool (WIT)Language Interpresible Tool (LIT)。WIT 可让您使用多种技术以交互方式分析模型是否存在偏差,而 LIT 则使您能够通过可视化、交互式和可扩展工具了解自然语言处理模型行为。

使用特征归因来深入了解模型预测

Vertex Explainable AI 是机器学习实现流程不可或缺的一部分,可提供特征归因以深入了解模型生成预测的原因。通过详细说明模型将其用作输入进行预测的每个特征的重要性,Vertex Explainable AI 可帮助您更好地了解模型的行为并在模型中建立信任。

Vertex Explainable AI 支持基于表格和图片数据的自定义训练模型。

如需详细了解 Vertex Explainable AI,请参阅:

数据处理

处理数据的推荐方法取决于您使用的框架和数据类型。本部分提供常见场景的高级建议。

如需了解有关机器学习的数据工程和特征工程的一般建议,请参阅机器学习的数据预处理:选项和建议以及使用 TensorFlow Transform 为机器学习预处理数据

在利用 TensorFlow 生态系统时使用 TensorFlow Extended

如果您使用 TensorFlow 进行模型开发,请使用 TensorFlow Extended 准备用于训练的数据。TensorFlow 转换是一个 TensorFlow 组件,支持定义和执行预处理函数以转换数据。

使用 BigQuery 处理表格数据

如果您使用的是表格数据,请使用 BigQuery 进行数据处理和转换步骤;使用机器学习时,请在 BigQuery 中使用 BigQuery ML。按正常 BigQuery 查询执行转换,然后将结果保存到永久表中。您可以使用视图(尤其是具体化视图)包含已处理的数据;但是,性能不会比完全具体化的表的性能低。如需详细了解 BigQuery ML,请参阅什么是 BigQuery ML?

使用 Dataflow 处理非结构化数据

如果有大量非结构化数据,请考虑使用 Dataflow,其使用 Apache Beam 编程模型。您可以使用 Dataflow 将非结构化数据转换为 TFRecord 等二进制数据格式,从而提高训练过程中数据提取的性能。

或者,如果您的组织投资 Apache Spark 代码库和技能,请考虑使用 Dataproc。对于适合内存的较小数据集,请使用一次性 Python 脚本。

如果您需要执行无法在 Cloud SQL 中表示或要进行流处理的转换,您可以结合使用 Dataflow 和 pandas 库。

预处理数据进行机器学习后,建议您考虑在 Vertex AI 中使用代管式数据集。使用代管式数据集,您可以在数据和自定义训练模型之间创建明确的关联,提供描述性统计信息,以及自动或手动拆分为训练集、测试集和验证集。

代管式数据集不是必需的;如果您希望更好地控制在训练代码中拆分数据,或者如果数据和模型之间的沿袭对于您的应用并不重要,则您可以选择不使用代管式数据集。

如需了解详情,请参阅数据集在自定义训练应用中使用代管式数据集

实现训练

实现训练是指使模型训练可重复、跟踪重复以及管理性能的过程。虽然 Notebooks 便于在小型数据集上迭代开发,但我们建议您将代码付诸应用,以便使其可重现并扩容到大型数据集。在本部分中,我们将讨论实现训练例程的工具和最佳做法。

在代管式服务中运行代码

我们建议您在 Vertex 训练服务Vertex 流水线中运行代码。

或者,您可以直接在深度学习虚拟机容器或 Compute Engine 中运行代码;但我们不推荐使用这种方法,因为 Vertex AI 代管式服务提供自动扩缩和爆发功能,因而更经济高效。

使用训练流水线实现作业执行

创建训练流水线,以便在 Vertex AI 上执行训练作业。与常规机器学习流水线不同的训练流水线使用额外的步骤封装训练作业。如需详细了解训练流水线,请参阅创建训练流水线REST 资源:projects.locations.trainingPipelines

使用训练检查点保存实验的当前状态

本文档中的机器学习工作流假定您没有以交互方式进行训练。如果您的模型失败并且没有检查点,则训练作业或流水线将会完成,并且数据会丢失,因为模型不在内存中。为防止出现这种情况,请尽量始终使用训练检查点,以确保您不会丢失状态。

我们建议您将训练检查点保存在 Cloud Storage 中。为每个实验或训练运行创建不同的文件夹。

如需详细了解检查点,请参阅 TensorFlow Core 的训练检查点在 PyTorch 中保存和加载一般检查点以及机器学习设计模式

准备生产工件以在 Cloud Storage 中提供服务

对于自定义训练模型或自定义容器,请将您的模型工件存储在 Cloud Storage 存储分区中,该存储分区的区域与您使用的区域端点相匹配。如需了解详情,请参阅存储分区地区

将 Vertex AI 存储分区位置和 Cloud Storage 存储分区存储在同一个 Google Cloud 项目中。如果您的 Cloud Storage 存储分区位于其他 Google Cloud 项目中,则需要授予 Vertex AI 访问权限以读取模型工件。

如果您使用预构建容器,请确保模型工件的文件名与以下示例完全匹配:

  • TensorFlow SavedModel:saved_model.pb

  • Scikit-learn:model.joblibmodel.pkl

  • XGBoost:model.bst

如需了解如何以一个或多个模型工件的形式保存模型,请参阅导出模型工件以进行预测

定期计算新特征值

通常,模型会使用一部分源自 Vertex Feature Store 的特征。Vertex Feature Store 中的特征已经做好在线投放的准备。对于数据科学家通过从数据湖中搜寻数据来创建的任何新特征,我们建议安排相应的数据处理和特征工程作业(或者最好是 Vertex Pipelines),按所需的频率定期计算新特征值(具体取决于特征的时效性需求),并将其提取到 Vertex Feature Store 以进行在线或批量投放。

模型部署和投放

模型部署和投放是指将模型投入生产。训练作业的输出是存储在 Cloud Storage 中的模型文件,您可以将其上传到 Vertex AI,以便该文件可用于预测服务。有两种类型的预测服务:批量预测用于定期对批量数据进行评分,在线预测用于对实时应用的数据进行近乎实时的评分。这两个方法都允许您通过将输入数据传递给云端托管的机器学习模型并获取每个数据实例的推断,从经过训练的模型获取预测结果。如需了解详情,请参阅获取批量预测结果从自定义训练模型获取在线预测结果

指定所需的机器数量和类型

如需部署模型以进行预测,请选择适合您的模型的硬件,例如不同的中央处理单元 (CPU) 虚拟机类型或图形处理单元 (GPU) 类型。如需了解详情,请参阅指定机器类型或容量层级

计划模型的输入

除了部署模型外,您还需要确定将输入传递给模型的方式。如果您使用批量预测,则可以从数据湖或 Vertex Feature Store Batching API 中获取数据。如果您使用的是在线预测,则可以将输入实例发送到服务,并在响应中返回您的预测。如需了解详情,请参阅响应正文详细信息

如果要部署模型以进行在线预测,则需要以低延迟、可扩缩的方式来投放需要传递给模型的端点的输入或特征。为此,您可以使用 Google Cloud 上的多个数据库服务之一,也可以使用 Vertex Feature Store 的在线服务 API。调用在线预测端点的客户端可以首先调用特征投放解决方案来提取特征输入,然后使用这些输入调用预测端点。

启用自动扩缩

如果您使用在线预测服务,在大多数情况下,我们建议您通过设置节点数下限和上限来启用自动扩缩功能。如需了解详情,请参阅使用 Google Cloud Console 部署模型。为确保高可用性服务等级协议 (SLA),请设置至少两个节点的自动扩缩。

如需详细了解扩缩选项,请参阅扩缩机器学习预测

机器学习工作流编排

Vertex AI 提供机器学习工作流编排功能,可使用 Vertex Pipelines 自动处理机器学习工作流,这是一项全代管式服务,让您能够根据需要随时重新训练模型。虽然重新训练可让您的模型适应变化并随着时间的推移保持性能,但在选择最优模型重新训练频率时,请考虑您的数据的变化程度。

机器学习编排工作流最适合已设计和构建模型的客户,并希望将其投入生产环境,并且想要确定机器学习模型中有哪些有效应用和哪些无效应用。您在实验中使用的代码在机器学习工作流程的剩余部分中进行一些修改后,可能会很实用。要使用自动化机器学习工作流,您需要精通 Python,了解容器等基本基础架构,并且具备机器学习和数据科学知识。

使用机器学习流水线编排机器学习工作流

虽然您可以手动启动每个数据处理流程、训练或部署步骤(也可以将所有操作整合到一个大步骤中),但我们建议您使用机器学习流水线来编排流。如需了解详情,请参阅 MLOps 级别 1:机器学习流水线自动化

如果您使用的是 TensorFlow,请使用 TensorFlow Extended 定义您的流水线以及每个步骤的操作,然后在 Vertex AI 的无服务器流水线系统中执行该流水线。请务必设置 Google Cloud 执行程序,以获取运行特定 Google 服务的各个步骤。

对于所有其他框架,请将 Kubeflow Pipelines 和 Vertex Pipelines 搭配使用。使用 Vertex AI 启动平台并与之交互。请注意,流水线步骤可以是调用 Google Cloud 服务

这会带来以下两个影响:

  • 无论选择哪种机器学习环境,您都可以使用流水线
  • 由于大多数操作是在代管式服务中进行,因此需要少数具有适量 CPU 和 RAM 的节点。

如需详细了解流水线,请参阅 Vertex Pipelines

虽然您可以考虑使用 Cloud Composer 等其他编排系统(请参阅 Airflow),但流水线是更好的选择,因为它包含对常见机器学习操作的内置支持,并且可以跟踪特定于机器学习的元数据和沿袭。沿袭对于验证流水线在生产环境中是否正常运行非常重要。

使用 Kubeflow Pipelines 实现灵活的流水线构建

对于想要编写代管式流水线的大多数用户而言,建议使用 Kubeflow Pipelines SDK。Kubeflow Pipelines 非常灵活,允许您使用简单代码构建流水线;还提供了 Google Cloud 流水线组件,让您可以在流水线中添加 Vertex AI 功能(如 AutoML)。如需详细了解 Kubeflow Pipelines,请参阅 Kubeflow PipelinesVertex Pipelines

如果您使用 TensorFlow 处理 TB 级结构化数据或文本数据,我们建议您使用 TensorFlow Extended 构建流水线。

通过 TensorFlow Extended SDK 利用预构建的组件执行常见步骤

TensorFlow 为 Vertex AI 工作流中的常见步骤(例如数据提取、数据验证和训练)提供了预构建的组件。每个步骤都已经过明确定义,具有一组明确的输入和输出,如果您还没有明确定义的机器学习工作流管理方法,则可以开箱即用相应步骤并开始运行。

在以下情况下,建议您使用 TensorFlow Extended SDK:

  • 已经在使用 TensorFlow
  • 使用结构化数据和文本数据
  • 处理大量数据

如需详细了解 TensorFlow Extended SDK,请参阅了解 TFX Pipelines

工件组织

工件是机器学习工作流中的每个步骤生成的输出。最佳做法是以标准化的方式组织工件。

组织机器学习模型工件

将工件存储在以下位置:

存储位置 工件
源代码控制代码库
  • 笔记本
  • 流水线源代码
  • 预处理函数
  • 模型源代码
实验和机器学习元数据
  • 实验
  • 参数
  • 指标
  • 数据集(引用)
  • 流水线元数据
Vertex AI
  • 经过训练的模型
Artifact Registry
  • 流水线容器
  • 自定义训练环境
  • 自定义预测环境
Vertex Prediction
  • 部署的模型数

使用 Git 代码库查看流水线定义和训练代码

您可以使用 Git 对机器学习流水线以及您为这些流水线构建的自定义组件进行版本控制。使用 Artifact Registry 存储、管理和保护您的 Docker 容器映像,而无需公开这些映像。

模型监控

将模型部署到生产环境中后,您需要监控性能以确保模型按预期运行。Vertex AI 提供两种监控机器学习模型的方法:

  • 偏差检测:此方法会查找模型训练与生产数据之间的失真程度

  • 偏移检测:在此类监控中,您将在生产数据中查找偏移。当模型尝试预测的输入和目标的统计属性以无法预见的方式随时间发生变化时,就会发生偏移。这会导致问题,因为随着时间的推移,预测结果可能不够准确。

模型监控适用于结构化数据(例如数值特征和分类特征),但不适用于非结构化数据(例如图片)。如需了解详情,请参阅监控特征偏差或偏移的模型

使用偏差检测

请尽可能使用偏差检测,因为我们知道您的生产数据与训练数据偏离之后,是一个非常有用的指标,可以表明您的模型在生产环境中的表现达不到预期。对于偏差检测,请通过提供用于训练模型的训练数据的指针来设置模型监控作业。

如果您无权访问训练数据,请开启偏移检测,以便了解输入随时间的变化。

微调提醒阈值

调整用于提醒的阈值,以便了解数据何时会出现偏差或偏移。提醒阈值取决于使用场景、用户专业知识以及初始模型监控指标。如需了解如何使用监控功能创建信息中心,或根据指标配置提醒。,请参阅 Cloud Monitoring 指标

使用特征归因来检测数据偏移或偏差

您可以使用 Vertex Explainable AI 中的特征归因来检测数据偏移或偏差,以尽早表明模型性能可能下降。例如,如果您的模型最初依赖于五个特征对训练数据和测试数据进行预测,但在该模型投入生产时开始依赖于完全不同的特征,则特征归因将有助于您检测到模型性能这种下降情况。

这对于复杂的特征类型(例如嵌入和时间序列)特别有用,这些特征类型使用传统偏差和偏移方法很难进行比较。使用 Vertex Explainable AI 时,特征归因可以指示模型性能下降的时间。

后续步骤