首页 > 解决方案 > AI Platform (ML Engine) 如何为作业分配资源?

问题描述

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

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

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

按照这里的文档。我正在使用的命令,

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

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

标签: machine-learninggoogle-cloud-platformgoogle-cloud-mlgcp-ai-platform-notebook

解决方案


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

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

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

希望有帮助!


推荐阅读