Платформа распределенных направленных ациклических графов для машинного обучения с пользовательским интерфейсом
Цель MLComp — предоставить инструменты для обучения, вывода и создания сложных конвейеров (особенно для компьютерного зрения) быстрым и хорошо управляемым способом.
MLComp совместим с: Python 3.6+, операционной системой Unix.
Часть экосистемы Catalyst. Манифест проекта.
Функции
Удивительный интерфейс
Поддержка катализатора
Распределенное обучение
Супервизор, контролирующий вычислительные ресурсы
Синхронизация кода и данных
Мониторинг ресурсов
Полная функциональность паузы и продолжения в пользовательском интерфейсе.
Автоматический контроль требований
Дамп кода (с подсветкой синтаксиса в пользовательском интерфейсе)
Интеграция с Kaggle
Иерархическое журналирование
Поиск по сетке
Сравнение экспериментов
Настройка системы макетов
Содержание
Скриншоты
Установка
пользовательский интерфейс
Использование
Документы и примеры
Переменные среды
Дагс
Компьютеры
Отчеты
Код
График
Еще скриншоты
Установить пакет MLComp
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev pip установить mlcomp млкомп инициализация mlcomp мигрировать
Настройте свою среду. Пожалуйста, обратите внимание на раздел «Переменные среды».
Запустите db, redis, mlcomp-server, mlcomp-workers:
Вариант 1: минимальный (если у вас 1 компьютер)
Запускаем все необходимое (mlcomp-server, mlcomp-workers, redis-server), при этом используется SQLITE:
запуск mlcomp-сервера --daemon=True
Вариант 2: полный
а. Измените переменные среды, чтобы использовать PostgreSql.
б. Установите rsync на каждом рабочем компьютере.
sudo apt-get установить rsync
Убедитесь, что каждый компьютер доступен по протоколу SSH с IP/PORT, указанным вами в файле переменных среды.
rsync выполнит следующие команды:
загрузить
rsync -vhru -e "ssh -p {target.port} -o StrictHostKeyChecking=no" {folder}/ {target.user}@{target.ip}:{folder}/ --perms --chmod=777
скачать
rsync -vhru -e "ssh -p {source.port} -o StrictHostKeyChecking=no" {source.user}@{source.ip}:{folder}/ {folder}/ --perms --chmod=777
в. Установите apex для распределенного обучения
д. Чтобы запустить postgresql, redis-server, mlcomp-server, выполните на своем компьютере-сервере:
компакт-диск ~/mlcomp/configs/ docker-compose -f server-compose.yml вверх -d
е. Запустите на каждом рабочем компьютере:
запуск mlcomp-работника
Веб-сайт доступен по адресу http://{WEB_HOST}:{WEB_PORT}.
По умолчанию это http://localhost:4201.
Передняя часть построена с помощью AngularJS.
Если вы хотите изменить его, просмотрите страницу Readme на передней панели.
Бегать
mlcomp из PATH_TO_CONFIG.yml
Эта команда копирует файлы каталога в базу данных.
Затем сервер планирует DAG с учетом свободных ресурсов.
Для получения дополнительной информации, пожалуйста, рассмотрите Документы
Документацию по API и обзор библиотеки можно найти здесь.
Вы можете найти расширенные учебные пособия и лучшие практики MLComp в папке примеров репозитория.
В учебнике FileSync описан механизм синхронизации данных.
Единственный файл для настройки вашей компьютерной среды находится по адресу ~/mlcomp/configs/.env.
ROOT_FOLDER - папка для сохранения файлов MLComp: конфигов, бд, задач и т.д.
ТОКЕН — токен безопасности сайта. Пожалуйста, измените его на любую строку
ТИП_БД. Либо SQLITE, либо POSTGRESQL.
POSTGRES_DB. Имя базы данных PostgreSql
ПОСТГРЕС_ПОЛЬЗОВАТЕЛЬ. Пользователь PostgreSql
ПОСТГРЕС_ПАРОЛЬ. Пароль PostgreSql
POSTGRES_ХОСТ. Хост PostgreSql
ПГДАТА. Расположение файлов базы данных PostgreSql
REDIS_HOST. Хост Redis
REDIS_ПОРТ. Порт Redis
REDIS_ПАРОЛЬ. Пароль Redis
ВЕБ_ХОСТ. Хост сайта MLComp. 0.0.0.0 означает, что он доступен отовсюду.
ВЕБ_ПОРТ. Порт сайта MLComp
CONSOLE_LOG_LEVEL. уровень журнала для вывода на консоль
БД_ЛОГ_УРОВЕНЬ. уровень журнала для вывода в базу данных
ИП. IP рабочего компьютера. Рабочий компьютер должен быть доступен с других рабочих компьютеров по этим IP/PORT.
ПОРТ. Порт рабочего компьютера. Рабочий компьютер должен быть доступен с других рабочих компьютеров по этим IP/PORT (протокол SSH).
MASTER_PORT_RANGE. распределенный диапазон портов для рабочего компьютера. 29500-29510 означает, что если этот рабочий компьютер является мастером распределенного обучения, он будет использовать первый свободный порт из этого диапазона. Диапазоны разных рабочих компьютеров не должны перекрываться.
NCCL_SOCKET_IFNAME. Сетевой интерфейс NCCL.
ФАЙЛ_СИНХ_ИНТЕРВАЛ. Интервал синхронизации файлов в секундах. 0 означает, что синхронизация файлов отключена
WORKER_USAGE_INTERVAL. Интервал в секундах записи использования воркера в БД
INSTALL_DEPENDENCIES. Верно/Неверно. Либо устанавливайте зависимые библиотеки, либо нет.
SYNC_WITH_THIS_COMPUTER. Верно/Неверно. Если значение равно False, все компьютеры, кроме этого, не будут синхронизироваться с этим.
CAN_PROCESS_TASKS. Верно/Неверно. Если false, этот компьютер не обрабатывает задачи.
Вы можете увидеть свои сетевые интерфейсы с помощью команды ifconfig
. Пожалуйста, рассмотрите документ NVIDIA