Cloud Logging を使用してモデル アーキテクチャを表示する

このページでは、Cloud Logging を使用して AutoML Tables モデルの詳細を表示する方法を説明します。Logging を使用すると、最終モデルのハイパーパラメータ、モデルのトレーニングと調整で使用されるハイパーパラメータとオブジェクト値を確認できます。

プロジェクトの AutoML Tables の一般ログを表示することもできます。

ログデータ

AutoML Tables によって生成されるロギング メッセージには、次のものがあります。

  • Key-Value ペアとしての最終モデルのハイパーパラメータ。
  • 調整トライアル中に使用されるハイパーパラメータ、および目標値。

デフォルトでは、ログは 30 日後に削除されます。

始める前に

このタスクに必要な権限

このタスクを実行するには、次の権限が必要です。

  • プロジェクトに対する logging.logServiceIndexes.list
  • プロジェクトに対する logging.logServices.list

トレーニング ログを表示する

Google Cloud Console からモデルのログにアクセスする

最終的なハイパーパラメータ ログと調整トライアルのハイパーパラメータ ログには、AutoML Tables から直接アクセスできます。

  1. Google Cloud Console で [AutoML テーブル] ページに移動します。

    [AutoML テーブル] ページに移動

  2. 左側のナビゲーション パネルで [モデル] タブをクリックし、モデル名をクリックしてモデルを開きます。

  3. [モデル] タブを選択します。

    [モデル] リンクと [トライアル] リンクが表示されたモデルの詳細

  4. 最終的なハイパーパラメータ ログを表示するには、[モデル] をクリックします。

  5. 調整トライアルのハイパーパラメータを表示するには、[トライアル] をクリックします。

  6. 次のようにペイロードを展開します。

    拡張されたモデルのログ

モデルのアーキテクチャ ログを読み取る

アクティビティ ログの構造は、LogEntry 型のドキュメントに説明があります。

AutoML Tables のモデルのログには主に次のフィールドがあります。

  • automl_tableslog_type フィールドの値。
  • jsonPayload。ログエントリの特定の詳細が含まれます。
  • timestamp。モデルが作成された日時を示します。

ペイロードの内容

ログエントリの内容は JSON オブジェクト形式で jsonPayload フィールドに格納されます。jsonPayload フィールドには次の情報が含まれます。

フィールド タイプ 説明
modelStructure JSON

AutoML Tables モデルの構造の説明。このフィールドには、使用される各モデルのハイパーパラメータを含む modelParameters フィールドが 1 つ以上含まれます。複数のモデルが使用されている場合、モデルはアンサンブルとして統合され、最終モデルが作成されます。

詳細については、ハイパーパラメータ リストをご覧ください。

trainingObjectivePoint JSON モデルのトレーニングに使用する最適化の目標。 このエントリには、ログエントリが記録された時点のタイムスタンプと目標値が含まれます。

ハイパーパラメータのリスト

ログで提供されるハイパーパラメータ データは、モデルタイプごとに異なります。以降のセクションでは、各モデルタイプのハイパーパラメータについて説明します。

AdaNet モデル

  • モデルタイプ: AdaNet
  • AdaNet lambda
  • 複雑さのタイプ
  • 初期レイヤ数
  • 最後のレイヤタイプ(logits または prelogits
  • レイヤサイズの拡大
  • 混合学習の重み付け(True または False
  • 残差の学習(True または False
  • 反復のブースティング
  • オプティマイザー(adagrad または adam

    オープンソース Python リファレンス

AdaNet AutoEnsemble モデル

  • モデルタイプ: AdaNet AutoEnsembler
  • 非表示レイヤの数
  • 非表示レイヤのサイズ
  • ドロップアウト
  • L1 正則化の強度
  • L2 正則化の強度
  • L2 縮小正則化の強度
  • ツリーの複雑さ
  • 最大ツリー深度
  • センター バイアス(True または False
  • 成長モード(layer または tree
  • 反復のブースティング
  • DNN オプティマイザー(adagrad または adam

    オープンソース Python リファレンス

DNN 線形モデル

勾配ブースト ディシジョン ツリー モデル

フィードフォワード ニューラル ネットワーク モデル

  • モデルタイプ: nn
  • 非表示レイヤのサイズ
  • ドロップアウト率
  • 数値の埋め込みを有効にする(True または False
  • L1 を有効にする(True または False
  • L2 を有効にする(True または False
  • L1 の埋め込みを有効にする(True または False
  • L2 の埋め込みを有効にする(True または False
  • layerNorm を有効にする(True または False
  • batchNorm を有効にする(True または False
  • 非表示レイヤの数
  • クロスレイヤの数
  • 接続タイプをスキップ(densedisableconcatslice_or_padding
  • 数値列を正規化する(True または False

サンプル ログエントリ

model_type パラメータによって示された nn モデルの最終的なモデル アーキテクチャのログエントリの例を次に示します。最終モデルの作成に複数のモデルが使用されている場合、各モデルのハイパーパラメータは位置(0、1、2 など)によってインデックス付けされ、modelParameters 配列のエントリとして返されます。

{
 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 のドキュメントのログのエクスポートの構成をご覧ください。