更新时间:2025-09-08 GMT+08:00
分享

精度调试:TensorBoard可视化

TensorBoard是TensorFlow的可视化工具包,提供机器学习实验所需的可视化功能和工具。TensorBoard能够有效地展示训练过程中的计算图、各种指标随时间的变化趋势以及训练中使用到的数据信息,帮助用户快速识别训练精度问题。

在JupyterLab中使用TensorBoard可视化作业页面介绍了如何在云上ModelArts开发环境中创建和使用Tensorboard实例。本页面介绍针对昇腾场景的TensorBoard插件工具,可以将msprobe dump的精度数据进行解析,还原模型图结构,实现模型各个层级的精度数据比对,方便用户理解模型结构、分析精度问题以及快速识别精度不符合预期的API。

步骤一:模型结构数据采集

使用msprobe工具采集训练精度数据。具体操作,请参见msprobe数据dump指导

  • 需要选择“level”“L0”(module信息)或者“mix”(module信息+API信息),才能采集到模型结构数据,即采集结果件construct.json内容不为空。
  • 采集完后的数据格式如下,其中construct.json为模型结构文件。
    图1 采集完的格式示例

步骤二:生成图结构文件

采集完成后,需要生成模型图结构文件。

  • 如果只dump了一份NPU上的精度数据,可以执行单图构建命令,生成的图包含模型结构、精度数据、堆栈信息。
  • 如果同时dump了NPU和GPU上的精度数据,可以执行双图构建命令,生成的图包含模型结构、结构差异、精度数据和精度比对指标、精度是否疑似有问题等信息。
  1. 执行以下命令,创建配置文件。
    vim compare.json
  2. 输入以下内容。如果是单图只需配置npu_path,如果是双图则需要增加配置bench_path。
    {
    "npu_path": "./dump_path/step50/rank0/",
    "bench_path": "./dump_path_gpu/step50/rank0/",
    "is_print_compare_log": true
    }
  3. 保存文件后,执行以下命令生成图文件。
    msprobe -f pytorch graph -i ./compare.json -o ./output

    生成的图结构文件后缀为.vis,示例如下:

    图2 生成图结构文件示例

步骤三:使用TensorBoard可视化展示

参照在JupyterLab中使用TensorBoard可视化作业创建Tensorboard环境。在步骤二:上传Summary数据时,将上一步生成的.vis模型结构文件上传到环境中。

  1. 上传好文件后,配置文件所在路径到Log Dir,单击“Create Tensorboard”创建Tensorboard实例。
    图3 创建Tensorboard实例
  2. TensorBoard实例启动后,为了便于全屏显示相关信息,获得更好的展示效果,建议单击下图的全屏展示按钮,在浏览器新页签打开全屏窗口展示。
    图4 全屏展示
  3. 模型结构图展示在“GRAPH_ASCEND”页签下。双击具体的模型名称(例如下图的“DefaultModel”),可以展开模型的图结构,查看详情。
    图5 展开模型的图结构

    图中会根据精度误差的大小给节点标识不同的颜色,红色节点通常标明疑似有非预期误差。您可以双击节点名称,在下方列表会列举出精度详细对比数据,包括目标节点数据和标杆节点数据,查看详细数据做进一步人工判断。

    图6 查看详细对比数据

关于该插件的更多使用介绍,请参见昇腾指导文档

相关文档