116) инфраструктура для запуска экспериментов в облаке
После 17e_ppo_tr_atari_mp_10/3 нечаянно попробовал и обнаружил, что хорошо работает эволюционная механика. Вместо того, чтобы с нуля пытаться за много шагов научить агента, можно взять лучшего агента, наученного на предыдущей итерации, и продолжить его обучение. Так можно вообще длинную цепочку построить. Получится генеологическое древо, правда в котором будет один родитель и один потомок.
А чтобы переварить большой объем запусков (объем который неизбежен при эволюционной механике) нужна инфраструктура, чтобы в товарных количествах плодить запуски (эксперименты) и выполнять их. А так как единственным способом относительно дешёвого масштабирования сейчас является аренда ВПС-ок с ДЖПУ в селектеле, то потребовалась вот такая распределённая система, которая бы унифицированно запускала эксперименты, и там уже без разница где в селетеле или на баки эти эксперименты выполнялись. В итоге родилась система, как на картинке. Работает на удивление неплохо =)
Одной из ключевых технологий является подготовка self-contained докер образов - каждый такой образ содержит всё необходимое для запуска эксперимента где-бы то ни было: не нужны ни гит, ни доп. файлы, ни нексус, ни тензорбоард, ничего. Просто докер контенейнер запускается, отрабатывает, на выходе получаются метрики и ассеты, которые можно прокинуть в тензорбоард и нексус. Репо для образов: cr.selcloud.ru/neurolab

Ссылка на исходник архитектурной схемы: https://app.eraser.io/workspace/mzDfcL8rEyf59ieQyONj