Alibaba Cloud AI Containers(简称AC2)提供了一系列的AI容器镜像,与阿里云基础设施(ECS、ACK等)深度集成优化,极大地节省了AI应用环境部署的成本。本文介绍了在ECS上如何正确配置实例运行环境,并运行AC2容器进行PyTorch训练。
选购并连接ECS实例
在ECS上使用AC2,需要首先选购一台ECS实例,并连接。更多信息,请参见通过控制台使用ECS实例(快捷版)。
在选购实例时,阿里云提供了丰富的镜像资源,推荐使用「Alibaba Cloud Linux 3.2104 LTS 64位」镜像,拥有最完整的服务保障。
设置ECS实例
安装Docker
使用AC2需要首先设置Docker运行环境。Docker的安装视不同的操作系统步骤略有不同,具体操作,参见安装Docker并使用(Linux)。下面以Alibaba Cloud Linux 3为例,设置Docker运行环境。
使用以下命令添加docker-ce软件源,并安装软件源兼容插件。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo dnf install -y --repo alinux3-plus dnf-plugin-releasever-adapter
使用以下命令安装Docker-CE。
sudo dnf install -y docker-ce
安装完毕后,通过以下命令查看Docker版本号,检查是否安装成功。
docker -v
执行以下命令,启动Docker服务,并设置开机自启动。
sudo systemctl start docker # 启动Docker服务 sudo systemctl enable docker # 设置Docker服务开机自启
使用以下命令检查Docker服务运行情况。
systemctl status docker
命令回显如下图所示,表示Docker已正常启动。
安装NVIDIA Container Toolkit(GPU实例)
对于GPU实例,需要安装NVIDIA Container Toolkit来支持GPU容器,Alibaba Cloud Linux 3中已经提供了对NVIDIA Container Toolkit的支持,可以通过以下命令设置GPU实例。
安装NVIDIA驱动以及CUDA组件。
sudo dnf install -y anolis-epao-release sudo dnf install -y kernel-devel-$(uname -r) nvidia-driver{,-cuda}
使用以下命令安装NVIDIA Container Toolkit。
sudo dnf install -y nvidia-container-toolkit
重启Docker守护进程,添加GPU暴露能力。
sudo systemctl restart docker
重启服务后,Docker就具备了GPU透传能力,后续创建容器时,需要添加
--gpus <gpu-request>
参数,指定需要透传的GPU。
ECS实例设置成功后,便可以拉取AC2镜像进行后续开发部署工作。更多信息,请参见Alibaba Cloud AI Containers镜像列表。
使用AC2训练
AC2中提供了多种训练框架的镜像,镜像中集成了不同的AI运行框架,包括PyTorch、TensorFlow等,同时按照不同的运行平台,内置了经过验证的NVIDIA驱动、CUDA等运行驱动以及加速库。为开发者节省了大量的环境部署时间。
PyTorch 框架镜像
运行PyTorch CPU镜像训练模型
运行CPU的容器镜像。
<ac2-pytorch-cpu-image>为PyTorch CPU镜像地址,请根据实际情况进行替换。
sudo docker run -it --rm <ac2-pytorch-cpu-image>
下载示例代码。
git clone https://github.com/pytorch/examples.git
下载PyTorch示例代码,并使用
--no-cuda
参数指定在CPU上进行训练。python3 examples/mnist/main.py --no-cuda
运行PyTorch GPU镜像训练模型
运行GPU的容器镜像,使用
--gpus all
参数允许容器使用所有GPU。<ac2-pytorch-gpu-image>为PyTorch GPU镜像地址,请根据实际情况进行替换。
sudo docker run -it --rm --gpus all <ac2-pytorch-gpu-image>
下载示例代码。
git clone https://github.com/pytorch/examples.git
下载PyTorch示例代码,默认使用GPU进行训练。
python3 examples/mnist/main.py
清理运行环境
完成训练任务后,可以通过以下流程清理当前运行的容器环境。
使用以下命令查看系统中所有已经创建的容器。
sudo docker ps -a
执行命令回显容器ID(CONTAINER ID)、镜像(IMAGE)、状态(STATUS)、容器名(NAMES)等信息如下图所示。
如需移除容器,执行以下命令。移除前请确保容器已经停止。
以下命令中<CONTAINER ID>为容器ID,请根据实际情况进行替换。
sudo docker stop <CONTAINER ID> # 停止容器 sudo docker rm <CONTAINER ID> # 移除容器
使用以下命令列出已下载的镜像。
sudo docker images
执行命令回显镜像仓库(REPOSITORY)、镜像标签(TAG)、镜像ID(IMAGE ID)等信息如下图所示。
使用以下命令删除指定的镜像文件。
命令中<IMAGE ID>为镜像ID,请根据实际情况进行替换。
sudo docker rmi <IMAGE ID>