SageMaker 调试程序 见解控制面板控制器 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SageMaker 调试程序 见解控制面板控制器

调试程序控制器具有不同的组件以进行监控和分析。在本指南中,您将了解 调试程序 控制器组件。

注意

Studio 调试程序 见解控制面板在ml.m5.4xlarge实例上运行 Studio 应用程序以处理和呈现可视化内容。每个调试程序见解选项卡运行一个 Studio 内核会话。适用于多个调试程序见解选项卡的多个内核会话在单个实例上运行。当您关闭调试程序见解选项卡时,相应的内核会话也会关闭。Studio 应用程序保持活动状态,并产生ml.m5.4xlarge实例使用费用。有关 定价的信息,请参阅 Amazon SageMaker 定价页面。

重要

使用调试程序完见解控制面板后,您必须关闭ml.m5.4xlarge实例以避免产生费用。有关如何关闭实例的说明,请参阅关闭SageMaker调试程序见解实例

SageMaker 调试程序 见解控制器 UI

使用位于见解控制面板左上角的 调试程序 控制器,您可以刷新控制面板,配置或更新用于监控系统指标和分析框架指标的调试程序设置,停止训练作业和下载调试程序分析报告。


                    调试程序 见解控制面板控制器
  • 如果要手动刷新 Debug [your-training-job-name] (调试 [your-training-job-name]) 页面,请选择刷新按钮(左上角的圆形箭头),如前面的屏幕截图所示。

  • 默认情况下,任何训练作业的监控SageMaker都处于开启状态。通过监控训练作业, 调试程序 仅收集系统指标来检测资源利用率问题,例如 CPU 瓶颈和 GPU 利用率不足。有关 调试程序 监控的资源利用率问题的完整列表,请参阅调试程序 用于监控硬件系统资源利用率的内置规则(系统指标)

  • 要下载包含训练作业的详细信息和分析的综合调试程序分析报告,请选择 Download report (下载报告)。有关调试程序分析报告的更多信息,请参阅SageMaker 调试程序 分析报告

为详细见解启用和配置调试程序分析

当您启用分析时, 调试程序 开始收集框架指标。框架指标是从模型的 ML 框架操作中收集的模型数据,例如向前传递、向后传递、批量标准化和数据加载程序进程。 将系统性能瓶颈与框架操作调试程序关联并运行 调试程序 分析框架指标的内置规则

注意

启用分析后, 调试程序 会收集在每个步骤中执行的每个框架操作调用:在前向传递期间沿输入层进行卷积运算、在后向传递期间更新数百万个神经元的权重以及数据加载器过程。虽然分析可让您更深入地了解模型性能,但收集框架指标可能会影响您的训练时间和性能。我们建议您启用分析以一次最多检查两个步骤。有关如何使用 调试程序 配置框架分析的更多信息Amazon SageMaker Python SDK,请参阅配置 调试程序 框架分析在运行训练作业时更新 调试程序 系统监控和框架分析配置

如果要在训练作业运行时启用分析,请使用以下步骤开始分析。

  1. 在 SageMaker Studio 中,打开分析以启用调试程序框架分析。这将打开一个调试程序监控和分析配置页面。

    
                            使用见解控制面板控制器 UI 启用分析调试程序
  2. Configure 调试程序 monitoring and analysis (配置监控和分析) 中,S3 bucket URIS3 存储桶 URI) 和 Collect monitoring data every (收集监控数据) 已设置为默认值。

    您可以选择使用下拉菜单并在以下可用选项中进行选择来更改监控间隔:100 毫秒、200 毫秒、500 毫秒(默认)、1 秒、5 秒和 1 分钟。

    
                            debugger-studio-insight-mockup

    需要指定以下字段:

    • S3 存储桶 URI – 指定基本 S3 存储桶 URI。

    • Collect monitoring data every – (收集监控数据) 选择收集系统指标的时间间隔。

      注意

      如果您选择一个较低的时间间隔,则会增加监控系统指标的粒度。它允许您以更高的时间分辨率捕获峰值和异常。但是,随着要按比例处理的系统指标的大小增加,这可能会影响总体训练和处理时间。

  3. 在分析的高级设置中,配置框架指标分析选项。指定 Start step (启动步骤)(或 Start time (开始时间))和 Number of steps to profile (或 Time duration to profile (用于配置文件的时长)) 以进行分析。您也可以将输入字段留空。默认值将自动配置为使用当前步骤和 1 个步骤持续时间。

    
                            debugger-studio-insight-mockup
    • 详细分析 – 指定目标步骤或时间范围,以使用本机框架分析器TensorFlow 分析器和 PyTorch分析器)分析框架操作。例如,如果使用 TensorFlow则调试程序挂钩使 TensorFlow 分析器能够收集 TensorFlow 特定的框架指标。利用详细分析,您可以在前一步(在第一步之前)中的步骤以及训练作业的步骤之间分析所有框架运算符。

      注意

      详细分析可能会显著增加 GPU 内存消耗。建议不要为多个步骤启用详细分析。

    • Python 分析 – 指定分析 Python 函数的目标步骤或时间范围。您还可以在两个 Python 分析器之间进行选择cProfile 和 Pininstrument。

      • cProfile – 标准 Python 分析器cProfile 为训练期间调用的每个 Python 运算符收集 。借助 cProfile, 调试程序 可节省每个函数调用的累计时间和注释,从而提供 Python 函数的完整详细信息。例如,在深度学习中,最常调用的函数可能是卷积筛选条件和向后传递运算符,以及每个运算符的 cProfile 配置文件。对于 cProfile 选项,您可以进一步选择计时器选项:总时间、CPU 时间和 CPU 以外的时间。虽然您可以在 CPU 时间中分析在处理器(CPU 和 GPU)上执行的每个 函数调用,但您也可以使用非 CPU 时间选项识别 I/O 或网络瓶颈。默认值为总时间, 调试程序 分析 CPU 时间和 CPU 之外的时间。借助 cProfile您可以在分析配置文件数据时向下钻取到每个单个函数。

      • Pyinstrument – Pyinstrument 是一种基于采样运行的低开销 Python 分析器。使用 Pininstrument 选项, 每隔毫秒对分析事件调试程序进行采样。由于 Pininstrument 度量经过了时钟时间而不是 CPU 时间,因此 Pininstrument 选项可能是比 cProfile 选项更好的选择,用于减少分析噪声(筛选出累积速度较快的不相关函数调用)并捕获实际计算密集(累积速度较慢)的运算符来训练您的模型。借助 Pininstrument,您可以查看函数调用树并更好地了解慢速的结构和根本原因。

      注意

      启用 Python 分析可能会导致降低总体训练时间。对于 cProfile在每次调用时都会分析最常调用的 Python 运算符,因此分析时的处理时间随调用数而增加。对于 Pininstrument,累积分析时间相对于时间会增加,因为它的采样机制。

    • 数据加载程序分析 – 指定目标步骤或时间范围以分析深度学习框架数据加载程序过程。 调试程序 收集框架的每个数据加载程序事件。

      注意

      数据加载器分析可以降低训练性能,同时从数据加载器收集信息。我们建议您不要为多个步骤启用数据加载程序分析。

      调试程序 预配置为仅注释 AWS 深度学习容器的数据加载程序进程。 调试程序 无法分析任何其他自定义或外部容器上的数据加载程序进程。

  4. 选择 Confirm (确认) 以完成分析配置。成功更新配置后,您应该可以看到以下确认消息。

    
                            debugger-studio-insight-mockup