免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

parameter_server 集群部署指南:在 AWS EC2 上用 Docker Swarm 快速搭建机器学习训练集群

parameter_server 集群部署指南:在 AWS EC2 上用 Docker Swarm 快速搭建机器学习训练集群 parameter_server 集群部署指南在 AWS EC2 上用 Docker Swarm 快速搭建机器学习训练集群【免费下载链接】parameter_servermoved to https://github.com/dmlc/ps-lite项目地址: https://gitcode.com/gh_mirrors/pa/parameter_serverparameter_server是一个面向工业级规模的分布式参数服务器Parameter Server支持 worker 与 server 之间异步、零拷贝的 KV 通信。它自带的Parameter Server Cloud方案可以让你在 AWS EC2 上通过 Docker Swarm 一键拉起训练集群——不用拷贝数据到每台机器、不用配置 MPI/SSH、也不用处理复杂的系统依赖。本文将带你从零开始完成一次完整的云端部署。部署前准备3 个必备条件 在动手之前确认本地环境满足以下要求条件说明本地已安装 DockerLinux 用户建议配置免 sudo 运行macOS 用户可用 boot2dockerDocker Hub 账号用于推送/拉取训练镜像AWS 账号当前仅支持 Amazon EC2含 Spot 实例AWS 侧配置步骤进入 AWS 控制台Services → IAM → Users → Create New Users创建用户后保存Access Key ID和Secret Access Key为该用户附加AmazonEC2FullAccess和AmazonS3FullAccess策略记录目标区域的VPC ID和Region在 Network Security → Security Groups 的默认安全组中放行所有 TCP 入站流量集群内 worker 与 server 需要互通选择一个可用Zone如 us-west-1 的 b 区。一键启动 Docker Swarm 集群确认本地 Docker 已启动docker version无报错然后进入项目的docker/目录执行集群启动脚本 fire_amazonec2.shcd docker ./fire_amazonec2.sh 3 c4.xlarge spot 0.08 access-key secret-key us-west-1 vpc-xxx default b该命令会自动安装正确版本的 docker-machine并拉起一个1 台 master 2 台 slave的 Swarm 集群Spot 实例出价 $0.08。想省时间可直接把spot换成regular。约 5 分钟后用下面的命令验证实例状态docker-machine ls正常应看到swarm-master带 master 标记和swarm-node-0/1三台 Running 实例。 脚本参数含义实例数、机型、spot/regular、出价、AK/SK、region、vpc-id、安全组、zone。上传数据与配置文件到 S3Parameter Server Cloud 暂不支持 AWS 签名认证因此需要把 S3 桶的List 和 Upload 权限对所有人开放实验结束后强烈建议收回。数据文件直接通过 AWS S3 控制台上传到桶中某个文件夹并把该文件夹设为公开读取。配置文件使用项目提供的 upload_s3.sh 脚本自动上传并授予 public-read 权限免去手动改权限的麻烦./upload_s3.sh ../example/linear/ctr/online_l1lr.conf s3://your-bucket/config/online_l1lr.conf ./upload_s3.sh ../example/linear/ctr/eval_online.conf s3://your-bucket/config/eval_online.conf配置文件与example/目录下的一致只需把本地路径改成s3://路径。以 online_l1lr.conf 为例关键改动如下training_data { format: TEXT text: SPARSE_BINARY file: s3://your-bucket/data/ctr/train/part.* } model_output { format: TEXT file: s3://your-bucket/model/ctr_online }模型输出路径即使当前不存在也没关系只要桶的上传权限已开放系统会自动创建。构建云端训练容器镜像修改 config.mk把USE_S3从 0 改为 1 以启用云功能然后构建镜像./build.sh swarm-master your-docker-account/parameter_server这个命令会把源码和 Makefile 拷贝到 Swarm manager 节点上的容器内编译并推送到你的 Docker Hub。对于贡献者来说这也是一个无需处理编译器/库依赖的纯净构建环境。启动分布式训练 镜像就绪后用 cloud.sh 启动应用./cloud.sh amazonec2 swarm-master your-docker-account/parameter_server 2 4 s3://your-bucket/config/online_l1lr.conf -logtostderr参数解读amazonec2swarm-master云厂商与 Swarm 管理器名称2 4启动2 台 server 4 台 worker末尾可追加任意 parameter server 参数。集群各节点会自动拉取最新镜像并分布式运行应用Docker Swarm 调度器保证不会发生端口冲突。查看训练日志调度器有专用名称n0执行eval $(docker-machine env --swarm swarm-master) docker logs n0你会看到随迭代变化的 loss、auc、accuracy 等指标[0426 02:09:28.578 sgd.cc:85] 10 9.59e04 5.353e-01 0.5961 0.5628 1.90e03 2.27e-01训练完成后模型文件会保存在配置中指定的 S3 地址下。评估模型与本地数据缓存模型评估只需把 server/worker 规模缩小到 1:1并换成 eval 配置./cloud.sh amazonec2 swarm-master your-docker-account/parameter_server 1 1 s3://your-bucket/config/eval_online.conf日志中将输出auc、accuracy、logloss三项指标。批量训练的缓存加速跑 batch 算法时可把训练数据和模型输出指向 S3同时把local_cache保留为本地路径固定前缀为data/cache/数据会被缓存到每台集群机器的/tmp/parameter_server/data/cache目录免去反复下载local_cache { format: BIN file: data/cache/ctr_train_ }安全关闭集群与常见问题实验结束后务必用项目提供的 shut.sh 安全停止并删除所有 EC2 实例./shut.sh 3高频故障排查清单 ❓症状原因与解决failed to parse conf / find 0 data files数据或配置文件未设公开读取处理后记得收回权限S3 上看不到模型或配置未开放桶的 List/Upload 权限Properties → Permissions应用卡住不动安全组未放行内部 TCP 流量worker 与 server 无法通信build.sh 容器内编译卡死实例配置过低如 t2.micro换用更强大的机型Spot 实例迟迟抢不到出价过低或机器不足改用 regular 模式Machine swarm-node-x already exists上次未安全关机先执行./shut.sh 3再到控制台取消残留的 Spot 请求、删除密钥对至此你已掌握 parameter_server 在 AWS EC2 上基于 Docker Swarm 的完整部署流程配置 AWS → 拉起集群 → 上传 S3 → 构建镜像 → 分布式训练 → 评估 → 安全关机。整个流程的核心脚本都集中在docker/目录配合example/linear/下的示例配置即可快速扩展到你自己的机器学习任务。【免费下载链接】parameter_servermoved to https://github.com/dmlc/ps-lite项目地址: https://gitcode.com/gh_mirrors/pa/parameter_server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表