在阿里云上运行 PyTorch 或 TensorFlow 项目,核心在于根据项目规模选择合适的计算资源(ECS 或 PAI),并构建高效的开发环境。以下是从基础设施选型到代码部署的完整实操指南:
1. 资源选型:ECS vs PAI
对于大多数场景,PAI(人工智能平台)是首选,尤其是涉及模型训练时;若仅需推理或轻量级调试,ECS(云服务器)更灵活。
-
方案 A:PAI-DSW / PAI-EAS(推荐用于训练与大规模推理)
- 优势:开箱即用,预装主流深度学习框架(PyTorch/TensorFlow/ModelScope),内置 GPU 驱动和 CUDA 环境,支持一键启动 JupyterLab。
- 适用场景:模型训练、超参调优、分布式任务。
- 操作:登录阿里云控制台 -> 搜索“人工智能平台 PAI" -> 创建 DSW(交互式建模)实例 -> 选择镜像(如
pytorch-gpu)。
-
方案 B:ECS + GPU 实例(适合自定义环境或特定版本需求)
- 优势:完全控制操作系统,可安装任意版本的依赖库,适合生产环境部署。
- 注意:需手动配置 NVIDIA 驱动、CUDA 和 cuDNN。
- 推荐实例族:GN7、GN8、GA6 等 GPU 实例(支持 V100/A100/H800 等芯片,具体视区域库存而定)。
2. 环境准备(以 ECS 为例)
若选择自建 ECS 环境,请按以下步骤初始化:
A. 系统层配置
- 购买实例:选择 Linux 发行版(推荐 Ubuntu 20.04/22.04 或 CentOS 7/8),搭配 GPU 实例规格。
- 安全组设置:放行 SSH (22)、Jupyter (8888) 及业务端口(如 6379, 5000 等)。
- 驱动安装:
# Ubuntu 示例(自动安装官方驱动) sudo ubuntu-drivers devices sudo apt install -y nvidia-driver-535 # 版本号需匹配你的 GPU sudo reboot nvidia-smi # 验证驱动状态
B. 深度学习环境搭建
推荐使用 Conda 隔离环境,避免系统库冲突:
# 安装 Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 创建虚拟环境
conda create -n pytorch_env python=3.9 -y
conda activate pytorch_env
# 安装 PyTorch (GPU 版)
# 务必去 pytorch.org 获取对应 CUDA 版本的命令,此处为示例
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 安装 TensorFlow (GPU 版)
pip install tensorflow[and-cuda]==2.12.0
提示:国内网络访问 PyTorch 官网可能不稳定,建议配置阿里云内网镜像源或使用
pip的国内镜像(如清华源)。
3. 数据与存储优化
- OSS 对象存储:将数据集上传至 OSS,利用阿里云高速传输工具
ossutil或 Python SDK 挂载。 - NAS 文件存储:若多个实例需共享代码或中间结果,使用 NAS 文件系统挂载到 ECS/PAI 节点。
- 本地盘缓存:训练时临时大文件写入实例本地 NVMe SSD,提升 I/O 性能,任务结束后同步回 OSS。
4. 代码部署与运行
- 远程开发:VS Code 通过 Remote-SSH 连接服务器,配合 Jupyter Notebook 进行交互式开发。
- 容器化部署:将环境打包为 Docker 镜像,推送到阿里云容器服务(ACR),便于弹性伸缩和 CI/CD。
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04 RUN apt-get update && apt-get install -y python3-pip COPY requirements.txt . RUN pip install -r requirements.txt CMD ["python", "train.py"]
5. 成本与合规建议
- 抢占式实例:非紧急训练任务可选用抢占式实例(价格低至按量付费的 1-5 折),但需注意被回收风险。
- 弹性伸缩:结合 ACK(容器服务 Kubernetes 版)实现训练任务自动扩缩容。
- 数据安全:开启 SSL 加密传输,敏感数据脱敏处理,定期备份 OSS 快照。
- 合规性:确保所加载的开源模型符合许可证要求,避免使用未授权的商业模型权重。
总结
对于快速启动,直接使用 PAI-DSW 是最优解,省去驱动配置麻烦;对于长期生产环境或特殊定制需求,ECS + Conda/Docker 组合提供更高自由度。无论哪种方案,务必提前规划好 OSS 数据存储路径和安全组策略,以确保项目顺利上线。
CLOUD云枢