machine-learning - 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
任何帮助/澄清将不胜感激!
解决方案
唉,AI Platform Training 无法自动分配您的 scikit-learn 任务。它基本上只是设置集群,将你的包部署到每个节点,然后运行它。
您可能想尝试使用分布式后端(例如 Dask)来扩展任务——它有一个替代 Joblib 的插件,可以在集群上运行 scikit-learn 管道。
我在这里找到了一个教程:https ://matthewrocklin.com/blog/work/2017/02/07/dask-sklearn-simple
希望有帮助!
推荐阅读
- java - 如何处理不会导致错误的 emptycollectionsException?
- ssis - 用于更改测量数据类型的 SSAS MDX 查询
- node.js - 即使我已经过滤掉它们,我也会得到重复?
- swift - (NSTextView).visibleRect 与 SwiftUI 无法按预期工作
- dt - Flexdashboard 和 Datatable - 没有呈现足够的行
- angular - 带有 Angular 的 NativeScript 将参数传递给 url
- javascript - 一条线虽然“超级(道具)”是什么意思?看图片
- c# - 起订量,测试方法返回错误 - System.ArgumentNullException:值不能为空。(参数“来源”)
- java - 使用 selenium 和 java 为购物网站打印 excel 中的值列表时出错。仅打印第一个值
- python - 使用 pandas 数据框在一个句子中搜索多个单词