生产就绪的应用深度学习指南(四)

原文:zh.annas-archive.org/md5/e14f18bbb2088c66db1babf46e8b6eee

译者:飞龙

协议:CC BY-NC-SA 4.0

第十二章:生产中深度学习端点监控

由于开发和生产设置的差异,一旦部署后深度学习DL)模型的性能保证就变得困难。如果模型行为存在任何差异,必须在合理的时间内捕捉到;否则,会对下游应用产生负面影响。

在本章中,我们的目标是解释生产中监控 DL 模型行为的现有解决方案。我们将首先清楚地描述监控的好处以及保持整个系统稳定运行所需的条件。然后,我们将讨论监控 DL 模型和警报的流行工具。在介绍的各种工具中,我们将深入了解CloudWatch。我们将从 CloudWatch 的基础知识开始,讨论如何将 CloudWatch 集成到运行在SageMakerElastic Kubernetes ServiceEKS)集群上的端点中。

在本章中,我们将覆盖以下主要话题:

  • 生产中 DL 端点监控简介

  • 使用 CloudWatch 进行监控

  • 使用 CloudWatch 监控 SageMaker 端点

  • 使用 CloudWatch 监控 EKS 端点

技术要求

您可以从本书的 GitHub 仓库下载本章的补充材料:github.com/PacktPublishing/Production-Ready-Applied-Deep-Learning/tree/main/Chapter_12

生产中 DL 端点监控简介

我们将从描述部署端点的 DL 模型监控的好处开始本章。理想情况下,我们应该分析与传入数据、传出数据、模型指标和流量相关的信息。监控列出数据的系统可以为我们提供以下好处。

首先,模型的输入和输出信息可以持久化存储在数据存储解决方案中(例如,Simple Storage Service(S3)存储桶),以便理解数据分布。对传入数据和预测的详细分析有助于识别下游流程的潜在改进。例如,监控传入数据可以帮助我们识别模型预测中的偏差。在处理传入请求时,模型可能对特定特征组具有偏见。这些信息可以指导我们在为以下部署训练新模型时应考虑什么。另一个好处来自于模型的可解释性。出于业务目的或法律目的,需要解释模型预测的推理。这涉及到我们在第九章中描述的技术,扩展深度学习管道

我们应该跟踪的另一个关键指标是端点的 吞吐量,这有助于我们提高用户满意度。模型的行为可能会随着传入请求的数量和底层计算机的计算能力而变化。我们可以监控推断延迟与传入流量之间的关系,以构建稳定高效的推断端点供用户使用。

在高层次上,DL 模型的监控可以分为两个领域:端点监控模型监控。在前者领域,我们旨在收集与端点延迟和目标端点的吞吐量相关的数据。后者则专注于改善模型性能;我们需要收集传入数据、预测结果和模型性能,以及推断延迟。虽然许多模型监控用例通过在线方式在运行中的端点实现,但在训练和验证过程中也会以离线方式应用,目的是在部署前了解模型的行为。

在接下来的部分,我们将介绍用于监控 DL 模型的流行工具。

探索监控工具

监控工具主要可以分为两类,具体取决于它们的设计目标:监控工具警报工具。详尽介绍所有工具超出了本书的范围;但我们将简要介绍其中的一些,以解释监控和警报工具的优势。请注意,界限通常不清晰,并且一些工具可能同时支持这两个功能。

让我们先来了解一下监控工具。

Prometheus

Prometheus 是一个开源的监控和警报工具 (prometheus.io)。Prometheus 将应用程序传递的数据存储在本地存储中。它使用时间序列数据库来存储、聚合和检索指标数据,这与监控任务的性质非常匹配。与 Prometheus 的交互涉及使用 Prometheus 查询语言 (PromQL) (prometheus.io/docs/prometheus/latest/querying/basics)。Prometheus 设计用于处理诸如 中央处理单元 (CPU) 使用情况、内存使用情况和延迟等指标。此外,还可以摄取用于监控的自定义指标,例如模型性能或传入和传出数据的分布。

