Verteiltes gerichtetes azyklisches Graph-Framework für maschinelles Lernen mit UI
Das Ziel von MLComp besteht darin, Werkzeuge für Training, Inferenzierung und die Erstellung komplexer Pipelines (insbesondere für Computer Vision) auf schnelle und gut handhabbare Weise bereitzustellen.
MLComp ist kompatibel mit: Python 3.6+, Unix-Betriebssystem.
Teil des Catalyst-Ökosystems. Projektmanifest.
Merkmale
Erstaunliche Benutzeroberfläche
Katalysatorunterstützung
Verteiltes Training
Supervisor, der die Rechenressourcen kontrolliert
Synchronisierung von Code und Daten
Ressourcenüberwachung
Volle Funktionalität der Pause- und Fortsetzungsfunktion auf der Benutzeroberfläche
Automatische Kontrolle der Anforderungen
Code-Dumping (mit Syntaxhervorhebung auf der Benutzeroberfläche)
Kaggle-Integration
Hierarchische Protokollierung
Rastersuche
Vergleich der Experimente
Anpassen des Layoutsystems
Inhalt
Screenshots
Installation
Benutzeroberfläche
Verwendung
Dokumente und Beispiele
Umgebungsvariablen
Dags
Computer
Berichte
Code
Graph
Weitere Screenshots
Installieren Sie das MLComp-Paket
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev pip mlcomp installieren mlcomp-Init mlcomp migrieren
Richten Sie Ihre Umgebung ein. Bitte beachten Sie den Abschnitt Umgebungsvariablen
Führen Sie db, redis, mlcomp-server, mlcomp-workers aus:
Variante 1: minimal (wenn Sie 1 Computer haben)
Führen Sie alles Notwendige aus (mlcomp-server, mlcomp-workers, redis-server), es verwendet SQLITE:
mlcomp-server start --daemon=True
Variante 2: voll
A. Ändern Sie Ihre Umgebungsvariablen, um PostgreSql zu verwenden
B. Installieren Sie rsync auf jedem Arbeitscomputer
sudo apt-get install rsync
Stellen Sie sicher, dass jeder Computer über das SSH-Protokoll mit IP/PORT verfügbar ist, den Sie in der Umgebungsvariablendatei angegeben haben.
rsync führt die folgenden Befehle aus:
hochladen
rsync -vhru -e "ssh -p {target.port} -o StrictHostKeyChecking=no" {folder}/ {target.user}@{target.ip}:{folder}/ --perms --chmod=777
zum Herunterladen
rsync -vhru -e "ssh -p {source.port} -o StrictHostKeyChecking=no" {source.user}@{source.ip}:{folder}/ {folder}/ --perms --chmod=777
C. Installieren Sie Apex für verteiltes Lernen
D. Um postgresql, redis-server, mlcomp-server auszuführen, führen Sie Folgendes auf Ihrem Server-Computer aus:
cd ~/mlcomp/configs/ docker-compose -f server-compose.yml up -d
e. Auf jedem Arbeitscomputer ausführen:
mlcomp-worker starten
Die Website ist verfügbar unter http://{WEB_HOST}:{WEB_PORT}
Standardmäßig ist es http://localhost:4201
Die Vorderseite ist mit AngularJS erstellt.
Falls Sie es ändern möchten, beachten Sie bitte die Readme-Seite auf der Vorderseite
Laufen
mlcomp dag PATH_TO_CONFIG.yml
Dieser Befehl kopiert Dateien des Verzeichnisses in die Datenbank.
Anschließend plant der Server die DAG unter Berücksichtigung freier Ressourcen.
Weitere Informationen finden Sie in der Dokumentation
API-Dokumentation und eine Übersicht über die Bibliothek finden Sie hier
Erweiterte Tutorials und Best Practices für MLComp finden Sie im Beispielordner des Repositorys.
Das FileSync-Tutorial beschreibt den Datensynchronisierungsmechanismus
Die einzelne Datei zum Einrichten Ihrer Computerumgebung befindet sich unter ~/mlcomp/configs/.env
ROOT_FOLDER – Ordner zum Speichern von MLComp-Dateien: Konfigurationen, Datenbank, Aufgaben usw.
TOKEN – Site-Sicherheitstoken. Bitte ändern Sie es in eine beliebige Zeichenfolge
DB_TYPE. Entweder SQLITE oder POSTGRESQL
POSTGRES_DB. PostgreSql-Datenbankname
POSTGRES_USER. PostgreSql-Benutzer
POSTGRES_PASSWORD. PostgreSQL-Passwort
POSTGRES_HOST. PostgreSql-Host
PGDATA. Speicherort der PostgreSql-Datenbankdateien
REDIS_HOST. Redis-Host
REDIS_PORT. Redis-Port
REDIS_PASSWORD. Redis-Passwort
WEB_HOST. MLComp-Site-Host. 0.0.0.0 bedeutet, dass es überall verfügbar ist
WEB_PORT. MLComp-Site-Port
CONSOLE_LOG_LEVEL. Protokollebene für die Ausgabe an die Konsole
DB_LOG_LEVEL. Protokollstufe für die Ausgabe in die Datenbank
IP. IP eines Arbeitscomputers. Der Arbeitscomputer muss über diese IP/PORT von anderen Arbeitscomputern aus erreichbar sein
HAFEN. Port eines Arbeitscomputers. Der Arbeitscomputer muss von anderen Arbeitscomputern über diese IP/PORT (SSH-Protokoll) erreichbar sein.
MASTER_PORT_RANGE. verteilter Portbereich für einen Arbeitscomputer. 29500-29510 bedeutet, dass dieser Arbeitscomputer, wenn er ein Master in einem verteilten Lernen ist, den ersten freien Port aus diesem Bereich verwendet. Bereiche verschiedener Arbeitsrechner dürfen sich nicht überschneiden.
NCCL_SOCKET_IFNAME. NCCL-Netzwerkschnittstelle.
FILE_SYNC_INTERVAL. Dateisynchronisierungsintervall in Sekunden. 0 bedeutet, dass die Dateisynchronisierung deaktiviert ist
WORKER_USAGE_INTERVAL. Intervall in Sekunden, in dem die Worker-Nutzung in die Datenbank geschrieben wird
INSTALL_DEPENDENCIES. Richtig/Falsch. Entweder abhängige Bibliotheken installieren oder nicht
SYNC_WITH_THIS_COMPUTER. Richtig/Falsch. Bei „Falsch“ werden alle Computer außer diesem nicht mit diesem Computer synchronisiert
CAN_PROCESS_TASKS. Richtig/Falsch. Bei „false“ verarbeitet dieser Computer keine Aufgaben
Sie können Ihre Netzwerkschnittstellen mit dem Befehl ifconfig
anzeigen. Bitte beachten Sie das NVIDIA-Dokument