【问题标题】:How to effectively use the TFRC program with the GCP AI platform JobsGCP AI平台如何有效使用TFRC程序
【发布时间】:2021-03-06 18:28:24
【问题描述】:

我正在尝试在 GCP 的 AI 平台作业服务中运行超参数调整作业,Tensorflow Research Cloud 程序已获批准

  • us-central1-f 区域中的 100 个抢占式 Cloud TPU v2-8 设备
  • us-central1-f 区域中的 20 个按需 Cloud TPU v2-8 设备
  • 5 个按需 Cloud TPU v3-8 设备位于 europe-west4-a 区域

我已经在 Tensorflow 2 上构建了一个自定义模型,我想运行指定确切区域的作业,以利用 TFRC 程序和 AI 平台作业服务;现在我有一个 YAML 配置文件,如下所示:

trainingInput:
  scaleTier: basic-tpu
  region: us-central1
  hyperparameters:
    goal: MAXIMIZE
    hyperparameterMetricTag: val_accuracy
    maxTrials: 100
    maxParallelTrials: 16
    maxFailedTrials: 30
    enableTrialEarlyStopping: True

理论上,如果我在单独的 TPU 实例中运行 16 个并行作业,每个作业应该可以工作,但由于请求超出 TPU_V2 的配额而返回错误

错误:(gcloud.ai-platform.jobs.submit.training) RESOURCE_EXHAUSTED:项目################## 的配额失败。 16 个并行运行对 128 个 TPU_V2 加速器的请求超过了允许的最大值:0 A100、0 TPU_V2_POD、0 TPU_V3_POD、16 TPU_V2、16 TPU_V3、2 P4、2 V100、30 K80、30 P100、6 T4 加速器。

然后我将 maxParallelTrials 减少到只有 2 并且工作了,这确认了上面的错误消息,配额是按 TPU 芯片计算的,而不是按 TPU 实例计算的。

因此我认为,也许我完全误解了 TFRC 计划的批准配额,然后我继续检查作业是否使用 us-central1-f 区域,但结果发现它使用了不需要的区域:

-tpu_node={"project": "p091c8a0a31894754-tp", "zone": "us-central1-c", "tpu_node_name": "cmle-training-1597710560117985038-tpu"}"

这种行为不允许我有效地使用已批准的免费配额,如果我理解正确,在 us-central1-c 中运行的作业正在占用我的帐户积分,但不使用免费资源。因此我想知道是否有一些方法可以在 AI 平台作业中设置区域,并且可以传递一些标志来使用抢占式 TPU。

【问题讨论】:

    标签: tensorflow2.0 tpu google-cloud-tpu gcp-ai-platform-training google-ai-platform


    【解决方案1】:

    不幸的是the two can't be combined

    【讨论】:

    • 那么如果我想进行超参数调优,是否需要创建一个脚本来通过 ctpu 实例化 TPU,然后并行运行多个训练作业?
    • ctpugcloud 或 GCP 控制台的 Compute Engine 部分都可以使用。
    • 另外,需要注意的是我没有亲自使用它,如果您打算一次管理多个节点,github.com/shawwn/tpunicorn 可能值得一看。
    猜你喜欢
    • 2021-11-01
    • 2021-01-04
    • 2021-07-19
    • 2022-01-18
    • 2020-12-11
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多