Тюнинг на основе TPU для CloudML
Поддерживаются ли TPU для распределенного поиска гиперпараметров? Я использую tensor2tensor
библиотека, которая поддерживает CloudML для поиска гиперпараметров, т. е. мне нужно выполнить поиск гиперпараметров для языковой модели на графических процессорах:
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"
2 ответа
Один из авторов библиотеки tenor2tensor здесь. Да, это была действительно ошибка и теперь исправлена. Спасибо, что нашли. Мы выпустим исправленную версию PyPI на этой неделе, и вы, конечно, можете клонировать и устанавливать локально с master
до тех пор.
Команда, которую вы использовали, теперь должна работать нормально.
Я полагаю, что есть ошибка в библиотеке tenor2tensor: https://github.com/tensorflow/tensor2tensor/blob/6a7ef7f79f56fdcb1b16ae76d7e61cb09033dc4f/tensor2tensor/utils/cloud_mlengine.py
Это рабочий_тип (а не мастер-тип), который нужно установить для Cloud ML Engine.
Чтобы ответить на первоначальный вопрос, да, HP Tuning должен поддерживаться для TPU, но ошибка выше ортогональна этому.