0

分布式超参数搜索是否支持 TPU?我正在使用该tensor2tensor库,它支持 CloudML进行超参数搜索,即以下对我来说可以在 GPU 上对语言模型进行超参数搜索:

t2t-trainer \
  --model=transformer \
  --hparams_set=transformer_tpu \
  --problem=languagemodel_lm1b8k_packed \
  --train_steps=100000 \
  --eval_steps=8 \
  --data_dir=$DATA_DIR \
  --output_dir=$OUT_DIR \
  --cloud_mlengine \
  --hparams_range=transformer_base_range \
  --autotune_objective='metrics-languagemodel_lm1b8k_packed/neg_log_perplexity' \
  --autotune_maximize \
  --autotune_max_trials=100 \
  --autotune_parallel_trials=3

但是,当我尝试使用 TPU 时,如下所示:

t2t-trainer \
  --problem=languagemodel_lm1b8k_packed \
  --model=transformer \
  --hparams_set=transformer_tpu \
  --data_dir=$DATA_DIR \
  --output_dir=$OUT_DIR \
  --train_steps=100000 \
  --use_tpu=True \
  --cloud_mlengine_master_type=cloud_tpu \
  --cloud_mlengine \
  --hparams_range=transformer_base_range \
  --autotune_objective='metrics-languagemodel_lm1b8k_packed/neg_log_perplexity' \
  --autotune_maximize \
  --autotune_max_trials=100 \
  --autotune_parallel_trials=5

我得到错误:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://ml.googleapis.com/v1/projects/******/jobs?alt=json returned "Field: master_type Error: The specified machine type for masteris not supported in TPU training jobs: cloud_tpu"
4

2 回答 2

3

这里是 tensor2tensor 库的作者之一。是的,这确实是一个错误,现在已修复。感谢您的发现。本周我们将在 PyPI 上发布一个固定版本,在此master之前您当然可以在本地克隆和安装。

您使用的命令现在应该可以正常工作了。

于 2018-08-02T01:41:25.497 回答
2

我相信 tensor2tensor 库中有一个错误: https ://github.com/tensorflow/tensor2tensor/blob/6a7ef7f79f56fdcb1b16ae76d7e61cb09033dc4f/tensor2tensor/utils/cloud_mlengine.py#L281

需要为 Cloud ML Engine 设置的是 worker_type(而不是 master_type)。

不过,要回答最初的问题,是的,TPU 应该支持 HP Tuning,但上面的错误与此正交。

于 2018-07-27T17:36:13.893 回答