用于具有 UI 的机器学习的分布式有向无环图框架
MLComp 的目标是以快速、易于管理的方式提供训练、推理、创建复杂管道(尤其是计算机视觉)的工具。
MLComp 兼容:Python 3.6+、Unix 操作系统。
催化剂生态系统的一部分。项目清单。
特征
令人惊叹的用户界面
催化剂支持
分布式训练
控制计算资源的主管
代码和数据同步
资源监控
UI 上暂停和继续的完整功能
自动控制需求
代码转储(UI 上有语法高亮)
Kaggle 集成
分层日志记录
网格搜索
实验对比
自定义布局系统
内容
截图
安装
用户界面
用法
文档和示例
环境变量
达格斯
电脑
报告
代码
图形
更多截图
安装 MLComp 包
sudo apt-get install -y libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libavresample-dev libavfilter-dev pip 安装 mlcomp MLcomp初始化 MLComp 迁移
设置您的环境。请考虑环境变量部分
运行 db、redis、mlcomp-server、mlcomp-workers:
变体 1:最小(如果您有 1 台计算机)
运行所有必需的(mlcomp-server、mlcomp-workers、redis-server),它使用 SQLITE:
mlcomp 服务器启动 --daemon=True
变体 2:完整
一个。更改环境变量以使用 PostgreSql
b.在每台工作计算机上安装 rsync
sudo apt-get install rsync
确保每台计算机均可通过 SSH 协议使用您在环境变量文件中指定的 IP/端口。
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}:{文件夹}/ {文件夹}/ --perms --chmod=777
c.安装 apex 以进行分布式学习
d.要运行 postgresql、redis-server、mlcomp-server,请在服务器计算机上执行:
cd ~/mlcomp/configs/ docker-compose -f server-compose.yml up -d
e.在每台工作计算机上运行:
mlcomp-worker 启动
网站位于 http://{WEB_HOST}:{WEB_PORT}
默认情况下,它是http://localhost:4201
前端是用AngularJS构建的。
如果您想更改它,请考虑前面的自述文件页面
跑步
mlcomp dag PATH_TO_CONFIG.yml
该命令将目录中的文件复制到数据库中。
然后,服务器考虑空闲资源来调度DAG。
有关更多信息,请参阅文档
API 文档和库概述可以在此处找到
您可以在存储库的示例文件夹中找到高级教程和 MLComp 最佳实践。
FileSync教程介绍数据同步机制
用于设置计算机环境的单个文件位于 ~/mlcomp/configs/.env
ROOT_FOLDER - 保存 MLComp 文件的文件夹:配置、数据库、任务等。
TOKEN - 站点安全令牌。请将其更改为任意字符串
数据库_类型。 SQLITE 或 POSTGRESQL
POSTGRES_DB。 PostgreSql 数据库名称
POSTGRES_USER。 PostgreSql 用户
POSTGRES_PASSWORD。 PostgreSql 密码
POSTGRES_HOST。 PostgreSql 主机
PGDATA。 PostgreSql 数据库文件位置
REDIS_HOST。 Redis主机
REDIS_PORT。 Redis端口
REDIS_密码。 Redis密码
WEB_HOST。 MLComp 站点主机。 0.0.0.0 意味着它可以从任何地方使用
WEB_PORT。 MLComp 站点端口
CONSOLE_LOG_LEVEL。输出到控制台的日志级别
DB_LOG_LEVEL。输出到数据库的日志级别
知识产权。工作计算机的IP。工作计算机必须可通过这些 IP/端口从其他工作计算机访问
港口。工作计算机的端口。工作计算机必须可通过这些 IP/端口(SSH 协议)从其他工作计算机访问
MASTER_PORT_RANGE。工作计算机的分布式端口范围。 29500-29510 意味着如果这台工作计算机是分布式学习中的主机,它将使用此范围中的第一个空闲端口。不同工作计算机的范围不得重叠。
NCCL_SOCKET_IFNAME。 NCCL 网络接口。
文件同步间隔。文件同步间隔(以秒为单位)。 0 表示文件同步关闭
WORKER_USAGE_INTERVAL。将工作线程使用情况写入数据库的时间间隔(以秒为单位)
INSTALL_DEPENDENCIES。真/假。要么安装依赖库,要么不安装
与此计算机同步。真/假。如果为 False,则除该计算机之外的所有计算机都不会与该计算机同步
CAN_PROCESS_TASKS。真/假。如果为 false,则该计算机不处理任务
您可以使用ifconfig
命令查看您的网络接口。请考虑 nvidia 文档