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

OSCHINA-MIRROR/paddlepaddle-edl

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

Тренировочные пропускные способности не максимизированы:

  • Оффлайн кластер GPU имеет ограниченные ресурсы, но некоторые онлайн ресурсы GPU могут быть использованы во время обучения.

  • Гетерогенные модели учителя могут улучшить производительность модели ученика, но их сложно развернуть на одной карте GPU из-за ограничений памяти.

  • Трудно сбалансировать вычислительную нагрузку моделей учителей и учеников, чтобы максимизировать тренировочные пропускные способности.

Решение:

  • Разверните модели учителей в качестве онлайн-сервиса вывода через Paddle Serving.

  • Онлайн-сервисы вывода эластичны и зарегистрированы в модулях управления сервисом EDL.

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

Выпуск 0.2.0

Упругое обучение на основе контрольных точек на нескольких GPU

У нас есть несколько тренировочных узлов, работающих на каждом GPU. Главный узел отвечает за сохранение контрольной точки, а все остальные узлы являются упругими узлами. Когда упругие узлы присоединяются или покидают текущее обучающее задание, параметры гипер-тренировки будут автоматически корректироваться. Новые тренировочные узлы автоматически загружают контрольную точку с удалённой ФС. Контрольная точка модели сохраняется каждые несколько шагов, заданных пользователем.

Эксперименты Resnet50 на одном компьютере в Docker

Запустите JobServer на одном узле, который генерирует изменяющиеся скрипты:

cd example/demo/collective
node_ips="127.0.0.1"
python -u paddle_edl.demo.collective.job_server_demo \
    --node_ips ${node_ips} \
    --pod_num_of_node 8 \
    --time_interval_to_change 900 \
    --gpu_num_of_node 8

Запустите Jobclient, который управляет рабочим процессом:

# set the ImageNet data path
export PADDLE_EDL_IMAGENET_PATH=<your path>
# set the checkpoint path
export PADDLE_EDL_FLEET_CHECKPOINT_PATH=<your path>

mkdir -p resnet50_pod
unset http_proxy https_proxy

# running under edl
export PADDLE_RUNING_ENV=PADDLE_EDL
export PADDLE_JOB_ID="test_job_id_1234"
export PADDLE_POD_ID="not set"

python -u paddle_edl.demo.collective.job_client_demo \
    --log_level 20 \
    --package_sh ./resnet50/package.sh \
    --pod_path ./resnet50_pod \
    ./train_pretrain.sh

Экспериментальные результаты на 2-узловом кластере:

модель dataset gpu cards total batch size acc1 acc5
Resnet50 ImageNet 16 * v100 1024 75.5 92.8

Весь пример находится здесь: example/demo/collective.

Сообщество

FAQ: https://github.com/elasticdeeplearning/edl/blob/develop/FAQ.md

Лицензия: EDL предоставляется по лицензии Apache-2.0 (LICENSE).

Вклад: Если вы хотите внести код в Paddle Serving, пожалуйста, обратитесь к Руководству по внесению вклада (CONTRIBUTING.md).

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

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

Введение

Эластичное глубокое обучение с использованием PaddlePaddle и Kubernetes. Развернуть Свернуть
Python и 4 других языков
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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