在 ModelScope (魔搭社区) 使用 Notebook (PAI-DSW) 开发时,最让开发者头疼的问题就是:实例一旦关机重启,之前安装的环境和包就全丢了。

本文将为你详解如何利用 /mnt/workspace/ 持久化目录实现“环境永存”,并同步分享官方推荐的第三方库管理规范。


🚀 核心技巧:将虚拟环境装进持久化目录

ModelScope 默认的系统盘(根目录)在重启后会重置,但 /mnt/workspace/ 是挂载的云盘,数据不会丢失。

1. 下载并安装 Miniconda

我们需要手动指定安装路径到持久化目录:

# 下载安装包
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 授权并安装到指定路径 /mnt/workspace/miniconda3
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p /mnt/workspace/miniconda3

2. 初始化与激活

ModelScope 默认通常使用 zsh,安装后需要初始化:

# 初始化 zsh 配置
/mnt/workspace/miniconda3/bin/conda init zsh

# 使配置立即生效
source ~/.zshrc

💡 重启小贴士: 由于 ~/.zshrc 在重启后也会恢复默认,下次开机后,你只需要再次运行上面的 conda init zsh && source ~/.zshrc 即可快速找回你的 Conda 权限。


Miniconda 基础操作指南

  1. 常用命令速查
    这些是日常必备的核心命令:
操作命令说明
创建环境conda create -n <env_name> python=3.10可指定 Python 版本
查看环境列表conda env list检查环境存储路径
激活环境conda activate <env_name>进入目标工作环境
退出环境conda deactivate返回基础环境
删除环境conda remove -n <env_name> --all彻底清理环境
  1. 环境持久化验证
    安装时若指定了 -p /mnt/workspace/miniconda3,请通过 conda env list 确认路径正确性。正常输出应显示:
# conda environments:
#
base                  * /mnt/workspace/miniconda3
mymodelscope            /mnt/workspace/miniconda3/envs/mymodelscope

只要路径以 /mnt/workspace/ 开头,环境数据就会持久保存。

🛠️ ModelScope 专项优化

  1. 国内镜像配置(加速下载)
    替换默认源为国内镜像提升下载速度:
# 配置清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
  1. 包管理优先级
    遵循原则:
  • 优先使用 conda 安装
  • conda 不可用时再用 pip

注意事项:

  • 在激活的 conda 环境中使用 pip 会正确安装到当前环境
  • 避免升级系统级 pip,所有操作应在虚拟环境中进行

📦 三方库安装与管理规范

ModelScope 提供了丰富的预设环境(Python、PyTorch、TensorFlow 等组合)。在自定义环境时,请遵循以下操作规范:

1. 查看第三方库

在 Terminal 中,你可以随时查看当前环境已安装的包:

pip list

2. 安装与更新(避坑指南)

对于普通库,直接 pip install 即可。但对于 TensorFlow-GPU 等核心框架,请注意:

  • 禁止升级系统 pip:升级系统级 pip 可能导致路径冲突,导致后续无法安装。
  • 更新特定版本:建议使用 --user 参数并指定与 CUDA 兼容的版本。
# 示例:更新 tensorflow-gpu 到指定版本
pip install --upgrade --user tensorflow-gpu=<versionNumber>

3. 卸载第三方库

你可以卸载自己安装的库,但系统预装的基础库建议保留以维持环境稳定性:

pip uninstall <your-library-name>


❓ 常见问题 FAQ

Q1: 创建环境报错 CondaToSRejectedError?

现象: 提示 1 channel Terms of Service rejected。
原因: Anaconda 更新了服务条款,需要手动同意。
解决: 运行以下命令即可修复:

conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main

Q2: 为什么推荐自己装 Miniconda 而不是用系统自带环境?

系统环境的库安装在 /usr/ 或 /root/ 下,重启即消失。将整个 Conda 及其 envs 放在 /mnt/workspace/,能确保你安装的数个 GB 的深度学习依赖(如 vLLM、Transformers)在下次开机时无需重新下载,开机即用。


📝 总结

  1. 持久化存储:所有环境和重型工具链都放 /mnt/workspace/。
  2. 规范管理:不随意升级系统 pip,确保框架版本与 CUDA 兼容。
  3. 快速恢复:重启后记得 conda init。

更多推荐