CloudWatch

CloudWatch 是由亚马逊网络服务AWS)设计的监控和可观察性服务 (aws.amazon.com/cloudwatch)。与设置专用的 Prometheus 服务相比,CloudWatch 设置简单,因为它在幕后处理数据存储管理。默认情况下,大多数 AWS 服务如 AWS Lambda 和 EKS 集群使用 CloudWatch 持久化指标以供进一步分析。此外,CloudWatch 可以通过电子邮件或 Slack 消息通知用户关于受监视指标的异常变化。例如,您可以为指标设置阈值,并在其超过或低于预定义阈值时收到通知。有关警报功能的详细信息,请参阅 docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

Grafana

Grafana 是一个流行的工具,用于可视化从监控工具收集的指标 (grafana.com)。Grafana 可以读取来自 CloudWatch 或 AWS 管理的 Prometheus 的指标数据以进行可视化。关于这些配置的完整描述,建议您阅读 grafana.com/docs/grafana/latest/datasources/aws-cloudwatchdocs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-query-standalone-grafana.html

Datadog

一种流行的专有解决方案是Datadog (www.datadoghq.com)。这个工具提供了多种监控功能:日志监控,应用性能监控,网络流量监控和实时用户监控。

SageMaker Clarify

SageMaker 内置支持监控由 SageMaker 创建的端点,SageMaker Clarify (aws.amazon.com/sagemaker/clarify)。SageMaker Clarify 带有一个软件开发工具包SDK),有助于理解模型的性能及其在预测中的偏差。有关 SageMaker Clarify 的详细信息,请参阅 docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html

在下一节中,我们将介绍警报工具。

探索警报工具

一个事件是需要后续操作的事件,比如失败的作业或构建。虽然监控工具可以捕获异常变化,但它们通常缺乏事件管理和响应过程的自动化。警报工具通过提供这些功能填补了这一空白。因此,许多公司通常集成明确的警报工具,以及时响应事件。

在本节中,我们将介绍两种最流行的警报工具:PagerDuty 和 Dynatrace。

PagerDuty

