使用 Cloud Logging 查看模型架构

本页面介绍如何使用 Cloud Logging 查看 AutoML Tables 模型的详细信息。使用 Logging,您可以查看最终模型超参数以及模型训练和调节过程中使用的超参数和对象值。

您还可以在项目中查看 AutoML Tables 常规日志

记录的数据

AutoML Tables 生成的日志记录消息提供以下内容:

  • 最终模型超参数(作为键值对)。
  • 调节试验期间使用的超参数以及目标值。

默认情况下,系统会在 30 天后删除日志。

准备工作

执行此任务所需的权限

如需执行此任务,您必须拥有下列权限

  • 针对项目的 logging.logServiceIndexes.list 权限
  • 针对项目的 logging.logServices.list 权限

查看训练日志

从 Google Cloud Console 访问模型日志

您可以直接从 AutoML Tables 访问最终超参数日志和调节试验超参数日志。

  1. 转到 Google Cloud Console 中的 AutoML Tables 页面。

    转到 AutoML Tables 页面

  2. 选择左侧导航窗格中的模型标签页,然后点击模型名称以打开模型。

  3. 选择“模型”标签页。

    模型详细信息显示了“模型”和“试用”链接

  4. 要查看最终超参数日志,请点击模型

  5. 要查看调节试用超参数,请点击试用

  6. 展开负载,如下所示:

    展开的模型日志

读取模型架构日志

LogEntry 类型文档中介绍了活动日志的结构。

以下为 AutoML Tables 模型日志包含的一些字段:

  • 作为 log_type 字段值的 automl_tables
  • 包含日志条目具体详细信息的 jsonPayload
  • 描述模型创建时间的 timestamp

负载内容

日志条目的内容会以 JSON 对象格式提供,并存储在 jsonPayload 字段中。jsonPayload 字段包含以下信息。

字段 类型 说明
modelStructure JSON

AutoML Tables 模型结构的说明。此字段包含一个或多个 modelParameters字段,其中包含每个所用模型的超参数。当使用多个模型时,模型会合并为一个集成学习来创建最终模型。

请参阅超参数列表了解详情。

trainingObjectivePoint JSON 用于模型训练的优化目标。此条目包含记录日志条目时的时间戳和目标值。

超参数列表

日志中提供的超参数数据因模型类型而异。以下部分介绍了每个模型类型的超参数。

AdaNet 模型

  • 模型类型:AdaNet
  • AdaNet lambda
  • 复杂度类型
  • 初始层数
  • 最终层类型(logitsprelogits
  • 增加层大小
  • 了解混合权重(TrueFalse
  • 了解余量(TrueFalse
  • 增强迭代
  • 优化器(adagradadam

    开源 Python 参考

AdaNet AutoEnsemble 模型

  • 模型类型:AdaNet AutoEnsembler
  • 隐藏层数量
  • 隐藏层大小
  • 漏失
  • L1 正则化强度
  • L2 正则化强度
  • L2 收缩正则化强度
  • 树复杂度
  • 树深度上限
  • 居中偏好(TrueFalse
  • 成长模式(layertree
  • 增强迭代
  • DNN 优化器(adagradadam

    开源 Python 参考

DNN 线性模型

  • 模型类型:DNNLinear
  • 隐藏层数量
  • 隐藏层大小
  • 漏失
  • L1 正则化强度
  • L2 正则化强度
  • L2 收缩正则化强度

    开源 Python 参考

梯度提升决策树模型

  • 模型类型:GDBT
  • 树深度上限
  • 树 L1 正则化
  • 树 L2 正则化
  • 树复杂度
  • 树数量
  • 居中偏好(TrueFalse

    开源 Python 参考

前馈神经网络模型

  • 模型类型:nn
  • 隐藏层大小
  • 漏失率
  • 启用数值嵌入(TrueFalse
  • 启用 L1(TrueFalse
  • 启用 L2(TrueFalse
  • 启用嵌入 L1(TrueFalse
  • 启用嵌入 L2(TrueFalse
  • 启用 layerNorm(TrueFalse
  • 启用 batchNorm(TrueFalse
  • 隐藏层数量
  • 交叉层数
  • 跳过连接类型(densedisableconcatslice_or_padding
  • 标准化数值列(TrueFalse

示例日志条目

以下示例展示了 nn 模型的最终模型架构的日志条目(由 model_type 参数表示)。如果使用多个模型创建最终模型,则每个模型的超参数会作为 modelParameters 数组中的条目返回,并按位置(例如 0、1、2 等)编制索引。

{
 insertId: "qx7z0ifhtjpkv"
 jsonPayload: {
  @type: "type.googleapis.com/google.cloud.automl.master.TuningTrial"
  modelStructure: {
   modelParameters: [
    0: {
      Dropout rate: 0.75
      Embedding numerical embedding: "True"
      Enable L1: "False"
      Enable L2: "False"
      Enable batchNorm: "True"
      Enable embedding L1: "False"
      Enable embedding L2: "False"
      Enable layerNorm: "False"
      Hidden layer size: 16
      Normalize numerical column: "True"
      Number of cross layers: "1"
      Number of hidden layers: "2"
      Skip connections type: "dense"
      Model type: "nn"
    }
   ]
  }
  trainingObjectivePoint: {
   createTime: "2019-10-15T04:52:00Z"
   value: 0.002069325
  }
 }
 labels: {
  log_type: "automl_tables"
 }
 logName: "projects/project-id/logs/automl.googleapis.com%2Ftuning"
 receiveTimestamp: "2019-10-15T10:46:06.916277805Z"
 resource: {
  labels: {
   job_id: "109476078648557568"
   project_id: "project-id"
   region: "us-central1"
  }
  type: "cloudml_job"
 }
 severity: "INFO"
 timestamp: "2019-10-15T10:46:06.916277805Z"
}

以下示例展示了调节期间模型架构的日志条目。

{
 insertId: "nl7815f7p0cjb"
 jsonPayload: {
  @type: "type.googleapis.com/google.cloud.automl.master.TuningTrial"
  modelStructure: {
   modelParameters: [
    0: {
     hyperparameters: {
      Boosting iterations: "2"
      Grow layer size: "30"
      Initial number of layers: "1"
      Last layer type: "prelogits"
      Learn residuals: "False"
      Model type: "AdaNet"
      Optimizer: "adam"
      }
    }
   ]
  }
  trainingObjectivePoint: {
   createTime: "2019-10-13T20:42:25Z"
   value: 0.0000011595778
  }
 }
 labels: {
  log_type: "automl_tables"
 }
 logName: "projects/project-id/logs/automl.googleapis.com%2Ftuning"
 receiveTimestamp: "2019-10-13T21:20:08.189302731Z"
 resource: {
  labels: {
   job_id: "2804289077287845888"
   project_id: "project-id"
   region: "us-central1"
  }
  type: "cloudml_job"
 }
 severity: "INFO"
 timestamp: "2019-10-13T21:20:08.189302731Z"
}

查看常规 AutoML Tables 日志

您可以通过 Google Cloud Console 中的日志查看器来查看项目的活动日志:

  1. 转到 Google Cloud Console 中的 Logging 页面。
  2. 在日志查看器中,从第一个下拉菜单中选择并过滤您的资源类型。
  3. 所有日志下拉菜单中选择 automl.googleapis.com/tuning 来查看 AutoML Tables 日志。

导出日志

您可以将日志导出到 BigQuery、Cloud Storage 或 Pub/Sub。

阅读 Logging 文档中的配置日志导出,了解如何导出活动日志。