Как AI Platform (ML Engine) распределяет ресурсы между заданиями?
Я провожу несколько экспериментов с использованием Google AI Platform и у меня есть несколько вопросов по этому поводу.
По сути, мой проект структурирован в соответствии с документами с заданием тренера и отдельной задачей прогнозирования партии. Я хочу понять, как AI Platform распределяет ресурсы для задач, которые я выполняю. Сравнивая его с текущими решениями SOTA, такими как Spark, Tensorflow и Pytorch, у меня возникают сомнения.
Эти механизмы / библиотеки распределяют работников с выделенными системами координации и имеют отдельную распределенную реализацию всех алгоритмов машинного обучения. Поскольку мои задачи написаны с использованием ScikitLearn, как эти вычисления распараллеливаются в кластере, предоставляемом платформой AI, поскольку у sklearn нет таких распределенных вычислительных возможностей?
После документов здесь. Команда, которую я использую,
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
Любая помощь / разъяснения будут оценены!
1 ответ
Увы, AI Platform Training не может автоматически распределять ваши задания по обучению. Он просто устанавливает кластер, развертывает ваш пакет на каждом узле и запускает его.
Возможно, вы захотите попробовать распределенный бэкэнд, такой как Dask, для масштабирования задачи - в нем есть замена для Joblib, которая может запускать конвейеры scikit-learn в кластере.
Я нашел один учебник здесь: https://matthewrocklin.com/blog/work/2017/02/07/dask-sklearn-simple
Надеюсь, это поможет!