Marco de gráficos acíclicos dirigidos distribuidos para aprendizaje automático con interfaz de usuario
El objetivo de MLComp es proporcionar herramientas para capacitar, inferir y crear canales complejos (especialmente para visión por computadora) de una manera rápida y bien manejable.
MLComp es compatible con: Python 3.6+, sistema operativo Unix.
Parte del ecosistema Catalyst. Manifiesto del proyecto.
Características
Increíble interfaz de usuario
Soporte catalizador
Entrenamiento distribuido
Supervisor que controla los recursos computacionales.
Sincronización de código y datos.
Monitoreo de recursos
Funcionalidad completa de pausar y continuar en la interfaz de usuario
Control automático de los requisitos.
Volcado de código (con resaltado de sintaxis en la interfaz de usuario)
Integración de Kaggle
Registro jerárquico
Búsqueda de cuadrícula
Comparación de experimentos
Personalización del sistema de diseño
Contenido
Capturas de pantalla
Instalación
interfaz de usuario
Uso
Documentos y ejemplos
Variables ambientales
Días
Computadoras
Informes
Código
Gráfico
Más capturas de pantalla
Instalar el paquete MLComp
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev instalación de pip mlcomp inicio mlcomp migrar mlcomp
Configure su entorno. Considere la sección de variables de entorno
Ejecute db, redis, mlcomp-server, mlcomp-workers:
Variante 1: mínimo (si tienes 1 computadora)
Ejecute todo lo necesario (mlcomp-server, mlcomp-workers, redis-server), utiliza SQLITE:
Inicio del servidor mlcomp --daemon=True
Variante 2: completo
a. Cambie sus variables de entorno para usar PostgreSql
b. Instale rsync en cada computadora del trabajo
sudo apt-get instalar rsync
Asegúrese de que todas las computadoras estén disponibles mediante el protocolo SSH con la IP/PUERTO que especificó en el archivo de variables de entorno.
rsync ejecutará los siguientes comandos:
subir
rsync -vhru -e "ssh -p {target.port} -o StrictHostKeyChecking=no" {carpeta}/ {target.user}@{target.ip}:{carpeta}/ --perms --chmod=777
para descargar
rsync -vhru -e "ssh -p {source.port} -o StrictHostKeyChecking=no" {fuente.usuario}@{fuente.ip}:{carpeta}/ {carpeta}/ --perms --chmod=777
do. Instalar apex para el aprendizaje distribuido
d. Para ejecutar postgresql, redis-server, mlcomp-server, ejecute en su computadora servidor:
CD ~/mlcomp/configs/ docker-compose -f server-compose.yml arriba -d
mi. Ejecute en cada computadora de trabajador:
inicio del trabajador mlcomp
El sitio web está disponible en http://{WEB_HOST}:{WEB_PORT}
Por defecto, es http://localhost:4201
El frente está construido con AngularJS.
En caso de que desee cambiarlo, considere la página Léame del frente
Correr
mlcomp dag PATH_TO_CONFIG.yml
Este comando copia archivos del directorio a la base de datos.
Luego, el servidor programa el DAG considerando los recursos libres.
Para obtener más información, considere Documentos
La documentación API y una descripción general de la biblioteca se pueden encontrar aquí
Puede encontrar tutoriales avanzados y mejores prácticas de MLComp en la carpeta de ejemplos del repositorio.
El tutorial de FileSync describe el mecanismo de sincronización de datos
El único archivo para configurar el entorno de su computadora se encuentra en ~/mlcomp/configs/.env
ROOT_FOLDER: carpeta para guardar archivos MLComp: configuraciones, bases de datos, tareas, etc.
TOKEN: token de seguridad del sitio. Por favor cámbielo a cualquier cadena
DB_TYPE. Ya sea SQLITE o POSTGRESQL
POSTGRES_DB. Nombre de la base de datos PostgreSql
POSTGRES_USUARIO. Usuario PostgreSql
POSTGRES_CONTRASEÑA. Contraseña PostgreSql
POSTGRES_HOST. anfitrión PostgreSql
PGDATOS. Ubicación de los archivos de base de datos PostgreSql
REDIS_HOST. anfitrión de Redis
REDIS_PORT. Puerto Redis
REDIS_CONTRASEÑA. contraseña de redis
WEB_HOST. Anfitrión del sitio MLComp. 0.0.0.0 significa que está disponible en todas partes
PUERTO_WEB. Puerto del sitio MLComp
CONSOLE_LOG_LEVEL. nivel de registro para salida a la consola
DB_LOG_LEVEL. nivel de registro para la salida a la base de datos
PI. IP de una computadora de trabajo. La computadora del trabajo debe ser accesible desde otras computadoras del trabajo mediante estos IP/PUERTO
PUERTO. Puerto de una computadora de trabajo. La computadora de trabajo debe ser accesible desde otras computadoras de trabajo mediante estos IP/PUERTO (protocolo SSH)
MASTER_PORT_RANGE. Rango de puertos distribuidos para una computadora de trabajo. 29500-29510 significa que si esta computadora de trabajo es un maestro en el aprendizaje distribuido, utilizará el primer puerto libre de este rango. Las gamas de distintos ordenadores de trabajo no deben superponerse.
NCCL_SOCKET_IFNAME. Interfaz de red NCCL.
FILE_SYNC_INTERVAL. Intervalo de sincronización de archivos en segundos. 0 significa que la sincronización de archivos está desactivada
WORKER_USAGE_INTERVAL. Intervalo en segundos de escritura del uso del trabajador en la base de datos
INSTALAR_DEPENDENCIAS. Verdadero/Falso. Instalar bibliotecas dependientes o no
SINCRONIZAR_CON_ESTA_COMPUTERA. Verdadero/Falso. Si es falso, todas las computadoras excepto esa no se sincronizarán con esa
CAN_PROCESS_TASKS. Verdadero/Falso. Si es falso, esta computadora no procesa tareas
Puede ver sus interfaces de red con el comando ifconfig
. Por favor considere el documento de nvidia