AI Platform(ML Engine)如何为作业分配资源?

How does AI Platform (ML Engine) allocate resources to jobs?

我正在尝试使用 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

如有任何帮助/说明,我们将不胜感激!

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

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

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

希望对您有所帮助!