1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-ElasticDL

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ElasticDL: Нативный для Kubernetes фреймворк глубинной нейронной сети

Статус сборки Travis-CI Кодовое покрытие Лицензия: MIT Статус пакета PyPI

ElasticDL — это нативный для Kubernetes фреймворк глубинной нейронной сети, поддерживающий отказоустойчивость и эластичное планирование задач.

Основные возможности

Эластичное планирование и отказоустойчивость

С помощью нативного дизайна для Kubernetes, ElasticDL обеспечивает отказоустойчивость и работает с приоритетным предemption Kubernetes для достижения эластичного планирования задач глубинной нейронной сети.

Поддержка TensorFlow и PyTorch

  • TensorFlow Estimator.
  • TensorFlow Keras.
  • PyTorch.

Минимальный интерфейс

При наличии модели, определённой с использованием Keras API, можно распределённо обучить модель с помощью командной строки.

elasticdl train \
  --image_name=elasticdl:mnist \
  --model_zoo=model_zoo \
  --model_def=mnist.mnist_functional_api.custom_model \
  --training_data=/data/mnist/train \
  --job_name=test-mnist \
  --volume="host_path=/data,mount_path=/data"

Быстрый старт

Для запуска ElasticDL на локальном ноутбуке, в локальной группе серверов или на публичной облачной платформе, например Google Kubernetes Engine, рекомендуется использовать наш шаг за шагом учебник.TensorFlow Estimator на MiniKube

TensorFlow Keras на MiniKube

PyTorch на MiniKube

Обзор

TensorFlow/PyTorch имеют встроенные возможности распределенного вычисления, которые поддерживают восстановление после отказа. Если некоторые процессы прекращают работу, распределенная вычислительная задача завершается ошибкой; однако, мы можем перезапустить задачу и восстановить ее состояние из последних файлов контрольной точки.

ElasticDL поддерживает отказоустойчивость во время распределенного обучения. Если некоторые процессы прекращают работу, задача продолжает выполняться. Поэтому ElasticDL не требует сохранения контрольных точек или восстановления из них. Функция отказоустойчивости позволяет ElasticDL работать с приоритетной стратегией Kubernetes для эластичного расписания. Когда Kubernetes убивает некоторые процессы текущего задания, чтобы освободить ресурсы для более приоритетного нового задания, текущее задание не завершается ошибкой, а продолжает выполнение с меньшим количеством ресурсов.

Эластичное расписание может значительно повысить общую производительность кластера. Предположим, что у кластера есть N видеокарт, и одно задание использует одну из них. Без эластического расписания новое задание, требующее N видеокарт, должно ждать завершения первого задания перед тем, как начать свою работу. Это время ожидания может составлять несколько часов, дней или даже недель. В течение этого времени использование кластера составляет всего 1/N. С эластическим расписанием новое задание может немедленно запуститься и использовать N-1 видеокарту, в то время как Kubernetes может увеличить потребление видеокарт первого задания до 1 после его завершения. В этом случае общая производительность составляет 100%.Эластичная функция планирования ElasticDL源于 её нативного дизайна — она не зависит от расширений Kubernetes, таких как Kubeflow, для запуска программ TensorFlow/PyTorch; вместо этого главный процесс задач ElasticDL запускает рабочие узлы и серверы параметров путём вызова API Kubernetes; одновременно он мониторит события, такие как убийство процессов/контейнеров, и реагирует на эти события для восстановления после отказов.Кратко говоря, ElasticDL повышает надёжность восстановления ошибок и эластичность распределённой работы TensorFlow/PyTorch при наличии Kubernetes-кластера. Мы предоставляем учебник, который показывает, как создать Kubernetes-кластер на Google Cloud Platform и запустить там задачи ElasticDL. Мы уважаем нативные возможности распределённого вычисления TensorFlow, которые позволяют ему работать без специализированной платформы вычислений, таких как Kubernetes, и обеспечивают возможность использования TensorFlow на любой платформе.

Разработка

Для руководства по разработке обратитесь к этому документу.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ElasticDL — это Kubernetes-нативный фреймворк глубокого обучения, построенный на основе TensorFlow 2.0, который поддерживает отказоустойчивость и эластичное планирование. Развернуть Свернуть
Python и 6 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-ElasticDL.git
git@api.gitlife.ru:oschina-mirror/mirrors-ElasticDL.git
oschina-mirror
mirrors-ElasticDL
mirrors-ElasticDL
develop