分布式模型训练
前言
针对量化模型进行训练优化,将原来的滚动学习拆分为月模型的训练任务,通过集群进行分布式加速。
这篇文章,从零起步 手把手教你搭建简易而又实用的分布式模型训练框架。
为了方便同学部署,可以从此处的百度网盘下载相关脚本。
实现路径
- celery+redis实现底层分布式框架
- HDF5文件实现二级本地文件缓存,每日数据同步
环境搭建
miniconda
centos自带python2.7, 因此需要安装python虚拟环境 方便版本切换。
需要下载sh文件的同学,点击这里下载conda
也可以直接命令行下进行安装
wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.12.0-Linux-x86_64.sh
sh Miniconda3-py37_4.12.0-Linux-x86_64.sh
echo $PATH
# 若环境变量没添加 则手动更改下
export PATH=~/miniconda3/bin:$PATH
搭建私有pypi-server
在服务器上开启pypiserver,用于后期代码在每个节点pip install进行分发。
下载pypiserver-1.5.0-py2.py3-none-any.whl
pip install pypiserver-1.5.0-py2.py3-none-any.whl
# 使用无需权限的上传模式开启服务
# /root/home/packages 为package的存储路径
pypi-server -p 9090 -P . -a C:\pypackage /root/home/packages
显示上图页面 则搭建成功, 可以方便地上传源码,在内网直接pip
现在可以上传源码到服务器啦,在写代码的机器上配置 .pypirc文件(目录为:~/.pypir)
[distutils]
index-servers =
local
[local]
repository:http://ip:端口号
username:
password:
# 上传源码
python setup.py sdist bdist_wheel
twine upload -r local dist/*
修改pip国内源
mkdir ~/.pip
vim ~/.pip/pip.conf
pip.conf文件里输入下面内容并保存
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
安装redis
选择一台服务器 搭建redis服务
# 下载安装包
wget http://download.redis.io/releases/redis-6.2.7.tar.gz
# 解压
tar -zxvf redis-6.2.7.tar.gz
# 进入解压目录 执行make编译
# # yum install gcc-c++ 没有安装gcc的话 先把gcc安装下
cd redis-6.2.7
make
# 进入src目录 执行make install安装redis
cd src
make install
# 在src目录执行./redis-server …/redis.conf即可启动redis(前端启动方式)
./redis-server ../redis.conf
# 修改配置
vim redis.conf
# 搜索 (/)进入编辑状态(i) 保存退出(:wq!) 重启服务
daemonize yes
bind 0.0.0.0 # 运行本机以外访问
# 检查redis状态
ps -ef |grep redis
# 关闭redis
./redis-cli shutdown
前端启动截图
配置文件修改