阿里云ECS CentOS系统如何搭建机器学习环境?

在阿里云 ECS(CentOS 系统)上搭建机器学习环境,核心思路是:安装基础依赖 → 配置 Python 环境 → 安装深度学习框架(PyTorch/TensorFlow)→ 优化性能与监控。以下是详细步骤:


✅ 一、前期准备

  1. 登录阿里云控制台

    • 创建/选择一台 CentOS 7/8 或 Rocky Linux 9 的 ECS 实例。
    • 推荐配置:CPU ≥ 4 核,内存 ≥ 8GB,务必选择带 NVIDIA GPU 的实例类型(如 gn6ign7ign8v 等),否则无法提速深度学习训练。
    • 安全组开放端口:22(SSH)、80/443(Web)、自定义端口(如 Jupyter 的 8888)。
  2. 连接服务器

    ssh root@<ECS公网IP>
    # 或使用阿里云终端(Web SSH)

✅ 二、安装 NVIDIA 驱动与 CUDA(GPU 必需)

⚠️ 注意:阿里云 GPU 实例已预装部分驱动,但建议手动验证并更新到匹配版本。

1. 查询当前驱动 & CUDA 支持

nvidia-smi          # 查看驱动版本
cat /usr/local/cuda/version.txt  # 查看 CUDA 版本(若存在)

2. 安装官方驱动 + CUDA Toolkit(以 CUDA 12.1 + Driver 535 为例)

# 卸载旧驱动(如有冲突)
sudo yum remove nvidia*

# 添加 RPM Fusion 仓库(CentOS 7/8)或直接用阿里云镜像源
sudo yum install -y epel-release
sudo yum groupinstall -y "Development Tools"
sudo yum install -y wget gcc kernel-devel-$(uname -r)

# 下载并安装 NVIDIA 驱动(官网获取最新稳定版)
wget https://download.nvidia.com/XFree86/Linux-x86_64/535.183.01/NVIDIA-Linux-x86_64-535.183.01.run
chmod +x NVIDIA-Linux-x86_64-535.183.01.run
sudo ./NVIDIA-Linux-x86_64-535.183.01.run --no-opengl-files --silent

# 重启后验证
nvidia-smi

3. 安装 CUDA Toolkit & cuDNN

# 方式1:使用 NVIDIA 官方 YUM 源(推荐)
sudo wget https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
sudo mv cuda-rhel8.repo /etc/yum.repos.d/
sudo yum clean all
sudo yum install -y cuda-toolkit-12-1 cudnn-devel cuda-cublas-12-1

# 方式2:手动安装 .run 包(更灵活)
# 从 https://developer.nvidia.com/cuda-downloads 下载对应版本
# 示例(CUDA 12.1):
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_531.18_linux.run
sudo sh cuda_12.1.0_531.18_linux.run --toolkit --silent --override
# 添加环境变量
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

✅ 验证:

nvcc --version
python -c "import torch; print(torch.cuda.is_available(), torch.version.cuda)"

✅ 三、配置 Python 环境与虚拟环境

1. 安装 Miniconda(推荐,避免污染系统 Python)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 按提示安装,初始化 shell(选 yes)
source ~/.bashrc

2. 创建虚拟环境

conda create -n ml-env python=3.10 -y
conda activate ml-env

3. 安装常用 ML 库

# PyTorch(匹配你的 CUDA 版本!关键!)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# TensorFlow(可选,需单独指定 GPU 版)
# pip install tensorflow[and-cuda]==2.15.0  # 注意 TF 对 CUDA 版本要求严格

# 通用工具
pip install numpy pandas scikit-learn matplotlib seaborn jupyterlab
pip install transformers datasets accelerate  # HuggingFace 生态
pip install tensorboard  # 可视化训练过程

✅ 验证 PyTorch GPU:

python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}, Device: {torch.cuda.get_device_name(0)}')"

✅ 四、部署开发环境(JupyterLab / VS Code Remote)

方案 A:JupyterLab(适合快速实验)

pip install jupyterlab
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
# 生成 token 后,通过浏览器访问:http://<ECS-IP>:8888?token=<xxx>

📌 安全提示:生产环境建议加密码或配合 Nginx 反向X_X + HTTPS。

方案 B:VS Code Remote(推荐)

  1. 本地安装 VS Code + Remote – SSH 插件
  2. 连接至 ECS,远程编辑代码,调试更高效。

✅ 五、性能优化建议

项目 操作
显存管理 设置 CUDA_VISIBLE_DEVICES 限制可用卡;启用 torch.backends.cudnn.benchmark = True
数据加载 使用 DataLoader(num_workers=4) + pin_memory=True
混合精度训练 from apex import amp 或 PyTorch 原生 autocast
监控资源 watch -n 1 nvidia-smi 或集成 Prometheus+Grafana
自动重启服务 systemd 管理 Jupyter 服务(可参考 GitHub 搜索 jupyter systemd

✅ 六、备份与安全加固

  • 定期快照 ECS 实例(阿里云控制台 → 云盘/实例 → 快照)
  • 禁用 root 直接 SSH,改用普通用户 + sudo
  • 安装 fail2ban 防暴力破解:
    sudo yum install fail2ban -y
    sudo systemctl enable --now fail2ban

需要我提供:

  • 📦 完整的 setup.sh 自动化脚本?
  • 🔧 针对特定框架(如 LLM 微调、Stable Diffusion)的专属配置?
  • ☁️ 如何在阿里云百炼平台直接调用模型而无需自建环境?

欢迎告诉我你的具体场景(例如:跑 ResNet / 训练 Llama 3 / 做 CV 检测),我可进一步定制方案。

未经允许不得转载:CLOUD技术博 » 阿里云ECS CentOS系统如何搭建机器学习环境?