Как 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

Надеюсь, это поможет!