Тренировочные пропускные способности не максимизированы:
Оффлайн кластер 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 )