作为警报和管理事故响应IR)过程的工具,许多公司集成了PagerDutyPagerDuty)。在基本的警报功能之上,PagerDuty 支持根据事故类型和严重程度分配优先级。PagerDuty 可以从多个流行的监控软件中读取数据,比如Prometheus 和 Datadog(https://aws.amazon.com/blogs/mt/using-amazon-managed-service-for-prometheus-alert-manager-to-receive-alerts-with-pagerduty)。它还可以通过最小的代码更改与 CloudWatch 集成(support.pagerduty.com/docs/aws-cloudwatch-integration-guide)。

Dynatrace

Dynatrace是另一种专有工具,用于监控整个集群或网络和警报事件(Dynatrace)。可以轻松监控正在运行的进程的资源使用情况、流量和响应时间。Dynatrace 具有基于警报配置文件的独特警报系统。这些配置文件定义了系统如何在整个组织中传递通知。Dynatrace 具有内置的推送通知功能,但也可以与其他提供通知功能的系统集成,例如 Slack 和 PagerDuty。

要记住的事情

a. 监控与端点相关的入站数据、出站数据、模型指标和流量量,使我们能够理解端点的行为,并帮助我们识别潜在的改进。

b. Prometheus 是一个开源的监控和警报系统,可用于监控 DL 端点的指标。CloudWatch 是 AWS 的监控服务,专为记录一组数据和跟踪入站和出站流量的异常变化而设计。

c. PagerDuty 是一种流行的警报工具,负责处理事故的完整生命周期。

在本节中,我们讨论了为什么需要对 DL 端点进行监控,并提供了可用工具的列表。在本章的其余部分,我们将详细研究 CloudWatch,这是最常见的监控工具,因为它与 AWS 中的大多数服务都很好地集成(例如 SageMaker)。

使用 CloudWatch 进行监控

首先,我们将介绍 CloudWatch 中的几个关键概念:日志、指标、报警和仪表板。CloudWatch 将摄入的数据以日志或按时间戳组织的指标形式持久化。如其名称所示,日志 指的是程序生命周期中发出的文本数据。另一方面,指标 表示组织的数值数据,如 CPU 或内存利用率。由于指标以有组织的方式存储,CloudWatch 支持从收集的数据中聚合指标并创建直方图。报警 可以设置为在目标指标报告异常变化时发出警报。此外,可以设置仪表板来直观地查看所选指标和已触发的报警。

在以下示例中,我们将描述如何使用 boto3 库中的 CloudWatch 服务客户端记录指标数据。指标数据结构化为字典,包含指标名称、维度和值。维度的概念是捕获有关指标的事实信息。例如,指标名称为 city 可以具有纽约市的值。然后,维度可以捕获特定信息,例如火灾或入室盗窃的每小时计数:

import boto3
# create CloudWatch client using boto3 library
cloudwatch = boto3.client('cloudwatch')
# metrics data to ingest
data_metrics=[
    {
       'MetricName': 'gross_merchandise_value',
       'Dimensions': [
          {
             'Name': 'num_goods_sold',
             'Value': '369'
          } ],
       'Unit': 'None',
       'Value': 900000.0
    } ]
# ingest the data for monitoring 
cloudwatch.put_metric_data(
    MetricData=data_metrics, # data for metrics 
    Namespace='ECOMMERCE/Revenue' # namespace to separate domain/projects)

在前面的代码片段中,我们首先使用 boto3.client 函数为 CloudWatch 创建一个 cloudwatch 服务客户端实例。这个实例将允许我们从 Python 环境与 CloudWatch 进行通信。记录数据的关键方法是 put_metric_data。这个函数的 put_metric_data 方法从 CloudWatch 客户端实例接收 MetricData(要摄入到 CloudWatch 中的目标指标数据:data_metrics)和 Namespace(容器,用于容纳指标数据:ECOMMERCE/Revenue)。不同命名空间的数据被单独管理,以支持高效的聚合。

在这个示例中,data_metrics 指标数据包含一个名为 MetricName 的字段,其值为 gross_merchandise_value,值为 900000.0gross_merchandise_value 的单位被定义为 None。此外,我们还提供了销售商品数 (num_goods_sold) 作为额外的维度信息。

要获取完整的 CloudWatch 概念说明,请参阅 docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html

需要记住的事情

a. CloudWatch 将摄入的数据以日志或按时间戳组织的指标形式持久化。它支持为异常变化设置报警,并通过仪表板提供有效的可视化。

b. 使用 boto3 库可以轻松地将一个指标记录到 CloudWatch。它提供了一个支持通过 put_metric_data 函数进行日志记录的 CloudWatch 服务客户端。

尽管云观察的日志可以像本节描述的那样明确地记录,但 SageMaker 为一些开箱即用的指标提供了内置的日志记录功能。让我们仔细看看它们。

使用 CloudWatch 监视 SageMaker 端点

作为机器学习的端到端服务,SageMaker 是我们实施 DL 项目各个步骤的主要工具之一。在本节中,我们将描述最后一个缺失的部分:监控使用 SageMaker 创建的端点。首先,我们将解释如何设置基于 CloudWatch 的训练监控,其中指标以离线批次报告。接下来,我们将讨论如何监控实时端点。

本节中的代码片段设计用于在 SageMaker Studio 上运行。因此,我们首先需要定义 AWS Identity and Access Management (IAM) 角色和一个会话对象。让我们看看第一个代码片段:

import sagemaker
# IAM role of the notebook
role_exec=sagemaker.get_execution_role()
# a sagemaker session object
sag_sess=sagemaker.session()

在前面的代码片段中,get_execution_role 函数提供笔记本的 IAM 角色。role_execsagemaker.session 提供了 SageMaker sag_sess SageMaker 会话对象,用于作业配置。

在 SageMaker 中监控模型的整个训练过程

在模型训练期间的日志记录涉及 SageMaker 的 Estimator 类。它可以使用 regex 表达式处理打印的消息,并将它们存储为指标。您可以在此处看到一个例子:

import sagemaker
from sagemaker.estimator import Estimator
# regex pattern for capturing error metrics 
reg_pattern_metrics=[
   {'Name':'train:error','Regex':'Train_error=(.*?);'},
   {'Name':'validation:error','Regex':'Valid_error=(.*?)'}]
# Estimator instance for model training
estimator = Estimator(
   image_uri=...,
   role=role_exec,
   sagemaker_session=sag_sess,
   instance_count=...,
   instance_type=...,
   metric_definitions=reg_pattern_metrics)

在前面的代码片段中,我们创建了 estimator,这是用于训练的 Estimator 实例。大多数参数的解释可以在 第六章高效模型训练 中找到。在此示例中,我们正在定义的附加参数是 metric_definitions。我们传递的是 reg_pattern_metrics,它定义了一组 Train_error=(.*?)Valid_error=(.*?),训练和评估日志。匹配给定模式的文本将作为指标持久保存在 CloudWatch 中。有关使用 Estimator 类在整个模型训练过程中进行离线指标记录的完整详情,请参阅 docs.aws.amazon.com/sagemaker/latest/dg/training-metrics.html。我们想要提到的是,特定的训练作业指标(如内存、CPU、图形处理单元 (GPU) 和磁盘利用率)会自动记录,并且您可以通过 CloudWatch 或 SageMaker 控制台监视它们。

监控来自 SageMaker 的实时推断端点

在本节中,我们将描述 SageMaker 的端点基于 CloudWatch 的监控功能。在下面的代码片段中,我们呈现了一个带有 output_handler 函数的样本 inference.py 脚本。该文件被分配为 SageMaker 的 ModelEstimator 类的 entry_point 参数,以定义额外的预处理和后处理逻辑。有关 inference.py 的详细信息,请参阅 第九章扩展深度学习管道output_handler 函数设计用于处理模型预测并使用 print 函数记录度量数据。打印的消息作为日志存储在 CloudWatch 中:

# inference.py
def output_handler(data, context):
    # retrieve the predictions
    results=data.content
    # data that will be ingested to CloudWatch
    data_metrics=[
       {
          'MetricName': 'model_name',
          'Dimensions': [
             {
                'Name': 'classify',
                'Value': results
              } ],
          'Unit': 'None',
          'Value': "classify_applicant_risk"
      } ]
    # print will ingest information into CloudWatch
    print(data_metrics)

在前面的推断代码中,我们首先获得模型预测(results),并为度量数据构建一个字典(data_metrics)。该字典已经具有MetricName 值为 model_name 和名为 classify 的维度。模型预测将被指定为 classify 维度。SageMaker 将收集打印的度量数据并将其输入到 CloudWatch。有关在这种场景下连续模型质量漂移监控的示例方法,请参阅在线说明 sagemaker-examples.readthedocs.io/en/latest/sagemaker_model_monitor/model_quality/model_quality_churn_sdk.html。这页详细解释了如何在这些情况下利用 CloudWatch。

需记住的事项

a. SageMaker 的 Estimator 类在训练期间提供了对基于 CloudWatch 的监控的内置支持。在构造实例时,您需要将一组正则表达式模式传递给 metric_definitions 参数。

b. SageMaker 端点的打印消息将存储为 CloudWatch 日志。因此,我们可以通过记录度量数据的 entry_point 脚本来实现监控。

在本节中,我们解释了 SageMaker 如何支持基于 CloudWatch 的监控。让我们看看 EKS 如何支持推断端点的监控。

使用 CloudWatch 监控 EKS 端点

除了 SageMaker 外,我们还在《第九章》中描述了基于 EKS 的端点,在扩展深度学习流水线中。在本节中,我们描述了 EKS 可用的基于 CloudWatch 的监控。首先,我们将学习如何从容器中记录 EKS 指标以进行监控。接下来,我们将解释如何从 EKS 推断端点记录与模型相关的度量数据。

让我们首先看看如何设置 CloudWatch 来监控 EKS 集群。最简单的方法是在容器中安装 CloudWatch 代理。此外,您还可以安装 Fluent Bit,这是一个开源工具,进一步增强了日志记录过程(www.fluentbit.io)。有关 CloudWatch 代理和 Fluent Bit 的完整说明,请阅读 docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-quickstart.html

另一个选项是保留由 EKS 控制平面发送的默认指标。这可以通过 EKS Web 控制台轻松启用(docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)。可以在aws.github.io/aws-eks-best-practices/reliability/docs/controlplane找到 EKS 控制平面发出的完整指标列表。例如,如果您对记录与延迟相关的指标感兴趣,可以使用apiserver_request_duration_seconds*

在模型推断期间记录模型相关的指标,您需要在代码中实例化boto3的 CloudWatch 服务客户端,并显式记录它们。前一节中包含的代码片段,使用 CloudWatch 监视 SageMaker 端点,应该是一个很好的起点。

记住的事情

a. 从一个 EKS 集群记录端点相关的指标可以通过使用 CloudWatch 代理或保留由 EKS 控制平面发送的默认指标来实现。

b. 使用boto3库需要显式记录与模型相关的指标。

作为本节的最后一个主题,我们解释了如何从 EKS 集群将各种指标记录到 CloudWatch。

摘要

本章的目标是解释为什么需要监视运行 DL 模型的端点,并介绍该领域中的流行工具。我们在本章介绍的工具旨在监控端点的信息集并在监控指标发生突变时提供警报。我们涵盖的工具包括 CloudWatch、Prometheus、Grafana、Datadog、SageMaker Clarify、PagerDuty 和 Dynatrace。为了完整起见,我们还介绍了如何将 CloudWatch 集成到 SageMaker 和 EKS 中,以监视端点及模型性能。

在下一章中,作为本书的最后一章,我们将探讨评估已完成项目的过程并讨论潜在的改进。

第十三章:审查已完成的深度学习项目

深度学习 (DL) 项目的最后阶段是审查过程。在规划阶段,已经定义了每个利益相关者的责任,并设定了项目的目标。在此阶段,利益相关者必须再次集合以重新审视责任和目标,评估项目是否按计划执行。这样的过程可以概括为实施后评审 (PIR)。为了进一步指导审查过程,我们还描述了评估完成项目的不同方法,包括但不限于差距分析、预计完成时间分析和可持续性分析。除了项目评估外,还需记录项目的详细信息,并讨论潜在的改进措施,以便下一个项目可以更有效地实现。

在本章中,我们将讨论以下主要主题:

  • 审查 DL 项目

  • 收集未来项目可重复使用的知识、概念和成果

审查 DL 项目

实施后评审 (PIR) 是重新审视项目执行过程的过程。在此过程中,您将比较项目的最终状态与目标状态,并组织当前项目生成的成果以便重复使用。总体而言,这一过程应该使您对项目的成功或失败有一个广泛的理解。此外,它将为您提供明确的指示,说明未来的项目应该如何管理以及如何避免当前项目中的错误。遵循这样的思路,您应该始终考虑当前项目范围之外的更大图景;一个项目可能已经完成,但您获得的见解将可供未来的项目重复利用。

进行实施后评审

PIR 过程包括以下步骤。请记住,该过程可以在交付可交付成果的最终部署之前开始:

  1. 首先,试着回答以下关键问题:项目是否在可用预算和时间内完成?是否成功?

  2. 重新审视关键绩效指标 (KPI) 和项目初期定义的其他度量标准。列出已实现的度量标准,并思考可以进行改进的地方。您可以参考第一章深度学习驱动项目的有效规划,了解各种评估指标的详细信息。

  3. 进行 GAP 分析(www.batimes.com/articles/do-we-need-a-mature-gap-analysis)。这是获得项目绩效详细视角的良好起点。GAP 方法比较部署的 DL 系统的实际绩效与项目规划阶段定义的目标绩效,涵盖所有目标。比较应该引导可能的改进和额外的优化。

  4. 记录利益相关者的意见及其对可能改进的看法。尝试了解利益相关者对项目完成的满意度水平。

  5. 准备详细的成本分析,总结花费的资金与分配的预算。每一项分析必须与每一步骤相关联:开发、部署、监控和维护。尝试找出初步估计错误的地方,并考虑如何在下一个项目中更好地规划细节。

  6. 回顾每个任务所采取的步骤,并理解瓶颈所在。试图识别过程不完美的地方,并讨论如何在未来项目中避免。

  7. 撰写一份简短的文档,总结我们刚才描述的所有要点,并由利益相关者评估。重点关注项目是否成功实现了最初的目标,但也记住 PIR 的目标不仅仅是展示项目的成功。重要的是参与者分享他们在整个项目中学到的东西。

  8. 确保 PIR 文档对组织内的任何人都是可访问的,作为未来项目的参考。

PIR 过程中的关键项目是评估项目的真实价值。我们将在下一节介绍有效项目评估的各种技术。

理解项目的真实价值。

让我们在这个最后阶段看看你应该记住的几个方面。首先,你需要重新审视规划阶段定义的截止日期和估计资源使用情况。这两个因素应该直接影响整个项目的支出。即使你的项目超出了分配的预算或时间表,如果回报大于投入的资源,项目仍可以被认为是成功的。对于一个项目,投资回报率(ROI)可以使用简单的公式计算:

ROI = [(财务价值 - 项目成本) / 项目成本] x 100

比较预期投资回报率(在项目之前计算或基于初步估计)和实际投资回报率应该为项目评估提供额外的视角。

我们将不会涵盖所有可用于指示项目最终状态的绩效指标,因为它们可能有很多:投资回报率(ROI)、收入增长、每位客户收入、利润率、质量成本、进度绩效、客户满意度、客户保留率、生产力、与业务目标对齐水平等等(financesonline.com/10-project-management-success-metrics-to-measure-your-team-performance)。然而,我们想提一下完工预估EAC),这是可以用于项目每个阶段的指标。它用于预测项目的总成本。比较 EAC 和最初预估的完工预算,您将能够审查是否符合最初的成本估算。除了 EAC,建议在整个项目过程中跟踪支出和每个活动的成本偏差。总体而言,此过程的发现将帮助您减少支出并增加利润。

一个项目管理标准,项目管理知识体系PMBOK),将计划价值PV)、挣值EV)和实际成本AC)作为衡量项目绩效的三个关键指标优先考虑(projectmanagementacademy.net)

  • PV,也称为计划工作成本BCWS),仅是在任何给定时间内计划活动的成本估算。它主要用于基准。

  • EV 被称为完成工作的预算成本BCWP),是在一段时间内完成活动预算的总和。比较 EV 和 PV 将指示您是否在资源使用上掌控得当。

  • AC 也被称为实际完成工作的成本ACWP),是完成工作的总成本。跟踪 AC 并将其与计划支出进行比较,将帮助您了解是否在预算内成功完成项目的正确路径。

