在阿里云服务器上部署深度学习环境是许多AI开发者和研究人员的常见需求。以下是详细的步骤指南,帮助你在阿里云ECS(弹性计算服务)实例上完成深度学习环境的搭建与部署。
一、准备工作
-
注册阿里云账号
- 访问 阿里云官网
- 注册并完成实名认证。
-
购买ECS实例
- 推荐选择 GPU实例(如
ecs.gn6i-c4g1.xlarge),适合深度学习训练。 - 操作系统建议选择 Ubuntu 20.04/22.04 LTS 或 CentOS 7+。
- 安全组配置:开放 SSH(22端口)、Jupyter(8888端口)等必要端口。
- 推荐选择 GPU实例(如
-
连接到服务器
使用 SSH 连接:ssh root@<你的公网IP>
二、基础环境配置
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装 NVIDIA 驱动(GPU 实例)
-
查看 GPU 型号:
nvidia-smi如果提示命令未找到,说明驱动未安装。
-
安装驱动(推荐使用阿里云提供的镜像或自动安装脚本):
方法一:使用阿里云官方驱动安装脚本
wget https://ecs-image-template.oss-cn-hangzhou.aliyuncs.com/script/nvidia_driver_install.sh chmod +x nvidia_driver_install.sh sudo sh nvidia_driver_install.sh方法二:手动安装(以 Ubuntu 为例)
sudo ubuntu-drivers autoinstall # 或指定版本 sudo apt install nvidia-driver-535安装后重启:
sudo reboot验证驱动是否安装成功:
nvidia-smi
3. 安装 CUDA 和 cuDNN
- 推荐使用 NVIDIA 官方
.run文件或通过 Conda 安装。 - 更简便的方式:直接使用 Anaconda/Miniconda 安装 PyTorch/TensorFlow 时自动包含 CUDA。
⚠️ 注意:TensorFlow 2.10+ 支持 CUDA 11.2,PyTorch 通常自带匹配版本。
三、安装深度学习框架
方式一:使用 Conda(推荐)
-
下载并安装 Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh source ~/.bashrc -
创建虚拟环境:
conda create -n dl python=3.9 conda activate dl -
安装 PyTorch(支持 GPU):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -
安装 TensorFlow(GPU 版):
pip install tensorflow[and-cuda] # 或 pip install tensorflow-gpu==2.13.0 # 注意版本兼容性 -
验证 GPU 是否可用:
import torch print(torch.cuda.is_available()) # 应输出 True print(torch.version.cuda)
四、部署方式选择
1. Jupyter Notebook 远程访问
-
安装 JupyterLab:
pip install jupyterlab -
生成配置文件:
jupyter lab --generate-config -
设置密码:
jupyter server password -
启动服务(允许远程访问):
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root -
在本地浏览器访问:
http://<公网IP>:8888
🔐 安全建议:使用 Nginx + HTTPS + 反向,或通过 SSH 隧道:
ssh -L 8888:localhost:8888 root@<公网IP>
2. Flask/FastAPI 部署模型 API
示例(Flask + PyTorch):
from flask import Flask, request, jsonify
import torch
import torchvision.models as models
app = Flask(__name__)
model = models.resnet18(pretrained=True)
model.eval()
@app.route('/predict', methods=['POST'])
def predict():
# 处理图像输入等
return jsonify({"result": "example"})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
启动:
python app.py
配合 Nginx + Gunicorn 提升稳定性。
五、优化与维护
-
监控资源使用
nvidia-smi查看 GPU 使用情况htop查看 CPU/内存
-
使用 Docker 容器化(可选)
- 使用 NVIDIA Docker:
docker run --gpus all -it pytorch/pytorch:latest
- 使用 NVIDIA Docker:
-
数据存储
- 挂载云盘(ESSD)用于存放大型数据集
- 使用 OSS 存储非实时数据
-
自动备份
- 配置快照策略定期备份系统盘和数据盘
六、常见问题解决
| 问题 | 解决方案 |
|---|---|
nvidia-smi 找不到 |
确认实例为 GPU 型号,安装驱动 |
| CUDA 不兼容 | 使用 conda 安装框架避免手动配置 |
| Jupyter 无法访问 | 检查安全组、防火墙、启动参数 |
| 显存不足 | 减小 batch size,使用混合精度 |
七、进阶建议
- 使用 阿里云PAI平台(Platform for AI)简化训练和部署。
- 结合 NAS/OSS 实现大规模数据共享。
- 使用 Kubernetes + Arena 管理多任务调度。
如果你有具体的框架(如 YOLO、Stable Diffusion、BERT)或部署目标(Web API、批量推理),可以告诉我,我可以提供更定制化的部署方案。
CLOUD技术博