在阿里云上跑深度学习任务是非常常见且高效的做法,尤其是对于本地计算资源有限或需要快速扩展算力的场景。下面是一个详细的指南,帮助你更好地在阿里云(Aliyun)上部署和运行深度学习项目。
一、选择合适的ECS实例类型
1. 实例类型推荐:
-
GPU型实例:适合深度学习训练
- 如
ecs.gn6e-c8g1.xlarge(NVIDIA V100) ecs.gn7i-c32g1t1.xlarge(NVIDIA A10)ecs.gn7e-c48g1t4.xlarge(NVIDIA A100)
- 如
-
CPU型实例:适合数据预处理、模型推理等轻量级任务
ecs.c7.large
-
弹性裸金属服务器/超级计算集群(SCC):适合大规模分布式训练
2. 操作系统选择:
- 推荐使用 Ubuntu 20.04 / 22.04 LTS
- 或者 CentOS(看你对系统的熟悉程度)
二、环境配置步骤
1. 连接ECS实例
ssh root@你的ECS公网IP
2. 安装依赖库
sudo apt update
sudo apt install build-essential cmake git curl wget unzip -y
3. 安装 NVIDIA 驱动
方法一:自动安装(推荐)
# 添加官方仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -r 's/([a-z]+)([0-9]+).([0-9]+)/123/')
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-driver-535
方法二:手动下载.run文件安装驱动
去 NVIDIA官网 下载对应显卡型号的Linux驱动 .run 文件,上传到服务器并执行:
chmod +x NVIDIA-Linux-x86_64-xxx.xx.run
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run
4. 安装 CUDA Toolkit 和 cuDNN
你可以通过以下方式安装:
-
使用 apt 安装(推荐)
sudo apt install nvidia-cuda-toolkit -
或者从官网下载
.deb包安装特定版本(如 CUDA 11.8)
cuDNN 一般配合 PyTorch/TensorFlow 自带的版本即可,也可以单独安装。
5. 安装 Anaconda / Miniconda(可选)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
然后创建虚拟环境:
conda create -n dl_env python=3.9
conda activate dl_env
6. 安装深度学习框架(PyTorch / TensorFlow)
例如安装 PyTorch:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
TensorFlow:
pip install tensorflow
三、远程开发建议
1. Jupyter Notebook 远程访问
安装 jupyter:
pip install notebook
生成配置文件并设置密码:
jupyter notebook --generate-config
修改配置文件:
nano ~/.jupyter/jupyter_notebook_config.py
设置:
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.allow_remote_access = True
启动:
jupyter notebook --port=8888
然后浏览器访问:http://你的ECS公网IP:8888
2. VSCode Remote SSH 开发
使用 VSCode 的 Remote – SSH 插件连接服务器进行代码编辑与调试,非常方便。
四、持久化与备份
- 使用 OSS 存储训练数据或模型权重
- 使用 云盘快照 定期备份系统盘和数据盘
- 可以将训练结果保存到 OSS 中避免丢失
五、优化建议
| 优化点 | 建议 |
|---|---|
| 多 GPU 训练 | 使用 torch.nn.DataParallel 或 DistributedDataParallel |
| 分布式训练 | 使用阿里云 SCC(超级计算集群)支持 RDMA 网络 |
| 数据加载 | 使用 RAMDisk 或挂载 NAS 提高 IO 性能 |
| 成本控制 | 使用 抢占式实例 节省费用,适用于容忍中断的任务 |
六、相关产品推荐
| 产品 | 用途 |
|---|---|
| ECS | 主机服务 |
| NAS / OSS | 数据存储 |
| SLB / EIP | 网络负载与公网访问 |
| Auto Scaling | 动态扩缩容 |
| 容器服务 ACK | Kubernetes 部署深度学习服务 |
| PAI 平台 | 阿里云机器学习平台,提供可视化建模、训练、部署等功能 |
如果你有具体要跑的模型或者框架(比如YOLOv8、Stable Diffusion、LLaMA等),我可以给你更具体的部署脚本和优化建议。
需要我帮你写一个完整的部署脚本吗?
CLOUD技术博