在深度学习项目中,我们通常评估与模型相关的指标(如精度、召回率和 F1 分数)和与业务相关的指标(如转化率、点击率、用户生命周期价值、用户参与度和运营成本节省)。因此,制定关键目标的定义可能比非深度学习项目更复杂。

除了我们迄今为止涵盖的方面外,您还应考虑项目的可持续性。通过审视可持续性,您将了解项目是否在不影响经济、环境、社会和行政支柱的情况下实现了目标。

要记住的事情

a. 项目的最后一步是理解如何执行项目,并讨论如何在将来更有效地实现它。

b. 在整个 PIR 过程中,您需要审查项目的每个阶段,并对项目的成功或失败有广泛的了解。

c. 在评估整体项目时,KPI 分析、GAP 分析、成本分析、基准比较和 ROI 计算非常有用。

接下来,我们将看看如何有效地组织和分享 PIR 过程中收集到的专业知识。

收集可重复使用的知识、概念和文档,以便未来项目使用。

您的深度学习项目将产生许多可以在将来重复使用的文档。例如,在模型训练中使用的处理数据可以用于其他分析任务,模型实现可以适应其他应用程序,为监控任务设置的基础设施可以重新配置为不同的项目。为了能够重复使用这些文档,您需要正确归档它们,并确保存在足够的文档。让我们看看您可以实施的一些程序,以便在这个过程中使您的生活更轻松:

  1. 为开发环境、数据、实现和模型设定版本标准。这些标准应在项目早期定义,并且所有团队成员都应遵循:

    • 使用 Git(git-scm.com)为代码库添加版本控制。项目可以与 GitHub(github.com)、GitLab(gitlab.com)或 AWS CodeCommit(aws.amazon.com/codecommit)连接,以更好地管理代码库。

    • 为数据和模型设置版本控制。详情请参阅第四章实验跟踪、模型管理和数据集版本控制

    • 为每个项目阶段、环境和资源保留单独的文档,在易于访问的空间中,如ConfluenceSharePointGoogle DriveAsana

  2. 引入编程和文档的标准。确保在代码审查中始终遵循这些标准。请记住始终记录开发环境和关键库依赖的详细信息。利用诸如 Docker 或 Anaconda 之类的虚拟环境工具,以便以可重现的方式保持它们。

  3. 总结在项目中重复使用的关键概念,并确保它们被彻底记录和易于访问。

  4. 持续审查存储信息的状态,以确保在整个项目执行过程中保持其最新状态。

