Estrutura de gráfico acíclico direcionado distribuído para aprendizado de máquina com UI
O objetivo do MLComp é fornecer ferramentas para treinamento, inferência e criação de pipelines complexos (especialmente para visão computacional) de forma rápida e gerenciável.
MLComp é compatível com: Python 3.6+, sistema operacional Unix.
Parte do ecossistema catalisador. Manifesto do projeto.
Características
IU incrível
Suporte ao catalisador
Treinamento distribuído
Supervisor que controla recursos computacionais
Sincronização de código e dados
Monitoramento de recursos
Funcionalidade completa de pausar e continuar na UI
Controle automático dos requisitos
Despejo de código (com destaque de sintaxe na UI)
Integração Kaggle
Registro hierárquico
Pesquisa de grade
Comparação de experimentos
Personalizando o sistema de layout
Conteúdo
Capturas de tela
Instalação
IU
Uso
Documentos e exemplos
Variáveis de ambiente
Dias
Computadores
Relatórios
Código
Gráfico
Mais capturas de tela
Instale o pacote MLComp
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev pip instalar mlcomp inicialização mlcomp mlcomp migrar
Configure seu ambiente. Por favor, considere a seção Variáveis de ambiente
Execute db, redis, mlcomp-server, mlcomp-workers:
Variante 1: mínima (se você tiver 1 computador)
Execute todos os necessários (mlcomp-server, mlcomp-workers, redis-server), ele usa SQLITE:
mlcomp-server start --daemon=True
Variante 2: completo
um. Altere suas variáveis de ambiente para usar PostgreSql
b. Instale o rsync em cada computador de trabalho
sudo apt-get instalar rsync
Certifique-se de que cada computador esteja disponível pelo protocolo SSH com IP/PORT especificado no arquivo de variáveis de ambiente.
rsync executará os seguintes comandos:
fazer upload
rsync -vhru -e "ssh -p {target.port} -o StrictHostKeyChecking=no" {pasta}/ {target.user}@{target.ip}:{pasta}/ --perms --chmod=777
baixar
rsync -vhru -e "ssh -p {source.port} -o StrictHostKeyChecking = não" {source.user}@{source.ip}:{pasta}/ {pasta}/ --perms --chmod=777
c. Instale o apex para aprendizagem distribuída
d. Para executar postgresql, redis-server, mlcomp-server, execute em seu computador servidor:
cd ~/mlcomp/configs/ docker-compose -f servidor-compose.yml up -d
e. Execute em cada computador de trabalho:
início do trabalhador mlcomp
O site está disponível em http://{WEB_HOST}:{WEB_PORT}
Por padrão, é http://localhost:4201
A frente é construída com AngularJS.
Caso você deseje alterá-lo, considere a página Leiame do front
Correr
mlcomp dag PATH_TO_CONFIG.yml
Este comando copia os arquivos do diretório para o banco de dados.
Em seguida, o servidor agenda o DAG considerando os recursos livres.
Para obter mais informações, consulte o Documentos
A documentação da API e uma visão geral da biblioteca podem ser encontradas aqui
Você pode encontrar tutoriais avançados e práticas recomendadas de MLComp na pasta de exemplos do repositório.
O tutorial do FileSync descreve o mecanismo de sincronização de dados
O único arquivo para configurar o ambiente do seu computador está localizado em ~/mlcomp/configs/.env
ROOT_FOLDER - pasta para salvar arquivos MLComp: configs, db, tarefas, etc.
TOKEN - token de segurança do site. Por favor, altere para qualquer string
DB_TYPE. SQLITE ou POSTGRESQL
POSTGRES_DB. Nome do banco de dados PostgreSql
POSTGRES_USER. Usuário PostgreSql
POSTGRES_PASSWORD. Senha PostgreSql
POSTGRES_HOST. Hospedeiro PostgreSql
PGDATA. Localização dos arquivos db PostgreSql
REDIS_HOST. Anfitrião Redis
REDIS_PORT. Porta Redis
REDIS_SENHA. Senha Redis
WEB_HOST. Host do site MLComp. 0.0.0.0 significa que está disponível em qualquer lugar
WEB_PORT. Porta do site MLComp
CONSOLE_LOG_LEVEL. nível de log para saída para o console
DB_LOG_LEVEL. nível de log para saída para o banco de dados
PI. IP de um computador de trabalho. O computador de trabalho deve ser acessível a partir de outros computadores de trabalho por estes IP/PORTA
PORTA. Porta de um computador de trabalho. O computador de trabalho deve ser acessível a partir de outros computadores de trabalho por estes IP/PORTA (protocolo SSH)
MASTER_PORT_RANGE. intervalo de portas distribuídas para um computador de trabalho. 29500-29510 significa que se este computador de trabalho for mestre em aprendizagem distribuída, ele utilizará a primeira porta livre desta faixa. Os intervalos de diferentes computadores de trabalho não devem se sobrepor.
NCCL_SOCKET_IFNAME. Interface de rede NCCL.
FILE_SYNC_INTERVAL. Intervalo de sincronização de arquivos em segundos. 0 significa que a sincronização de arquivos está desativada
WORKER_USAGE_INTERVAL. Intervalo em segundos de gravação do uso do trabalhador no banco de dados
INSTALL_DEPENDENCIES. Verdadeiro/Falso. Instale bibliotecas dependentes ou não
SYNC_WITH_THIS_COMPUTER. Verdadeiro/Falso. Se for falso, todos os computadores, exceto aquele, não serão sincronizados com aquele
CAN_PROCESS_TASKS. Verdadeiro/Falso. Se for falso, este computador não processa tarefas
Você pode ver suas interfaces de rede com o comando ifconfig
. Por favor, considere o documento da nvidia