【问题标题】:How does AI Platform (ML Engine) allocate resources to jobs?AI Platform (ML Engine) 如何为作业分配资源?
【发布时间】:2019-12-13 00:40:33
【问题描述】:

我正在使用 Google 的 AI 平台进行一些实验,对此我有一些疑问。

基本上,我的项目是按照文档构建的,其中包含一个培训任务和一个单独的批量预测任务。我想了解 AI Platform 如何为我执行的任务分配资源。将它与当前的 SOTA 解决方案(如 Spark、Tensorflow 和 Pytorch)进行比较是我产生疑问的地方。

这些引擎/库具有具有专用协调系统的分布式工作人员,并具有所有机器学习算法的单独分布式实现。由于我的任务是使用 ScikitLearn 编写的,由于 sklearn 没有任何此类分布式计算能力,这些计算如何在 AI Platform 提供的集群中并行化?

遵循文档here。我正在使用的命令,

gcloud ai-platform jobs submit training $JOB_NAME \
  --job-dir $JOB_DIR \
  --package-path $TRAINING_PACKAGE_PATH \
  --module-name $MAIN_TRAINER_MODULE \
  --region $REGION \
  --runtime-version=$RUNTIME_VERSION \
  --python-version=$PYTHON_VERSION \
  --scale-tier $SCALE_TIER

任何帮助/澄清将不胜感激!

【问题讨论】:

  • 你在用 sklearn 做分布式训练吗? AFAIK,sklearn 不支持分布式训练。如果您想在一个 ML Engine 的训练作业中运行多个 sklearn 作业,您可以在每个工作人员上运行不同的作业。您可以解析环境变量 TF_CONFIG 以了解工作人员索引以采取相应措施。
  • 是的,这就是我的疑问。

标签: machine-learning google-cloud-platform google-cloud-ml gcp-ai-platform-notebook


【解决方案1】:

唉,AI Platform Training 无法自动分配您的 scikit-learn 任务。它基本上只是设置集群,将你的包部署到每个节点,然后运行它。

您可能想尝试使用 Dask 等分布式后端来扩展任务——它有一个替代 Joblib 的插件,可以在集群上运行 scikit-learn 管道。

我在这里找到了一个教程:https://matthewrocklin.com/blog/work/2017/02/07/dask-sklearn-simple

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2019-10-11
    • 2021-01-18
    • 2021-02-24
    • 2018-01-06
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多