在项目的最后阶段,建议再次审查文档,以填补遗漏的细节。请记住,如果这些资源能处理许多重复的任务,那么你的下一个项目可以更高效地实现。

根据您的地理位置,当交付物消耗敏感数据时,您可能需要遵循特定的法律。常见的包括 GDPR、HIPAA、FCRA、FERPA、GLBA、ECPA、COPPA 和 VPPA (www.nytimes.com/wirecutter/blog/state-of-privacy-laws-in-us/)。项目的最后阶段是确保在任何外部组织审计之前遵循所有法规和合规程序的好时机。

需记住的事项

a. 在项目的最后阶段,您需要回顾所有从项目生成的工件。它们的组织和文档必须重新审视,以便将来可以轻松检索。

b. 建立工件管理流程将使您能够保持其组织良好。例如,定义文档标准并遵循这些标准将有助于您保持资源的一致性。

概要

您已经到达 DL 项目的最终阶段。在本章中,我们描述了您需要遵循的步骤来完成项目。我们首先描述了如何应用 PIR 来评估项目并了解潜在的改进。在这个阶段,您还需要确保从项目中生成的工件被组织和彻底记录,以便它们可以被重复使用在下一个项目中。最后,我们还想提到庆祝活动是 DL 项目的另一个关键组成部分。所有的利益相关者都为完成项目做出了努力。您必须花些时间感谢所有团队成员,并赞扬他们的成就。

在本书中,您学习了如何在高标准下执行 DL 项目。从 DL 的基本概念开始,我们详细描述了 DL 项目的每个阶段,以及您可以使用的各种工具来有效地完成手头的任务。本书强调可扩展性,并解释了如何使用各种云服务进行数据处理和模型训练。总体而言,现在您能够正确估算项目的范围,为给定问题构建一个有效的基于 DL 的解决方案,并适当评估项目的成功。

此时,我们想要感谢您阅读本书。我们很高兴看到本书在人工智能领域理论与应用之间的桥梁。正如我们在撰写本书时对这一领域获得了许多见解一样,我们希望您与我们一起的旅程是一个非凡的学习经验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值