Hbox:高效的深度学习调度平台
Hbox是一个由奇虎360公司开发的便捷高效的大数据和人工智能调度平台。它支持多种机器学习和深度学习框架,可以运行在Hadoop Yarn上,并集成了多种深度学习框架,如TensorFlow、MXNet、Caffe、Theano、PyTorch等。Hbox具有良好的可扩展性和兼容性,是一个功能强大的深度学习调度工具。
核心架构
Hbox主要由三个核心组件构成:
-
Client:负责启动应用程序并获取应用状态。
-
ApplicationMaster(AM):负责内部调度和生命周期管理,包括输入数据分发和容器管理。
-
Container:应用程序的实际执行者,用于启动Worker或Parameter Server进程,监控并向AM报告进程状态,保存输出结果等。
主要功能
支持多种深度学习框架
Hbox不仅支持TensorFlow和MXNet的分布式模式,还支持Caffe、Theano、PyTorch等各种深度学习框架的单机模式。用户可以灵活地使用自定义版本和多版本框架。
基于HDFS的统一数据管理
Hbox使用HDFS(也支持S3)来存储训练数据和模型结果。它提供了三种读取HDFS输入数据的策略:Download、Placeholder和InputFormat。同时也支持两种结果输出模式:Upload和OutputFormat。这种灵活的数据管理机制让用户可以高效地处理大规模数据。
可视化显示
Hbox提供了直观的应用程序界面,包括:
- 所有容器信息展示
- TensorBoard查看链接(TensorFlow应用)
- 中间模型保存功能
- 工作节点资源使用情况监控
这些功能让用户可以方便地监控和管理应用程序的执行过程。
兼容原生框架代码
除了自动构建分布式TensorFlow的ClusterSpec外,Hbox还可以直接执行单机模式TensorFlow和其他深度学习框架的程序,无需对原有代码进行大幅修改。
部署和使用
Hbox的编译环境要求JDK 1.8+和Maven 3.6.3+。编译后会生成一个分发包,解压后包含bin、sbin、lib等目录。
部署时需要配置环境变量和hbox-site.xml文件。Hbox支持启动历史服务来记录应用程序的执行历史。
使用时,用户可以通过hbox-submit命令提交应用程序到集群执行。Hbox提供了丰富的参数来控制资源分配、数据输入输出等。
总的来说,Hbox是一个功能强大、易于使用的深度学习调度平台,可以帮助用户更高效地进行大规模机器学习任务。它良好的架构设计和丰富的功能,使其成为深度学习领域的一个重要工具。